/* ════════════════════════════════════════════════════════════════════
   SDR ACCOUNTING & BUSINESS SOLUTIONS — "THE PRACTICE LETTER"
   Fine print correspondence from your accountant. Centered stationery
   compositions, book serifs, diamond ornaments, dotted-leader
   prospectus, script sign-off. Navy + gold from the client's wordmark.
   Brief: DESIGN.md. v4 full redesign 2026-06-03.
   ════════════════════════════════════════════════════════════════════ */

/* ---- Tokens ---------------------------------------------------------- */
:root{
  --navy:#1a2138;          /* from the wordmark tile */
  --navy-deep:#131829;
  --paper:#f8f5ee;         /* laid paper */
  --paper-2:#f1ecdf;
  --card:#fffdf6;

  --gold:#a8853f;          /* text-safe gold on paper */
  --gold-soft:#c4a35e;
  --gold-bright:#d8bc7c;   /* on navy */

  --tx:#262b3d;            /* body ink */
  --tx-soft:#4f5466;
  --tx-mute:#787d8e;
  --on:#eee9da;            /* body on navy */
  --on-soft:#b9bcc8;
  --cream:#eee9da;         /* legacy alias (legal pages) */

  --line:#ddd6c4;
  --line-gold:rgba(168,133,63,.4);
  --line-ink:rgba(216,188,124,.25);

  --serif:"EB Garamond",Garamond,Georgia,serif;
  --didone:"Prata",Didot,"Bodoni MT",serif;
  --script:"Great Vibes",cursive;

  --wrap:1080px;
  --measure:64ch;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ---- Base ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--tx);
  font-family:var(--serif);
  font-size:1.175rem;            /* garamond runs small */
  line-height:1.72;
  overflow-x:hidden;
}
/* laid-paper texture */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg,rgba(38,43,61,.016) 0 1px,transparent 1px 7px),
    radial-gradient(ellipse at 50% 0%,rgba(168,133,63,.05),transparent 55%);
}
main,header,footer{position:relative;z-index:1}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
address{font-style:normal}
::selection{background:var(--navy);color:var(--gold-bright)}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy);color:var(--on);padding:.7rem 1.2rem;z-index:200}
.skip-link:focus{left:12px;top:12px}

/* ---- Type ------------------------------------------------------------ */
h1,h2,h3,h4,.h-xl,.h-lg,.h-md{
  font-family:var(--didone);
  font-weight:400;
  line-height:1.12;
  letter-spacing:.005em;
  color:var(--tx);
}
.h-xl{font-size:clamp(2.6rem,5.6vw,4.1rem)}
.h-lg{font-size:clamp(2rem,4.2vw,3rem)}
.h-md{font-size:clamp(1.45rem,2.8vw,1.9rem)}

em,i{font-style:italic}
.gold{color:var(--gold)}

.lede{color:var(--tx-soft);font-size:1.18rem;max-width:var(--measure);line-height:1.75}
.muted{color:var(--tx-mute)}

/* quiet small-caps line (used at most once per page — see DESIGN.md) */
.eyebrow{
  font-family:var(--serif);font-size:.95rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--gold);font-weight:500;
}
.eyebrow.on-ink{color:var(--gold-bright)}

/* ornament — hairline · diamond · hairline */
.ornament{
  display:flex;align-items:center;justify-content:center;gap:1.1rem;
  margin:0 auto;max-width:300px;color:var(--gold);
}
.ornament::before,.ornament::after{content:"";flex:1;border-top:1px solid var(--line-gold)}
.orn-d{flex:0 0 auto;width:9px;height:9px;background:var(--gold);transform:rotate(45deg)}
.ornament.on-ink .orn-d{background:var(--gold-bright)}
.ornament.on-ink::before,.ornament.on-ink::after{border-color:var(--line-ink)}

/* ---- Buttons — engraved invitation style ------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--serif);font-weight:600;font-size:.92rem;
  letter-spacing:.22em;text-transform:uppercase;
  padding:.95rem 2rem;border:1px solid transparent;border-radius:2px;
  cursor:pointer;white-space:nowrap;
  transition:background .25s,color .25s,border-color .25s;
}
.btn .ic{width:15px;height:15px}

.btn-gold{background:var(--navy);color:var(--gold-bright);border-color:var(--navy)}
.btn-gold:hover{background:var(--navy-deep)}
.btn-ghost,.btn-outline{border-color:var(--line-gold);color:var(--gold);background:transparent}
.btn-ghost:hover,.btn-outline:hover{border-color:var(--gold);color:var(--navy)}
.btn-navy{background:var(--navy);color:var(--on);border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-deep)}
/* on the navy chrome */
.btn-outline-gold{border-color:var(--line-ink);color:var(--gold-bright);background:transparent}
.btn-outline-gold:hover{border-color:var(--gold-bright)}
.btn-block{width:100%}
.btn-sm{padding:.55rem 1.2rem;font-size:.8rem}

.text-link{
  font-style:italic;color:var(--gold);font-size:1.05rem;
  border-bottom:1px solid var(--line-gold);transition:color .2s,border-color .2s;
  display:inline-flex;align-items:center;gap:.4rem;
}
.text-link:hover{color:var(--navy);border-color:var(--gold)}
.text-link .ic{width:14px;height:14px}

/* ---- Header — centered letterhead (non-sticky) ------------------------- */
.site-head{
  background:var(--navy);
  border-top:3px solid var(--gold-soft);
  color:var(--on);
}
.head-inner{
  max-width:var(--wrap);margin:0 auto;padding:1.1rem 24px .9rem;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;
}
.tel-pill{
  justify-self:start;display:inline-flex;align-items:center;gap:.55rem;
  font-size:1rem;font-style:italic;color:var(--on-soft);transition:color .2s;
}
.tel-pill .ic{width:15px;height:15px;color:var(--gold-bright)}
.tel-pill:hover{color:var(--gold-bright)}
.brand{justify-self:center}
.brand img{max-height:64px;width:auto}
.head-actions{justify-self:end;display:flex;align-items:center;gap:.9rem}
.head-cta{padding:.7rem 1.4rem;font-size:.8rem;background:transparent;border-color:var(--line-ink);color:var(--gold-bright)}
.head-cta:hover{border-color:var(--gold-bright);background:transparent}

.nav-toggle{display:none;background:none;border:0;color:var(--on);cursor:pointer;padding:8px}
.nav-toggle .ic{width:25px;height:25px}

/* centered nav row beneath the brand */
.nav-main{
  max-width:var(--wrap);margin:0 auto;padding:0 24px .95rem;
  display:flex;justify-content:center;gap:2.8rem;
}
.nav-main a{
  font-family:var(--serif);font-size:.88rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;color:var(--on-soft);
  padding:.25rem 0;transition:color .2s;position:relative;
}
.nav-main a:hover{color:var(--on)}
.nav-main a.is-active{color:var(--gold-bright)}
.nav-main a.is-active::after{
  content:"";position:absolute;left:50%;bottom:-6px;width:5px;height:5px;
  background:var(--gold-bright);transform:translateX(-50%) rotate(45deg);
}

/* ---- Mobile drawer ------------------------------------------------------ */
.drawer-backdrop{position:fixed;inset:0;z-index:70;background:rgba(15,19,33,.6);opacity:0;transition:opacity .3s}
.drawer-backdrop.show{opacity:1}
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(340px,88vw);
  background:var(--navy);color:var(--on);
  display:flex;flex-direction:column;padding:1.5rem 1.7rem;
  transform:translateX(100%);transition:transform .35s var(--ease);
  border-left:1px solid var(--line-ink);
}
.nav-drawer.open{transform:none}
.drawer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}
.drawer-word{font-family:var(--didone);font-size:1.25rem;color:var(--gold-bright)}
.drawer-word em{font-style:italic;color:var(--on-soft);font-family:var(--serif)}
.drawer-close{background:none;border:0;color:var(--on-soft);cursor:pointer}
.drawer-close .ic{width:24px;height:24px}
.drawer-links{display:flex;flex-direction:column;text-align:center}
.drawer-links a{
  font-family:var(--serif);font-size:1.05rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--on);padding:1rem 0;border-bottom:1px solid var(--line-ink);
}
.drawer-links a:hover{color:var(--gold-bright)}
.drawer-foot{margin-top:auto;display:flex;flex-direction:column;gap:1rem;text-align:center}
.drawer-tel{font-style:italic;color:var(--on-soft);display:inline-flex;justify-content:center;align-items:center;gap:.5rem}
.drawer-tel .ic{width:15px;height:15px;color:var(--gold-bright)}

/* ---- Sections ------------------------------------------------------------ */
.sec{padding:clamp(2.2rem,4.5vw,3.6rem) 0}
.sec-tight{padding:clamp(1.6rem,3vw,2.4rem) 0}

/* ---- Page hero (inner pages) — paper, centered --------------------------- */
.page-hero{
  text-align:center;
  padding:clamp(3.2rem,6vw,4.8rem) 0 clamp(1.6rem,3vw,2.4rem);
}
.page-hero .wrap>*{margin-left:auto;margin-right:auto}
.page-hero .eyebrow{display:block;margin-bottom:1.2rem}
.page-hero h1{max-width:18ch}
.page-hero .lede{margin-top:1.2rem}
.page-hero .updated{font-style:italic;color:var(--tx-mute)!important;font-size:1rem}
.crumb{
  display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.2rem;
  font-style:italic;font-size:1rem;color:var(--tx-mute);
}
.crumb a{color:var(--gold)}
.crumb a:hover{color:var(--navy)}
.crumb .ic{width:13px;height:13px}

/* ---- Flash / cookie -------------------------------------------------------- */
.flash-wrap{position:fixed;top:20px;right:20px;z-index:90;display:flex;flex-direction:column;gap:.6rem;max-width:min(420px,calc(100vw - 40px))}
.flash{background:var(--card);border:1px solid var(--line);border-top:2px solid var(--gold);padding:1rem 1.3rem;box-shadow:0 14px 40px -18px rgba(26,33,56,.35);font-size:1rem}
.flash-error{border-top-color:#a2402c}

.cookie-bar{
  position:fixed;left:20px;right:20px;bottom:20px;z-index:80;max-width:540px;margin:0 auto;
  background:var(--navy);color:var(--on);border:1px solid var(--line-ink);
  padding:1.1rem 1.4rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  box-shadow:0 18px 50px rgba(15,19,33,.5);opacity:0;transition:opacity .4s;
}
.cookie-bar[hidden]{display:none}
.cookie-bar p{font-size:.95rem;color:var(--on-soft);flex:1 1 240px}
.cookie-bar a{color:var(--gold-bright);font-style:italic}

/* ---- THE LETTER (home hero) ------------------------------------------------ */
.letter{
  text-align:center;
  padding:clamp(2.2rem,4.5vw,3.4rem) 0 clamp(1.6rem,3vw,2.4rem);
  position:relative;overflow:hidden;
}
/* letterhead watermark monogram — parallaxed by JS via --wm-y */
.watermark{
  position:absolute;top:46%;left:50%;z-index:-1;
  transform:translate(-50%,-50%) translateY(var(--wm-y,0px));
  font-family:var(--didone);font-size:clamp(16rem,38vw,30rem);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(168,133,63,.13);
  pointer-events:none;user-select:none;white-space:nowrap;
}
/* hero entrance choreography — ink resolving into the paper */
@keyframes ink-in{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}
.ink{opacity:0;animation:ink-in 1s var(--ease) forwards;animation-delay:var(--d,0s)}
/* self-writing signature — generous clip bounds: Great Vibes swashes and
   descenders extend well past the em box (the S was getting decapitated) */
@keyframes sign{from{clip-path:inset(-20% 105% -25% -15%)}to{clip-path:inset(-20% -15% -25% -15%)}}
.signoff .script{clip-path:inset(-20% -15% -25% -15%);animation:sign 1.6s cubic-bezier(.6,.05,.4,.95) 1.5s both;padding:0 .35em}
/* gold-foil sheen on key italic words (fallback: plain gold text) */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .foil{
    background:linear-gradient(105deg,var(--gold) 0%,var(--gold) 38%,#ecd49a 50%,var(--gold) 62%,var(--gold) 100%);
    background-size:280% 100%;background-position:100% 0;
    -webkit-background-clip:text;background-clip:text;color:transparent;
    animation:foil 7s ease-in-out 2s infinite;
  }
  /* .ink sets `animation` too — when both apply they must be combined,
     or the later rule wins and the element never fades in */
  .foil.ink{animation:ink-in 1s var(--ease) var(--d,0s) forwards,foil 7s ease-in-out 2.4s infinite}
}
@keyframes foil{0%,55%,100%{background-position:100% 0}25%,30%{background-position:0 0}}
.letter .eyebrow{display:block;margin-bottom:1.6rem}
.letter h1{max-width:16ch;margin:0 auto 1.1rem}
.letter h1 .l2{display:block;font-style:italic;color:var(--gold)}
.letter .hero-text{
  max-width:var(--measure);margin:0 auto 1.5rem;
  color:var(--tx-soft);font-size:1.18rem;line-height:1.7;
}
.hero-cta{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.6rem}

.signoff{display:flex;flex-direction:column;align-items:center;gap:.1rem}
.signoff .script{
  font-family:var(--script);font-size:clamp(2.4rem,4.5vw,3.2rem);
  color:var(--navy);line-height:1.1;transform:rotate(-3deg);
}
.signoff .role{font-style:italic;color:var(--tx-mute);font-size:1.02rem;margin-top:.4rem}
.hero-portrait{max-width:300px;margin:0 auto 2rem}
.hero-portrait img{border-radius:2px;border:1px solid var(--line);padding:8px;background:var(--card);box-shadow:0 16px 44px -20px rgba(26,33,56,.3)}

.ps{
  max-width:52ch;margin:1.4rem auto 0;
  font-style:italic;color:var(--tx-mute);font-size:1.05rem;
}
.ps b{color:var(--tx);font-weight:600}

/* ---- CREDENTIALS LINE — centered italic line with diamonds ------------------ */
.credence-line{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 0;
  max-width:900px;margin:1.3rem auto 0;
}
.credence-line .ti{
  font-family:var(--serif);font-size:1rem;font-style:italic;color:var(--tx-soft);
  display:inline-flex;align-items:center;
}
.credence-line .ti:not(:last-child)::after{
  content:"";width:6px;height:6px;background:var(--gold);transform:rotate(45deg);
  display:inline-block;margin:0 1.4rem;
}

/* ---- NOTE — drop-cap paragraph + newspaper columns --------------------------- */
.note-head{text-align:center;max-width:720px;margin:0 auto 1.6rem}
.note-head .eyebrow{display:block;margin-bottom:1.2rem}
.note-body{
  max-width:var(--measure);margin:0 auto 1.8rem;
  color:var(--tx-soft);font-size:1.18rem;line-height:1.8;text-align:center;
}
.note-cols{
  display:grid;grid-template-columns:1fr 1fr 1fr;
  max-width:980px;margin:0 auto;
}
.note-col{padding:0 2.2rem;text-align:center}
.note-col:not(:first-child){border-left:1px solid var(--line)}
.note-col b{
  display:block;font-family:var(--didone);font-weight:400;font-size:1.18rem;
  margin-bottom:.55rem;color:var(--tx);
}
.note-col span{color:var(--tx-mute);font-size:1.02rem;line-height:1.65;display:block}
.note-col .ic{display:none}

/* ---- PROSPECTUS — dotted-leader table of contents ---------------------------- */
.prospectus{background:var(--paper-2);border-block:1px solid var(--line)}
.prospectus-head{text-align:center;max-width:700px;margin:0 auto 1.6rem}
.prospectus-head .eyebrow{display:block;margin-bottom:1.2rem}
.prospectus-head h2{margin-bottom:1rem}
.prospectus-head p{color:var(--tx-soft)}
.toc{
  max-width:880px;margin:0 auto;
  columns:2;column-gap:4.5rem;column-rule:1px solid var(--line);
}
.toc a{
  display:flex;align-items:baseline;gap:.7rem;
  padding:.85rem 0;break-inside:avoid;
  font-size:1.13rem;
}
.toc a .t{font-family:var(--serif);font-weight:600;color:var(--tx);transition:color .2s;flex:0 1 auto}
.toc a .dots{flex:1;border-bottom:2px dotted var(--line-gold);transform:translateY(-4px);min-width:24px}
.toc a .go{font-style:italic;color:var(--gold);font-size:.98rem;white-space:nowrap}
.toc a:hover .t{color:var(--gold)}
.prospectus-foot{margin-top:1.6rem;text-align:center;display:flex;flex-direction:column;gap:1.2rem;align-items:center}

/* ---- TESTAMENT — letterpress pull-quote --------------------------------------- */
.testament{text-align:center}
.testament .qmark{
  font-family:var(--didone);font-size:4rem;line-height:.4;color:var(--gold);display:block;margin-bottom:1.1rem;
}
.testament blockquote{
  font-family:var(--didone);font-size:clamp(1.4rem,2.8vw,1.9rem);line-height:1.35;
  max-width:28ch;margin:0 auto 1rem;color:var(--tx);
}
.testament blockquote i{color:var(--gold)}
.testament .src{font-style:italic;color:var(--tx-mute);font-size:1.05rem}
.testament .credence-line{margin-top:2.6rem}

/* ---- HOW WE BEGIN — word-ordinal prose steps ----------------------------------- */
.begin{background:var(--navy);color:var(--on)}
.begin-head{text-align:center;max-width:680px;margin:0 auto 1.8rem}
.begin-head .eyebrow{display:block;margin-bottom:1.2rem}
.begin-head h2{color:var(--on);margin-bottom:1rem}
.begin-head p{color:var(--on-soft)}
.begin-steps{max-width:720px;margin:0 auto;display:flex;flex-direction:column}
.bstep{
  display:grid;grid-template-columns:170px 1fr;gap:1.4rem;align-items:baseline;
  padding:1rem 0;
}
.bstep:not(:last-child){border-bottom:1px solid var(--line-ink)}
.bstep .ord{
  font-family:var(--script);font-size:2rem;color:var(--gold-bright);
  text-align:right;line-height:1;
}
.bstep h3{font-family:var(--didone);font-weight:400;font-size:1.3rem;color:var(--on);margin-bottom:.45rem}
.bstep p{color:var(--on-soft);font-size:1.05rem;line-height:1.7}

/* ---- CLOSING — letterhead foot CTA ----------------------------------------------- */
.cta{text-align:center}
.cta .ornament{margin-bottom:1.4rem}
.cta .eyebrow{display:block;margin-bottom:1.4rem}
.cta h2{max-width:20ch;margin:0 auto 1.2rem}
.cta .lede{margin:0 auto 1.5rem;text-align:center}
.cta-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}

/* ---- SERVICES PAGE — the full prospectus ------------------------------------------ */
.svc-entries{max-width:820px;margin:0 auto}
.sf{padding:2.6rem 0;text-align:center}
.sf:not(:last-child){border-bottom:1px solid var(--line)}
.sf-num{display:none}
.sf-ic{display:inline-block;color:var(--gold);margin-bottom:.9rem}
.sf-ic .ic{width:34px;height:34px}
.sf-body h2{margin-bottom:.7rem}
.sf .summary{font-style:italic;color:var(--gold);font-size:1.15rem;margin-bottom:.9rem}
.sf .lead{color:var(--tx-soft);max-width:62ch;margin:0 auto;font-size:1.1rem}
.sf-actions{margin-top:1.5rem;display:flex;justify-content:center;gap:1.6rem;align-items:center;flex-wrap:wrap}

/* ---- SERVICE DETAIL ------------------------------------------------------------------ */
.detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2.4rem,5vw,4rem);align-items:start;max-width:1000px;margin:0 auto}
.detail-body p{color:var(--tx-soft);font-size:1.12rem;line-height:1.8;margin-bottom:1.2rem}
.detail-body p:first-of-type{font-size:1.24rem;color:var(--tx)}
.detail-aside{position:sticky;top:24px}
.aside-card{
  border:1px solid var(--line-gold);border-radius:2px;background:var(--card);
  padding:2rem 1.8rem;text-align:center;position:relative;
}
.aside-card::before{
  content:"";position:absolute;inset:6px;border:1px solid var(--line);pointer-events:none;
}
.aside-card h3{font-size:1.3rem;margin-bottom:.8rem}
.aside-card .muted{font-size:1.02rem}
.aside-list{margin:1.4rem 0 1.7rem;display:flex;flex-direction:column;gap:.8rem;text-align:left}
.aside-list .li{display:flex;gap:.7rem;align-items:flex-start;font-size:1rem;color:var(--tx-soft)}
.aside-list .ic{width:17px;height:17px;flex:0 0 17px;color:var(--gold);margin-top:.25rem}
.detail-more{background:var(--paper-2);border-top:1px solid var(--line);text-align:center}
.detail-more .eyebrow{display:block;margin-bottom:2rem}
.more-list{max-width:680px;margin:0 auto;display:flex;flex-direction:column}
.more-list a{
  display:flex;align-items:baseline;gap:.8rem;padding:.95rem 0;
  border-bottom:1px solid var(--line);text-align:left;
}
.more-list a:last-child{border-bottom:0}
.more-list .ic{display:none}
.more-list div{display:flex;align-items:baseline;gap:.8rem;flex:1;min-width:0}
.more-list h4{font-family:var(--serif);font-weight:600;font-size:1.1rem;white-space:nowrap}
.more-list p{font-style:italic;color:var(--tx-mute);font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.more-list a:hover h4{color:var(--gold)}

/* ---- ABOUT — a letter from Shelley ------------------------------------------------------ */
.about-grid{max-width:760px;margin:0 auto;display:block}
.about-body p{color:var(--tx-soft);font-size:1.16rem;line-height:1.8;margin-bottom:1.3rem}
.about-body p:first-of-type{font-size:1.26rem;color:var(--tx)}
.about-body>div{justify-content:center}
.about-card{
  max-width:560px;margin:3rem auto 0;
  border:1px solid var(--line-gold);background:var(--card);border-radius:2px;
  padding:2.2rem 2rem;text-align:center;position:relative;
}
.about-card::before{content:"";position:absolute;inset:6px;border:1px solid var(--line);pointer-events:none}
.ac-name{font-family:var(--script);font-size:2.4rem;color:var(--navy);transform:rotate(-2deg)}
.ac-role{font-style:italic;color:var(--gold);margin:.5rem 0 1rem;font-size:1.05rem}
.ac-list{margin:1.3rem 0 1.6rem;display:flex;flex-direction:column;gap:.7rem;align-items:center}
.ac{display:flex;gap:.6rem;align-items:center;font-size:1.02rem;color:var(--tx-soft)}
.ac .ic{width:16px;height:16px;color:var(--gold)}

.values-band{background:var(--paper-2);border-block:1px solid var(--line)}
.values-head{text-align:center;margin-bottom:2.6rem}
.values-head .eyebrow{display:block;margin-bottom:1.1rem}
.values{max-width:880px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:0}
.value{padding:1.8rem 2.4rem;text-align:center}
.value:nth-child(odd){border-right:1px solid var(--line)}
.value:nth-child(n+3){border-top:1px solid var(--line)}
.value h3{font-size:1.25rem;margin-bottom:.6rem;justify-content:center;display:flex}
.value .vn{display:none}
.value p{color:var(--tx-soft);font-size:1.04rem}
.values-band .values-head h2{color:var(--tx)}

/* ---- CONTACT — reply card ----------------------------------------------------------------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2.4rem,5vw,3.6rem);align-items:start;max-width:1020px;margin:0 auto}
.form-card{
  border:1px solid var(--line-gold);background:var(--card);border-radius:2px;
  padding:2.4rem 2.2rem;position:relative;
}
.form-card::before{content:"";position:absolute;inset:7px;border:1px solid var(--line);pointer-events:none}
.form-card form{position:relative}
.field{display:flex;flex-direction:column;gap:.4rem;flex:1;margin-bottom:1.3rem}
.field-row{display:flex;gap:1.3rem}
.field label{
  font-family:var(--serif);font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--tx-mute);font-weight:500;
}
.field input,.field select,.field textarea{
  background:transparent;border:0;border-bottom:1px solid var(--line);
  border-radius:0;color:var(--tx);font-family:var(--serif);font-size:1.12rem;
  padding:.55rem .1rem;width:100%;transition:border-color .2s;
}
.field textarea{min-height:120px;resize:vertical;border:1px solid var(--line);padding:.8rem .9rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23a8853f' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .4rem center;
}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-note{margin-top:1.1rem;font-style:italic;font-size:.98rem;color:var(--tx-mute)}
.form-note a{color:var(--gold);border-bottom:1px solid var(--line-gold)}

.contact-aside{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.info-block{display:flex;gap:1rem;align-items:flex-start;padding:1.3rem .2rem;border-bottom:1px solid var(--line)}
.ib-ic{flex:0 0 auto;color:var(--gold);padding-top:.2rem}
.ib-ic .ic{width:20px;height:20px}
.info-block h4{
  font-family:var(--serif);font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--tx-mute);font-weight:500;margin-bottom:.25rem;
}
.ib-body{font-size:1.1rem;font-weight:600}
.ib-body a:hover{color:var(--gold)}
.map-embed{margin-top:1.4rem;border:1px solid var(--line);padding:7px;background:var(--card)}
.map-embed iframe{display:block;width:100%;height:230px;border:0;filter:sepia(.22) saturate(.85)}

/* ---- LEGAL ------------------------------------------------------------------------------------ */
.legal{max-width:720px;margin:0 auto}
.legal h2{font-size:1.5rem;margin:2.2rem 0 .8rem}
.legal p,.legal li{color:var(--tx-soft);margin-bottom:.9rem;font-size:1.08rem}
.legal ul{list-style:disc;padding-left:1.4rem}
.legal a{color:var(--gold);border-bottom:1px solid var(--line-gold)}

/* ---- FOOTER — compact letterhead foot: brand left, columns right ------------------------------- */
.site-foot{background:var(--navy);color:var(--on);border-top:3px solid var(--gold-soft)}
.foot-grid{
  max-width:var(--wrap);margin:0 auto;padding:1.9rem 24px 1.5rem;
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:2rem;align-items:start;
}
.foot-brand{display:flex;flex-direction:column;align-items:flex-start}
.foot-word{font-family:var(--didone);font-size:1.35rem;color:var(--gold-bright);letter-spacing:.06em}
.foot-word em{font-style:italic;font-family:var(--serif);color:var(--on-soft);font-size:1.05rem}
.foot-tag{color:var(--on-soft);font-style:italic;font-size:.92rem;margin:.45rem 0 .7rem;max-width:30ch}
.foot-social{display:flex;gap:1.1rem}
.foot-social a{color:var(--on-soft);transition:color .2s}
.foot-social a:hover{color:var(--gold-bright)}
.foot-social .ic{width:17px;height:17px}

.foot-col h4{
  font-family:var(--serif);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold-bright);font-weight:500;margin-bottom:.5rem;
}
.foot-col ul{display:flex;flex-direction:column;gap:.15rem}
.foot-col a{color:var(--on-soft);font-size:.92rem;font-style:italic}
.foot-col a:hover{color:var(--on)}
.foot-col address,.foot-hours{color:var(--on-soft);font-size:.9rem;line-height:1.55}
.foot-hours{margin-top:.35rem}
.foot-contact{display:block;color:var(--on);font-weight:600;font-size:.95rem;margin-bottom:.25rem}
.foot-contact:hover{color:var(--gold-bright)}
.foot-btn{margin-top:.7rem;padding:.5rem 1.1rem;font-size:.72rem}

.foot-bar{
  border-top:1px solid var(--line-ink);
  max-width:var(--wrap);margin:0 auto;padding:.85rem 24px;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem 2rem;flex-wrap:wrap;
  font-size:.85rem;font-style:italic;color:var(--on-soft);
}
.foot-legal{display:flex;gap:1.4rem}
.foot-legal a:hover{color:var(--gold-bright)}
.foot-credit{opacity:.65}
@media (max-width:880px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:1.5rem}
  .foot-bar{justify-content:center;text-align:center}
}
@media (max-width:480px){
  .foot-grid{grid-template-columns:1fr;gap:1.3rem}
}

/* ---- Wax seal ------------------------------------------------------------------------------------ */
.seal{
  width:104px;height:104px;margin:0 auto 1.2rem;display:block;
  filter:drop-shadow(0 8px 18px rgba(26,33,56,.25));
  transition:transform .35s var(--ease);
  transform:rotate(-6deg);
}
.seal:hover{transform:rotate(-6deg) scale(.94)}    /* presses like a stamp */
.seal .seal-ring{animation:seal-turn 60s linear infinite;transform-origin:60px 60px}
@keyframes seal-turn{to{transform:rotate(360deg)}}

/* ---- Postage stamp (contact reply card) ------------------------------------------------------------ */
.postage{
  position:absolute;top:16px;right:16px;z-index:2;
  width:56px;height:66px;padding:5px;
  background:var(--paper);border:1px dashed var(--line-gold);
  display:grid;place-items:center;transform:rotate(4deg);
  transition:transform .3s var(--ease);
}
.form-card:hover .postage{transform:rotate(0deg)}
.postage span{
  width:100%;height:100%;background:var(--navy);color:var(--gold-bright);
  font-family:var(--didone);font-size:.95rem;display:grid;place-items:center;
}

/* gold underline draws across inputs on focus */
.field input{
  background-image:linear-gradient(var(--gold),var(--gold));
  background-repeat:no-repeat;background-size:0% 1.5px;background-position:left bottom;
  transition:background-size .45s var(--ease),border-color .2s;
}
.field input:focus{background-size:100% 1.5px}

/* the About card signature signs itself when scrolled into view */
.about-card.reveal .ac-name{clip-path:inset(-20% 105% -25% -15%);padding:0 .35em}
.about-card.reveal.in .ac-name{animation:sign 1.4s cubic-bezier(.6,.05,.4,.95) .4s both}

/* ---- Reveal — ink resolving into paper ------------------------------------------------------------- */
.reveal{opacity:0;filter:blur(6px);transition:opacity 1s var(--ease),filter 1s var(--ease)}
.reveal.in{opacity:1;filter:blur(0)}

/* drawing elements (ornaments, leaders) */
.ornament.draw::before,.ornament.draw::after{transform:scaleX(0);transition:transform 1.1s var(--ease) .15s}
.ornament.draw::before{transform-origin:right}
.ornament.draw::after{transform-origin:left}
.ornament.draw .orn-d{opacity:0;transition:opacity .5s .1s}
.ornament.draw.in::before,.ornament.draw.in::after{transform:scaleX(1)}
.ornament.draw.in .orn-d{opacity:1}

.toc a .dots{transform:translateY(-4px) scaleX(0);transform-origin:left;transition:transform 1s var(--ease)}
.toc.in a .dots{transform:translateY(-4px) scaleX(1)}
.toc a .go{opacity:.55;transform:translateX(-4px);transition:opacity .25s,transform .25s var(--ease)}
.toc a:hover .go{opacity:1;transform:translateX(0)}
.toc a .t{transition:color .2s,letter-spacing .3s var(--ease)}
.toc a:hover .t{letter-spacing:.01em}

/* nav diamond grows in */
.nav-main a::after{transition:transform .25s var(--ease)}
.nav-main a:not(.is-active):hover::after{
  content:"";position:absolute;left:50%;bottom:-6px;width:5px;height:5px;
  background:var(--on-soft);transform:translateX(-50%) rotate(45deg);
}

/* button foil sweep */
.btn{position:relative;overflow:hidden}
.btn::after{
  content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(216,188,124,.28),transparent);
  transform:skewX(-22deg);transition:left .6s var(--ease);
}
.btn:hover::after{left:165%}

/* Reduced-motion: per Grant's estate-wide preference (see marquee precedent),
   the gentle decorative layer (fades, wipes, draws) intentionally still runs.
   Only genuinely vestibular motion is disabled: scroll parallax (gated in JS)
   and the rotating seal ring. */
@media (prefers-reduced-motion:reduce){
  .seal .seal-ring{animation:none}
  html{scroll-behavior:auto}
}

/* ---- Responsive ------------------------------------------------------------------------------------ */
@media (max-width:920px){
  .nav-main{display:none}
  .tel-pill{display:none}
  .nav-toggle{display:block}
  .head-inner{grid-template-columns:auto 1fr auto;padding:.9rem 18px}
  .brand{justify-self:start}
  .brand img{max-height:52px}
  .toc{columns:1}
  .note-cols{grid-template-columns:1fr;max-width:560px}
  .note-col{padding:1.6rem 0}
  .note-col:not(:first-child){border-left:0;border-top:1px solid var(--line)}
  .detail-grid,.contact-grid{grid-template-columns:1fr}
  .detail-aside{position:static}
  .values{grid-template-columns:1fr}
  .value:nth-child(odd){border-right:0}
  .value:nth-child(n+2){border-top:1px solid var(--line)}
  .bstep{grid-template-columns:1fr;gap:.5rem;text-align:center}
  .bstep .ord{text-align:center}
}
@media (max-width:560px){
  body{font-size:1.1rem}
  .field-row{flex-direction:column;gap:0}
  .hero-cta .btn,.cta-actions .btn{width:100%}
  .credence-line{flex-direction:column;align-items:center;gap:.7rem}
  .credence-line .ti:not(:last-child)::after{display:none}
}
/* 360px guard — header CTA must never clip */
@media (max-width:400px){
  .head-inner{padding:.8rem 12px;gap:.6rem}
  .brand img{max-height:44px}
  .head-cta{padding:.55rem .8rem;font-size:.68rem;letter-spacing:.12em}
  .nav-toggle{padding:4px}
  .wrap{padding:0 18px}
}

/* ---- Folds — collapse/expand (stationery style) ---------------------------------------------------- */
.fold{max-width:var(--measure);margin:0 auto}
.fold>summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.7rem;
  font-style:italic;color:var(--gold);font-size:1.08rem;
  border-bottom:1px solid var(--line-gold);padding-bottom:.15rem;
  transition:color .2s,border-color .2s;
}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{
  content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);
}
.fold[open]>summary::after{transform:rotate(225deg) translateY(-1px)}
.fold>summary:hover{color:var(--navy);border-color:var(--gold)}
.fold>.fold-body{animation:ink-in .7s var(--ease)}
.fold>summary .alt{display:none}
.fold[open]>summary .alt{display:inline}
.fold[open]>summary .def{display:none}

/* accordion steps (How we begin) */
.bstep{display:block;cursor:pointer}
.bstep summary{list-style:none;display:grid;grid-template-columns:170px 1fr;gap:1.4rem;align-items:baseline}
.bstep summary::-webkit-details-marker{display:none}
.bstep summary h3{position:relative;display:inline-flex;align-items:center;gap:.8rem}
.bstep summary h3::after{
  content:"";width:7px;height:7px;border-right:1.5px solid var(--gold-bright);border-bottom:1.5px solid var(--gold-bright);
  transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);flex:0 0 auto;
}
.bstep[open] summary h3::after{transform:rotate(225deg)}
.bstep p{grid-column:2;margin-top:.5rem;animation:ink-in .6s var(--ease)}
.bstep[open]{padding-bottom:1.2rem}
@media (max-width:920px){
  .bstep summary{grid-template-columns:1fr;gap:.3rem;text-align:center}
  .bstep summary h3{justify-content:center}
  .bstep p{grid-column:1}
}
