:root{
  --navy:#0B1F33;
  --navy-deep:#081726;
  --ivory:#F5F3EE;
  --paper:#FBFAF7;
  --gold:#A98B4E;
  --slate:#3C4652;
  --slate-light:#6B7684;
  --hairline:#D8D2C4;
  --success:#3E6B4F;
  --font-display:'Cormorant Garamond', serif;
  --font-body:'Source Sans 3', 'Segoe UI', sans-serif;
  --max-width:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--slate);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:var(--max-width);margin:0 auto;padding:0 24px;}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.75rem;
  color:var(--gold);
  font-weight:600;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--navy);
  margin:0 0 .5em;
  letter-spacing:.01em;
}
h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.1;}
h2{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.2;}
h3{font-size:1.3rem;}
p{margin:0 0 1em;}
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  padding:.85em 1.8em;
  border:1px solid var(--navy);
  border-radius:2px;
  font-size:.92rem;
  letter-spacing:.03em;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
  background:transparent;
  color:var(--navy);
}
.btn-primary{background:var(--navy);color:var(--ivory);}
.btn-primary:hover{background:var(--navy-deep);}
.btn:not(.btn-primary):hover{background:var(--navy);color:var(--ivory);}
.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,250,247,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--hairline);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand-logo{width:38px;height:38px;object-fit:contain;}
.brand-name{
  font-family:var(--font-display);
  font-size:1.4rem;
  letter-spacing:.06em;
  color:var(--navy);
  font-weight:600;
}
.main-nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0;}
.main-nav a{
  font-size:.92rem;
  letter-spacing:.02em;
  color:var(--slate);
  position:relative;
  padding:4px 0;
}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--navy);}
.main-nav a[aria-current="page"]::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--gold);
}
.nav-toggle{
  display:none;
  background:none;border:none;cursor:pointer;color:var(--navy);
  font-size:1.6rem;
}
@media (max-width:860px){
  .main-nav{
    position:absolute;top:100%;left:0;right:0;
    background:var(--paper);border-bottom:1px solid var(--hairline);
    display:none;
  }
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;padding:16px 24px;gap:16px;}
  .nav-toggle{display:block;}
}

/* hero */
.hero{
  position:relative;
  color:var(--ivory);
  min-height:78vh;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,23,38,.55) 0%,rgba(8,23,38,.85) 100%);
}
.hero-content{position:relative;z-index:1;padding:80px 24px 64px;max-width:760px;}
.hero .eyebrow{color:var(--gold);}
.hero h1{color:var(--ivory);}
.hero p.lead{font-size:1.15rem;color:var(--ivory);opacity:.9;max-width:560px;}
.hero-actions{display:flex;gap:16px;margin-top:28px;flex-wrap:wrap;}
.hero .btn{border-color:var(--ivory);color:var(--ivory);}
.hero .btn-primary{background:var(--gold);border-color:var(--gold);color:var(--navy-deep);}
.hero .btn-primary:hover{background:#957839;}
.hero .btn:not(.btn-primary):hover{background:var(--ivory);color:var(--navy);}

/* page header (interior pages) */
.page-header{
  background:var(--navy);
  color:var(--ivory);
  padding:72px 24px 48px;
}
.page-header .eyebrow{color:var(--gold);}
.page-header h1{color:var(--ivory);}
.page-header p{color:rgba(245,243,238,.8);max-width:640px;}

/* sections */
section{padding:72px 0;}
.section-tight{padding:48px 0;}
.section-alt{background:var(--ivory);}
.section-navy{background:var(--navy);color:var(--ivory);}
.section-navy h2,.section-navy h3{color:var(--ivory);}
.section-head{max-width:640px;margin-bottom:44px;}
.section-head p{color:var(--slate-light);}

.ledger-rule{
  border:none;border-top:1px solid var(--hairline);
  margin:0 0 44px;
}

/* grid layouts */
.grid{display:grid;gap:32px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:860px){
  .grid-3,.grid-2{grid-template-columns:1fr;}
}

.service-card{
  border:1px solid var(--hairline);
  background:var(--paper);
  padding:32px 28px;
  border-left:2px solid var(--gold);
}
.service-card i{font-size:1.8rem;color:var(--gold);margin-bottom:16px;display:block;}
.service-card h3{margin-bottom:.4em;}
.service-card p{color:var(--slate-light);margin-bottom:0;font-size:.95rem;}

.stat-row{
  display:flex;
  flex-wrap:wrap;
  gap:48px;
  border-top:1px solid rgba(245,243,238,.2);
  border-bottom:1px solid rgba(245,243,238,.2);
  padding:36px 0;
}
.stat{flex:1;min-width:140px;}
.stat .num{font-family:var(--font-display);font-size:2.4rem;color:var(--gold);display:block;}
.stat .label{font-size:.85rem;color:rgba(245,243,238,.75);letter-spacing:.03em;}

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
}
@media (max-width:860px){.split{grid-template-columns:1fr;}}
.split img{border-radius:2px;}

.quote-block{
  border-left:2px solid var(--gold);
  padding-left:28px;
  font-family:var(--font-display);
  font-size:1.4rem;
  color:var(--navy);
  font-style:italic;
}
.quote-block cite{
  display:block;
  font-family:var(--font-body);
  font-style:normal;
  font-size:.85rem;
  color:var(--slate-light);
  margin-top:12px;
  letter-spacing:.02em;
}

.team-card{text-align:left;}
.team-card img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:14px;filter:grayscale(15%);}
.team-card .role{color:var(--gold);font-size:.85rem;letter-spacing:.03em;}

.values-list{list-style:none;margin:0;padding:0;}
.values-list li{
  display:flex;gap:18px;
  padding:22px 0;
  border-top:1px solid var(--hairline);
}
.values-list li:last-child{border-bottom:1px solid var(--hairline);}
.values-list i{color:var(--gold);font-size:1.4rem;flex-shrink:0;margin-top:2px;}
.values-list h3{margin-bottom:.25em;font-size:1.15rem;}
.values-list p{margin:0;color:var(--slate-light);font-size:.95rem;}

/* contact */
.contact-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:56px;
}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.contact-info-card{
  background:var(--navy);color:var(--ivory);
  padding:36px;
}
.contact-info-card h3{color:var(--ivory);}
.contact-info-row{
  display:flex;gap:14px;align-items:flex-start;
  padding:16px 0;
  border-top:1px solid rgba(245,243,238,.15);
}
.contact-info-row:first-of-type{border-top:none;}
.contact-info-row i{color:var(--gold);font-size:1.3rem;margin-top:2px;}
.contact-info-row a{color:var(--ivory);}
.contact-info-row a:hover{color:var(--gold);}

form.stack{display:flex;flex-direction:column;gap:18px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:.85rem;letter-spacing:.02em;color:var(--slate);}
.field input,.field textarea,.field select{
  border:1px solid var(--hairline);
  background:var(--paper);
  padding:12px 14px;
  font-family:var(--font-body);
  font-size:.95rem;
  color:var(--navy);
  border-radius:2px;
}
.field textarea{resize:vertical;min-height:130px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:600px){.field-row{grid-template-columns:1fr;}}
.checkbox-row{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--slate-light);}
.checkbox-row input{margin-top:3px;}
.form-note{
  font-size:.82rem;color:var(--slate-light);
  border-top:1px solid var(--hairline);
  padding-top:16px;margin-top:6px;
}
.form-success{
  display:none;
  background:#EAF2EC;border:1px solid var(--success);
  color:#2A4A35;padding:16px 18px;font-size:.9rem;
  align-items:center;gap:10px;
}
.form-success.show{display:flex;}

/* legal pages */
.legal-content{max-width:820px;}
.legal-content h2{margin-top:2em;}
.legal-content h2:first-child{margin-top:0;}
.legal-content ul{padding-left:1.2em;}
.legal-content li{margin-bottom:.5em;color:var(--slate);}
.legal-updated{color:var(--slate-light);font-size:.85rem;margin-bottom:2.5em;}

/* footer */
.site-footer{
  background:var(--navy-deep);color:rgba(245,243,238,.75);
  padding:56px 0 28px;
  font-size:.9rem;
}
.footer-grid{
  display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px;
  padding-bottom:40px;border-bottom:1px solid rgba(245,243,238,.12);
}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-brand .brand-name{color:var(--ivory);}
.footer-brand p{color:rgba(245,243,238,.6);font-size:.85rem;margin-top:12px;}
.footer-col h4{
  color:var(--ivory);font-family:var(--font-body);
  font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:16px;font-weight:600;
}
.footer-col ul{list-style:none;margin:0;padding:0;}
.footer-col li{margin-bottom:10px;}
.footer-col a:hover{color:var(--gold);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:24px;flex-wrap:wrap;gap:12px;font-size:.8rem;color:rgba(245,243,238,.5);
}
.footer-disclaimer{
  font-size:.78rem;color:rgba(245,243,238,.45);
  margin-top:24px;line-height:1.7;
}

/* cookie banner */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  background:var(--navy-deep);color:var(--ivory);
  border-top:1px solid var(--gold);
  padding:20px 24px;
  transform:translateY(120%);
  transition:transform .4s ease;
}
.cookie-banner.show{transform:translateY(0);}
.cookie-inner{
  max-width:var(--max-width);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
}
.cookie-inner p{margin:0;font-size:.88rem;color:rgba(245,243,238,.85);max-width:640px;}
.cookie-inner a{color:var(--gold);}
.cookie-actions{display:flex;gap:12px;flex-wrap:wrap;}
.cookie-actions .btn{padding:.65em 1.4em;font-size:.85rem;}
.cookie-actions .btn:not(.btn-primary){border-color:rgba(245,243,238,.4);color:var(--ivory);}
.cookie-actions .btn-primary{background:var(--gold);border-color:var(--gold);color:var(--navy-deep);}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--gold);color:var(--navy-deep);
  padding:10px 16px;z-index:200;
}
.skip-link:focus{left:16px;top:16px;}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
}
