:root{
  --emerald:#0f5b48;
  --forest:#0a3a2f;
  --ink:#10221d;
  --leaf:#4f8f3a;
  --lime:#9bcd3c;
  --lime-soft:#d6ec9f;
  --sun:#f7b916;
  --fox:#a8378c;
  --blush:#f6b3c0;
  --petal:#fbd9e3;
  --violet:#6c2f8f;
  --cream:#fff7ea;
  --paper:#fffcf5;
  --muted:#3f4d47;
  --line:#e7dcc6;
  --radius:18px;
  --serif:"Lora",Georgia,serif;
  --foxglove:#c2457f;
  --sans:"Lexend","Work Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --dots:radial-gradient(circle at 30% 30%,rgba(0,0,0,.16) 0 9px,transparent 10px),radial-gradient(circle at 70% 75%,rgba(0,0,0,.12) 0 6px,transparent 7px),radial-gradient(circle at 80% 20%,rgba(255,255,255,.05) 0 12px,transparent 13px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.7;letter-spacing:.01em;word-spacing:.06em}
img{max-width:100%;display:block}
a{color:var(--emerald);text-underline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--fox);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem);letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,3.8vw,2.9rem)}
h3{font-size:1.35rem}
.hl{color:var(--fox)}
p{margin:0 0 1em;max-width:68ch}
ul{max-width:68ch}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:1rem;letter-spacing:.02em;font-weight:600;margin-bottom:.7em;display:inline-block;color:var(--fox)}
.lede{font-size:1.18rem;color:var(--muted);max-width:60ch}
[hidden]{display:none !important}

/* header */
.demo-note{background:var(--ink);color:#fff;text-align:center;font-size:.85rem;padding:7px 16px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,252,245,.97);border-bottom:4px solid var(--lime)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:80px}
.brand{display:flex;flex-direction:column;text-decoration:none}
.wordmark{font-family:var(--serif);font-weight:600;font-size:1.85rem;line-height:1;color:var(--emerald)}
.tagline{font-size:.85rem;color:var(--fox);margin-top:5px;font-weight:600}
.nav{display:flex;gap:22px;align-items:center}
.nav a{text-decoration:none;color:var(--ink);font-size:.98rem;font-weight:500;padding:4px 0}
.nav a[aria-current=page]{color:var(--emerald);box-shadow:inset 0 -3px 0 var(--fox)}
.nav a.btn{color:#fff;box-shadow:none;padding:11px 20px}
.menu-btn{display:none;background:none;border:2px solid var(--ink);border-radius:10px;padding:7px 14px;font:inherit;font-weight:600;cursor:pointer}

/* buttons */
.btn{display:inline-block;background:var(--fox);color:#fff;text-decoration:none;padding:13px 24px;border-radius:999px;font-weight:600;font-size:1rem;border:2px solid var(--fox);transition:background-color .2s,box-shadow .2s}
.btn:hover{box-shadow:0 0 0 4px rgba(168,55,140,.2)}
.btn.pink,.btn.sun{background:var(--blush);border-color:var(--blush);color:var(--ink)}
.btn.yellow{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.btn.foxglove{background:var(--foxglove);border-color:var(--foxglove);color:#fff}
.btn.green{background:var(--emerald);border-color:var(--emerald)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost-light{background:transparent;color:#fff;border-color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.5em}

/* dotted painted backgrounds */
.painted{background-color:var(--emerald);background-image:var(--dots);background-size:46px 46px;color:#eef8f2}
.painted h1,.painted h2,.painted h3{color:#fff}
.painted .lede{color:#e1f1e8}
.painted .eyebrow{color:var(--blush)}
.painted .hl{color:var(--sun)}
.painted a:not(.btn){color:#fff}
.hl.name{font-family:var(--sans);font-weight:700;letter-spacing:0}
.violet{background-color:var(--violet);background-image:var(--dots);background-size:52px 52px;color:#f7ecf9}
.violet h2,.violet h3{color:#fff}
.violet .eyebrow{color:var(--blush)}
.violet .lede{color:#efe1f3}

/* hero */
.hero{padding:72px 0 84px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.hero-art{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:540px}
.hero-art .art:first-child{grid-row:span 2}
.hero .tag{display:inline-block;margin-top:22px;background:var(--blush);color:var(--ink);padding:10px 16px;border-radius:12px;font-weight:500;font-size:.95rem}
.hero .tag b{font-weight:700}

/* artwork crops */
.art{border-radius:var(--radius);background-color:#123;background-repeat:no-repeat;box-shadow:0 14px 30px rgba(0,0,0,.2);border:5px solid #fff;min-height:160px}
.art.sunflower{background-image:url(https://static.wixstatic.com/media/4883d1_ac976d549288419fbb3e35f8c013c710~mv2.jpg/v1/fit/w_1000,h_1700,q_85/sunflower.jpg);background-size:185%;background-position:30% 12%}
.art.foxglove{background-image:url(https://static.wixstatic.com/media/4883d1_ac976d549288419fbb3e35f8c013c710~mv2.jpg/v1/fit/w_1000,h_1700,q_85/foxglove.jpg);background-size:260%;background-position:98% 88%}
.art.strawberry{background-image:url(https://static.wixstatic.com/media/4883d1_96cb3d4b9f7f47d7a66937d731b48a62~mv2.jpg/v1/fit/w_1600,h_1600,q_85/strawberry.jpg);background-size:240%;background-position:18% 30%}
.art.minis{background-image:url(https://static.wixstatic.com/media/4883d1_96cb3d4b9f7f47d7a66937d731b48a62~mv2.jpg/v1/fit/w_1600,h_1600,q_85/minis.jpg);background-size:280%;background-position:90% 55%}
.art.lemon{background-image:url(https://static.wixstatic.com/media/4883d1_6d1740e7329f4869a0e24cc234925342~mv2.png/v1/fit/w_1600,h_1600,q_85/lemon.jpg);background-size:190%;background-position:50% 42%}

/* sections */
section{padding:88px 0}
.section-head{max-width:740px;margin-bottom:40px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split.rev>:first-child{order:2}
.split-img img{border-radius:var(--radius);width:100%;aspect-ratio:1/1;object-fit:cover;border:5px solid #fff;box-shadow:0 14px 30px rgba(0,0,0,.16)}

/* art gallery */
.gallery-art{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gallery-art .art{aspect-ratio:4/5}
.gallery-art .art.wide{grid-column:span 2;aspect-ratio:5/3}
.gallery-art .art.minis.wide{background-size:200%;background-position:100% 46%}
.gallery-art img{border-radius:var(--radius);border:5px solid #fff;box-shadow:0 10px 24px rgba(0,0,0,.15);width:100%;aspect-ratio:4/5;object-fit:cover}

/* service cards */
.caption-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.pillar{background:#fff;border-radius:var(--radius);padding:28px;border-top:8px solid var(--lime);box-shadow:0 6px 18px rgba(0,0,0,.06);display:flex;flex-direction:column}
.pillar:nth-child(2){border-color:var(--fox)}
.pillar:nth-child(3){border-color:var(--sun)}
.pillar p{color:var(--muted);margin:0 0 1em}
.pillar .more{margin-top:auto;font-weight:600}

.caption-row.two{grid-template-columns:1fr 1fr}
.pillar .btn{align-self:flex-start;margin-top:auto}

/* workshops */
.events{display:grid;gap:16px}
.event{display:grid;grid-template-columns:110px 1fr auto;gap:24px;align-items:center;background:#fff;border-radius:var(--radius);padding:20px 24px;color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.event h3{margin:0 0 .2em;color:var(--ink)}
.event p{margin:0;font-size:.98rem;color:var(--muted)}
.event .desc{margin-top:4px}
.date{text-align:center;border-right:2px dashed var(--line);padding-right:20px;color:var(--fox)}
.date .d{font-family:var(--serif);font-weight:600;font-size:2.5rem;line-height:1;display:block}
.date .m{font-size:.95rem;font-weight:600}
.price{font-family:var(--serif);font-weight:600;font-size:1.45rem;margin-right:16px;color:var(--emerald)}
.event .btn.light{background:var(--fox);border-color:var(--fox);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.chip{border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:500;color:var(--ink)}
.chip:nth-child(4n+1){background:var(--sun)}
.chip:nth-child(4n+2){background:var(--blush)}
.chip:nth-child(4n+3){background:var(--lime-soft)}
.chip:nth-child(4n+4){background:var(--petal)}
.badge{display:inline-block;font-size:.85rem;font-weight:600;padding:3px 12px;border-radius:999px;margin-bottom:6px}
.badge.sw{background:var(--lime);color:var(--ink)}
.badge.circle{background:var(--sun);color:var(--ink)}
.badge.ac{background:var(--blush);color:#5c1230}
.empty{color:inherit;opacity:.85}

/* page hero */
.page-hero{padding:76px 0 64px}
.page-hero .lede{margin-top:.4em}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:0 6px 18px rgba(0,0,0,.07);border-left:8px solid var(--leaf);color:var(--ink)}
.card:nth-child(2){border-color:var(--fox)}
.card:nth-child(3){border-color:var(--lime)}
.card h3{color:var(--ink)}
.card p{color:var(--muted);margin:0}
.ticks{list-style:none;padding:0;margin:1em 0}
.ticks li{padding-left:30px;position:relative;margin-bottom:.7em}
.ticks li::before{content:"";position:absolute;left:0;top:.5em;width:14px;height:14px;border-radius:50%;background:var(--fox)}
.painted .ticks li::before,.violet .ticks li::before{background:var(--blush)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:s}
.step{counter-increment:s;background:#fff;border-radius:var(--radius);padding:24px;box-shadow:0 6px 18px rgba(0,0,0,.06);border-top:8px solid var(--lime)}
.step:nth-child(2){border-color:var(--fox)}
.step:nth-child(3){border-color:var(--sun)}
.step:nth-child(4){border-color:var(--emerald)}
.step::before{content:counter(s);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--blush);color:var(--ink);font-family:var(--serif);font-weight:600;font-size:1.3rem;margin-bottom:12px}
.step:nth-child(even)::before{background:var(--sun)}
.step h3{font-size:1.2rem;margin-bottom:.3em}
.step p{color:var(--muted);font-size:1rem;margin:0}
.steps.three{grid-template-columns:repeat(3,1fr)}
.good-to-know{margin-top:48px;background:#eef6e2;border-radius:var(--radius);padding:28px 32px;border-left:8px solid var(--leaf)}
.good-to-know h3{color:var(--emerald)}
.tint{background:#fdf1f4}
.good-to-know h3{margin-bottom:.4em}

/* faq + contact */
.faq details{border-bottom:2px dashed var(--line);padding:20px 0}
.faq summary{cursor:pointer;font-family:var(--serif);font-weight:600;font-size:1.2rem;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;color:var(--fox)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:12px 0 0;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.info-list{list-style:none;padding:0;margin:0}
.info-list li{padding:16px 0;border-bottom:2px dashed var(--line)}
.info-list b{display:block;font-size:.95rem;color:var(--fox);margin-bottom:4px}
.cta{text-align:center}
.cta .lede,.cta p{margin-left:auto;margin-right:auto}
.cta .btn-row{justify-content:center}
.soft{background:var(--cream)}

/* what's on */
.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin-bottom:32px}
.seg{display:inline-flex;border-radius:999px;padding:4px;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.08);flex-wrap:wrap}
.seg button{border:0;background:transparent;font:inherit;font-size:.95rem;font-weight:500;padding:8px 16px;border-radius:999px;cursor:pointer;color:var(--ink)}
.seg button.on{background:var(--emerald);color:#fff}
.month-label{font-size:1.1rem;color:var(--fox);margin:26px 0 4px;font-family:var(--sans);font-weight:600}
.month-label:first-child{margin-top:0}
.legend{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.cal-head h2{margin:0;font-size:1.9rem}
.cal-nav{border:0;background:var(--sun);width:44px;height:44px;border-radius:50%;font-size:1.4rem;cursor:pointer;color:var(--ink)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:28px}
.dow{font-size:.85rem;color:var(--muted);text-align:center;padding:6px 0;font-weight:600}
.day{min-height:96px;border-radius:12px;padding:6px;background:#fff;display:flex;flex-direction:column;gap:4px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.day.blank{background:transparent;box-shadow:none}
.day .n{font-size:.85rem;color:var(--muted);font-weight:600}
.day.today{outline:3px solid var(--fox)}
.day.has{cursor:pointer}
.day.has:hover,.day.has:focus{background:var(--cream);outline:3px solid var(--lime)}
.pill{font-size:.75rem;line-height:1.3;padding:3px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.pill.sw{background:var(--lime);color:var(--ink)}
.pill.circle{background:var(--sun);color:var(--ink)}
.pill.ac{background:var(--blush);color:#5c1230}

/* footer */
.site-footer{background:var(--ink);color:#d3e2db;padding:64px 0 30px;font-size:.98rem;border-top:6px solid var(--fox)}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.site-footer h4{font-family:var(--serif);font-weight:600;color:var(--blush);font-size:1.15rem;margin:0 0 12px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:8px}
.foot-base{border-top:1px solid rgba(255,255,255,.15);margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.88rem}

/* responsive */
@media (max-width:1060px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:20px 24px 28px;border-bottom:4px solid var(--lime);gap:14px}
  .nav.open{display:flex}
}
@media (max-width:900px){
  .hero .wrap,.split,.contact-grid{grid-template-columns:1fr;gap:36px}
  .split.rev>:first-child{order:0}
  .hero-art{height:420px}
  .gallery-art{grid-template-columns:1fr 1fr}
  .gallery-art .art.wide{grid-column:span 2;aspect-ratio:16/10}
  .caption-row,.caption-row.two,.cards,.steps.three{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  section{padding:64px 0}
}
@media (max-width:560px){
  body{font-size:17px}
  .wrap{padding:0 16px}
  .hero{padding:48px 0 56px}
  .hero-art{height:340px;gap:10px}
  .event{grid-template-columns:72px 1fr;gap:16px}
  .event .act{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}
  .date{padding-right:12px}
  .date .d{font-size:1.9rem}
  .steps,.foot-grid{grid-template-columns:1fr}
  .wordmark{font-size:1.5rem}
  .day{min-height:52px;padding:4px}
  .pill{font-size:0;padding:0;width:8px;height:8px;border-radius:50%}
  .seg button{padding:7px 12px;font-size:.9rem}
  .good-to-know{padding:22px 20px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important}
}
/* logo */
.site-header .wrap{height:96px}
.brand{flex-direction:row;align-items:center;gap:14px}
.logo{height:80px;width:auto;display:block;mix-blend-mode:multiply}
.brand .tagline{margin-top:0;max-width:11em;line-height:1.3}
@media (max-width:1060px){.nav{top:96px}}
@media (max-width:560px){.site-header .wrap{height:80px}.logo{height:64px}.brand .tagline{display:none}.nav{top:80px}}

/* booking pages */
.book-cats{margin-bottom:28px}
.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.book-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.08);border-top:8px solid var(--lime);transition:box-shadow .2s}
.book-card:nth-child(3n+2){border-color:var(--fox)}
.book-card:nth-child(3n+3){border-color:var(--sun)}
.book-card:hover{box-shadow:0 0 0 4px rgba(168,55,140,.18),0 6px 18px rgba(0,0,0,.08)}
.book-card.skeleton{min-height:340px;background:linear-gradient(100deg,#fff 40%,var(--cream) 50%,#fff 60%) #fff;background-size:200% 100%}
.book-img{position:relative;aspect-ratio:4/3;background:var(--cream)}
.book-img img{width:100%;height:100%;object-fit:cover}
.book-img .badge{position:absolute;left:14px;bottom:14px;margin:0}
.book-img-fallback{width:100%;height:100%;background-color:var(--emerald);background-image:var(--dots);background-size:40px 40px}
.book-img-fallback.c1{background-color:var(--violet)}
.book-img-fallback.c2{background-color:var(--leaf)}
.book-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:6px;flex:1}
.book-body h3{margin:0}
.book-body p{margin:0;color:var(--muted)}
.book-meta{font-size:.98rem}
.book-foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.book-go{font-weight:600;color:var(--fox)}
.was{color:var(--muted);font-size:.95rem}
.deal{display:block;font-size:.9rem;color:var(--fox);font-weight:600}
.empty-card{grid-column:1/-1;background:#fff;border-radius:var(--radius);padding:32px;box-shadow:0 6px 18px rgba(0,0,0,.06);border-left:8px solid var(--sun)}
.empty-note{grid-column:1/-1}
.linkish{background:none;border:0;padding:4px 0;font:inherit;font-weight:600;color:var(--emerald);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

.ws-hero .back-link{display:inline-block;color:#fff;text-decoration:none;font-weight:600;margin-bottom:22px}
.ws-hero .back-link:hover{text-decoration:underline}
.ws-facts{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:12px}
.ws-facts li{background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.25);border-radius:14px;padding:10px 16px;color:#fff}
.ws-facts b{display:block;font-size:.85rem;font-weight:600;color:var(--sun)}
.ws-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start}
.ws-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);border:5px solid #fff;box-shadow:0 10px 24px rgba(0,0,0,.14);margin-bottom:28px}
.ws-desc p{color:var(--ink)}
.ws-book{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:0 8px 24px rgba(0,0,0,.08);border-top:8px solid var(--fox);position:sticky;top:116px}
.ws-book h2{font-size:1.7rem;margin-bottom:.6em}
.ws-label{font-family:var(--sans);font-size:1rem;font-weight:600;color:var(--fox);margin:0 0 6px}
.ws-dates{list-style:none;padding:0;margin:0 0 12px}
.ws-dates li{padding:10px 0;border-bottom:2px dashed var(--line)}
.ws-dates li b{display:block}
.ws-dates li.cancelled{color:var(--muted);text-decoration:line-through}
.ws-date{margin:0 0 6px}
.ws-note{color:var(--muted);margin:8px 0}
.ws-places{display:inline-block;background:var(--lime-soft);border-radius:999px;padding:4px 14px;font-weight:600;margin:8px 0}
.ws-places.full{background:var(--petal)}
.ws-small{font-size:.92rem;color:var(--muted);margin:8px 0 0}
.ws-count{display:flex;align-items:center;gap:14px;margin:16px 0 4px}
.ws-count .ws-label{margin:0 auto 0 0}
.ws-count button{width:40px;height:40px;border-radius:50%;border:2px solid var(--ink);background:#fff;font:inherit;font-size:1.2rem;cursor:pointer}
.ws-count button:disabled{opacity:.35;cursor:not-allowed}
#ws-form{margin-top:20px;border-top:2px dashed var(--line);padding-top:20px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{font-weight:600}
.field .opt{font-weight:400;color:var(--muted)}
.field input,.field select{font:inherit;padding:12px 14px;border:2px solid #cfc6b4;border-radius:12px;background:var(--paper);color:var(--ink);width:100%}
.field input:focus,.field select:focus{outline:3px solid var(--fox);outline-offset:1px;border-color:var(--fox)}
.ws-cta{width:100%;text-align:center;font-size:1.05rem;cursor:pointer}
.ws-cta:disabled{background:#d9cfd6;border-color:#d9cfd6;color:#5b4f57;cursor:not-allowed;box-shadow:none}
.ws-error{color:#9b1c3a;font-weight:600;margin:0 0 10px;min-height:0}
.ws-error:empty{display:none}
.ws-done{background:#eef6e2;border-radius:14px;padding:22px;border-left:8px solid var(--leaf)}
.ws-done h3{color:var(--emerald);margin-bottom:.3em}
.ws-done p{margin:0}

@media (max-width:900px){
  .book-grid{grid-template-columns:1fr 1fr}
  .ws-grid{grid-template-columns:1fr;gap:28px}
  .ws-book{position:static;order:-1}
}
@media (max-width:560px){
  .book-grid{grid-template-columns:1fr}
  .ws-book{padding:22px 18px}
  .ws-img{aspect-ratio:16/10}
}
/* event photos */
.event.has-img{grid-template-columns:110px 120px 1fr auto}
.event .thumb{width:120px;height:120px;object-fit:cover;border-radius:14px;border:4px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.12)}
@media (max-width:900px){.event.has-img{grid-template-columns:90px 100px 1fr}.event.has-img .act{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.event .thumb{width:100px;height:100px}}
@media (max-width:560px){.event.has-img{grid-template-columns:72px 1fr}.event.has-img .thumb{grid-column:1/-1;order:-1;width:100%;height:auto;aspect-ratio:16/9}}

/* legal page */
.legal{max-width:760px}
.legal h2{margin-top:1.6em;font-size:clamp(1.6rem,3vw,2.1rem)}
.legal h3{margin-top:1.6em;font-size:1.25rem}
.legal-toc{display:flex;flex-wrap:wrap;gap:10px 18px;padding:18px 22px;background:var(--cream);border-radius:var(--radius);border-left:8px solid var(--lime)}
.legal-toc a{font-weight:600}
.legal-date{color:var(--muted)}

/* cookie banner */
.cookie-banner{position:fixed;z-index:80;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:640px;margin:0 auto;background:var(--paper);color:var(--ink);border-radius:var(--radius);border-top:8px solid var(--lime);box-shadow:0 12px 40px rgba(0,0,0,.25);padding:20px 22px}
.cookie-banner p{margin:0 0 14px;font-size:1rem}
.cookie-banner b{display:block;font-family:var(--serif);font-size:1.2rem;margin-bottom:4px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookie-actions .btn{cursor:pointer;font:inherit;font-weight:600}
.foot-link{background:none;border:0;padding:0;font:inherit;color:#fff;cursor:pointer;text-align:left}
.foot-link:hover{text-decoration:underline}

/* contact form */
.wrap.narrow{max-width:760px}
.cf-card{background:#fff;border-radius:var(--radius);padding:30px;box-shadow:0 8px 24px rgba(0,0,0,.08);border-top:8px solid var(--lime)}
.cf-card textarea{font:inherit;padding:12px 14px;border:2px solid #cfc6b4;border-radius:12px;background:var(--paper);color:var(--ink);width:100%;line-height:1.6}
.cf-card textarea:focus{outline:3px solid var(--fox);outline-offset:1px;border-color:var(--fox)}
.cf-card input[type=file]{border-style:dashed;background:#fff}
.field.choice{border:0;padding:0;margin:0 0 16px}
.field.choice legend{font-weight:600;margin-bottom:6px;padding:0}
.pick{display:flex;align-items:center;gap:10px;font-weight:400;padding:6px 0;cursor:pointer}
.pick input{width:22px;height:22px;accent-color:var(--fox);flex:none}
.field-help{margin:0;font-size:.95rem;color:var(--muted)}
.field-err{margin:0;color:#9b1c3a;font-weight:600}
.field-err:empty{display:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:560px){.cf-card{padding:22px 18px}}
/* mobile menu button: foxglove instead of the phone's default blue */
html{-webkit-tap-highlight-color:rgba(194,69,127,.25)}
.menu-btn{color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;transition:background-color .15s,color .15s,border-color .15s}
.menu-btn:active,.menu-btn[aria-expanded=true]{background:var(--foxglove);border-color:var(--foxglove);color:#fff}
.menu-btn:focus{outline:none}
.menu-btn:focus-visible{outline:3px solid var(--foxglove);outline-offset:3px}
/* workshop topic tags: square-ish labels so they don't look like buttons */
ul.chips{list-style:none;padding:0;margin:18px 0 0}
.chip{border-radius:6px;padding:5px 12px;font-size:.92rem;border:1px solid rgba(16,34,29,.14);cursor:default}

/* footer headings are now h2 */
.site-footer h2{font-family:var(--serif);font-weight:600;color:var(--blush);font-size:1.15rem;margin:0 0 12px;line-height:1.3}

/* back to top button */
.to-top{position:fixed;right:18px;bottom:18px;z-index:40;width:52px;height:52px;border-radius:50%;border:2px solid #fff;background:var(--foxglove);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18);-webkit-tap-highlight-color:transparent;transition:background-color .15s}
.to-top[hidden]{display:none}
.to-top:hover{background:var(--fox)}
.to-top:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
@media (max-width:560px){.to-top{right:14px;bottom:14px;width:48px;height:48px}}
/* What's On colour key: labels, not buttons */
.legend-wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px}
.legend-title{font-weight:600;margin:0}
ul.legend{list-style:none;padding:0;margin:0}
.legend .badge{border-radius:6px;padding:5px 12px;font-size:.92rem;margin:0;border:1px solid rgba(16,34,29,.14);cursor:default}
/* event card labels: squared to match the key */
.events .badge{border-radius:6px;padding:4px 11px;border:1px solid rgba(16,34,29,.14)}