@font-face { font-family: "HEI Body"; src: url('assets/hei-body.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: "Noyh"; src: url('assets/noyh-heavy.woff') format('woff'); font-display: swap; }

:root { --cream:#fcf6ed; --paper:#f2e9d9; --ink:#293534; --green:#006b55; --sage:#aad4ba; --peach:#efc1a8; --blue:#e5eeeb; --orange:#f36b2b; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"HEI Body", Arial, sans-serif; font-size:17px; line-height:1.65; }
a { color:inherit; }
img { display:block; max-width:100%; }
h1,h2,h3 { font-family:"Noyh", "Arial Rounded MT Bold", sans-serif; line-height:1.04; letter-spacing:.01em; margin:0; }
h1 { font-size:clamp(3.5rem,6vw,7.2rem); }
h2 { font-size:clamp(2.8rem,5vw,5.6rem); }
h3 { font-size:1.7rem; }
.eyebrow { margin:0 0 1rem; color:var(--green); text-transform:uppercase; letter-spacing:.16em; font-weight:800; font-size:.78rem; }
.button { display:inline-flex; gap:.6rem; align-items:center; justify-content:center; padding:.95rem 1.25rem; border-radius:4px; background:var(--green); color:white; text-decoration:none; text-transform:uppercase; font-weight:800; letter-spacing:.05em; font-size:.78rem; transition:transform .2s, box-shadow .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 8px 20px #006b5530; }
.button.orange { background:var(--orange); }

.site-header { height:112px; padding:14px 2.5vw; display:flex; align-items:center; gap:2rem; background:var(--cream); position:sticky; top:0; z-index:20; border-bottom:1px solid #29353410; }
.brand { display:flex; align-items:center; gap:15px; text-decoration:none; font-family:"Noyh"; font-size:1.15rem; line-height:1.6; letter-spacing:.04em; white-space:nowrap; }
.brand img { width:76px; height:76px; object-fit:contain; }
.nav { margin-left:auto; display:flex; align-items:center; gap:2rem; }
.nav a,.nav summary { text-decoration:none; font-size:.94rem; cursor:pointer; list-style:none; }
.nav a:hover,.nav summary:hover { color:var(--green); }
.nav details { position:relative; }
.nav summary::-webkit-details-marker { display:none; }
.nav summary::after { content:" +"; }
.nav details[open] summary::after { content:" −"; }
.dropdown { position:absolute; top:2rem; left:-1.2rem; width:190px; display:grid; gap:.5rem; padding:1.2rem; background:white; box-shadow:0 15px 30px #182b2520; }
.header-cta { margin-left:1rem; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; }
.menu-toggle span { display:block; width:25px; height:2px; background:var(--ink); margin:5px; }

.hero { min-height:760px; background:var(--paper); padding:8rem max(6vw,40px); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr); align-items:center; gap:7vw; overflow:hidden; }
.hero-copy { max-width:720px; }
.hero-copy > p:not(.eyebrow) { max-width:650px; margin:2.4rem 0; font-size:1.12rem; }
.hero-image-wrap { position:relative; max-width:520px; justify-self:center; }
.hero-image { width:420px; max-height:600px; object-fit:cover; position:relative; z-index:2; box-shadow:26px 26px 0 var(--peach); }
.sun-shape { position:absolute; width:420px; height:420px; border-radius:50%; background:#f4d265; top:-90px; right:-110px; }
.hero-note { position:absolute; z-index:3; bottom:-30px; left:-85px; padding:1.2rem 1.5rem; background:var(--green); color:white; line-height:1.45; font-size:.9rem; }
.notice { text-align:center; padding:5.5rem max(5vw,25px); background:var(--cream); }
.notice h2 { font-size:clamp(2.2rem,4vw,4rem); }
.notice > p:not(.eyebrow) { max-width:900px; margin:1.5rem auto 2rem; }

.about { padding:9rem max(6vw,40px); }
.section-heading { display:grid; grid-template-columns:1fr 2.1fr; align-items:start; gap:4rem; margin-bottom:5rem; }
.section-heading.compact { display:block; max-width:820px; margin-left:auto; margin-right:auto; text-align:center; }
.section-heading.compact > p:not(.eyebrow) { margin:1.5rem auto 0; max-width:680px; }
.award-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.award-card { min-height:380px; padding:3rem; display:grid; grid-template-columns:200px 1fr; gap:3rem; align-items:center; }
.award-card.peach { background:var(--peach); }
.award-card.green { background:var(--sage); }
.award-card img { max-height:210px; margin:auto; object-fit:contain; }
.award-card span { display:block; opacity:.45; font-weight:800; margin-bottom:1rem; }
.award-card p { margin-bottom:0; }

.story { background:var(--green); color:white; padding:9rem max(6vw,40px); display:grid; grid-template-columns:1.6fr .8fr; gap:9vw; align-items:center; }
.story .eyebrow { color:#b9dfcc; }
.story-copy p:not(.eyebrow) { max-width:760px; }
.quote-card { margin:0; padding:3rem; background:var(--cream); color:var(--ink); transform:rotate(2deg); }
.quote-card span { font-family:Georgia,serif; color:var(--orange); font-size:6rem; line-height:.5; }
.quote-card p { font-family:"Noyh"; font-size:2.2rem; line-height:1.2; }

.less-more { padding:9rem max(6vw,40px); background:var(--blue); }
.less-more img { width:min(1180px,100%); margin:4rem auto 0; }
.why { display:grid; grid-template-columns:.9fr 1.1fr; min-height:720px; }
.why-art { background:var(--peach); display:grid; place-items:center; padding:4rem; overflow:hidden; }
.why-art img { width:min(500px,100%); }
.why-copy { padding:7rem max(7vw,55px); background:var(--cream); }
.why-copy ul { list-style:none; padding:0; margin:2.5rem 0 0; display:grid; grid-template-columns:1fr 1fr; gap:1rem 2rem; }
.why-copy li { position:relative; padding-left:1.6rem; border-bottom:1px solid #29353420; padding-bottom:.8rem; }
.why-copy li::before { content:"•"; color:var(--orange); position:absolute; left:0; font-size:1.5rem; line-height:1; }

.testimonials { padding:9rem max(6vw,40px); background:#eee2d7; }
.testimonial-card { max-width:1000px; margin:auto; display:grid; grid-template-columns:300px 1fr; background:var(--cream); box-shadow:25px 25px 0 var(--sage); }
.testimonial-card > img { width:100%; height:100%; object-fit:cover; min-height:420px; }
.testimonial-card > div { padding:4rem; }
.stars { color:var(--orange); letter-spacing:.2em; }
blockquote { font-family:"Noyh"; font-size:2rem; line-height:1.25; margin:1.5rem 0; }
.testimonial-card p span { color:#60706c; }
.slider-controls { display:flex; align-items:center; gap:1rem; margin-top:2rem; }
.slider-controls button { width:42px; height:42px; border:1px solid var(--ink); background:transparent; cursor:pointer; border-radius:50%; font-size:1.15rem; }

.location { display:grid; grid-template-columns:.8fr 1.2fr; }
.location-info { background:var(--sage); padding:8rem max(6vw,55px); }
.location-info h2 { font-size:clamp(2.6rem,4vw,4.4rem); }
.location-info address { font-style:normal; font-size:1.15rem; margin:2.5rem 0 1.5rem; }
.contact-links { display:flex; flex-direction:column; margin-bottom:2rem; }
.contact-links a { font-weight:800; }
.local-map { min-height:600px; position:relative; overflow:hidden; background:#e9dfcf; display:grid; place-items:center; }
.map-grid { position:absolute; inset:-15%; transform:rotate(-12deg); }
.map-grid span { position:absolute; display:block; background:var(--cream); border:1px solid #cfc1aa; }
.map-grid span:nth-child(1) { width:130%; height:64px; top:18%; left:-15%; }
.map-grid span:nth-child(2) { width:130%; height:50px; top:55%; left:-15%; }
.map-grid span:nth-child(3) { width:55px; height:130%; left:24%; top:-15%; }
.map-grid span:nth-child(4) { width:72px; height:130%; left:68%; top:-15%; }
.map-grid span:nth-child(5) { width:40%; height:38%; right:6%; bottom:8%; background:var(--sage); border-radius:50%; }
.map-pin { z-index:2; width:84px; height:84px; border-radius:50% 50% 50% 0; background:var(--green); color:white; transform:rotate(-45deg); display:grid; place-items:center; box-shadow:0 12px 28px #26333240; }
.map-pin span { transform:rotate(45deg); font-family:"Noyh"; }
.map-label { z-index:2; position:absolute; bottom:8%; left:8%; padding:1rem 1.25rem; background:var(--cream); display:flex; flex-direction:column; box-shadow:10px 10px 0 var(--peach); }
.map-label small { margin-top:.25rem; }
.waitlist { padding:9rem max(6vw,40px); background:var(--blue); display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; align-items:start; }
.waitlist-copy { position:sticky; top:150px; }
.waitlist-copy > p:not(.eyebrow) { max-width:560px; }
.privacy-note { margin-top:2rem; padding:1.5rem; border-left:5px solid var(--green); background:var(--cream); display:flex; flex-direction:column; }
.waitlist-form { padding:3rem; background:var(--cream); display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; box-shadow:24px 24px 0 var(--sage); }
.waitlist-form label { display:flex; flex-direction:column; gap:.45rem; font-size:.84rem; font-weight:800; }
.waitlist-form input,.waitlist-form select,.waitlist-form textarea { width:100%; border:1px solid #29353455; background:white; color:var(--ink); padding:.85rem; font:inherit; border-radius:0; }
.waitlist-form input:focus,.waitlist-form select:focus,.waitlist-form textarea:focus { outline:3px solid #aad4ba; border-color:var(--green); }
.waitlist-form .full-field { grid-column:1 / -1; }
.waitlist-form .consent { flex-direction:row; align-items:flex-start; font-weight:400; }
.waitlist-form .consent input { width:18px; height:18px; flex:0 0 auto; }
.waitlist-form button { border:0; cursor:pointer; }
.form-success { background:var(--cream); padding:4rem; box-shadow:24px 24px 0 var(--sage); }
.form-success > span { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--green); color:white; font-size:2rem; margin-bottom:2rem; }
.form-success .button { border:0; cursor:pointer; margin-top:1rem; }
.final-cta { background:var(--green); color:white; text-align:center; padding:8rem 2rem; }
.final-cta .eyebrow { color:#b9dfcc; }
.final-cta .button { margin-top:2.5rem; }
.button.light { background:var(--cream); color:var(--green); }

footer { background:var(--cream); padding:5rem max(4vw,30px) 2rem; }
.footer-top { display:grid; grid-template-columns:1fr 1.2fr .6fr; gap:4rem; align-items:start; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:.75rem 2rem; }
.footer-links a,.social-links a { text-decoration:none; }
.social-links { display:flex; flex-direction:column; gap:.75rem; }
.footer-bottom { display:flex; justify-content:space-between; margin-top:4rem; padding-top:1.5rem; border-top:1px solid #29353425; font-size:.82rem; }
.local-info-panels { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:3rem; }
.local-info-panels details { border-top:1px solid #29353440; padding:1rem 0; }
.local-info-panels summary { cursor:pointer; font-family:"Noyh"; font-size:1.2rem; }

@media (max-width:1100px) {
  .header-cta { display:none; }
  .nav { gap:1.2rem; }
  .hero { grid-template-columns:1fr 1fr; }
  .award-card { grid-template-columns:150px 1fr; padding:2rem; gap:2rem; }
  .why-copy ul { grid-template-columns:1fr; }
}
@media (max-width:800px) {
  body { font-size:16px; }
  .site-header { height:86px; padding:8px 18px; }
  .brand { font-size:.9rem; }
  .brand img { width:58px; height:58px; }
  .menu-toggle { display:block; margin-left:auto; }
  .nav { display:none; position:absolute; top:86px; left:0; right:0; margin:0; padding:2rem; background:var(--cream); flex-direction:column; align-items:flex-start; box-shadow:0 15px 30px #182b2520; }
  .nav.open { display:flex; }
  .dropdown { position:static; box-shadow:none; padding:1rem 0 0 1rem; background:transparent; }
  .hero { padding:5rem 24px 6rem; grid-template-columns:1fr; gap:5rem; }
  .hero h1 { font-size:clamp(3.2rem,15vw,5.3rem); }
  .hero-image { width:min(82vw,420px); }
  .hero-note { left:-10px; }
  .section-heading { grid-template-columns:1fr; gap:1rem; margin-bottom:3rem; }
  .about,.story,.less-more,.testimonials { padding:6rem 24px; }
  .award-grid,.story,.why,.location { grid-template-columns:1fr; }
  .award-card { grid-template-columns:1fr; text-align:center; }
  .quote-card { transform:none; }
  .why-copy { padding:6rem 24px; }
  .testimonial-card { grid-template-columns:1fr; box-shadow:12px 12px 0 var(--sage); }
  .testimonial-card > img { height:280px; min-height:0; }
  .testimonial-card > div { padding:2rem; }
  blockquote { font-size:1.55rem; }
  .location-info { padding:6rem 24px; }
  .local-map { min-height:420px; }
  .waitlist { grid-template-columns:1fr; padding:6rem 24px; }
  .waitlist-copy { position:static; }
  .waitlist-form { grid-template-columns:1fr; padding:2rem; box-shadow:12px 12px 0 var(--sage); }
  .waitlist-form .full-field { grid-column:auto; }
  .local-info-panels { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; gap:2.5rem; }
  .footer-bottom { flex-direction:column; gap:1rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
