:root{--g:#1f5a2a;--g2:#3c8d3f;--cream:#f4f1d6;--card:#fffdf2}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:var(--cream);color:#223}
header{background:var(--g);color:#fff;padding:.7rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
header h1{margin:0;font-size:1.4rem;font-weight:900}header a,header button{color:#fff}
.awning{height:22px;background:repeating-linear-gradient(90deg,var(--g2) 0 30px,var(--cream) 30px 60px);border-bottom:3px solid var(--g)}
.hero{min-height:260px;background:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.35)),url(images/hero.jpg) center/cover,linear-gradient(135deg,#dfe8b8,#f4f1d6);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:1rem}
.hero h2{font-size:2.4rem;margin:.2rem;text-shadow:0 2px 6px #000}.hero p{text-shadow:0 1px 4px #000;font-weight:600}
main{max-width:1100px;margin:auto;padding:1rem;display:grid;grid-template-columns:1fr 340px;gap:1rem}
@media(max-width:800px){main{grid-template-columns:1fr}}
h3{color:var(--g);border-bottom:2px dashed var(--g2);padding-bottom:.2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}
.card,.panel{background:var(--card);border:2px solid #cfd8a8;border-radius:12px;padding:.8rem}
.card img{width:100%;height:120px;object-fit:cover;border-radius:8px}
.card b{color:var(--g)}.price{font-weight:800;color:var(--g2)}
button{background:var(--g2);color:#fff;border:0;border-radius:8px;padding:.5rem .8rem;font-weight:700;cursor:pointer}
button.link{background:none;padding:0;text-decoration:underline}button.sec{background:#888}
input,select,textarea{width:100%;padding:.5rem;margin:.2rem 0 .5rem;border:1px solid #bbb;border-radius:6px;font:inherit}
.row{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.muted{color:#666;font-size:.85rem}
.fence{height:28px;background:repeating-linear-gradient(90deg,#fff 0 10px,transparent 10px 22px),linear-gradient(transparent 8px,#fff 8px 12px,transparent 12px 18px,#fff 18px 22px,transparent 22px);margin-top:1rem}
footer{background:var(--g);color:#fff;text-align:center;padding:1rem}
.hidden{display:none}table{width:100%;border-collapse:collapse}td,th{padding:.35rem;border-bottom:1px solid #ddd;text-align:left;vertical-align:top}
.msg{background:#dff0d0;border-left:4px solid var(--g2);padding:.6rem;margin:.5rem 0}
body{background:var(--cream) url(images/doodles.svg);font-family:Nunito,system-ui,sans-serif}
h1,h2,h3,button,.pill{font-family:Fredoka,'Baloo 2',system-ui,sans-serif}
.awning{height:26px;background:repeating-linear-gradient(90deg,#4CAF2E 0 34px,#fffbe6 34px 68px);border:0;border-bottom:4px solid #1F5E3B;border-radius:0 0 50% 50%/0 0 30% 30%}
header{background:#fffbe6;color:#1F5E3B;border-bottom:3px solid #1F5E3B}header a,header button.link{color:#1F5E3B}
header h1{display:flex;align-items:center;gap:.4rem;font-size:1.6rem;font-weight:700}.hlogo{height:46px}
.pill{background:#1F5E3B;color:#fff;border-radius:99px;padding:.05rem .7rem;font-size:.8rem;letter-spacing:.15em}
.hero{background:radial-gradient(circle,#fffdf0 0,#eef3cf 70%);color:#1F5E3B;min-height:0;padding:1.5rem 1rem}
.hero p{text-shadow:none;font-size:1.1rem}.biglogo{width:min(420px,85vw)}
.fence{height:34px;margin:0;background:linear-gradient(#fff,#fff) 0 10px/100% 5px no-repeat,linear-gradient(#fff,#fff) 0 22px/100% 5px no-repeat,
 conic-gradient(from 135deg at 7px 7px,#fff 90deg,transparent 0) 0 0/22px 34px;filter:drop-shadow(0 1px 0 #b8c49a)}
button{background:#4CAF2E}button.sec{background:#1F5E3B}h3{color:#1F5E3B}
.ticket{border:2px dashed #b8c98a;border-radius:10px;padding:.5rem;margin-bottom:.5rem;cursor:pointer}.ticket.act{border:2px solid #4CAF2E;background:#f1f9e8}
.ticket button{padding:.15rem .5rem;margin-left:2px}.mv{width:auto;padding:.1rem;margin:0;font-size:.8rem}.tk{border-left:3px solid #4CAF2E;padding-left:.4rem;margin-bottom:.4rem}
:root{--or:#F28C28;--red:#D9412B;--dg:#1F5E3B}
body.side{background-color:#fbf6e3}
#nav{position:fixed;left:0;top:0;bottom:0;width:230px;background:var(--dg);color:#fff;padding:1rem .8rem;overflow:auto;z-index:20;transition:transform .2s}
#nav .navlogo img{width:100%;display:block;margin-bottom:1rem}
#nav a{display:block;color:#fff;text-decoration:none;padding:.55rem .6rem;border-radius:8px;font-family:Fredoka,sans-serif;font-size:1.05rem}
#nav a:hover{background:#2c7a4f}#nav a.ind{padding-left:1.4rem;font-size:.95rem;opacity:.9}.navsub{display:block;color:#f6c37e;font-size:.8rem;letter-spacing:.15em;margin:.6rem .6rem 0;text-transform:uppercase}
.wrap{margin-left:230px}#burger{display:none}
@media(max-width:900px){.wrap{margin-left:0}#nav{transform:translateX(-100%)}body.open #nav{transform:none;box-shadow:4px 0 20px #0005}
 #burger{display:block;position:fixed;top:.6rem;left:.6rem;z-index:30;background:var(--dg);font-size:1.4rem;padding:.3rem .7rem}header{padding-left:4rem}}
header{justify-content:flex-end;min-height:44px}
button{background:var(--or)}button:hover{filter:brightness(.92)}button.sec{background:var(--dg)}button.cta{background:var(--red);width:100%;font-size:1.05rem;padding:.7rem}
.price{color:var(--red)}.price s{color:#999;font-weight:400}
.badge{display:inline-block;background:var(--red);color:#fff;border-radius:99px;padding:.05rem .55rem;font-size:.75rem;font-weight:800;font-family:Fredoka,sans-serif}
.card{position:relative;border-color:#e3d9a8;box-shadow:0 2px 0 #e3d9a8}.card .badge{position:absolute;top:-8px;right:8px}
.sph{color:var(--red);border-color:var(--or)}h3{scroll-margin-top:1rem}.mp{background:#fff1df;border-left:3px solid var(--or);padding:.3rem .5rem;font-size:.85rem;border-radius:4px}
.hero p{font-weight:700}#nav .badge{background:var(--or)}
.hero{padding:0;display:block;background:#fbf6e3}.banner{display:block;width:100%;height:250px;object-fit:cover;object-position:50% 35%}
.hero p{margin:0;padding:.5rem 1rem;background:var(--dg);color:#fff;text-align:center;font-size:1rem}
@media(max-width:700px){.banner{height:160px;object-position:50% 30%}}
.logobadge{display:block;background:#fbf6e3;border-radius:14px;padding:8px}.logobadge img{width:100%;display:block}
.navword{display:block;text-align:center;font-family:Fredoka,sans-serif;font-weight:700;font-size:1.3rem;color:#fff;margin:.4rem 0 .2rem}.navword .pill{background:var(--or);display:inline-block;margin-top:.2rem}
#nav .navlogo{margin-bottom:.8rem}#nav .navlogo:hover{background:none}
/* full-width banner + sticky collapsible nav */
.topbanner{background:#DCD497;height:250px;display:flex;justify-content:center}.topbanner img{height:100%;width:100%;max-width:100%;object-fit:contain}
.layout{display:flex;align-items:flex-start}
#nav{position:sticky;top:0;height:100vh;flex:0 0 230px;width:230px;transform:none;transition:width .2s,flex-basis .2s}
.wrap{margin-left:0;flex:1;min-width:0}.tagline{background:var(--dg);color:#fff;text-align:center;padding:.5rem 1rem;font-weight:700;font-family:Fredoka,sans-serif}
#nav .navlogo{background:#fbf6e3;border-radius:14px;padding:8px}#nav .navlogo img{margin:0}
#collapse{display:block;margin:0 0 .6rem auto;background:#2c7a4f;padding:.2rem .6rem}
#nav a{display:flex;gap:.6rem;align-items:center;white-space:nowrap}#nav a.ind{padding-left:.6rem}.ic{width:1.4rem;text-align:center;flex:none}
body.collapsed #nav{flex-basis:76px;width:76px;padding:.8rem .5rem}body.collapsed #nav .lbl,body.collapsed .navsub{display:none}
body.collapsed #nav a{justify-content:center;padding:.55rem 0;position:relative}body.collapsed #collapse{transform:scaleX(-1);margin:0 auto .6rem}
body.collapsed #nav .navlogo{padding:4px}
@media(max-width:900px){.topbanner{height:140px}#nav{position:fixed;top:0;left:0;bottom:0;height:auto;transform:translateX(-100%);z-index:40;width:230px}
 body.open #nav{transform:none}#collapse{display:none}body.collapsed #nav .lbl{display:inline}#burger{top:.5rem}header{padding-left:4rem}}
/* native illustrated banner */
.topbanner{position:relative;height:240px;overflow:hidden;background:#EFE9B0 url(images/doodles.svg);background-size:260px;display:block}
.scallop{position:absolute;top:0;left:0;right:0;height:34px;z-index:3;
 background:radial-gradient(circle at 17px 0,transparent 0,transparent 0) ,
 linear-gradient(transparent 22px,transparent 0),
 repeating-linear-gradient(90deg,#4CAF2E 0 34px,#FBF7E1 34px 68px);
 -webkit-mask:radial-gradient(17px at 17px 17px,#000 98%,transparent) 0 5px/34px 34px repeat-x,linear-gradient(#000,#000) 0 0/100% 22px no-repeat;
 mask:radial-gradient(17px at 17px 17px,#000 98%,transparent) 0 5px/34px 34px repeat-x,linear-gradient(#000,#000) 0 0/100% 22px no-repeat;filter:drop-shadow(0 3px 0 #1F5E3B)}
.wm{position:absolute;left:50%;top:44px;transform:translateX(-50%);text-align:center;z-index:2}
.wm1{font-family:Fredoka,'Baloo 2',sans-serif;font-weight:700;color:#1F5E3B;font-size:62px;line-height:.86;letter-spacing:.01em}
.wm2{display:inline-block;margin-top:6px;background:#1F5E3B;color:#fff;font-family:Fredoka,sans-serif;font-weight:600;font-size:17px;letter-spacing:.42em;padding:3px 10px 3px 18px;border-radius:99px}
.veg{position:absolute;left:0;right:0;bottom:22px;height:86px;background:url(images/veg.svg) 0 100%/320px 86px repeat-x;z-index:1}
.wm{z-index:2}.fencerow{position:absolute;left:0;right:0;bottom:0;height:40px;background:url(images/fence.svg) 0 100%/30px 40px repeat-x;z-index:3}
.topbanner+.awning{display:none}
#nav .navlogo{background:none;padding:4px}
@media(max-width:900px){.topbanner{height:150px}.wm{top:28px}.wm1{font-size:36px}.wm2{font-size:11px;margin-top:3px}.veg{height:54px;bottom:14px;background-size:200px 54px}.fencerow{height:26px;background-size:20px 26px}.scallop{transform:scale(.75);transform-origin:top left;width:134%}}
@media(min-width:901px){.wm1{font-size:70px}.wm{top:40px}.veg{background-size:430px 92px;height:92px}}
/* ===== design system pass ===== */
body{font-size:16px;line-height:1.5}
.scallop{mask:none;-webkit-mask:none;filter:none;height:30px;background:url(images/awning.svg) 0 0/70px 30px repeat-x}
.veg{left:0;right:0;bottom:20px;height:100px;background:url(images/veg.svg) center bottom/auto 100% no-repeat}
.wm{top:38px}.wm1{font-size:72px;line-height:.84;letter-spacing:-.005em;text-shadow:0 2px 0 rgba(255,255,255,.6)}.wm2{font-size:16px;margin-top:8px;padding:4px 12px 4px 20px}
.topbanner{height:248px}
@media(max-width:900px){.topbanner{height:150px}.scallop{transform:none;width:auto;height:20px;background-size:47px 20px}.wm{top:24px}.wm1{font-size:38px}.wm2{font-size:10px;margin-top:4px;padding:2px 8px 2px 13px}.veg{height:60px;bottom:12px}.fencerow{height:26px}}
main{max-width:1200px;padding:24px;gap:24px;grid-template-columns:1fr 340px}
@media(max-width:800px){main{grid-template-columns:1fr;padding:16px;gap:16px}}
h3{font-size:25px;line-height:1.2;margin:32px 0 16px;padding-bottom:8px}section>div:first-child h3{margin-top:8px}
.grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.card,.panel{border:1px solid #e6dcae;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.08);background:#fffdf4}
.card{display:flex;flex-direction:column;gap:8px}.card p{margin:0}.card b{font-size:18px;line-height:1.25;font-family:Fredoka,sans-serif;font-weight:600}.card .row{margin-top:auto}
.card .muted{font-size:14px}.price{font-size:18px;font-weight:800}
button{min-height:40px;padding:8px 16px;border-radius:8px;transition:filter .15s,transform .05s}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #F28C28;outline-offset:2px}
.ticket button{min-height:32px;padding:4px 10px}
.panel h3{margin-top:0}aside .panel+.panel{margin-top:16px!important}
input,select,textarea{padding:10px 12px;margin:4px 0 12px;border-radius:8px}
.tagline{padding:8px 16px;font-size:15px}.fence{display:none}header{padding:8px 24px;min-height:0}
#nav{padding:16px 12px}#nav a{min-height:44px;padding:8px 12px}
.navlogo img{filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
body.collapsed #nav{flex-basis:96px;width:96px;padding:12px 8px}body.collapsed #nav .navlogo{padding:0;margin-bottom:12px}body.collapsed #nav .navlogo img{width:80px}
body.collapsed #nav .ic{font-size:20px}
.mp{margin:0}.badge{letter-spacing:.04em}
.wm::before{content:"";position:absolute;inset:-14px -60px -18px;background:radial-gradient(closest-side,#EFE9B0 62%,rgba(239,233,176,0));z-index:-1}
body.side{background:linear-gradient(rgba(251,246,227,.7),rgba(251,246,227,.7)),#fbf6e3 url(images/doodles.svg)}
body.collapsed #nav{flex-basis:108px;width:108px}body.collapsed #nav .navlogo img{width:92px}
.wm::before{inset:-6px -24px -10px;background:radial-gradient(closest-side,rgba(239,233,176,.85) 55%,rgba(239,233,176,0))}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:16px 0}.dow{font-weight:700;color:#1F5E3B;text-align:center;font-size:14px}
.day{min-height:72px;background:#fffdf4;border:1px solid #e6dcae;border-radius:8px;padding:4px;font-size:12px}.day>span{color:#888}
.ev{display:block;border-radius:6px;padding:2px 6px;margin-top:2px;font-size:12px;color:#fff;background:#4CAF2E}.ev.p{background:#D9412B}.ev.v{background:#F28C28}
.chk{display:flex;align-items:center;gap:6px;white-space:nowrap}.chk input{width:auto;margin:0}.nw{white-space:nowrap}td a{color:#1F5E3B;font-weight:700}
@media(max-width:700px){.day{min-height:48px}.ev{font-size:10px;padding:1px 3px}}
.card .ph{height:120px;border-radius:8px;margin-bottom:12px;display:grid;place-items:center;font-size:48px;background:repeating-linear-gradient(45deg,#f6efd6 0 12px,#fbf6e4 12px 24px);border:1px dashed #e0d39f}
.soon{padding:24px;border-radius:12px;background:#fffdf4;border:1px dashed #F28C28;color:#1F5E3B;font-weight:600;text-align:center}
.signup{background:#fff7ea;border-top:3px solid #F28C28;padding:24px 16px}.signup-in{max-width:760px;margin:0 auto}
.signup h3{margin-top:0}.signup .row{display:flex;gap:16px;flex-wrap:wrap}.signup .row label{flex:1 1 220px;display:flex;flex-direction:column;font-weight:600;gap:4px}
.signup input[type=tel],.signup input[name=name]{min-height:44px}.signup .consent{display:flex;gap:8px;align-items:flex-start;margin:12px 0;font-size:.95rem;line-height:1.4}
.signup .consent input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}.signup button{min-height:44px;background:#F28C28}
#tsmsg{margin-top:8px;font-weight:600}#tsmsg.err{color:#b3261e}#tsmsg.ok{color:#1F5E3B}
a.btnlink{display:inline-flex;align-items:center;min-height:36px;padding:.5rem .8rem;border-radius:8px;background:#1F5E3B;color:#fff;font-weight:700;text-decoration:none}
.signup .muted{display:inline}
