/* Simpson & Marwick — pitch build · tokens from design-system.md */
:root{
  --navy:#1d3665;
  --navy-dark:#172b51;
  --navy-deep:#122240;
  --gold:#cab17c;
  --paper:#efefee;
  --paper-2:#e3e3e1;
  --white:#ffffff;
  --ink-soft:#43506b;
  --mist:#b9c4e0;
  --hairline-navy:rgba(202,177,124,.35); /* gold hairline on navy */
  --hairline-paper:#d8d8d5;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Work Sans",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.22,.61,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--sans);
  font-weight:400;
  font-size:17px;
  line-height:1.65;
  color:var(--navy);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
body{overflow-x:clip}

/* wrapper = horizontal padding ONLY (never vertical — specificity trap) */
.wrap{max-width:1200px;margin:0 auto;padding-left:clamp(20px,5vw,48px);padding-right:clamp(20px,5vw,48px)}

/* ---------- type ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08}
h2{font-size:clamp(2.2rem,4.5vw,3.6rem);letter-spacing:-.01em;max-width:18ch}
h2.on-navy{color:var(--white)}
.label{
  font-size:.72rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;
  color:var(--navy);margin-bottom:22px;
}
.label::after{content:"";display:block;width:44px;height:1px;background:var(--gold);margin-top:14px}
.label-onnavy{color:var(--gold)}
.lede{font-size:1.16rem;line-height:1.75;color:var(--ink-soft);max-width:56ch}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:var(--sans);font-size:.78rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  padding:18px 34px;border:1px solid transparent;cursor:pointer;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.btn-gold:hover{background:var(--white);border-color:var(--white)}
.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.45)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-navy{background:var(--navy);color:var(--white);border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-dark)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- header ---------- */
.site-head{
  position:fixed;inset:0 0 auto 0;z-index:50;
  transition:background .4s var(--ease),box-shadow .4s var(--ease);
}
.site-head.scrolled{background:var(--navy-deep);border-bottom:1px solid var(--hairline-navy)}
.head-inner{
  max-width:1360px;margin:0 auto;
  padding:20px clamp(20px,4vw,40px);
  display:flex;align-items:center;gap:32px;
}
.wordmark{
  font-size:.92rem;font-weight:500;letter-spacing:.32em;color:var(--white);
  text-decoration:none;white-space:nowrap;
}
.wm-amp{color:var(--gold);font-family:var(--serif);font-style:italic;font-size:1.15em}
.head-nav{margin-left:auto;display:flex;gap:30px}
.head-nav a{
  font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mist);text-decoration:none;transition:color .3s var(--ease);
}
.head-nav a:hover{color:var(--gold)}
.head-cta{padding:12px 22px}
@media (max-width:900px){.head-nav{display:none}.head-inner{justify-content:space-between}}
@media (max-width:600px){
  .head-inner{gap:12px;padding:16px 20px}
  .wordmark{font-size:.7rem;letter-spacing:.2em}
  .head-cta{font-size:.62rem;padding:10px 14px;letter-spacing:.12em;white-space:nowrap}
  .hero-foot{flex-wrap:wrap;gap:12px;font-size:.66rem;letter-spacing:.18em}
}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;overflow:hidden;
  background:
    linear-gradient(90deg,rgba(18,34,64,.62) 0%,rgba(18,34,64,.28) 60%,rgba(18,34,64,.05) 100%),
    linear-gradient(178deg,rgba(29,54,101,.88) 0%,rgba(23,43,81,.9) 55%,rgba(18,34,64,.96) 100%),
    url("assets/hero-coastal-aerial.jpg") center/cover no-repeat,
    var(--navy);
  display:flex;flex-direction:column;justify-content:center;
  padding:140px clamp(20px,5vw,48px) 0;
}
.giant-amp{
  position:absolute;top:50%;right:-4vw;transform:translateY(-54%);
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(30rem,58vw,64rem);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(202,177,124,.28);
  user-select:none;pointer-events:none;will-change:transform;
}
.hero-inner{max-width:1200px;margin:0 auto;width:100%;position:relative;z-index:2}
.kicker{
  font-size:.74rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold);margin-bottom:34px;
}
.hero-title{font-size:clamp(3.4rem,8.6vw,7rem);color:var(--white);letter-spacing:-.015em;font-weight:500}
.hero-title .line{display:block}
.hero-title .em{font-style:italic;color:var(--gold)}
.hero-sub{margin-top:30px;max-width:46ch;font-size:1.14rem;font-weight:300;line-height:1.75;color:var(--mist)}
.hero-ctas{margin-top:44px;display:flex;flex-wrap:wrap;gap:16px}
.hero-foot{
  position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;
  margin-top:auto;padding:34px 0 30px;
  border-top:1px solid var(--hairline-navy);
  display:flex;align-items:center;gap:22px;
  font-size:.74rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);
}
.hero-foot i{width:5px;height:5px;background:var(--gold);border-radius:50%;transform:rotate(45deg)}

/* ---------- dual offering ---------- */
.dual{padding-top:clamp(84px,11vw,160px);padding-bottom:clamp(84px,11vw,160px);background:var(--paper)}
.dual-lockup{max-width:none;margin-bottom:56px;line-height:1}
.dual-lockup .lk{font-size:clamp(2.6rem,6vw,4.6rem)}
.dual-lockup .lk-amp{
  font-style:italic;color:transparent;-webkit-text-stroke:1.2px var(--navy);
  font-size:clamp(3.4rem,8vw,6.2rem);padding:0 .06em;vertical-align:-.06em;
}
.dual-lockup .lk-under{display:block;font-style:italic;font-size:clamp(1.7rem,3.4vw,2.6rem);color:var(--ink-soft);margin-top:14px;font-weight:400}
.dual-cols{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.services{list-style:none;border-top:1px solid var(--navy)}
.services li{
  padding:16px 4px;border-bottom:1px solid var(--hairline-paper);
  font-family:var(--serif);font-size:1.35rem;font-weight:500;
  display:flex;align-items:baseline;gap:14px;
  transition:padding-left .35s var(--ease);
}
.services li::before{content:"&";font-style:italic;color:var(--gold);font-size:1rem}
.services li:hover{padding-left:14px}
@media (max-width:860px){.dual-cols{grid-template-columns:1fr}}

/* ---------- numbers ---------- */
.numbers{padding-top:clamp(76px,9vw,120px);padding-bottom:clamp(76px,9vw,120px);background:var(--navy)}
.num-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.num{border-top:1px solid var(--hairline-navy);padding-top:26px}
.num-val{font-family:var(--serif);font-size:clamp(2.6rem,4.6vw,4.2rem);font-weight:500;color:var(--white);line-height:1;display:block}
.num-val .star{color:var(--gold);font-size:.6em;vertical-align:.28em;margin-left:.08em}
.num-key{display:block;margin-top:14px;font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);line-height:1.7}
.num-note{margin-top:52px;font-size:.8rem;color:var(--mist);opacity:.75}
@media (max-width:960px){.num-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.num-grid{grid-template-columns:1fr}}

/* ---------- collections ---------- */
.collections{padding-top:clamp(84px,11vw,160px);padding-bottom:clamp(84px,11vw,160px);background:var(--paper)}
.collections h2{margin-bottom:64px}
.col-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.col-card{
  display:flex;flex-direction:column;text-decoration:none;background:var(--navy);
  transition:transform .5s var(--ease);
}
.col-card:hover{transform:translateY(-6px)}
.col-art{
  display:block;height:230px;overflow:hidden;
  border-bottom:1px solid var(--hairline-navy);
}
.col-art img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease);
}
.col-card:hover .col-art img{transform:scale(1.05)}
.col-body{padding:30px 34px 38px;display:block}
.col-name{font-family:var(--serif);font-size:1.9rem;font-weight:500;color:var(--white);display:block}
.col-desc{display:block;margin-top:12px;font-size:.95rem;font-weight:300;line-height:1.7;color:var(--mist)}
.col-link{
  display:inline-block;margin-top:22px;font-size:.72rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
  transition:letter-spacing .35s var(--ease);
}
.col-card:hover .col-link{letter-spacing:.3em}
.col-note{margin-top:36px;font-size:.85rem;color:var(--ink-soft);font-style:italic}
@media (max-width:960px){.col-grid{grid-template-columns:1fr}.col-art{height:190px}}

/* ---------- heritage ---------- */
.heritage{padding-top:clamp(84px,11vw,160px);padding-bottom:clamp(84px,11vw,160px);background:linear-gradient(180deg,var(--navy-deep),var(--navy))}
.heritage h2{margin-bottom:72px}
.her-grid{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:clamp(40px,6vw,80px);align-items:start}
.her-photo{margin:0}
.her-photo img{width:100%;height:auto;border:1px solid var(--hairline-navy);padding:10px}
.her-photo figcaption{margin-top:14px;font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
@media (max-width:820px){.her-grid{grid-template-columns:1fr}.her-photo{max-width:340px}}
.timeline{list-style:none;position:relative;padding-left:0}
.timeline li{
  display:grid;grid-template-columns:150px 1fr;gap:clamp(24px,5vw,72px);
  padding:30px 0;border-top:1px solid var(--hairline-navy);
}
.tl-year{font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,2.7rem);font-weight:500;color:var(--gold);line-height:1.1}
.tl-copy{color:var(--mist);font-weight:300;font-size:1.05rem;max-width:58ch;align-self:center}
@media (max-width:640px){.timeline li{grid-template-columns:1fr;gap:8px}}

/* ---------- ampersand ---------- */
.ampersand{padding-top:clamp(84px,11vw,160px);padding-bottom:clamp(84px,11vw,160px);background:var(--paper)}
.amp-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,90px);align-items:center}
.amp-mark{
  font-family:var(--serif);font-style:italic;font-size:clamp(11rem,22vw,20rem);line-height:.9;
  color:transparent;-webkit-text-stroke:1.5px var(--gold);text-align:center;user-select:none;
}
.amp-body h2{margin-bottom:26px}
.amp-body .lede{margin-bottom:38px}
@media (max-width:860px){.amp-grid{grid-template-columns:1fr}.amp-mark{text-align:left;font-size:9rem}}

/* ---------- offices ---------- */
.offices{padding-top:clamp(84px,11vw,160px);padding-bottom:clamp(84px,11vw,160px);background:var(--paper-2)}
.offices h2{margin-bottom:64px}
.office-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.office{background:var(--paper);padding:38px 34px 42px;border-top:2px solid var(--navy);overflow:hidden}
.office-img{
  display:block;width:calc(100% + 68px);margin:-38px -34px 28px;max-width:none;
  aspect-ratio:4/3;object-fit:cover;
}
.office h3{font-size:1.9rem;margin-bottom:6px}
.office-note{font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:22px}
.office address{font-style:normal;color:var(--ink-soft);line-height:1.7;margin-bottom:18px}
.office-tel{font-family:var(--serif);font-size:1.25rem;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px}
.people{
  margin-top:72px;border-top:1px solid var(--hairline-paper);padding-top:48px;
  display:grid;grid-template-columns:1fr minmax(220px,300px);gap:clamp(36px,5vw,72px);align-items:start;
}
.people-photo{margin:0}
.people-photo img{width:100%;height:auto;border:1px solid var(--gold);padding:10px}
.people-photo figcaption{margin-top:14px;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
@media (max-width:820px){.people{grid-template-columns:1fr}.people-photo{max-width:300px}}
.people-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 40px;max-width:900px}
.people-list li{font-size:.95rem;color:var(--ink-soft)}
.people-list strong{display:block;font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--navy)}
.people-more{margin-top:26px;font-style:italic;color:var(--ink-soft)}
@media (max-width:960px){.office-grid{grid-template-columns:1fr}}

/* ---------- appraisal ---------- */
.appraisal{
  position:relative;overflow:hidden;
  padding-top:clamp(84px,11vw,160px);padding-bottom:clamp(84px,11vw,160px);
  background:linear-gradient(178deg,var(--navy) 0%,var(--navy-deep) 100%);
}
.amp-low{top:auto;bottom:-18vw;right:-6vw;transform:none;font-size:clamp(24rem,44vw,48rem);-webkit-text-stroke-color:rgba(202,177,124,.16)}
.appraisal .wrap{position:relative;z-index:2}
.appraisal-sub{margin-top:24px;max-width:52ch;color:var(--mist);font-weight:300;font-size:1.12rem;line-height:1.75}
.appraisal-form{margin-top:54px;display:grid;grid-template-columns:repeat(3,1fr) auto;gap:22px;align-items:end;max-width:1000px}
.ff label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.ff input{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--hairline-navy);
  color:var(--white);font-family:var(--sans);font-size:1.05rem;padding:10px 2px 12px;
  transition:border-color .3s var(--ease);border-radius:0;
}
.ff input:focus{border-bottom-color:var(--gold);outline:none}
.form-note{grid-column:1/-1;color:var(--gold);font-size:.9rem;font-style:italic}
.alt-ctas{margin-top:56px;display:flex;flex-wrap:wrap;gap:40px}
.alt-ctas a{
  color:var(--white);text-decoration:none;font-size:.8rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--hairline-navy);
  padding-bottom:8px;transition:color .3s var(--ease),border-color .3s var(--ease);
}
.alt-ctas a:hover{color:var(--gold);border-color:var(--gold)}
@media (max-width:960px){.appraisal-form{grid-template-columns:1fr;gap:28px}}

/* ---------- footer ---------- */
.site-foot{background:var(--navy-deep);color:var(--mist);padding-top:76px;padding-bottom:44px;border-top:1px solid var(--hairline-navy)}
.foot-wordmark{font-size:1rem;font-weight:500;letter-spacing:.32em;color:var(--white)}
.foot-tag{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--gold);margin-top:10px}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:44px;font-weight:300;font-size:.95rem}
.foot-cols a{color:var(--mist);text-decoration:none;border-bottom:1px solid transparent;transition:color .3s var(--ease)}
.foot-cols a:hover{color:var(--gold)}
.foot-legal{margin-top:52px;padding-top:26px;border-top:1px solid var(--hairline-navy);font-size:.78rem;font-weight:300;opacity:.8;max-width:80ch}
.foot-credit{margin-top:18px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.65}
@media (max-width:720px){.foot-cols{grid-template-columns:1fr}}

/* ---------- reveals (transform+opacity ONLY) ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}
.reveal[data-d="5"]{transition-delay:.4s}
.reveal.in{opacity:1;transform:none}
.no-anim .reveal,html.no-anim .reveal{opacity:1 !important;transform:none !important;transition:none !important}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .draw{stroke-dashoffset:0;transition:none}
  .btn,.col-card{transition:none}
}
