/* ==========================================================================
   Asmita Gupta & Co, site stylesheet
   Typography: Newsreader (display) / Archivo (text) / IBM Plex Mono (figures)
   ========================================================================== */

:root{
  --ink:        #12161a;
  --ink-soft:   #1c232a;
  --ink-line:   #2b343d;
  --paper:      #f7f4ee;
  --paper-warm: #efeae0;
  --paper-deep: #e6dfd2;
  --rule:       #d6cec0;
  --rule-soft:  #e2dbcf;
  --brass:      #96692a;
  --brass-lite: #b98c45;
  --teal:       #1d4a44;
  --teal-lite:  #37716a;
  --text:       #464d54;
  --text-mute:  #7b8189;
  --white:      #fffdf9;

  --serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --sans:  "Archivo", "Helvetica Neue", Helvetica, sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --gutter: clamp(1.25rem, 5vw, 5.5rem);
  --maxw: 1280px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.72;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* paper grain */
body::before{
  content:"";
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:.5; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");
}

img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; }

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:400;
  color:var(--ink);
  margin:0;
  letter-spacing:-.015em;
  line-height:1.08;
  font-optical-sizing:auto;
}
p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }

.display{ font-size:clamp(2.45rem, 4.6vw, 4.15rem); line-height:1.03; letter-spacing:-.026em; }
.h2{ font-size:clamp(1.85rem, 3.1vw, 2.75rem); line-height:1.1; }
.h3{ font-size:clamp(1.35rem, 1.85vw, 1.7rem); line-height:1.2; }
.lede{ font-size:clamp(1.08rem, 1.35vw, 1.26rem); line-height:1.65; color:#3f464d; }

em.it{ font-style:italic; color:var(--brass); }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(4.5rem, 9vw, 8.5rem); }
.section--tight{ padding-block:clamp(3.25rem, 6vw, 5.5rem); }
.rule{ height:1px; background:var(--rule); border:0; margin:0; }

.eyebrow{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--brass);
  display:block;
  margin:0 0 1.4rem;
  font-weight:500;
  line-height:1.9;
}
.eyebrow::before{
  content:""; display:inline-block; width:26px; height:1px; background:currentColor;
  vertical-align:middle; margin-right:.8rem; opacity:.65;
}
.eyebrow--plain::before{ display:none; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  text-decoration:none; padding:1.02rem 1.7rem; border:1px solid var(--ink);
  background:var(--ink); color:var(--paper);
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn:hover{ background:var(--brass); border-color:var(--brass); color:var(--white); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.btn--light{ background:var(--paper); border-color:var(--paper); color:var(--ink); }
.btn--light:hover{ background:var(--brass-lite); border-color:var(--brass-lite); color:var(--ink); }
.btn .arw{ transition:transform .35s var(--ease); }
.btn:hover .arw{ transform:translateX(4px); }

/* underline link */
.ulink{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:var(--ink); display:inline-flex; align-items:center; gap:.6rem;
  padding-bottom:.4rem; border-bottom:1px solid var(--rule);
  transition:border-color .3s var(--ease), color .3s var(--ease);
}
.ulink:hover{ border-color:var(--brass); color:var(--brass); }
.ulink .arw{ transition:transform .3s var(--ease); }
.ulink:hover .arw{ transform:translateX(4px); }

/* ---------- header ---------- */
.masthead{
  position:sticky; top:0; z-index:80;
  background:rgba(247,244,238,.88);
  backdrop-filter:saturate(160%) blur(9px);
  border-bottom:1px solid var(--rule-soft);
}
.masthead__bar{
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding-block:1.05rem;
  transition:padding .35s var(--ease);
}
.masthead.is-stuck .masthead__bar{ padding-block:.7rem; }

.brand{ display:flex; align-items:center; gap:.85rem; text-decoration:none; }
.brand__mark{
  width:38px; height:38px; flex:none;
  border:1px solid var(--ink); display:grid; place-items:center;
  font-family:var(--serif); font-size:.95rem; letter-spacing:.01em; color:var(--ink); line-height:1;
  padding-top:2px;
}
.brand__name{ font-family:var(--serif); font-size:1.2rem; color:var(--ink); line-height:1.05; letter-spacing:-.01em; }
.brand__sub{
  font-family:var(--mono); font-size:.575rem; letter-spacing:.19em; text-transform:uppercase;
  color:var(--text-mute); display:block; margin-top:.24rem;
}

.nav{ display:flex; align-items:center; gap:2.1rem; }
.nav a{
  font-family:var(--mono); font-size:.715rem; letter-spacing:.15em; text-transform:uppercase;
  text-decoration:none; color:var(--ink); position:relative; padding-block:.35rem;
}
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--brass);
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);
}
.nav a:hover::after, .nav a[aria-current="page"]::after{ transform:scaleX(1); }
.nav a[aria-current="page"]{ color:var(--brass); }
.nav a.btn{ color:var(--paper); }
.nav a.btn[aria-current="page"]{ background:var(--brass); border-color:var(--brass); }
.nav a.btn:hover{ color:var(--white); }
.nav a.btn::after{ display:none; }
.masthead .btn{ padding:.78rem 1.25rem; }

.navtoggle{
  display:none; background:none; border:1px solid var(--rule); padding:.6rem .8rem;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
  cursor:pointer;
}
@media (max-width:520px){
  .brand__sub{ display:none; }
  .brand__name{ font-size:1.08rem; }
}
@media (max-width:960px){
  /* backdrop-filter on the masthead would make it the containing block for the
     fixed-position panel below, trapping it inside the header bar. */
  .masthead{ backdrop-filter:none; background:var(--paper); }

  .nav{
    position:fixed; inset:0 0 0 auto; width:min(360px,88vw);
    background:var(--paper-warm); border-left:1px solid var(--rule);
    flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:1.7rem;
    padding:7rem var(--gutter) 2.5rem; transform:translateX(100%);
    transition:transform .45s var(--ease); z-index:90;
    overflow-y:auto; overscroll-behavior:contain;
    box-shadow:-34px 0 70px -46px rgba(18,22,26,.65);
  }
  .nav.is-open{ transform:translateX(0); }
  .nav a{ font-size:.95rem; width:100%; }
  .nav a::after{ left:0; right:auto; width:2.2rem; }
  .nav a.btn{ margin-top:.6rem; justify-content:space-between; width:100%; padding:1.05rem 1.4rem; }
  .navtoggle{ display:inline-block; position:relative; z-index:95; }

  /* header sits above the scrim so the Close button stays reachable */
  body.nav-open .masthead{ z-index:95; }
  body.nav-open{ overflow:hidden; }
  body.nav-open::after{
    content:""; position:fixed; inset:0; z-index:85;
    background:rgba(18,22,26,.38);
    animation:scrim .35s var(--ease) both;
  }
  @keyframes scrim{ from{ opacity:0 } to{ opacity:1 } }
}

/* ---------- hero ---------- */
.hero{ position:relative; padding-block:clamp(3.5rem,7vw,6.5rem) 0; overflow:hidden; }
.hero__grid{
  display:grid; grid-template-columns:1.14fr .86fr; gap:clamp(2rem,5vw,4.5rem); align-items:end;
}
.hero__title{ margin-bottom:1.6rem; }
.hero__title .ln{ display:block; }
.hero__copy{ max-width:38ch; margin-bottom:2.4rem; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; margin-bottom:clamp(2rem,4vw,3.4rem); }
.hero__figure{ position:relative; }
.hero__figure img{ width:100%; aspect-ratio:4/4.15; object-fit:cover; filter:saturate(.86) contrast(1.03); }
.hero__img{ position:relative; }
.hero__img::after{
  content:""; position:absolute; inset:auto -14px -14px auto; width:58%; height:38%;
  border:1px solid var(--brass); z-index:-1;
}
.hero__cap{
  font-family:var(--mono); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-mute); margin-top:.9rem;
}
@media (max-width:900px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__figure{ order:-1; }
  .hero__figure img{ aspect-ratio:4/3; }
}

/* ledger strip */
.ledger{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin-top:clamp(2.5rem,5vw,4rem); }
.ledger__row{ display:grid; grid-template-columns:repeat(4,1fr); }
.ledger__cell{ padding:1.9rem 1.6rem 1.75rem; border-left:1px solid var(--rule); }
.ledger__cell:first-child{ border-left:0; padding-left:0; }
.ledger__n{
  font-family:var(--mono); font-size:clamp(1.55rem,2.4vw,2.1rem); color:var(--ink);
  font-weight:500; letter-spacing:-.02em; line-height:1; display:block; font-variant-numeric:tabular-nums;
}
.ledger__l{
  font-family:var(--mono); font-size:.645rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--text-mute); margin-top:.75rem; display:block; line-height:1.6;
}
@media (max-width:760px){
  .ledger__row{ grid-template-columns:repeat(2,1fr); }
  .ledger__cell:nth-child(3){ border-left:0; padding-left:0; }
  .ledger__cell:nth-child(n+3){ border-top:1px solid var(--rule); }
}

/* ---------- section heads ---------- */
.shead{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,4rem); align-items:end; margin-bottom:clamp(2.5rem,5vw,4rem); }
.shead p{ max-width:46ch; }
@media (max-width:860px){ .shead{ grid-template-columns:1fr; } }

/* ---------- two practices ---------- */
.practices{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.25rem,2.5vw,2rem); }
@media (max-width:900px){ .practices{ grid-template-columns:1fr; } }

.practice{
  position:relative; display:flex; flex-direction:column; padding:clamp(2rem,3.2vw,2.9rem);
  border:1px solid var(--rule); background:var(--paper-warm); text-decoration:none;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.practice:hover{ transform:translateY(-5px); box-shadow:0 26px 50px -34px rgba(18,22,26,.55); border-color:var(--brass); }
.practice--dark{ background:var(--ink); border-color:var(--ink); }
.practice--dark:hover{ border-color:var(--teal-lite); }
.practice--dark h3, .practice--dark .practice__num{ color:var(--paper); }
.practice--dark p, .practice--dark li{ color:#a9b1b8; }
.practice--dark .practice__list li{ border-color:var(--ink-line); }
.practice--dark .eyebrow{ color:var(--teal-lite); }
.practice--dark .ulink{ color:var(--paper); border-color:var(--ink-line); }
.practice--dark .ulink:hover{ color:var(--teal-lite); border-color:var(--teal-lite); }

.practice__num{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; color:var(--brass);
  position:absolute; top:clamp(2rem,3.2vw,2.9rem); right:clamp(2rem,3.2vw,2.9rem);
}
.practice__media{ margin:-1px -1px 1.9rem; }
.practice__media img{ width:calc(100% + 2px); aspect-ratio:16/8.4; object-fit:cover; filter:saturate(.82) contrast(1.04); }
.practice h3{ margin-bottom:.9rem; }
.practice p{ margin-bottom:1.6rem; }
.practice__list{ list-style:none; margin:0 0 2rem; padding:0; }
.practice__list li{
  border-top:1px solid var(--rule-soft); padding:.72rem 0;
  font-size:.94rem; display:flex; gap:.9rem; align-items:baseline;
}
.practice__list li::before{
  content:""; width:5px; height:5px; flex:none; background:var(--brass); transform:translateY(-2px);
}
.practice--dark .practice__list li::before{ background:var(--teal-lite); }
.practice__foot{ margin-top:auto; }

/* ---------- editorial split ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.split--wide{ grid-template-columns:1.15fr .85fr; }
.split img{ width:100%; object-fit:cover; filter:saturate(.85) contrast(1.03); }
.split figure{ margin:0; position:relative; }
@media (max-width:900px){ .split, .split--wide{ grid-template-columns:1fr; } }

.framed{ position:relative; }
.framed::before{
  content:""; position:absolute; inset:-16px -16px auto auto; width:45%; height:52%;
  border:1px solid var(--rule); z-index:-1;
}

/* ---------- numbered process ---------- */
.steps{ counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--rule); }
.steps li{ list-style:none; padding:2.1rem 1.7rem 0 1.7rem; border-left:1px solid var(--rule); }
.steps li:first-child{ border-left:0; padding-left:0; }
.steps li::before{
  counter-increment:step; content:"0" counter(step);
  font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; color:var(--brass); display:block; margin-bottom:1.1rem;
}
.steps h3{ font-size:1.24rem; margin-bottom:.7rem; }
.steps p{ font-size:.94rem; }
@media (max-width:860px){
  .steps{ grid-template-columns:1fr; }
  .steps li{ border-left:0; padding:1.8rem 0; border-bottom:1px solid var(--rule-soft); }
  .steps li:last-child{ border-bottom:0; }
}

/* ---------- dark band ---------- */
.band{ position:relative; background:var(--ink); color:#b3bac1; overflow:hidden; }
.band h2,.band h3{ color:var(--paper); }
.band__bg{ position:absolute; inset:0; opacity:.17; }
.band__bg img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.55) contrast(1.1); }
.band::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg, rgba(18,22,26,.92) 0%, rgba(18,22,26,.74) 55%, rgba(18,22,26,.62) 100%);
}
.band__inner{ z-index:2; }
.band__inner{ position:relative; }
.band .eyebrow{ color:var(--brass-lite); }

.quote{ font-family:var(--serif); font-size:clamp(1.6rem,3vw,2.5rem); line-height:1.28; color:var(--paper); letter-spacing:-.015em; max-width:24ch; }
.quote--wide{ max-width:34ch; }
.attrib{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-lite); margin-top:2rem; }
.attrib > span:not(.ph){ display:block; color:#7d858d; margin-top:.45rem; letter-spacing:.13em; }

/* ---------- credentials ---------- */
.creds{ display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--ink-line); }
.creds div{ padding:1.55rem 1.6rem; border-left:1px solid var(--ink-line); }
.creds div:nth-child(odd){ border-left:0; padding-left:0; }
.creds div:nth-child(n+3){ border-top:1px solid var(--ink-line); }
.creds strong{ display:block; font-family:var(--serif); font-size:1.15rem; color:var(--paper); font-weight:400; margin-bottom:.35rem; }
.creds span{ font-family:var(--mono); font-size:.63rem; letter-spacing:.15em; text-transform:uppercase; color:#7d858d; }
@media (max-width:460px){
  .creds{ grid-template-columns:1fr; }
  .creds div{ border-left:0; padding-left:0; border-top:1px solid var(--ink-line); }
}

/* ---------- cards / insights ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.25rem,2.5vw,2.2rem); }
@media (max-width:880px){ .cards{ grid-template-columns:1fr; } }
.card{ border-top:1px solid var(--rule); padding-top:1.5rem; text-decoration:none; display:block; }
.card__meta{ font-family:var(--mono); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-mute); margin-bottom:1rem; display:flex; gap:1rem; }
.card__meta i{ font-style:normal; color:var(--brass); }
.card h3{ font-size:1.32rem; margin-bottom:.75rem; transition:color .3s var(--ease); }
.card:hover h3{ color:var(--brass); }
.card p{ font-size:.95rem; }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--rule); }
.faq details{ border-bottom:1px solid var(--rule-soft); }
.faq summary{
  cursor:pointer; list-style:none; padding:1.55rem 3rem 1.55rem 0; position:relative;
  font-family:var(--serif); font-size:clamp(1.1rem,1.5vw,1.32rem); color:var(--ink); line-height:1.3;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
  font-family:var(--mono); font-size:1.1rem; color:var(--brass); transition:transform .3s var(--ease);
}
.faq details[open] summary::after{ content:"\2212"; }
.faq .faq__a{ padding:0 clamp(2rem,8vw,7rem) 1.7rem 0; font-size:.98rem; }

/* ---------- CTA ---------- */
.cta{ background:var(--paper-warm); border-top:1px solid var(--rule); }
.cta__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
@media (max-width:860px){ .cta__grid{ grid-template-columns:1fr; } }

/* ---------- contact ---------- */
.form{ display:grid; gap:1.5rem; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
@media (max-width:700px){ .form__row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; }
.field label{
  font-family:var(--mono); font-size:.645rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--text-mute); margin-bottom:.6rem;
}
.field input, .field select, .field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:transparent; border:0; border-bottom:1px solid var(--rule);
  padding:.7rem 0; width:100%; border-radius:0; transition:border-color .3s var(--ease);
}
.field select{ appearance:none; background:transparent; cursor:pointer; }
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--brass); }
.field input::placeholder, .field textarea::placeholder{ color:#b0b6bc; }
.consent{ display:flex; gap:.85rem; align-items:flex-start; font-size:.86rem; color:var(--text-mute); line-height:1.6; }
.consent input{ margin-top:.32rem; accent-color:var(--brass); width:15px; height:15px; flex:none; }
.formnote{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; color:var(--text-mute);
  border-left:1px solid var(--brass); padding-left:1rem; line-height:1.8;
}

.deets{ display:grid; gap:0; border-top:1px solid var(--rule); }
.deets__item{ padding:1.5rem 0; border-bottom:1px solid var(--rule-soft); display:grid; grid-template-columns:120px 1fr; gap:1.5rem; align-items:baseline; }
.deets__item dt{ font-family:var(--mono); font-size:.645rem; letter-spacing:.17em; text-transform:uppercase; color:var(--text-mute); }
.deets__item dd{ margin:0; color:var(--ink); font-size:1rem; line-height:1.65; }
.deets__item dd a{ text-decoration:none; border-bottom:1px solid var(--rule); }
.deets__item dd a:hover{ border-color:var(--brass); color:var(--brass); }
@media (max-width:600px){ .deets__item{ grid-template-columns:1fr; gap:.5rem; } }

/* ---------- page hero (inner pages) ---------- */
.phero{ padding-block:clamp(3.5rem,6vw,6rem) clamp(2.5rem,4vw,3.5rem); border-bottom:1px solid var(--rule); }
.phero__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(1.5rem,4vw,4rem); align-items:end; }
@media (max-width:860px){ .phero__grid{ grid-template-columns:1fr; } }
.phero h1{ font-size:clamp(2.15rem,3.9vw,3.4rem); }
.phero p{ max-width:44ch; }

.pstrip img{ width:100%; height:clamp(240px,34vw,420px); object-fit:cover; filter:saturate(.85) contrast(1.03); }

/* one strip, two panels: property on the left, markets on the right */
.pstrip--split{ display:grid; grid-template-columns:1.06fr .94fr; gap:1px; background:var(--rule); }
.pstrip--split figure{ margin:0; position:relative; overflow:hidden; }
.pstrip--split img{ height:clamp(240px,34vw,420px); }
.pstrip__tag{
  position:absolute; left:0; bottom:0; background:var(--paper);
  font-family:var(--mono); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--text-mute); padding:.6rem .95rem;
}
@media (max-width:640px){
  .pstrip--split{ grid-template-columns:1fr; }
  .pstrip--split img{ height:clamp(170px,42vw,240px); }
}

/* ---------- service rows ---------- */
.srow{
  display:grid; grid-template-columns:.42fr 1fr; gap:clamp(1.5rem,4vw,3.5rem);
  padding:clamp(2rem,3.5vw,3rem) 0; border-top:1px solid var(--rule);
}
.srow:last-child{ border-bottom:1px solid var(--rule); }
.srow__idx{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; color:var(--brass); }
.srow h3{ margin-bottom:.9rem; }
.srow ul{ list-style:none; margin:1.4rem 0 0; padding:0; columns:2; column-gap:2.5rem; }
.srow ul li{ font-size:.93rem; padding:.42rem 0 .42rem 1.1rem; position:relative; break-inside:avoid; }
.srow ul li::before{ content:""; position:absolute; left:0; top:1.05em; width:5px; height:5px; background:var(--brass); }
@media (max-width:860px){ .srow{ grid-template-columns:1fr; } .srow ul{ columns:1; } }

/* ---------- footer ---------- */
.foot{ background:var(--ink); color:#8f979f; padding-block:clamp(3.5rem,6vw,5rem) 2rem; }
.foot a{ text-decoration:none; }
.foot__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:clamp(1.75rem,3vw,3rem); padding-bottom:3rem; border-bottom:1px solid var(--ink-line); }
@media (max-width:900px){ .foot__top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot__top{ grid-template-columns:1fr; } }
.foot__brand .brand__mark{ border-color:#3b444d; color:var(--paper); }
.foot__brand .brand__name{ color:var(--paper); }
.foot__brand p{ margin-top:1.5rem; max-width:32ch; font-size:.92rem; }
.foot h4{
  font-family:var(--mono); font-size:.645rem; letter-spacing:.18em; text-transform:uppercase;
  color:#6e767e; margin-bottom:1.3rem; font-weight:500;
}
.foot ul{ list-style:none; margin:0; padding:0; display:grid; gap:.75rem; }
.foot ul a{ font-size:.93rem; color:#b9c0c7; transition:color .3s var(--ease); }
.foot ul a:hover{ color:var(--brass-lite); }
.foot__legal{ padding-top:2rem; display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; }
.foot__legal p{ font-size:.78rem; color:#6e767e; max-width:74ch; line-height:1.75; }
.foot__legal .mono{ font-family:var(--mono); font-size:.63rem; letter-spacing:.14em; text-transform:uppercase; }

/* placeholder marker: swap these before going live */
.ph{ color:var(--brass); border-bottom:1px dotted var(--brass); }
.foot .ph{ color:var(--brass-lite); border-color:var(--brass-lite); }

/* ---------- reveal animation ---------- */
.rv{ opacity:0; transform:translateY(14px); transition:opacity .85s var(--ease), transform .85s var(--ease); }
.rv.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .rv{ opacity:1; transform:none; transition:none; }
  *{ animation:none !important; }
}

/* ---------- people ---------- */
.people{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.25rem,2.5vw,2rem); }
.people--two{ grid-template-columns:repeat(2,1fr); }
.people--two .person__slot{ aspect-ratio:4/2.9; }
@media (max-width:880px){ .people{ grid-template-columns:1fr; } }
.person{ border:1px solid var(--rule); background:var(--paper-warm); padding:clamp(1.6rem,2.6vw,2.2rem); }
.person__slot{
  aspect-ratio:4/3.4; border:1px dashed var(--rule); display:grid; place-items:center;
  margin-bottom:1.6rem; background:
    repeating-linear-gradient(135deg, transparent 0 11px, rgba(150,105,42,.05) 11px 12px);
}
.person__mono{ font-family:var(--serif); font-size:2.2rem; letter-spacing:.02em; color:var(--brass); line-height:1; }
.person h3{ font-size:1.28rem; margin-bottom:.4rem; }
.person__role{ font-family:var(--mono); font-size:.645rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-mute); margin-bottom:1.1rem; }
.person p{ font-size:.93rem; }

/* ---------- timeline ---------- */
.tl{ border-top:1px solid var(--rule); }
.tl__row{ display:grid; grid-template-columns:150px 1fr; gap:clamp(1.5rem,4vw,3rem); padding:1.6rem 0; border-bottom:1px solid var(--rule-soft); }
.tl__yr{ font-family:var(--mono); font-size:.82rem; letter-spacing:.1em; color:var(--brass); font-variant-numeric:tabular-nums; }
.tl__row h3{ font-size:1.16rem; margin-bottom:.4rem; }
.tl__row p{ font-size:.94rem; }
@media (max-width:640px){ .tl__row{ grid-template-columns:1fr; gap:.6rem; } }

/* ---------- fee table ---------- */
.fees{ width:100%; border-collapse:collapse; margin-top:1rem; }
.fees th, .fees td{ text-align:left; padding:1.15rem 1.25rem 1.15rem 0; border-bottom:1px solid var(--rule-soft); vertical-align:top; }
.fees thead th{
  font-family:var(--mono); font-size:.645rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--text-mute); font-weight:500; border-bottom:1px solid var(--rule); padding-bottom:.9rem;
}
.fees tbody th{ font-family:var(--serif); font-weight:400; font-size:1.1rem; color:var(--ink); width:32%; }
.fees td{ font-size:.94rem; }
.fees td.num{ font-family:var(--mono); font-size:.86rem; color:var(--ink); white-space:nowrap; font-variant-numeric:tabular-nums; }
@media (max-width:700px){
  .fees, .fees tbody, .fees tr, .fees td, .fees th{ display:block; width:100%; }
  .fees thead{ display:none; }
  .fees tr{ border-bottom:1px solid var(--rule); padding-block:1rem; }
  .fees th, .fees td{ border:0; padding:.3rem 0; }
}

/* ---------- notice / disclosure ---------- */
.notice{ border:1px solid var(--rule); border-left:2px solid var(--brass); padding:clamp(1.5rem,2.5vw,2rem); background:var(--paper-warm); }
.notice h3{ font-size:1.2rem; margin-bottom:.8rem; }
.notice p{ font-size:.92rem; }

/* ---------- contact layout ---------- */
.contact__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2.5rem,6vw,5.5rem); align-items:start; }
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; } }
.mapblock{
  border:1px solid var(--rule); background:var(--paper-warm); aspect-ratio:4/3.4; position:relative; overflow:hidden;
}
.mapblock::before{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(var(--rule-soft) 1px, transparent 1px) 0 0/100% 34px,
    linear-gradient(90deg, var(--rule-soft) 1px, transparent 1px) 0 0/34px 100%;
  opacity:.85;
}
.mapblock__pin{
  position:absolute; inset:0; display:grid; place-items:center; text-align:center; padding:1.5rem;
}
.mapblock iframe{ position:relative; z-index:1; width:100%; height:100%; border:0; display:block; }
.mapblock__pin span{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-mute);
  background:var(--paper); border:1px solid var(--rule); padding:.7rem 1rem; line-height:1.9;
}
#form-status{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; line-height:1.8;
  border-left:1px solid var(--brass); padding-left:1rem; color:var(--ink);
}

/* ---------- commitment ---------- */
.commit{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(2rem,5vw,4.5rem); border-top:1px solid var(--rule); }
.commit__item{
  display:grid; grid-template-columns:auto 1fr; gap:1.3rem; align-items:start;
  padding:1.75rem 0; border-bottom:1px solid var(--rule-soft);
}
.commit__mark{
  width:24px; height:24px; flex:none; border:1px solid var(--brass); color:var(--brass);
  display:grid; place-items:center; font-size:.72rem; line-height:1; margin-top:.2rem;
}
.commit h3{ font-size:1.16rem; margin-bottom:.45rem; }
.commit p{ font-size:.93rem; }
@media (max-width:760px){ .commit{ grid-template-columns:1fr; } }

.strapline{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.19em; text-transform:uppercase;
  color:var(--brass-lite); margin-top:1.6rem;
}
