:root{
  --dark:#18211a;--dark-2:#222e24;--paper:#eef0e9;--paper-2:#e1e5db;--ink:#1b231c;--ink-soft:#4a554b;
  --on-dark:#eef0e9;--on-dark-soft:#aeb8ab;--moss:#425b35;--gold:#e4ad27;
  --m:clamp(18px,5.5vw,84px);--gap:clamp(12px,1.4vw,22px);
  --s-small:clamp(.875rem,.85rem + .1vw,.9375rem);
  --s-body:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --s-lead:clamp(1.375rem,1.1rem + 1vw,1.875rem);
  --s-display:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);
  --s-head:clamp(2.25rem,1.3rem + 3.6vw,4.75rem);
  --ease:cubic-bezier(.16,1,.3,1);
  font-family:"Switzer",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-size:var(--s-body);line-height:1.45;letter-spacing:-.01em;font-synthesis:none;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
figure{margin:0}
h1,h2,h3,p,dl,dd{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
::selection{background:var(--gold);color:var(--ink)}
.skip-link{position:fixed;left:12px;top:-5rem;z-index:99;background:var(--gold);color:var(--ink);padding:.8rem 1rem}
.skip-link:focus{top:12px}

h2{font-weight:400;letter-spacing:-.03em;line-height:1.05}
h3{font-weight:500;letter-spacing:-.02em;line-height:1.15}

/* controls */
.button{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;background:var(--gold);color:var(--ink);font-weight:500;font-size:var(--s-small);text-decoration:none;border:0;border-radius:0;cursor:pointer;transition:transform 200ms var(--ease),background-color 200ms ease}
.button:hover{transform:translateY(-2px);background:#f0bf45}
.button:active{transform:translateY(0)}
.link{font-size:var(--s-body);font-weight:500;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:2px;transition:text-decoration-color 200ms ease,transform 200ms var(--ease)}
.link:hover{text-decoration-color:var(--gold)}

/* header sits on the hero */
.site-header{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;gap:clamp(20px,3vw,48px);padding:22px var(--m);color:var(--on-dark)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:500;font-size:var(--s-small);line-height:1.1;white-space:nowrap}
.brand img{width:36px;height:36px;flex:none}
.site-nav{display:flex;gap:clamp(18px,2.4vw,36px);margin-right:auto}
.site-nav a{text-decoration:none;font-size:var(--s-small)}
.site-nav a:hover{text-decoration:underline;text-underline-offset:.3em}

/* hero */
.hero{min-height:min(88svh,820px);align-items:end;background:var(--dark);color:var(--on-dark);display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:center;padding:clamp(110px,12vw,150px) var(--m) clamp(56px,6vw,88px)}
.hero-copy{grid-column:1 / span 11;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(20px,2.4vw,32px)}
.hero h1{font-weight:400;font-size:clamp(2.75rem,1rem + 6.4vw,7rem);line-height:1;letter-spacing:-.04em;max-width:11em}
.hero-lead{font-size:var(--s-lead);line-height:1.3;letter-spacing:-.02em;color:var(--on-dark-soft);max-width:26em}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 28px;margin-top:8px}
.hero .link:hover{text-decoration-color:var(--gold)}

/* intro */
.intro{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:start;padding:clamp(80px,9vw,140px) var(--m)}
.statement{font-size:var(--s-lead);line-height:1.25;letter-spacing:-.02em}
.intro .statement{grid-column:1 / span 8;font-size:var(--s-display);line-height:1.15;letter-spacing:-.03em}
.intro-list{grid-column:10 / -1;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;font-weight:500;padding-top:.5em}

/* care */
.care{padding:clamp(48px,6vw,88px) var(--m);background:var(--paper-2)}
.care h2{font-size:var(--s-display);margin-bottom:clamp(24px,3vw,40px)}
.care-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px) var(--gap)}
.care-item h3{font-size:var(--s-body)}
.care-item p{margin-top:6px;font-size:var(--s-small);line-height:1.5;color:var(--ink-soft);max-width:34ch}

/* referrals: wide photo, paper note, tile, facts */
.referrals{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding:clamp(80px,10vw,150px) var(--m) clamp(100px,12vw,180px);background:var(--dark);color:var(--on-dark)}
.referrals h2{grid-column:1 / span 8;font-size:var(--s-head)}
.referrals .lead{grid-column:1 / span 6;margin-top:24px;font-size:var(--s-lead);line-height:1.25;letter-spacing:-.02em}
.ref-photo{grid-column:1 / span 8;grid-row:3;margin-top:clamp(48px,6vw,88px);aspect-ratio:16/10}
.ref-paper{grid-column:6 / span 3;grid-row:3;align-self:start;margin-top:clamp(48px,6vw,88px);background:var(--paper);color:var(--ink);padding:20px;font-size:var(--s-small);line-height:1.45;max-width:340px;justify-self:end;width:100%}
.finder{grid-column:9 / -1;grid-row:3;margin-top:clamp(48px,6vw,88px);background:var(--moss);color:var(--on-dark);padding:clamp(20px,2.4vw,36px);display:flex;flex-direction:column;gap:20px;align-self:start}
.finder h3{font-size:var(--s-lead)}
.finder-options{display:flex;flex-direction:column;gap:8px}
.finder-options button{min-height:48px;text-align:left;padding:10px 16px;background:transparent;border:2px solid rgba(238,240,233,.45);border-radius:0;cursor:pointer;font-size:var(--s-small);transition:background-color 200ms ease,border-color 200ms ease}
.finder-options button:hover{border-color:var(--on-dark)}
.finder-options button.is-active{background:var(--on-dark);color:var(--ink);border-color:var(--on-dark)}
.finder-answer{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.finder-title{font-weight:500}
.finder-answer p:last-of-type{font-size:var(--s-small)}
.ref-facts{grid-column:9 / -1;grid-row:4;margin-top:clamp(28px,3vw,44px);display:grid;grid-template-columns:1fr 1fr;gap:24px var(--gap);font-size:var(--s-small);align-self:start}
.ref-facts dt{font-weight:500;color:var(--on-dark)}
.ref-facts dd{color:var(--on-dark-soft);margin-top:4px}

/* faq: questions beside a tall photograph */
.faq{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);background:var(--paper-2);padding:clamp(80px,10vw,150px) var(--m)}
.faq-copy{grid-column:1 / span 5;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.faq h2{font-size:var(--s-display)}
.facts{font-size:var(--s-body);line-height:1.5}
.faq-list{display:flex;flex-direction:column;gap:6px;width:100%}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;cursor:pointer;list-style:none;font-weight:500;font-size:var(--s-body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform 250ms var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{color:var(--ink-soft);padding:2px 0 14px;max-width:46ch}
.faq-tall{grid-column:8 / -1;grid-row:1;aspect-ratio:3/4;margin-bottom:80px;margin-top:calc(-1 * clamp(80px,10vw,150px));position:relative}
.faq-small{grid-column:7 / span 2;grid-row:1;align-self:end;aspect-ratio:1;margin-bottom:40px;position:relative;z-index:1;margin-right:-24px}

/* find us */
.find{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding:clamp(80px,10vw,150px) var(--m);align-items:start}
.find h2{grid-column:1 / -1;font-size:var(--s-head);margin-bottom:clamp(32px,4vw,56px)}
.map{grid-column:1 / span 7;position:relative;aspect-ratio:16/10;background:var(--paper-2);overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05) brightness(1.02)}
.map::after{content:"";position:absolute;inset:0;background:var(--moss);mix-blend-mode:multiply;opacity:.55;pointer-events:none;transition:opacity 400ms ease}
.map:hover::after{opacity:.2}
.find-info{grid-column:9 / -1;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.find-address{font-size:var(--s-lead);line-height:1.2;letter-spacing:-.02em}
.open-status{display:inline-flex;align-items:center;gap:10px;margin-top:12px;font-weight:500;font-size:var(--s-small)}
.open-status::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--ink-soft)}
.open-status.is-open::before{background:#2f8f4e}
.hours{list-style:none;margin:8px 0 0;padding:0;width:100%;display:flex;flex-direction:column;gap:6px}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--paper-2)}
.hours li span:last-child{font-weight:500}
.hours li.is-today{background:var(--moss);color:var(--on-dark)}

/* contact */
.contact{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding:clamp(80px,10vw,150px) var(--m);align-items:start}
.contact .statement{grid-column:1 / span 7;font-size:var(--s-display);line-height:1.15;letter-spacing:-.03em}
.contact-links{grid-column:9 / -1;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-top:.5em}
.contact-q{font-weight:500}
.contact-meta{margin-top:8px;font-size:var(--s-small);color:var(--ink-soft);max-width:30ch}

/* footer */
.site-footer{background:var(--dark);color:var(--on-dark);padding:clamp(48px,6vw,80px) var(--m) 28px;display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);row-gap:clamp(40px,5vw,64px)}
.footer-brand{grid-column:1 / span 5;display:flex;align-items:flex-start;gap:14px;font-size:var(--s-lead);line-height:1.1;letter-spacing:-.02em}
.footer-brand img{width:44px;height:44px;flex:none}
.footer-cols{grid-column:7 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:28px var(--gap);font-size:var(--s-small)}
.footer-cols p:first-child{color:var(--on-dark)}
.footer-cols p+p{color:var(--on-dark-soft);margin-top:6px}
.footer-cols a{text-decoration:none}
.footer-cols a:hover{text-decoration:underline;text-underline-offset:.25em}
.legal{grid-column:1 / -1;font-size:var(--s-small);color:var(--on-dark-soft)}

/* entrances: only hide content when script is running */
.js .rise{opacity:0;transform:translateY(24px);transition:opacity 800ms var(--ease),transform 800ms var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js .rise.in{opacity:1;transform:none}

@media (max-width:900px){
  .site-nav{display:none}
  .site-header{justify-content:space-between;padding:16px var(--m)}
  .brand{font-size:13px}
  .brand img{width:30px;height:30px}
  .site-header .button{min-height:44px;padding:8px 16px}
  .find{display:flex;flex-direction:column;gap:32px}
  .find h2{margin-bottom:0}
  .map{aspect-ratio:4/3;width:100%}
  .find-info{width:100%}
  .hero,.intro,.contact,.referrals,.faq,.site-footer{display:flex;flex-direction:column}
  .hero{min-height:0;align-items:stretch;gap:36px;padding-top:96px}
  .intro .statement,.contact .statement{font-size:clamp(1.5rem,6vw,2rem)}
  .intro-list{margin-top:28px;padding-top:0}
  .care-grid{grid-template-columns:1fr;gap:20px}
  .contact{gap:28px}
  .site-footer{gap:36px}
  .footer-cols{grid-template-columns:1fr 1fr}
  .referrals h2{margin-bottom:0}
  .ref-photo,.ref-paper,.finder,.ref-facts{margin-top:32px}
  .ref-paper{max-width:none}
  .faq-tall{order:-1;margin:-60px 0 0;width:100%;aspect-ratio:4/5}
  .faq-small{order:-1;width:38%;margin:-14vw 0 32px auto;align-self:flex-end}
  .faq-copy{width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.01ms!important;animation:none!important}
  .js .rise{opacity:1;transform:none}
}
