:root{
  --ink:#0a0a0a;--ink-2:#121210;--gold:#c8a84b;--gold-soft:#e2bc5a;
  --ivory:#f5f4f0;--ivory-dim:rgba(245,244,240,.62);
  --font-voice:'DM Serif Display',serif;--font-tech:'Barlow Condensed',sans-serif;--font-body:'Barlow',sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--ink);font-family:var(--font-body);overflow-x:hidden;}
.font-voice{font-family:var(--font-voice);}
.font-tech{font-family:var(--font-tech);}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}

.page-hero{position:relative;min-height:56vh;display:flex;align-items:flex-end;overflow:hidden;}
.page-hero-bg{position:absolute;inset:-2%;background-size:cover;background-position:center;}
.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.97) 0%,rgba(10,10,10,.7) 40%,rgba(10,10,10,.3) 75%,rgba(10,10,10,.15) 100%);}

.spec-card{border-radius:.75rem;padding:1.5rem;background:var(--ink-2);border:1px solid rgba(245,244,240,.09);transition:border-color .3s ease;}
.spec-card:hover{border-color:rgba(200,168,75,.4);}

.gallery-tile{position:relative;overflow:hidden;border-radius:.75rem;min-height:190px;}
.gallery-photo{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.78);transform:scale(1);transition:filter .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);}
.gallery-tile:hover .gallery-photo{filter:brightness(1);transform:scale(1.06);}
.gallery-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.75) 0%,transparent 55%);opacity:.85;transition:opacity .4s ease;}
.gallery-tile:hover .gallery-scrim{opacity:.45;}
.gallery-label{position:absolute;bottom:0;left:0;padding:.85rem;opacity:0;transform:translateY(6px);transition:all .35s ease;}
.gallery-tile:hover .gallery-label{opacity:1;transform:translateY(0);}

.btn-gold{background:var(--gold);color:var(--ink);transition:background .25s ease;}
.btn-gold:hover{background:var(--gold-soft);}

.section-tag{color:var(--gold);}

/* ===== FAQ ACCORDION ===== */
.faq-item{border-bottom:1px solid rgba(245,244,240,.12);}
.faq-question{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:20px 4px;font-family:var(--font-voice);font-size:17px;color:var(--ivory);transition:color .2s ease;}
.faq-question:hover{color:var(--gold);}
.faq-icon{flex-shrink:0;width:20px;height:20px;position:relative;}
.faq-icon::before,.faq-icon::after{content:'';position:absolute;background:var(--gold);top:50%;left:50%;transform:translate(-50%,-50%);transition:opacity .25s ease,transform .3s ease;}
.faq-icon::before{width:14px;height:2px;}
.faq-icon::after{width:2px;height:14px;}
.faq-item.open .faq-icon::after{opacity:0;transform:translate(-50%,-50%) rotate(90deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.2,.7,.2,1);}
.faq-answer-inner{padding:0 28px 22px 4px;font-size:14px;line-height:1.7;color:var(--ivory-dim);font-weight:300;}

/* ===== REDUCED MOTION SUPPORT ===== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
