
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 300 500;
  font-display: swap;
  src: url(/fonts/newsreader-latin-ext-italic.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 300 500;
  font-display: swap;
  src: url(/fonts/newsreader-latin-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(/fonts/newsreader-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(/fonts/newsreader-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root{
  --green:#144418; --green-mid:#1E5C24; --green-pale:#EAF0E8;
  --navy:#1C1585; --navy-pale:#EBEAF6;
  --paper:#FBFBF8; --ink:#0F130F; --muted:#5A6356; --line:#E3E6DF;
  --measure:38rem;
  --disp:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:Newsreader,Georgia,"Times New Roman",serif;
  --e:cubic-bezier(.22,.68,.28,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;}
html{overflow-x:clip;}
img,picture{max-width:100%;display:block;}
a{color:inherit;}
.wrap{width:min(100% - 2.5rem,74rem);margin-inline:auto;}
.narrow{max-width:var(--measure);}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip{position:absolute;left:-999px;z-index:99;padding:.7rem 1rem;
  background:var(--green);color:#fff;text-decoration:none;}
.skip:focus{left:.5rem;top:.5rem;}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px;
  box-shadow:0 0 0 4px rgba(255,255,255,.45);}
.band :focus-visible,.band-navy :focus-visible,.hero :focus-visible,.card:focus-visible{
  outline-color:#fff;box-shadow:0 0 0 4px rgba(0,0,0,.35);}

/* ---------------- header: the logo's own arc becomes the read-progress ---- */
.hd{position:fixed;inset-inline:0;top:0;z-index:40;
  transition:background .4s var(--e),box-shadow .4s var(--e);}
.hd::before{content:"";position:absolute;inset:0;background:var(--paper);
  opacity:0;transition:opacity .4s var(--e);}
.hd::before{opacity:1;}
.hd.solid::before{opacity:1;backdrop-filter:blur(10px);}
.hd.solid{box-shadow:0 1px 0 var(--line);}
.hd-in{position:relative;display:flex;align-items:center;gap:1.5rem;
  justify-content:space-between;padding:.85rem 0;}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;flex:none;}
.mark{position:relative;width:44px;height:44px;flex:none;}
.mark img{position:absolute;inset:5px;width:34px;height:34px;object-fit:contain;}
.mark .ring{position:absolute;inset:0;width:100%;height:100%;}
.mark .ring circle{fill:none;stroke-width:2;}
.mark .ring .track{stroke:currentColor;opacity:.16;}
.mark .ring .prog{stroke:var(--navy);stroke-linecap:round;
  transform:rotate(-90deg);transform-origin:50% 50%;
  stroke-dasharray:var(--C);stroke-dashoffset:var(--C);
  transition:stroke-dashoffset .15s linear;}
.brand b{font-family:var(--disp);font-weight:800;font-size:.82rem;letter-spacing:.19em;
  text-transform:uppercase;}
.nav{display:flex;gap:1.35rem;font-family:var(--disp);font-size:.76rem;
  font-weight:600;letter-spacing:.11em;text-transform:uppercase;}
.nav a{text-decoration:none;color:var(--muted);padding:.3rem 0;position:relative;}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;
  background:var(--navy);transition:right .35s var(--e);}
.nav a:hover::after,.nav a[aria-current]::after{right:0;}
.nav a[aria-current]{color:var(--ink);}
.burger[aria-expanded="true"]{color:#fff;position:relative;z-index:60;}
.burger{display:none;flex:none;width:44px;height:44px;border:0;background:none;
  padding:8px 6px;cursor:pointer;color:inherit;}
.burger span{display:block;height:1.5px;background:currentColor;margin:5px auto;width:26px;
  transition:transform .35s var(--e),opacity .2s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
@media(max-width:560px){
  /* a tall slot on a narrow screen crops a portrait down to a torso */
  
}
@media(max-width:1040px){
  .js .burger{display:block;}
  /* the burger is script-driven, so without JS the nav has to stay in the
     document flow rather than being parked off-screen with no way back */
  .js .nav{position:fixed;inset:0;background:var(--green);flex-direction:column;
    justify-content:center;gap:.2rem;padding:2rem;font-size:1.5rem;letter-spacing:.02em;
    transform:translateY(-100%);transition:transform .5s var(--e);}
  .js .nav a{color:rgba(255,255,255,.9)!important;padding:.6rem 0;}
  .js .nav.open{transform:translateY(0);}
  .nav{flex-wrap:wrap;gap:.3rem 1.1rem;}
}


/* ---- hero ------------------------------------------------------------- */
/* Full-bleed, with the crop anchored on the subject rather than the centre of
   the frame: FOCUS records where the person actually is in each photograph. */
.hero{position:relative;overflow:hidden;background:var(--ink);
  height:min(72svh,700px);}
.hero-shot{position:absolute;inset:0;}
.hero-shot picture{display:block;height:100%;}
.hero-shot img{display:block;width:100%;height:100%;object-fit:cover;
  object-position:var(--pos,50% 34%);}
.hero-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;color:#fff;
  padding-block:clamp(3.5rem,9vw,6rem) clamp(1.6rem,3.5vw,2.6rem);
  background:linear-gradient(to bottom,rgba(10,16,10,0),rgba(10,16,10,.6) 42%,
    rgba(10,16,10,.94));}
.hero-cap h1,.hero-cap .hero-sub{color:#fff;}
.hero-cap .eyebrow,.hero-cap .crumb,.hero-cap .crumb a{color:rgba(255,255,255,.85);}
@media(max-width:719px){
  /* a shorter frame on a phone crops far less off the sides */
  .hero{height:min(56svh,460px);}
}

/* ---------------- hero ---------------------------------------------------- */



@keyframes settle{to{transform:scale(1);}}


.eyebrow{font-family:var(--disp);font-size:.72rem;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;line-height:1.4;margin:0 0 1.1rem;color:var(--navy);}
h2.eyebrow{font-size:.72rem;letter-spacing:.24em;line-height:1.4;}
.hero .eyebrow{color:rgba(255,255,255,.75);}
h1{font-family:var(--disp);font-weight:800;letter-spacing:-.035em;line-height:1.08;
  text-transform:uppercase;margin:0;font-size:clamp(1.75rem,7.2vw,6.4rem);
  text-wrap:balance;overflow-wrap:break-word;hyphens:auto;}
.hero h1 span{display:block;}
.hero h1 .accent{color:#8FD8A8;}
.hero-sub{margin:1.5rem 0 0;font-size:clamp(1.05rem,2.4vw,1.4rem);max-width:34rem;
  color:rgba(255,255,255,.94);}
.scrollcue{position:absolute;left:50%;bottom:1.4rem;z-index:3;translate:-50% 0;
  width:1px;height:44px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.7));
  animation:cue 2.4s ease-in-out infinite;}
@keyframes cue{0%,100%{opacity:.25;height:30px;}50%{opacity:.9;height:48px;}}

/* ---------------- sections ------------------------------------------------ */
section{padding-block:clamp(3rem,6.5vw,5.5rem);}
/* two adjacent sections were adding their padding together */
section + section{padding-top:0;}
.band + section,section + .band,.band-navy + section,section + .band-navy{padding-top:clamp(3rem,6.5vw,5.5rem);}
h2,.h2{font-family:var(--disp);font-weight:700;letter-spacing:-.03em;line-height:1.02;
  text-transform:uppercase;margin:0 0 1.5rem;font-size:clamp(1.5rem,4.6vw,3.2rem);
  text-wrap:balance;overflow-wrap:break-word;}
.lead{font-size:clamp(1.15rem,2.5vw,1.5rem);line-height:1.45;margin:0 0 1.5rem;
  max-width:var(--measure);}
p{max-width:var(--measure);}
.body p{margin:0 0 1.1rem;color:#2A3128;}
.band .quote,.band-navy .quote{max-width:34ch;margin-inline:auto;text-align:center;}
.band .quote-attrib,.band-navy .quote-attrib{text-align:center;
  max-width:34ch;margin-inline:auto;}
.quote-attrib{font-family:var(--disp);font-size:.74rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:.7rem 0 0;}
.band .quote-attrib{color:#8FD8A8;} .band-navy .quote-attrib{color:#B9B5EC;}
.quote{font-family:var(--body);font-style:italic;font-weight:300;
  font-size:clamp(1.5rem,4.4vw,2.9rem);line-height:1.18;margin:0;max-width:24ch;
  text-wrap:balance;}
.band .quote,.band-navy .quote{max-width:34ch;margin-inline:auto;text-align:center;}
.band .quote-attrib,.band-navy .quote-attrib{text-align:center;
  max-width:34ch;margin-inline:auto;}
.quote-attrib{font-family:var(--disp);font-size:.72rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;margin:1.2rem 0 0;color:var(--muted);}
.band{background:var(--green);color:#E8F0E6;}
.band .quote,.band h2{color:#fff;}
.band .eyebrow{color:#8FD8A8;}
.band .body p{color:#CBDCC6;}
.band-navy{background:var(--navy);color:#E6E5F5;}
.band-navy .quote,.band-navy h2{color:#fff;}
.band-navy .eyebrow{color:#B9B5EC;}
.band-navy .body p{color:#CFCDF0;}
.band-navy .quote-attrib{color:#B9B5EC;}

/* the passage from /ueber-uns/ — its own rhythm, one clause per line */
.beat{margin:0;padding:0;list-style:none;max-width:46rem;}
.beat li{font-family:var(--disp);font-weight:600;letter-spacing:-.02em;
  font-size:clamp(1.05rem,3.4vw,2.2rem);line-height:1.22;padding:.16em 0;}
.js .beat li{opacity:0;transform:translateY(14px);
  transition:opacity .6s var(--e),transform .6s var(--e);
  transition-delay:calc(var(--i) * 55ms);}
.js .beat li.in{opacity:1;transform:none;}
.beat li.hi{color:var(--navy);}
.band .beat li.hi{color:#8FD8A8;}

/* ---------------- cards --------------------------------------------------- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.1rem;}
@media(min-width:1100px){
  /* seven items in a four-wide grid left a permanent hole, so the first card
     takes two columns and the rows come out even */
  .grid{grid-template-columns:repeat(4,1fr);}
  .grid > :first-child{grid-column:span 2;}
}
/* captions of different lengths pushed their titles off a shared baseline */
.card-b h2{min-height:2.4em;display:flex;align-items:flex-end;}
.card{position:relative;display:flex;align-items:flex-end;min-height:19rem;
  overflow:hidden;background:var(--green);text-decoration:none;color:#fff;
  isolation:isolate;}
.card picture,.card img{position:absolute;inset:0;width:100%;height:100%;}
.card img{object-fit:cover;transition:transform .8s var(--e),filter .8s var(--e);
  filter:saturate(.9);}
.card::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(8,14,8,.05),rgba(8,14,8,.55) 55%,rgba(8,14,8,.9));
  transition:opacity .6s var(--e);}
.card:hover img,.card:focus-visible img{transform:scale(1.06);filter:saturate(1.05);}
.card-b{position:relative;z-index:2;padding:1.5rem;width:100%;}
.card h3,.card h2{font-family:var(--disp);font-weight:700;font-size:1.18rem;letter-spacing:.01em;
  text-transform:uppercase;margin:0;display:flex;align-items:center;gap:.55rem;}
.card h3 i,.card h2 i{font-style:normal;opacity:0;transform:translateX(-6px);
  transition:opacity .4s var(--e),transform .4s var(--e);}
.card:hover h3 i,.card:focus-visible h3 i,.card:hover h2 i,.card:focus-visible h2 i{opacity:1;transform:none;}
.card p{margin:.45rem 0 0;font-size:.95rem;color:rgba(255,255,255,.84);max-width:34ch;}

/* ---------------- people -------------------------------------------------- */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));
  gap:2rem 1.5rem;list-style:none;padding:0;margin:0;}
@media(max-width:560px){
  /* six full-width circles cost about 2,200px of scroll on a phone */
  .people{grid-template-columns:1fr 1fr;gap:1.4rem 1rem;}
  .person .shot{max-width:150px;margin-inline:auto;}
}
.person{text-decoration:none;display:block;}
.person .shot{display:block;position:relative;overflow:hidden;border-radius:50%;
  aspect-ratio:1;background:var(--green-pale);}
.person .shot picture{position:absolute;inset:0;width:100%;height:100%;}
.person .shot img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);
  object-position:var(--pos,50% 22%);
  transition:transform .7s var(--e),filter .7s var(--e);filter:grayscale(1) contrast(1.02);}
.person:hover .shot img,.person:focus-visible .shot img{transform:scale(1.05);filter:none;}
.person b{display:block;font-family:var(--disp);font-weight:700;font-size:.92rem;
  letter-spacing:.05em;text-transform:uppercase;margin:.9rem 0 .15rem;}
.person span{font-size:.9rem;color:var(--muted);}

/* ---------------- detail page furniture ----------------------------------- */
.crumb{font-family:var(--disp);font-size:.72rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.7);margin:0 0 1rem;}
.crumb a{text-decoration:none;display:inline-block;padding:.4rem .1rem;}
.crumb a:hover{text-decoration:underline;}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));
  gap:1.6rem;margin:2.5rem 0 0;padding-top:1.8rem;border-top:1px solid var(--line);}
.meta h3{font-family:var(--disp);font-size:.7rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;}
.meta ul{list-style:none;padding:0;margin:0;font-size:.98rem;}
.meta li{padding:.15rem 0;}
.meta a{text-decoration:none;color:var(--navy);}
.meta a:hover{text-decoration:underline;}
.cta{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--disp);
  font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;color:var(--navy);border-bottom:2px solid currentColor;
  padding-bottom:.25rem;margin-top:1.4rem;transition:gap .3s var(--e);}
.cta:hover{gap:1rem;}
.band .cta,.band-navy .cta{color:#fff;}
.band .big,.band-navy .big{color:#fff;}
.band .big:hover{color:#8FD8A8;} .band-navy .big:hover{color:#B9B5EC;}
.band .tels,.band .tels a{color:#B8CDB2;}
.band-navy .tels,.band-navy .tels a{color:#B9B5EC;}
.band .tels a:hover,.band-navy .tels a:hover{color:#fff;}
.band .places{color:#8FD8A8;} .band-navy .places{color:#B9B5EC;}
.band h2,.band-navy h2{color:#fff;}
.dl{list-style:none;padding:0;margin:2rem 0 0;max-width:var(--measure);}
.dl a{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.1rem 0;border-top:1px solid var(--line);text-decoration:none;
  font-family:var(--disp);font-weight:600;letter-spacing:.02em;transition:padding-left .3s var(--e);}
.dl li:last-child a{border-bottom:1px solid var(--line);}
.dl a:hover{padding-left:.5rem;}
.dl small{font-family:var(--disp);font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);}
.big{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;
  font-size:clamp(1.5rem,5.2vw,3rem);color:var(--navy);text-decoration:none;
  display:inline-block;}
.big:hover{color:var(--green);}
.tels{display:flex;flex-wrap:wrap;gap:.3rem 2.2rem;margin:1.5rem 0 0;color:var(--muted);}
.tels a{text-decoration:none;} .tels a:hover{color:var(--ink);}
.reply{font-size:.95rem;color:var(--ink);opacity:.75;margin:0 0 1rem;}
.band .reply{color:#DCE8D8;opacity:1;} .band-navy .reply{color:#D8D6F5;opacity:1;}
.offices{display:grid;gap:clamp(1.2rem,3vw,2.4rem);margin-top:2.2rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));max-width:52rem;}
.offices address{font-style:normal;display:flex;flex-direction:column;gap:.15rem;
  font-size:.95rem;line-height:1.5;}
.offices b{font-family:var(--disp);font-size:.74rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;margin-bottom:.4rem;}
.band .offices b{color:#8FD8A8;} .band-navy .offices b{color:#B9B5EC;}
.ll{list-style:none;padding:0;margin:0;columns:2;column-gap:2.5rem;max-width:46rem;}
@media(max-width:640px){.ll{columns:1;}}
.ll li{break-inside:avoid;border-bottom:1px solid var(--line);}
.ll{columns:auto;max-width:52rem;}
.ll a{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;
  padding:1.15rem 0;text-decoration:none;font-family:var(--body);font-size:1.05rem;
  transition:padding-left .3s var(--e),color .3s var(--e);}
.ll a::after{content:"↗";font-family:var(--disp);font-size:.9rem;color:var(--muted);}
.ll a:hover::after{color:var(--green,#144418);}
.ll a:hover{padding-left:.5rem;color:var(--green);}
.places{font-family:var(--disp);font-size:.74rem;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin:2.2rem 0 0;}

.legal{max-width:min(46rem,68ch);overflow-wrap:anywhere}
.legal-head{padding-block:clamp(3rem,7vw,5rem) clamp(2rem,5vw,3.5rem);}
.legal-head h1{font-size:clamp(2rem,5vw,3.4rem);}
.legal-head .eyebrow{color:#8FD8A8;}
.legal-note{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line);}
.legal-note{font-size:.85rem;color:var(--muted);margin:0 0 1.4rem;}
.legal p{margin:0 0 1.05rem;color:#2A3128;font-size:1rem;line-height:1.7;max-width:none;}
.legal h2,.legal h3,.legal h4{font-family:var(--disp);text-transform:none;letter-spacing:-.01em;
  font-size:1.15rem;line-height:1.3;margin:2.2rem 0 .7rem;color:var(--green);}
.legal ul,.legal ol{margin:0 0 1.2rem 1.1rem;color:#2A3128;}
.legal li{margin:.3rem 0;}
.legal a{color:var(--navy);word-break:break-word;}
.legal strong{font-weight:600;}

/* ---------------- reveal + footer ----------------------------------------- */
.js .rv{opacity:0;transform:translateY(20px);
  transition:opacity .8s var(--e),transform .8s var(--e);}
.js .rv.in{opacity:1;transform:none;}
footer{border-top:1px solid var(--line);padding:2.6rem 0 3.4rem;font-size:.88rem;
  color:var(--muted);}
.foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;
  align-items:center;}
.foot nav{display:flex;flex-wrap:wrap;gap:1.2rem;font-family:var(--disp);
  font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}
.foot a{text-decoration:none;} .foot a:hover{color:var(--ink);}


/* ---- touch targets ------------------------------------------------------ */
/* these read as text, so they get their height from padding rather than from
   a box that would show */
.foot nav a{display:inline-block;padding:.42rem 0;}
.crumb a{display:inline-block;padding:.32rem 0;}
.meta ul a{display:inline-block;padding:.28rem 0;}
.tels a{display:inline-block;padding:.2rem 0;}
.cta{padding-block:.5rem;}
.ll a{padding:.85rem 0;}
@media(hover:none){
  /* a coarse pointer needs the full 44px where there is room for it */
  .foot nav a{padding:.6rem 0;}
  .meta ul a,.crumb a{padding:.45rem 0;}
}

@media print{
  /* unrevealed sections would otherwise print blank */
  html,body{background:#fff!important;color:#000!important}
  .js .rv{opacity:1!important;transform:none!important}
  .hero,.burger,.nav,footer nav,.cta,figure,picture{display:none!important}
  a{color:#000!important}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;word-break:break-all}
  section{padding-block:.6rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;}
  .js .rv,.js .beat li{opacity:1;transform:none;}
  .hero img{animation:none;transform:none;}
  .scrollcue{display:none;}
}
