@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root { --ink:#213142; --cream:#fff9eb; --yellow:#ffd766; --coral:#f26c56; --pink:#ef9dad; --green:#79b397; --line:rgba(33,49,66,.15); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; line-height:1.55; }
.draft-bar { background:var(--ink); color:#fff; padding:.7rem 1.25rem; text-align:center; font-size:.78rem; letter-spacing:.02em; }
.hero { min-height:680px; position:relative; overflow:hidden; padding:0 7vw 5rem; background:var(--yellow); isolation:isolate; }
.nav { display:flex; align-items:center; justify-content:space-between; padding:1.65rem 0; position:relative; z-index:2; }
.brand { color:var(--ink); text-decoration:none; font-family:Fraunces,serif; font-size:2rem; font-weight:700; line-height:.8; }
.brand span { display:block; font:700 .55rem "DM Sans",sans-serif; letter-spacing:.18em; text-transform:uppercase; margin:9px 0 0 3px; }
.nav-link { color:var(--ink); font-size:.86rem; font-weight:700; text-decoration:none; border-bottom:2px solid var(--coral); padding-bottom:3px; }
.hero-copy { position:relative; z-index:2; max-width:630px; padding-top:7rem; }
.eyebrow { color:var(--coral); font-size:.75rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin:0 0 1.1rem; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:Fraunces,serif; line-height:1.02; }
h1 { font-size:clamp(3.6rem,7.7vw,7.2rem); letter-spacing:-.065em; margin-bottom:1.45rem; } h1 em { color:var(--coral); font-style:normal; }
.intro { max-width:455px; font-size:1.07rem; margin-bottom:2rem; }
.button { display:inline-block; background:var(--ink); color:#fff; text-decoration:none; border-radius:999px; padding:.9rem 1.35rem; font-weight:700; font-size:.9rem; }
.hero-art { position:absolute; z-index:-1; inset:0 0 0 42%; overflow:hidden; }
.sun { background:#f59672; border-radius:50%; height:330px; width:330px; position:absolute; right:16%; top:20%; }
.hill { position:absolute; border-radius:100% 100% 0 0; bottom:-17%; }.hill-one { height:45%; width:100%; background:var(--green); right:-15%; transform:rotate(-11deg); }.hill-two { height:32%; width:85%; background:#a7cf8a; left:0; transform:rotate(13deg); }
.ice-cream { position:absolute; bottom:13%; right:20%; width:185px; height:280px; transform:rotate(10deg); }.ice-cream i,.ice-cream b,.ice-cream strong { display:block; position:absolute; border-radius:50%; width:145px; height:145px; left:20px; }.ice-cream i { background:#fff4e2; top:0; }.ice-cream b { background:var(--pink); top:68px; }.ice-cream strong { background:var(--coral); top:135px; }.ice-cream span { position:absolute; background:#d99b52; clip-path:polygon(0 0,100% 0,50% 100%); width:118px; height:190px; bottom:0; left:34px; }
main { max-width:1180px; margin:auto; padding:0 7vw; }.welcome { display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; padding:8.5rem 0; }.welcome h2,.range h2,.visit h2 { font-size:clamp(2.4rem,4vw,4rem); letter-spacing:-.055em; margin:0; }.welcome > p { margin:auto 0; font-size:1.12rem; max-width:420px; }
.range { padding:5rem 0 8.5rem; border-top:1px solid var(--line); }.range > h2 { max-width:700px; margin-bottom:3rem; }.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }.cards article { background:#fff; border-radius:18px; padding:2rem; min-height:200px; }.cards article:nth-child(2) { background:var(--pink); }.cards article:nth-child(3) { background:#bde0d0; }.icon { color:var(--coral); display:block; font-size:1.3rem; margin-bottom:2.3rem; }.cards h3 { font-size:1.35rem; margin-bottom:.65rem; }.cards p { font-size:.94rem; margin:0; }
.visit { background:var(--ink); color:#fff; border-radius:22px 22px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:4rem; padding:5rem; }.visit .eyebrow { color:var(--yellow); }.visit h2 { color:var(--yellow); }.visit address { font-style:normal; margin:2rem 0 .5rem; font-size:1.15rem; }.phone { color:#fff; font-size:1.1rem; font-weight:700; }.hours { background:rgba(255,255,255,.1); padding:2rem; border-radius:14px; }.hours h3 { font-size:1.3rem; margin-bottom:1.4rem; }.hours dl { margin:0; }.hours dl div { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-top:1px solid rgba(255,255,255,.18); }.hours dt { font-weight:700; }.hours dd { margin:0; text-align:right; }.hours p { color:#cbd5db; font-size:.78rem; margin:1.2rem 0 0; }
footer { background:var(--ink); border-top:1px solid rgba(255,255,255,.2); color:#fff; padding:2rem 7vw 2.5rem; display:flex; gap:2rem; justify-content:space-between; font-size:.85rem; }footer p { margin:0; }.fine-print { max-width:500px; color:#cbd5db; text-align:right; }
@media (max-width:760px) { .hero { min-height:600px; padding:0 6vw 4rem; }.hero-copy { padding-top:4rem; }.hero-art { inset:42% -16% 0 28%; opacity:.65; }.sun { width:220px; height:220px; right:17%; top:0; }.ice-cream { transform:scale(.7) rotate(10deg); transform-origin:bottom; right:7%; bottom:0; }.welcome,.visit { grid-template-columns:1fr; gap:2.5rem; }.welcome { padding:5rem 0; }.cards { grid-template-columns:1fr; }.range { padding:4rem 0 5rem; }.visit { margin:0 -7vw; border-radius:0; padding:3.5rem 7vw; }.hours dl div { display:block; }.hours dd { text-align:left; margin-top:.25rem; } footer { display:block; } .fine-print { text-align:left; margin-top:1rem; } }
