:root{
  --ink:#0C0B09;
  --char:#161411;
  --cream:#F2EBDD;
  --cream-dim:#CFC6B2;
  --gold:#C9A227;
  --gold-hi:#E8CE7A;
  --gold-deep:#8A6E1D;
  --hair:rgba(201,162,39,.28);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--cream);font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.gold{background:linear-gradient(120deg,var(--gold-deep) 0%,var(--gold) 38%,var(--gold-hi) 55%,var(--gold) 72%,var(--gold-deep) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* header */
.site-head{position:fixed;inset:0 0 auto 0;z-index:50;padding:18px 5vw;background:linear-gradient(to bottom,rgba(12,11,9,.88),rgba(12,11,9,0));transition:background .4s}
.site-head.solid{background:rgba(12,11,9,.96);border-bottom:1px solid var(--hair)}
.head-in{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto}
.brand{display:flex;align-items:center;gap:.9rem}
.brand img{width:46px;height:46px;object-fit:contain}
.brand-name{font-family:'Cinzel',serif;font-weight:700;font-size:1.05rem;letter-spacing:.26em}
.brand-name em{display:block;font-style:normal;font-weight:400;font-size:.5rem;letter-spacing:.5em;color:var(--cream-dim);margin-top:2px}
nav.primary{display:flex;gap:2rem;font-family:'Cinzel',serif;font-size:.7rem;letter-spacing:.26em}
nav.primary a{color:var(--cream-dim);transition:color .3s;padding:.4em 0}
nav.primary a:hover,nav.primary a:focus-visible{color:var(--gold-hi)}
nav.primary a.here{color:var(--gold);border-bottom:1px solid var(--gold)}
.head-call{font-family:'Cinzel',serif;font-size:.72rem;letter-spacing:.2em;border:1px solid var(--gold);padding:.75em 1.4em;color:var(--gold-hi);transition:background .3s}
.head-call:hover{background:rgba(201,162,39,.12)}

/* hero */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;display:flex;align-items:flex-end}
.hero.short{height:64svh;min-height:480px}
.hero video,.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,11,9,.97) 0%,rgba(12,11,9,.34) 48%,rgba(12,11,9,.5) 100%)}
.hero-copy{position:relative;z-index:2;padding:0 5vw 10vh;max-width:1080px}
.eyebrow{font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:.5em;color:var(--gold);margin-bottom:1.2rem}
h1{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(2.4rem,6.6vw,5rem);line-height:1.08;letter-spacing:.02em}
.lede{margin:1.4rem 0 2.2rem;max-width:600px;font-size:clamp(1.05rem,1.55vw,1.28rem);color:var(--cream-dim)}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap}
.btn{font-family:'Cinzel',serif;font-size:.72rem;letter-spacing:.28em;padding:1.05em 2.1em;border:1px solid var(--gold);transition:all .35s;display:inline-block}
.btn.fill{background:var(--gold);color:var(--ink)}
.btn.fill:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn.ghost{color:var(--gold-hi)}
.btn.ghost:hover{background:rgba(201,162,39,.12)}

/* sections */
section{padding:104px 5vw}
.wrap{max-width:1320px;margin:0 auto}
.kicker{font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.5em;color:var(--gold);margin-bottom:1rem}
h2{font-family:'Cinzel',serif;font-weight:500;font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.16;margin-bottom:1rem}
h3{font-family:'Cinzel',serif;font-weight:500;font-size:1.35rem;letter-spacing:.04em}
.rule{width:64px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:1.5rem 0 0}
.muted{color:var(--cream-dim)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* division cards (homepage) */
.div-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:3rem}
.div-card{position:relative;border:1px solid var(--hair);background:var(--char);display:flex;flex-direction:column}
.div-card figure{overflow:hidden;aspect-ratio:16/11}
.div-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.div-card:hover img{transform:scale(1.05)}
.div-body{padding:1.8rem 1.9rem 2.1rem;display:flex;flex-direction:column;flex:1}
.div-body p{color:var(--cream-dim);font-size:1.02rem;flex:1}
.div-body .go{font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.3em;color:var(--gold-hi);margin-top:1.5rem}
.div-body .go::after{content:" →"}
.div-card h3{margin-bottom:.6rem}

/* service sections (division pages) */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:3.4rem;align-items:center;padding:64px 0;border-bottom:1px solid rgba(242,235,221,.08)}
.svc:last-of-type{border-bottom:none}
.svc figure{border:1px solid var(--hair);overflow:hidden}
.svc img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/11;transition:transform 1.4s ease}
.svc:hover img{transform:scale(1.04)}
.svc.flip figure{order:2}
.svc ul{list-style:none;margin-top:1.1rem}
.svc li{padding:.34em 0;border-bottom:1px solid rgba(242,235,221,.08);font-size:1.02rem}
.svc li::before{content:"—";color:var(--gold);margin-right:.55em}

/* gallery */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.8rem}
.tile{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid rgba(201,162,39,.15)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s ease}
.tile:hover img{transform:scale(1.06)}
.tile figcaption{position:absolute;inset:auto 0 0 0;padding:2.3rem 1.2rem .9rem;background:linear-gradient(to top,rgba(12,11,9,.92),transparent);font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.28em;color:var(--cream)}

/* standards band */
.standards{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem;text-align:center}
.standards .num{font-family:'Cinzel',serif;font-size:1.4rem;color:var(--gold-hi);letter-spacing:.08em}
.standards p{font-size:.94rem;color:var(--cream-dim);margin-top:.5rem}

/* contact */
.contact{background:var(--char);border-top:1px solid var(--hair)}
.contact-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}
.contact-list{list-style:none;margin-top:2rem}
.contact-list li{display:flex;gap:1.1rem;align-items:baseline;padding:.95rem 0;border-bottom:1px solid rgba(242,235,221,.08)}
.contact-list .lab{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.4em;color:var(--gold);min-width:96px}
.contact-list a:hover{color:var(--gold-hi)}
.contact figure{border:1px solid var(--hair)}

/* footer */
footer{padding:2.3rem 5vw;border-top:1px solid var(--hair)}
.foot-in{max-width:1320px;margin:0 auto;display:flex;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;font-size:.92rem;color:var(--cream-dim)}
.foot-in .fm{font-family:'Cinzel',serif;letter-spacing:.28em;font-size:.64rem}
.legal{max-width:1320px;margin:1rem auto 0;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:rgba(207,198,178,.6)}

@media (max-width:960px){
  nav.primary{display:none}
  .div-grid{grid-template-columns:1fr}
  .svc,.contact-inner{grid-template-columns:1fr}
  .svc.flip figure{order:0}
  .grid{grid-template-columns:repeat(2,1fr)}
  .standards{grid-template-columns:repeat(2,1fr)}
  section{padding:76px 6vw}
}
@media (max-width:560px){.grid{grid-template-columns:1fr}}
