
:root{
  --lime:#B7D433;
  --leaf:#4A8B24;
  --forest:#468322;
  --deep:#2A5417;
  --wood:#C68A4E;
  --bark:#8A5A32;
  /* Woodland accents — bright for fills, deep for white text */
  --ginger:#E07A32;   --ginger-d:#B75C1C;
  --teal:#3E9AA8;     --teal-d:#337F8A;
  --gold:#C9A227;     --gold-d:#8D721B;
  --damson:#7B5EA7;   --damson-d:#6B4F95;
  /* Room colours */
  --hedgehogs:#3E9AA8; --hedgehogs-d:#337F8A;
  --squirrels:#D2691E; --squirrels-d:#B75C1A;
  --owls:#7B5EA7;      --owls-d:#6B4F95;
  --cream:#FDFAF0;
  --sand:#F5EFDF;
  --ink:#243027;
  --muted:#5B6B5F;
  --line:#E4DCC7;
  --white:#fff;
  --radius:18px;
  --shadow:0 2px 4px rgba(36,48,39,.05),0 12px 28px rgba(36,48,39,.08);
  --font:"Nunito","Trebuchet MS",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--forest)}
h1,h2,h3,h4{line-height:1.15;margin:0 0 .5em;font-weight:800;letter-spacing:-.015em}
h1{font-size:clamp(2rem,4.6vw,3.3rem)}
h2{font-size:clamp(1.5rem,3vw,2.2rem)}
h3{font-size:1.22rem}
p{margin:0 0 1.1em}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}
.narrow{max-width:820px}

/* ---------- header ---------- */
.topbar{background:var(--forest);color:#EAF5D8;font-size:.86rem;padding:8px 0}
.topbar .wrap{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.topbar a{color:#fff;text-decoration:none;font-weight:700}
.topbar span{display:inline-flex;align-items:center;gap:7px}
header.site{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:12px;padding-bottom:12px}
.logo img{height:56px;width:auto}
nav.main{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
nav.main a{padding:9px 13px;border-radius:99px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.95rem}
nav.main a:hover{background:var(--sand)}
nav.main a.active{background:var(--forest);color:#fff}
.btn{display:inline-block;background:var(--forest);color:#fff;text-decoration:none;font-weight:800;padding:13px 24px;border-radius:99px;border:2px solid var(--forest);transition:.15s;font-size:1rem}
.btn:hover{background:var(--deep);border-color:var(--deep)}
.btn.alt{background:var(--ginger);border-color:var(--ginger);color:#fff}
.btn.alt:hover{background:var(--ginger-d);border-color:var(--ginger-d)}
.btn.ginger{background:var(--ginger-d);border-color:var(--ginger-d);color:#fff}
.btn.ginger:hover{background:#9C4D14;border-color:#9C4D14}
.btn.white{background:#fff;border-color:#fff;color:var(--forest)}
.btn.white:hover{background:#F1F6E4;border-color:#F1F6E4}
.btn.ghost{background:transparent;color:var(--forest)}
.btn.ghost:hover{background:var(--sand);color:var(--deep)}
.btn.sm{padding:9px 18px;font-size:.9rem}
.burger{display:none;background:none;border:2px solid var(--line);border-radius:12px;padding:8px 11px;font-size:1.2rem;cursor:pointer}

/* ---------- hero ---------- */
.hero{position:relative;color:#fff;background:var(--deep)}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center 55%;opacity:.34}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(42,84,23,.82) 0%,rgba(42,84,23,.55) 55%,rgba(42,84,23,.25) 100%)}
.hero .wrap{z-index:2}
.hero .wrap{position:relative;padding:78px 22px 84px;max-width:900px}
.hero h1{margin-bottom:.35em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero p.sub{font-size:1.16rem;max-width:640px;margin-bottom:1.6em;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.hero .cta-row{display:flex;gap:12px;flex-wrap:wrap}
.eyebrow{display:inline-block;background:var(--gold);color:#26301F;font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;border-radius:99px;margin-bottom:18px}
.tiny{font-size:.85rem;opacity:.85;margin-top:14px}

/* ---------- sections ---------- */
section{padding:64px 0}
section.tint{background:var(--sand)}
section.white{background:var(--white)}
.sec-head{text-align:center;max-width:760px;margin:0 auto 40px}
.sec-head p{color:var(--muted);font-size:1.06rem}
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}

.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.card .ico{font-size:1.9rem;line-height:1;margin-bottom:12px}
.card h3{margin-bottom:.4em}
.card p{color:var(--muted);font-size:.98rem;flex:1}
.card a.more{font-weight:800;text-decoration:none;margin-top:12px;display:inline-block}
.card a.more:after{content:" →"}

.tile{display:block;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.18s}
.tile:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(36,48,39,.14)}
.tile .top{height:170px;display:flex;align-items:center;justify-content:center;font-size:3rem;background-size:cover;background-position:center;background-color:#E8F3D4}
.tile{position:relative}
.tile:before{content:"";position:absolute;top:0;left:0;right:0;height:7px;z-index:2;background:var(--forest)}
.tile.t-teal:before{background:var(--teal)}
.tile.t-ginger:before{background:var(--ginger)}
.tile.t-gold:before{background:var(--gold)}
.tile .body{padding:22px}
.tile h3{margin-bottom:.35em}
.tile p{color:var(--muted);font-size:.96rem;margin:0}

.ph{background:repeating-linear-gradient(45deg,#EFE9D6,#EFE9D6 12px,#E7E0C9 12px,#E7E0C9 24px);border:1px dashed #C9BF9E;border-radius:14px;display:flex;align-items:center;justify-content:center;text-align:center;color:#8A7F5E;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:16px;min-height:190px}

table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);font-size:.97rem}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--forest);color:#fff;font-weight:800;font-size:.9rem;letter-spacing:.02em}
tr:last-child td{border-bottom:none}
td strong{color:var(--deep)}

.pill{display:inline-block;background:var(--sand);border:1px solid var(--line);border-radius:99px;padding:5px 13px;font-size:.85rem;font-weight:700;margin:0 6px 6px 0;color:var(--muted)}
.pill.solid{color:#fff;border-color:transparent}
.pill.p-hedgehogs{background:var(--hedgehogs-d)}
.pill.p-squirrels{background:var(--squirrels-d)}
.pill.p-owls{background:var(--owls-d)}
.pill.p-green{background:var(--forest)}
.pill.p-gold{background:var(--gold-d)}
.pill.p-teal{background:var(--teal-d)}


.ricon{width:58px;height:58px;--fa:#fff;--fc:#C9A227;display:block}
.ricon.i-hedgehogs{--fb:var(--hedgehogs-d)}
.ricon.i-squirrels{--fb:var(--squirrels-d)}
.ricon.i-owls{--fb:var(--owls-d)}
.ricon.sm{width:30px;height:30px;display:inline-block;vertical-align:-8px;margin-right:4px}

/* room-coloured cards */
.card.room{padding:0;overflow:hidden}
.card.room .band{height:9px}
.card.room .in{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.card.room.r-hedgehogs .band{background:var(--hedgehogs)}
.card.room.r-squirrels .band{background:var(--squirrels)}
.card.room.r-owls .band{background:var(--owls)}
.card.room.r-hedgehogs h3{color:var(--hedgehogs-d)}
.card.room.r-squirrels h3{color:var(--squirrels-d)}
.card.room.r-owls h3{color:var(--owls-d)}

/* accent page headers */
.page-hero.h-teal{background:linear-gradient(135deg,var(--teal-d),#25606B)}
.page-hero.h-ginger{background:linear-gradient(135deg,var(--ginger-d),#8C4210)}
.page-hero.h-gold{background:linear-gradient(135deg,var(--gold-d),#65510F)}
.page-hero.h-damson{background:linear-gradient(135deg,var(--damson-d),#4E3970)}

/* room name cells in tables */
td .rname{display:inline-flex;align-items:center;gap:8px;font-weight:800}
td .dot{width:13px;height:13px;border-radius:50%;flex:none}
.note{background:#FFF8E4;border-left:5px solid var(--wood);border-radius:0 14px 14px 0;padding:18px 22px;margin:0 0 22px}
.note strong{color:var(--bark)}
.draft{background:#F3F7EA;border-left:5px solid var(--leaf);border-radius:0 14px 14px 0;padding:18px 22px;margin:0 0 22px;font-size:.95rem}
.draft b{color:var(--forest);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}

.values{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}
.value{border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);color:#fff;background:var(--forest)}
.value:nth-child(2){background:var(--teal-d)}
.value:nth-child(3){background:var(--ginger-d)}
.value h3{color:#fff}
.value p{color:rgba(255,255,255,.94);margin:0;font-size:.98rem}

ul.tick{list-style:none;padding:0;margin:0 0 1.2em}
ul.tick li{position:relative;padding-left:30px;margin-bottom:10px}
ul.tick li:before{content:"";position:absolute;left:0;top:.55em;width:12px;height:12px;border-radius:50%;background:var(--lime);border:3px solid var(--forest)}

.split{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}

.staff{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow)}
.staff .av{width:96px;height:96px;border-radius:50%;margin:0 auto 14px;background:var(--sand);border:2px dashed #C9BF9E;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#8A7F5E;font-weight:700;text-transform:uppercase}
.staff h4{margin:0 0 4px;font-size:1.05rem}
.staff span{color:var(--muted);font-size:.9rem}

.cta-band{background:var(--forest);color:#fff;text-align:center;border-radius:var(--radius);padding:52px 30px}
.cta-band h2{color:#fff}
.cta-band p{max-width:600px;margin:0 auto 26px;opacity:.94}

form .row{display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}
label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px}
input,select,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:1rem;background:var(--white)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--leaf)}

footer.site{background:var(--ink);color:#CFDCC6;padding:56px 0 24px;font-size:.95rem}
footer.site h4{color:#fff;font-size:1rem;margin-bottom:.9em}
footer.site a{color:#CFDCC6;text-decoration:none}
footer.site a:hover{color:var(--lime)}
footer.site .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:36px}
footer.site .legal{border-top:1px solid #3A4A3E;margin-top:36px;padding-top:20px;font-size:.84rem;opacity:.75;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.badges span{border:1px dashed #5C6E5B;border-radius:10px;padding:8px 12px;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}
.flogo{background:#fff;border-radius:12px;padding:10px 12px;display:inline-block;margin-bottom:16px}
.flogo img{height:44px}

.page{display:none}
.page.show{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.crumb{background:var(--sand);padding:16px 0;font-size:.9rem;border-bottom:1px solid var(--line)}
.crumb a{text-decoration:none;font-weight:700}
.page-hero{background:linear-gradient(135deg,var(--forest),var(--deep));color:#fff;padding:56px 0}
.page-hero h1{margin-bottom:.25em}
.page-hero p{max-width:660px;opacity:.94;margin:0;font-size:1.08rem}

@media(max-width:900px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3,.values{grid-template-columns:1fr}
  .split{grid-template-columns:1fr;gap:26px}
  footer.site .cols{grid-template-columns:1fr 1fr}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:12px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  nav.main.open{display:flex}
  header.site .wrap{position:relative}
  .burger{display:block}
  .hdr-cta{display:none}
}
@media(max-width:600px){
  .g2,.g4{grid-template-columns:1fr}
  form .row{grid-template-columns:1fr}
  section{padding:46px 0}
  .topbar .wrap{justify-content:center;text-align:center;font-size:.8rem}
  footer.site .cols{grid-template-columns:1fr}
}

/* ============ production additions ============ */

.skip{position:absolute;left:-9999px;top:0;background:var(--deep);color:#fff;padding:12px 20px;z-index:200;border-radius:0 0 10px 0;font-weight:800;text-decoration:none}
.skip:focus{left:0}

/* visible focus for keyboard users */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}

main{display:block}

/* ---- location card (replaces the Google iframe) ---- */
.mapcard{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--white)}
.mapcard-top{height:150px;display:flex;align-items:center;justify-content:center;font-size:2.6rem;
  background:
    repeating-linear-gradient(90deg,transparent 0 38px,rgba(70,131,34,.10) 38px 41px),
    repeating-linear-gradient(0deg,transparent 0 38px,rgba(70,131,34,.10) 38px 41px),
    linear-gradient(135deg,#E8F3D4,#CFE6A8)}
.mapcard-body{padding:20px 22px}
.mapcard-body strong{display:block;font-size:1.05rem;color:var(--deep)}
.mapcard-body span{display:block;color:var(--muted);font-size:.95rem;margin:4px 0 14px}
.mapnote{font-size:.82rem;color:var(--muted);margin:14px 0 0}

/* ---- cookie consent ---- */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--ink);color:#E7F0DA;
  box-shadow:0 -6px 30px rgba(0,0,0,.22);padding:18px 0}
.consent[hidden]{display:none}
.consent-in{max-width:1140px;margin:0 auto;padding:0 22px;display:flex;gap:26px;align-items:center;
  justify-content:space-between;flex-wrap:wrap}
.consent strong{display:block;color:#fff;font-size:1.02rem;margin-bottom:4px}
.consent p{margin:0;font-size:.92rem;max-width:640px;line-height:1.55}
.consent a{color:var(--lime)}
.consent-btns{display:flex;gap:10px;flex-wrap:wrap}
.consent .btn.sm{padding:11px 26px;font-size:.95rem}
.btn.ghostw{background:transparent;border-color:#7E9270;color:#fff}
.btn.ghostw:hover{background:rgba(255,255,255,.12);border-color:#fff}

.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
footer.site .linkbtn:hover{color:var(--lime)}

/* ---- misc ---- */
.card img{border-radius:12px}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}
@media print{
  .topbar,header.site,footer.site,.consent,.skip{display:none}
  body{font-size:11pt}
}

/* ---- policy pages ---- */
.policy h2{font-size:1.35rem;color:var(--forest);margin-top:1.8em}
.policy h3{font-size:1.08rem;margin-top:1.4em}
.policy table{font-size:.94rem;margin:1em 0 1.6em}
.policy code{background:var(--sand);padding:2px 7px;border-radius:5px;font-size:.9em;
  font-family:ui-monospace,Menlo,Consolas,monospace}
.policy ul{padding-left:1.1em}
.policy li{margin-bottom:.5em}
.policy hr{border:0;border-top:1px solid var(--line);margin:2.2em 0}

a.card.pdf{text-decoration:none;color:inherit;transition:.16s}
a.card.pdf:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(36,48,39,.13);border-color:var(--leaf)}
a.card.pdf .dl{margin-top:12px;font-weight:800;color:var(--forest);font-size:.92rem}
a.card.pdf .dl:after{content:" ↓"}

/* honeypot — hidden from people, visible to bots */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.fieldnote{font-size:.85rem;color:var(--muted);margin:8px 0 0}
form .row + .row{margin-top:0}

/* ---- hero, now that there is real photography behind it ----
   The prototype dimmed the placeholder hard (bg .34 + a heavy green wash).
   With Carl's garden shot underneath we let the picture through and keep the
   wash only where the text sits. White on the blended left edge measures
   about 7.2:1, comfortably past AA. */
.hero .bg{opacity:.92;background-position:center 62%}
.hero:after{background:linear-gradient(100deg,
  rgba(42,84,23,.86) 0%, rgba(42,84,23,.62) 52%, rgba(42,84,23,.30) 100%)}

/* ---- Ovivio enquiry form embed ---- */
.ovwrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);background:#fff;margin:26px 0 14px}
.ovform{display:block;width:100%;height:1600px;border:0}
@media(max-width:760px){ .ovform{height:2000px} }
@media(max-width:420px){ .ovform{height:2300px} }
