/* ==========================================================================
   Winkler Legal — styles.css
   Authoritative & editorial. Navy / brass / ivory. Serif display + clean sans.
   Hand-written, no framework, no build step. Single source of truth.
   ========================================================================== */

/* ----- Design tokens ----------------------------------------------------- */
:root{
  /* Color */
  --navy-900:#0C1830; --navy-800:#11203A; --navy-700:#2A3D5E; --navy-600:#3C5078;
  --brass:#B08A4F; --brass-light:#C9A878; --brass-dark:#8A6A3A;
  --ivory:#F7F5F0; --ivory-sunken:#F0EDE5; --paper-white:#FFFFFF;
  --charcoal:#2B2B2B; --muted:#5C5C66; --muted-on-navy:#AEB6C4;
  --hairline:#DAD5C8; --hairline-strong:#C4BDAC; --hairline-on-navy:#2F415F;

  --color-bg:var(--ivory);
  --color-text:var(--charcoal);
  --color-heading:var(--navy-800);
  --color-link:var(--brass-dark);
  --color-accent:var(--brass);
  color-scheme: light;

  /* Type */
  --font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans:"Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Spacing (8px base) */
  --sp-1:4px; --sp-2:8px; --sp-3:16px; --sp-4:24px; --sp-5:32px;
  --sp-6:48px; --sp-7:64px; --sp-8:96px; --sp-9:128px; --sp-10:160px;

  /* Layout */
  --container-max:1200px;
  --measure:66ch;
  --gutter:clamp(20px, 5vw, 64px);
  --header-h:80px;
}

/* ----- Reset / base ------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box;}
html{font-size:112.5%;-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:1rem;
  line-height:1.65;
  color:var(--color-text);
  background:var(--ivory);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* Subtle paper grain */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.5;
  background-image:radial-gradient(rgba(17,32,58,.025) 0.5px, transparent 0.5px);
  background-size:3px 3px;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--color-link);text-underline-offset:3px;}
ul,ol{margin:0;padding:0;}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:2px;}

/* ----- Typography -------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--font-serif);color:var(--color-heading);margin:0;font-weight:600;}
h1{font-size:clamp(2.75rem,6vw,4rem);line-height:1.05;letter-spacing:-0.015em;font-optical-sizing:auto;}
h2{font-size:clamp(2rem,3.5vw,2.75rem);line-height:1.12;letter-spacing:-0.01em;}
h3{font-size:1.75rem;line-height:1.18;letter-spacing:-0.005em;}
h4{font-size:1.375rem;line-height:1.25;}
h5{font-family:var(--font-sans);font-size:1.125rem;font-weight:700;line-height:1.3;margin:0;color:var(--color-heading);}
h6{font-family:var(--font-sans);font-size:1rem;font-weight:700;line-height:1.35;letter-spacing:.01em;margin:0;color:var(--color-heading);}
p{margin:0 0 var(--sp-3);}
strong{font-weight:600;color:var(--navy-800);}

.eyebrow{
  font-family:var(--font-sans);font-size:.75rem;font-weight:600;line-height:1.4;
  letter-spacing:.18em;text-transform:uppercase;color:var(--brass-dark);
  margin:0 0 var(--sp-2);
}
.lede{font-size:1.25rem;line-height:1.6;color:var(--charcoal);max-width:var(--measure);}
.measure{max-width:var(--measure);}
.text-muted{color:var(--muted);}

/* Section heading with brass "chapter mark" tick */
.section-head{margin-bottom:var(--sp-5);}
.section-head h2{position:relative;}
.section-head .eyebrow + h2{margin-top:0;}
.tick::before{
  content:"";display:block;width:32px;height:2px;background:var(--brass);
  margin-bottom:var(--sp-3);
}

/* ----- Layout helpers ---------------------------------------------------- */
.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:clamp(64px,10vw,128px);}
.section--tight{padding-block:clamp(48px,7vw,88px);}
.section--sunken{background:var(--ivory-sunken);}
.section--navy{background:var(--navy-800);color:var(--ivory);}
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4,
.section--navy h5,.section--navy h6{color:var(--ivory);}
.section--navy .eyebrow{color:var(--brass-light);}
.section--navy .lede,.section--navy p{color:var(--muted-on-navy);}
.section--navy strong{color:var(--ivory);}
.divider-rule{border:0;height:1px;background:var(--hairline);margin:0;}
.brass-rule{border:0;height:1px;background:var(--brass);margin:0;}

.grid-2{display:grid;grid-template-columns:1fr;gap:var(--sp-7);}
@media (min-width:60.01rem){
  .grid-2{grid-template-columns:1.2fr 0.8fr;gap:var(--sp-8);align-items:start;}
  .grid-2--even{grid-template-columns:1fr 1fr;}
}
.stack > * + *{margin-top:var(--sp-4);}
.stack-sm > * + *{margin-top:var(--sp-2);}

/* ----- Skip link --------------------------------------------------------- */
.skip-link{
  position:absolute;left:var(--sp-3);top:-100px;z-index:200;
  background:var(--navy-800);color:var(--ivory);padding:12px 18px;border-radius:2px;
  font-family:var(--font-sans);font-weight:600;text-decoration:none;transition:top .15s ease;
}
.skip-link:focus{top:var(--sp-3);}

/* ----- Header / nav ------------------------------------------------------ */
.site-header{
  position:sticky;top:0;z-index:100;height:var(--header-h);
  background:rgba(247,245,240,.88);
  -webkit-backdrop-filter:saturate(120%) blur(8px);backdrop-filter:saturate(120%) blur(8px);
  border-bottom:1px solid var(--hairline);
}
.site-header__inner{
  height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
}
.brand{display:inline-flex;align-items:center;gap:var(--sp-3);text-decoration:none;color:var(--navy-800);}
.brand__monogram{
  display:inline-grid;place-items:center;width:40px;height:40px;flex:0 0 auto;
  font-family:var(--font-serif);font-weight:700;font-size:1.05rem;letter-spacing:.02em;
  color:var(--navy-800);border:1px solid var(--brass);border-radius:2px;
  background:linear-gradient(180deg,var(--paper-white),var(--ivory-sunken));
}
.brand__word{font-family:var(--font-serif);font-weight:600;font-size:1.35rem;letter-spacing:.005em;color:var(--navy-800);white-space:nowrap;}

.primary-nav ul{list-style:none;display:flex;align-items:center;gap:var(--sp-5);}
.primary-nav a:not(.nav-cta){
  position:relative;font-family:var(--font-sans);font-weight:500;font-size:1rem;letter-spacing:.02em;
  color:var(--charcoal);text-decoration:none;padding-block:6px;
}
.primary-nav a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--brass);
  transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
}
.primary-nav a:not(.nav-cta):hover{color:var(--navy-800);}
.primary-nav a:not(.nav-cta):hover::after{transform:scaleX(1);}
.primary-nav a.is-current{color:var(--navy-800);}
.primary-nav a.is-current::after{transform:scaleX(1);}
.primary-nav a.nav-cta.is-current{box-shadow:inset 0 0 0 2px var(--navy-800);}
.nav-mobile-home{display:none;}

.nav-toggle{
  display:none;width:44px;height:44px;padding:0;border:1px solid var(--hairline-strong);border-radius:2px;
  background:var(--paper-white);cursor:pointer;align-items:center;justify-content:center;
}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{
  content:"";display:block;width:20px;height:2px;background:var(--navy-800);transition:transform .2s ease,opacity .2s ease;
}
.nav-toggle__bars{position:relative;}
.nav-toggle__bars::before{position:absolute;top:-6px;left:0;}
.nav-toggle__bars::after{position:absolute;top:6px;left:0;}

/* ----- Buttons ----------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-sans);font-weight:600;font-size:1rem;letter-spacing:.02em;
  padding:14px 28px;border-radius:2px;border:1px solid transparent;cursor:pointer;
  text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.btn--primary{background:var(--brass);color:var(--navy-800);border-color:var(--brass);}
.btn--primary:hover{background:var(--navy-800);color:var(--ivory);border-color:var(--navy-800);transform:translateY(-1px);}
.btn--secondary{background:transparent;color:var(--navy-800);border-color:var(--navy-800);}
.btn--secondary:hover{background:var(--navy-800);color:var(--ivory);}
.btn--on-navy{background:var(--brass);color:var(--navy-800);border-color:var(--brass);}
.btn--on-navy:hover{background:var(--brass-light);color:var(--navy-800);transform:translateY(-1px);}
.section--navy .btn--secondary{color:var(--ivory);border-color:var(--ivory);}
.section--navy .btn--secondary:hover{background:var(--ivory);color:var(--navy-800);}
.btn:focus-visible{outline:2px solid var(--navy-800);outline-offset:3px;}
.section--navy .btn:focus-visible,.btn--on-navy:focus-visible{outline-color:var(--brass-light);}

.ghost-link{
  display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-sans);font-weight:600;
  color:var(--brass-dark);text-decoration:none;letter-spacing:.01em;
}
.ghost-link .arrow{transition:transform .2s ease;}
.ghost-link:hover{text-decoration:underline;text-underline-offset:4px;}
.ghost-link:hover .arrow{transform:translateX(4px);}
.section--navy .ghost-link{color:var(--brass-light);}

.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);align-items:center;}

/* ----- Hero -------------------------------------------------------------- */
.hero{position:relative;padding-block:clamp(96px,14vh,196px);overflow:hidden;}
.hero__watermark{
  position:absolute;right:calc(-1 * var(--gutter));top:50%;transform:translateY(-50%);
  font-family:var(--font-serif);font-weight:700;font-size:clamp(16rem,34vw,34rem);line-height:.8;
  color:var(--navy-800);opacity:.04;pointer-events:none;user-select:none;z-index:0;letter-spacing:-.03em;
}
.hero__inner{position:relative;z-index:1;max-width:60rem;}
.hero h1{margin-bottom:var(--sp-4);}
.hero .lede{margin-bottom:var(--sp-6);font-size:clamp(1.125rem,2vw,1.35rem);color:var(--muted);}
.hero--page{padding-block:clamp(72px,11vh,140px);}
.hero--page h1{max-width:18ch;}

/* ----- Credibility strip ------------------------------------------------- */
.cred-strip{background:var(--navy-800);}
.cred-strip__grid{
  margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  padding-block:var(--sp-7);
}
.cred-strip__item{
  padding:var(--sp-3) var(--sp-5);text-align:center;
  border-left:1px solid var(--hairline-on-navy);
}
.cred-strip__item:first-child{border-left:0;}
.cred-strip__item dt{
  font-family:var(--font-sans);font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  line-height:1.4;color:var(--ivory);margin:0;
}
.cred-strip__item dd{
  margin:4px 0 0;color:var(--brass-light);font-size:.72rem;letter-spacing:.1em;line-height:1.45;
  text-transform:uppercase;font-weight:600;
}

/* Statement band (navy, centered) */
.band-statement{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.5rem,3.2vw,2.15rem);
  line-height:1.32;color:var(--ivory);max-width:28ch;margin:var(--sp-3) auto 0;}
@media (max-width:55.99rem){
  .cred-strip__item{border-left:0;border-top:1px solid var(--hairline-on-navy);}
  .cred-strip__item:first-child{border-top:0;}
}

/* ----- Practice cards ---------------------------------------------------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-6);}
.card{
  position:relative;display:flex;flex-direction:column;
  background:var(--paper-white);border:1px solid var(--hairline);border-radius:2px;
  padding:var(--sp-6) var(--sp-5) var(--sp-5);text-decoration:none;color:inherit;
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
  min-height:100%;
}
.card__num{
  font-family:var(--font-serif);font-size:2.25rem;font-weight:400;line-height:1;color:var(--brass);
  opacity:.85;margin-bottom:var(--sp-3);transition:color .2s ease;
}
.card h3,.card h4{color:var(--navy-800);margin-bottom:var(--sp-2);}
.card p{color:var(--muted);margin-bottom:var(--sp-4);}
.card .ghost-link{margin-top:auto;}
.card:hover{border-color:var(--brass);transform:translateY(-2px);box-shadow:0 8px 24px rgba(12,24,48,.08);}
.card:hover .card__num{color:var(--brass-dark);}
.card:hover .ghost-link .arrow{transform:translateX(4px);}
.card:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}

/* Numbered editorial section marker */
.section-num{
  font-family:var(--font-serif);font-weight:400;color:var(--brass);opacity:.85;
  font-size:clamp(2.5rem,6vw,4rem);line-height:1;display:block;margin-bottom:var(--sp-2);
}

/* ----- Credentials list (dl) -------------------------------------------- */
.creds{display:grid;gap:var(--sp-4);}
.creds .cred{border-left:1px solid var(--brass);padding-left:var(--sp-3);}
.creds dt{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-dark);margin:0 0 4px;}
.creds dd{margin:0;color:var(--charcoal);line-height:1.55;}

/* Definition-style key/value rows (markets) */
.deflist{display:grid;gap:var(--sp-3);}
.deflist .row{display:grid;gap:2px;}
.deflist .row .k{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-dark);}
.deflist .row .v{color:var(--charcoal);}

/* ----- Scope / feature list --------------------------------------------- */
.scope-list{list-style:none;display:grid;gap:var(--sp-2);}
.scope-list li{position:relative;padding-left:var(--sp-4);color:var(--charcoal);line-height:1.6;}
.scope-list li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1px;background:var(--brass);}
@media (min-width:48rem){.scope-list--2col{grid-template-columns:1fr 1fr;gap:var(--sp-2) var(--sp-6);}}

/* ----- Pull-quote / testimonial ----------------------------------------- */
.quote{position:relative;max-width:44rem;margin-inline:auto;padding-top:var(--sp-6);}
.quote::before{
  content:"\201C";position:absolute;top:-.2em;left:-.06em;font-family:var(--font-serif);
  font-size:clamp(4rem,9vw,7rem);line-height:1;color:var(--brass);opacity:.55;
}
.quote blockquote{margin:0;font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(1.5rem,3vw,2rem);line-height:1.4;color:var(--navy-800);}
.section--navy .quote blockquote{color:var(--ivory);}
.quote figcaption{margin-top:var(--sp-4);}
.quote .q-name{font-family:var(--font-sans);font-weight:700;font-size:1rem;color:var(--navy-800);}
.section--navy .quote .q-name{color:var(--ivory);}
.quote .q-role{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass-dark);margin-top:2px;}
.section--navy .quote .q-role{color:var(--brass-light);}

/* ----- Engagement models ------------------------------------------------- */
.models{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-5);}
.model{border-top:2px solid var(--brass);padding-top:var(--sp-3);}
.model h4{font-family:var(--font-sans);font-size:1.0625rem;font-weight:700;color:var(--navy-800);margin-bottom:var(--sp-1);}
.model p{color:var(--muted);font-size:.9375rem;margin:0;}
.section--navy .model h4{color:var(--ivory);}
.section--navy .model p{color:var(--muted-on-navy);}

/* ----- Representative matters (template/placeholder) -------------------- */
.matters{display:grid;gap:var(--sp-4);counter-reset:matter;}
.matter{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-4);align-items:baseline;
  padding-bottom:var(--sp-4);border-bottom:1px solid var(--hairline);}
.matter:last-child{border-bottom:0;}
.matter::before{counter-increment:matter;content:counter(matter,decimal-leading-zero);
  font-family:var(--font-serif);font-size:1.5rem;color:var(--brass);line-height:1.2;}
.matter > div{min-width:0;}
.matter h4{font-family:var(--font-serif);font-weight:600;font-size:1.1875rem;color:var(--navy-800);margin:0 0 4px;line-height:1.25;}
.matter .meta{display:block;font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--brass-dark);margin-bottom:8px;}
.matter p{margin:0;color:var(--charcoal);}
.matter cite,.secretary-list cite{font-style:italic;}
.secretary-list .case-ref{font-weight:700;color:var(--brass-dark);}
.secretary-list{list-style:none;display:grid;gap:var(--sp-3);max-width:62rem;}
.secretary-list li{position:relative;padding-left:var(--sp-4);color:var(--charcoal);line-height:1.6;}
.secretary-list li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1px;background:var(--brass);}
.placeholder-note{font-size:.8125rem;color:var(--muted);font-style:italic;}
.is-placeholder .matter p{color:var(--muted);font-style:italic;}

/* ----- Portrait slot (About) -------------------------------------------- */
.portrait{
  position:relative;aspect-ratio:4/5;border:1px solid var(--brass);border-radius:2px;
  background:linear-gradient(160deg,var(--navy-800),var(--navy-900));
  display:grid;place-items:center;overflow:hidden;color:var(--ivory);text-align:center;padding:var(--sp-5);
}
.portrait__mono{font-family:var(--font-serif);font-weight:700;font-size:4rem;color:var(--brass-light);letter-spacing:.04em;}
.portrait__cap{margin-top:var(--sp-3);font-family:var(--font-sans);font-size:.75rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted-on-navy);}
.portrait--photo{padding:0;background:none;}
.portrait--photo img{width:100%;height:100%;object-fit:cover;object-position:center 32%;}

/* ----- Contact details list --------------------------------------------- */
.contact-list{list-style:none;display:grid;gap:var(--sp-3);}
.contact-list a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--navy-800);font-weight:600;}
.contact-list a:hover{color:var(--brass-dark);text-decoration:underline;text-underline-offset:4px;}
.contact-list .k{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-dark);display:block;margin-bottom:2px;}
.office-address{font-style:normal;color:var(--charcoal);line-height:1.7;}
.office-address .k{display:block;margin-bottom:6px;font-family:var(--font-sans);font-size:.75rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brass-dark);}

/* ----- Forms ------------------------------------------------------------- */
.form{display:grid;gap:var(--sp-4);max-width:40rem;}
.form .field{display:grid;gap:6px;}
.form label{font-family:var(--font-sans);font-weight:600;font-size:.9375rem;color:var(--navy-800);}
.form .req{color:var(--brass-dark);}
.form input,.form textarea{
  font-family:var(--font-sans);font-size:1rem;color:var(--charcoal);
  background:var(--ivory-sunken);border:1px solid var(--hairline-strong);border-radius:2px;
  padding:12px 14px;min-height:48px;width:100%;
}
.form textarea{min-height:140px;resize:vertical;}
.form input:focus,.form textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);background:var(--paper-white);}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-note{font-size:.875rem;color:var(--muted);}
.form .btn{justify-self:start;}
.form-success{background:var(--ivory-sunken);border-left:3px solid var(--brass);border-radius:2px;
  padding:var(--sp-4) var(--sp-4);color:var(--navy-800);font-weight:600;max-width:40rem;margin-bottom:var(--sp-4);}
.form-success[hidden]{display:none;}

/* ----- CTA band ---------------------------------------------------------- */
.cta-band{background:var(--navy-800);}
.cta-band .inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-5);}
.cta-band h2{color:var(--ivory);max-width:22ch;}
.cta-band .sub{margin-top:var(--sp-2);color:var(--muted-on-navy);}
.cta-band a.direct{color:var(--brass-light);text-decoration:none;font-weight:600;}
.cta-band a.direct:hover{text-decoration:underline;text-underline-offset:4px;}

/* ----- Related practice -------------------------------------------------- */
.related{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;}
.related .ghost-link{font-size:1.0625rem;}

/* ----- Footer ------------------------------------------------------------ */
.site-footer{background:var(--navy-900);color:var(--muted-on-navy);padding-block:var(--sp-8) var(--sp-6);}
.footer-top{display:grid;grid-template-columns:1fr;gap:var(--sp-7);}
@media (min-width:48rem){.footer-top{grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--sp-6);}}
.footer-brand .brand__monogram{color:var(--brass-light);border-color:var(--brass);background:transparent;}
.footer-brand .brand__word{color:var(--ivory);}
.footer-tagline{margin-top:var(--sp-3);max-width:32ch;color:var(--muted-on-navy);font-size:.9375rem;line-height:1.6;}
.footer-col h2{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass-light);margin-bottom:var(--sp-3);}
.footer-col ul{list-style:none;display:grid;gap:var(--sp-2);}
.footer-col a{color:var(--muted-on-navy);text-decoration:none;}
.footer-col a:hover{color:var(--brass-light);text-decoration:underline;text-underline-offset:3px;}
.footer-bottom{margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--hairline-on-navy);
  display:grid;gap:var(--sp-3);font-size:.8125rem;color:var(--muted-on-navy);}
.footer-bottom .disclaimer{max-width:80ch;line-height:1.6;}
.footer-bottom .echo{letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;color:var(--brass-light);}
.footer-bottom a{color:var(--muted-on-navy);text-decoration:underline;text-underline-offset:3px;}
.footer-bottom a:hover{color:var(--brass-light);}

/* ----- Reveal animations (JS-gated, reduced-motion safe) ----------------- */
.reveal{opacity:1;transform:none;}
html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}
html.js .reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1;transform:none;transition:none;}
}

/* ----- Mobile nav -------------------------------------------------------- */
@media (max-width:60rem){
  .nav-toggle{display:inline-flex;}
  .primary-nav{
    position:fixed;inset:var(--header-h) 0 0 0;background:var(--ivory);
    display:none;padding:var(--sp-6) var(--gutter) var(--sp-8);overflow-y:auto;z-index:99;
  }
  html.nav-open .primary-nav{display:block;}
  html.nav-open,html.nav-open body{overflow:hidden;}
  .primary-nav ul{flex-direction:column;align-items:stretch;gap:0;}
  .primary-nav li{border-bottom:1px solid var(--hairline);}
  .primary-nav a:not(.nav-cta){display:block;padding:var(--sp-4) 0;font-family:var(--font-serif);font-size:1.375rem;color:var(--navy-800);}
  .primary-nav a:not(.nav-cta)::after{display:none;}
  .nav-mobile-home{display:list-item;}
  .nav-cta-li{border-bottom:0;margin-top:var(--sp-5);}
  .primary-nav .nav-cta{width:100%;}
  html.nav-open .nav-toggle__bars{background:transparent;}
  html.nav-open .nav-toggle__bars::before{top:0;transform:rotate(45deg);}
  html.nav-open .nav-toggle__bars::after{top:0;transform:rotate(-45deg);}
}
@media (min-width:60.01rem){
  .nav-toggle{display:none;}
  .primary-nav{display:block !important;}
}

/* ----- Misc -------------------------------------------------------------- */
.center{text-align:center;}
.mt-0{margin-top:0;}
.intro-block{max-width:var(--measure);}
.eyebrow-link{text-decoration:none;}
