/* Family Camping Club - one stylesheet for the whole site.
   Brand colours live in :root. Change them here and every page follows. */
:root{
  --forest:#2F5D46; --sun:#E8743B; --sundk:#C75B2B; --yel:#F2B632; --lake:#2A8C8C; --sand:#F6EEDD; --bark:#3A2E26;
  --line:#d9cdb4; --muted:#6b5d50; --white:#fff; --danger:#b3261e; --ok:#1e7a46;
  --radius:12px; --max:1100px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:130px}
body{margin:0;overflow-x:clip;background:var(--sand);color:var(--bark);font:16px/1.55 'Trebuchet MS','Segoe UI',system-ui,sans-serif}
img{max-width:100%;height:auto}
.split>*,.dash>*,.detail>*,.owners .w>*,.chero .w>*,.row2>*,.filters>*,.steps>*,.pitch>*{min-width:0}
.card,.sidecard,.formcard,.offerbox,.review,.contact,.panel,.cbanner .w>div{overflow-wrap:anywhere}
table.t td{overflow-wrap:anywhere}
.stats5{grid-template-columns:repeat(5,1fr)!important}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0 0 5px;color:var(--forest);line-height:1.15}
h1,.h1{font-size:clamp(30px,4.6vw,46px)} h2{font-size:30px} h3{font-size:19px}
p{margin:0 0 17px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--yel);outline-offset:2px}
[hidden]{display:none!important}
.w{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:0;background:var(--yel);padding:8px 14px;z-index:100}.skip:focus{left:8px;top:8px}
.muted{color:var(--muted)} .center{text-align:center}
.sub{margin:0 0 24px;max-width:640px}

/* show/hide by login state (set by /js/app.js) */
body:not(.is-member) [data-show=member]{display:none!important}
body.is-member [data-show=guest]{display:none!important}
body:not(.is-owner) [data-show=owner]{display:none!important}
body.is-owner [data-show=notowner]{display:none!important}
body:not(.is-editor) [data-show=editor]{display:none!important}
body:not(.is-sponsor) [data-show=sponsor]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.editbar{background:var(--yel);color:#222;padding:10px 0;font-weight:600}.editbar .w{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}

/* header + footer */
.stickytop{position:sticky;top:0;z-index:40}
.bar{background:var(--yel);color:var(--bark);text-align:center;font-weight:700;font-size:15px}
.bar a{display:block;padding:8px 12px;text-decoration:underline}
.bar a:hover{background:#fff6dc}
header.top{background:var(--forest);color:var(--sand);position:relative}
header.top .w{display:flex;align-items:center;gap:20px;height:88px}
header.top .logo img{display:block;height:66px;width:auto}
nav{display:flex;gap:18px;margin-left:auto;align-items:center;font-size:15px}
nav a{white-space:nowrap}
nav a:hover,footer a:hover{color:var(--yel)}
.burger{display:none;margin-left:auto;background:transparent;border:2px solid var(--sand);color:var(--sand);border-radius:8px;padding:6px 10px}
footer{background:var(--bark);color:var(--sand);padding:0 0 28px;font-size:14px}
footer .w{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between}
footer .logo img{height:84px;width:auto}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.joinbar{display:none}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(30px);background:var(--bark);color:#fff;padding:12px 20px;border-radius:30px;opacity:0;pointer-events:none;transition:.25s;z-index:60;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%)}
.toast.err{background:var(--danger)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:30px;font-weight:700;padding:10px 22px;border:0;background:var(--sun);color:var(--bark);text-align:center;max-width:100%}
.btn:hover{background:var(--yel)}
.btn.big{font-size:20px;padding:16px 30px;box-shadow:0 4px 0 var(--sundk)}
.btn.yel{background:var(--yel)} .btn.yel:hover{background:#fff}
.btn.green{background:var(--forest);color:var(--sand)} .btn.green:hover{background:#1f4030}
.btn.ghost{background:transparent;border:2px solid currentColor;color:var(--forest)} .btn.ghost:hover{background:var(--forest);color:var(--sand)}
.btn.danger{background:var(--danger);color:#fff}
.btn[disabled]{opacity:.6;cursor:wait}
header.top .jn{font-size:17px;padding:12px 24px;flex:none;white-space:nowrap;gap:.28em}
.jf{display:none}
@media (min-width:600px){.jf{display:inline}}

/* hero (home) */
.hero{position:relative;overflow:hidden;background:#24493a;padding:48px 0 150px}
.hero .tint{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(242,182,50,0) 0%,rgba(242,182,50,0) 45%,rgba(242,182,50,.55) 72%,#F2B632 calc(100% - 118px),#F2B632 100%)}
.hero svg.hills{position:absolute;left:0;bottom:0;width:100%;height:150px;z-index:1}
.hero .w{position:relative;z-index:2;min-height:420px;display:flex;align-items:center}
.panel{background:#F6EEDDF0;border-radius:16px;padding:30px;max-width:520px;box-shadow:0 8px 30px #3a2e2640}
.panel p{margin:12px 0 18px;font-size:18px}
.free{display:inline-block;background:var(--yel);color:var(--bark);font-weight:700;border-radius:20px;padding:4px 14px;font-size:14px;margin-bottom:12px}
.ticks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:6px;font-size:15px}
.ticks li{display:flex;gap:8px;align-items:center}
.ticks li:before{content:"";width:18px;height:18px;flex:none;border-radius:50%;background:var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23F6EEDD' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.owners .ticks li:before{background-color:var(--forest)}
.login{margin-top:14px;font-size:15px} .login a,.link{text-decoration:underline;color:var(--forest);font-weight:700}
.cbanner{background:var(--forest);color:var(--sand)}
.cbanner .w{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;padding-top:22px;padding-bottom:22px}
.cbanner h2{color:var(--sand);font-size:24px} .cbanner p{margin:2px 0 0}

/* sections */
section.s{padding:48px 0}
section.s>.w>h2{margin-bottom:8px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:22px;counter-reset:s}
.steps>div{background:#fff;border-radius:var(--radius);padding:20px 20px 20px 70px;position:relative}
.steps>div:before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:40px;height:40px;border-radius:50%;background:var(--sun);color:var(--bark);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:flex-start}
.steps h3{margin-bottom:4px}
.pitch{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:22px}
.pitch>div{background:#fff;border-radius:var(--radius);padding:20px;border-top:5px solid var(--sun)}
.pitch>div:nth-child(2){border-color:var(--yel)}.pitch>div:nth-child(3){border-color:var(--lake)}.pitch>div:nth-child(4){border-color:var(--forest)}
.pitch h3{margin-bottom:4px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pills a{border:2px solid var(--forest);color:var(--forest);border-radius:22px;padding:7px 16px;font-weight:700}
.pills a:hover{background:var(--forest);color:var(--sand)}
.owners{background:var(--yel)}
.owners .w{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.joinband{background:var(--forest);color:var(--sand);text-align:center;padding:50px 0}
.joinband h2{color:var(--sand);font-size:32px} .joinband p{margin:8px auto 22px;max-width:560px}
.joinband form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.joinband input{border-radius:30px;border:0;padding:16px 22px;width:100%;max-width:340px;color:var(--bark)}
.offer{background:var(--lake);color:#fff;padding:34px 0;text-align:center}.offer h2{color:#fff;font-size:28px}

/* campsite cards + carousel */
.arrows{display:flex;gap:10px;justify-content:flex-end;margin-bottom:10px}
.arrows button{width:42px;height:42px;border-radius:50%;border:2px solid var(--forest);background:#fff;color:var(--forest);font-size:20px;line-height:1}
.track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 14px;scrollbar-width:thin}
.track .card{flex:0 0 280px;scroll-snap-align:start}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:20px}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 #00000010}
a.card:hover{box-shadow:0 6px 20px #3a2e2630}
.card .ph{height:160px;position:relative;background:linear-gradient(135deg,var(--lake),var(--forest));overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph.v1{background:linear-gradient(135deg,var(--sun),var(--yel))!important}.ph.v2{background:linear-gradient(135deg,var(--forest),var(--lake))!important}
.ph.v3{background:linear-gradient(135deg,var(--yel),var(--lake))!important}.ph.v4{background:linear-gradient(135deg,var(--sundk),var(--sun))!important}
.ph .tent{position:absolute;inset:0;margin:auto;width:64px;height:64px;opacity:.55}
.badge{position:absolute;top:10px;font:700 11px sans-serif;padding:3px 8px;border-radius:4px}
.badge.f{left:10px;background:var(--yel);color:var(--bark)} .badge.d{right:10px;background:var(--sun);color:var(--bark);font-size:13px}
.card .in{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{font-size:18px}
.meta{font-size:13px;color:var(--muted)}
.rate{font-size:14px} .rate b{color:var(--sundk)}
.card .btn{margin-top:auto;border-radius:8px;padding:9px}
.empty{background:#fff;border-radius:var(--radius);padding:30px;text-align:center}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chips li,.chip{background:var(--sand);border:1px solid var(--line);border-radius:20px;padding:3px 12px;font-size:14px}

/* forms */
.page-head{background:var(--forest);color:var(--sand);padding:38px 0}.page-head h1{color:var(--sand)}.page-head p{margin:8px 0 0;font-size:18px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start}
.formcard{background:#fff;border-radius:14px;padding:26px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;max-width:560px}
.field label,.label{display:block;font-weight:700;font-size:14px;color:var(--forest);margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 14px;background:#fff}
.field textarea{min-height:120px;resize:vertical}
.field small{color:var(--muted)}
.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger)}
.err{color:var(--danger);font-size:13px;margin:4px 0 0;min-height:0}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px}.check input{width:20px;height:20px;margin-top:2px;flex:none}
.check.inline{display:inline-flex;align-items:center;gap:6px;margin:0 14px 8px 0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.alert{border-radius:8px;padding:12px 14px;font-size:15px}
.alert.err{background:#fde8e6;color:var(--danger);border:1px solid #f3b7b2}
.alert.ok{background:#e4f4ea;color:var(--ok);border:1px solid #b5dfc4}
.alert.info{background:#fff6dc;border:1px solid var(--yel)}
.sidecard{background:#fff;border-radius:14px;padding:24px}
.sidecard ul{margin:12px 0 0}

/* browse page */
.filters{background:#fff;border-radius:var(--radius);padding:16px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin-bottom:14px;align-items:end}
.more{text-align:center;margin-top:24px}

/* campsite page */
.crumbs{font-size:14px;margin:18px 0 10px}.crumbs a{text-decoration:underline}
.gallery{margin-bottom:24px}.gallery .g.ph{height:300px;border-radius:var(--radius);background:linear-gradient(135deg,var(--lake),var(--forest))}
.detail{display:grid;grid-template-columns:1.6fr 1fr;gap:34px;align-items:start;padding-bottom:40px}
.offerbox{background:#fff;border-radius:14px;padding:22px;border-top:6px solid var(--sun);position:sticky;top:calc(var(--stick-h,124px) + 16px)}
.offerbox .pct{font-size:42px;font-weight:700;color:var(--sundk);line-height:1}
.code{word-break:break-all;display:flex;gap:10px;align-items:center;background:var(--sand);border:2px dashed var(--forest);border-radius:10px;padding:12px 14px;margin:12px 0;font-size:22px;font-weight:700;letter-spacing:2px;color:var(--forest);justify-content:space-between}
.contact{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;word-break:break-word}
.review{border-top:1px solid var(--line);padding:12px 0}
.stars{color:var(--sundk);letter-spacing:2px}
#minimap{height:220px;border-radius:var(--radius);margin-top:18px;background:#cfe9ec}

/* members area */
.locked>.w{width:100%}
.locked{position:relative;min-height:560px;background:#cfe9ec url(/img/map-hero.webp) center/cover no-repeat;display:flex;align-items:center}
.locked:before{content:"";position:absolute;inset:0;background:rgba(246,238,221,.55);backdrop-filter:blur(3px)}
.locked .panel{position:relative}
.welcome{background:var(--forest);color:var(--sand);padding:18px 0}
.welcome h1{color:var(--sand);font-size:26px}.welcome p{margin:4px 0 0}
.mapstage{position:relative;isolation:isolate;z-index:0}
#map{height:min(72vh,680px);min-height:380px;background:#cfe9ec}
.pin{width:34px;height:34px;border-radius:50%;background:var(--sun);border:3px solid #fff;box-shadow:0 2px 6px #0004;display:flex;align-items:center;justify-content:center;transition:transform .15s}
.pin svg{width:18px;height:18px}
.pin.on{background:var(--forest);transform:scale(1.25)}
.mapdetail{position:absolute;z-index:500;top:12px;right:12px;bottom:12px;width:min(380px,calc(100% - 24px));background:#fff;border-radius:var(--radius);box-shadow:0 8px 30px #3a2e2655;overflow:auto;padding:0 18px 18px}
.mapdetail .x{position:sticky;top:0;float:right;margin:10px -6px 0 0;width:34px;height:34px;border-radius:50%;border:0;background:var(--sand);font-size:22px;line-height:1;color:var(--bark);z-index:2}
.mapdetail .ph{height:150px;border-radius:10px;margin:14px 0 12px;position:relative;overflow:hidden}
.mapdetail h2{font-size:22px;padding-top:14px}
.mapdetail dl{margin:12px 0 0}.mapdetail dt{font-weight:700;color:var(--forest);font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin-top:10px}
.mapdetail dd{margin:2px 0 0;overflow-wrap:anywhere}
.mapdetail .btn{width:100%;margin-top:14px}
.mapdetail .ph{background:linear-gradient(135deg,var(--lake),var(--forest))}
.mapdetail .ph img{width:100%;height:100%;object-fit:cover;display:block}
.mapdetail .ph .tent{position:absolute;inset:0;margin:auto;width:64px;height:64px;opacity:.55}
.mapdetail .ph.v1{background:linear-gradient(135deg,var(--sun),var(--yel))}.mapdetail .ph.v2{background:linear-gradient(135deg,var(--forest),var(--lake))}
.mapdetail .ph.v3{background:linear-gradient(135deg,var(--yel),var(--lake))}.mapdetail .ph.v4{background:linear-gradient(135deg,var(--sundk),var(--sun))}
.mapdetail .code{flex-wrap:wrap;word-break:normal;font-size:20px;letter-spacing:1px}
.mapdetail .code .btn{width:auto;margin:0}
.terms{list-style:none;padding:0;margin:4px 0 0}.terms li{padding:2px 0}
.searchsec{background:#fff;border-bottom:1px solid var(--line);padding:22px 0}
.searchsec .row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}
.searchsec .row>*{min-width:0}
.results{padding:26px 0 10px}
.results .head{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.rscroll{max-height:640px;overflow:auto;padding:4px 6px 8px 2px;scrollbar-width:thin}
.card.on{outline:3px solid var(--sun)}
.card .sd{min-height:3.2em}
.card .acts{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px}
.card .acts .btn{margin:0;flex:1 1 120px;padding:8px 10px;font-size:14px}
.mtrack{display:flex;gap:20px;overflow-x:auto;padding:4px 2px 14px;scrollbar-width:thin}
.mtrack>*{flex:0 0 280px}
.card.adcard{border:2px dashed var(--line);background:#fffdf7;box-shadow:none}
.card.adcard .ph{background:repeating-linear-gradient(45deg,#f3ead4,#f3ead4 12px,#fbf6ea 12px,#fbf6ea 24px)!important;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;font-size:13px;letter-spacing:.06em}
.adlabel{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.adbox{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px;min-height:100%;overflow:hidden}
.gtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:20px}
.gtile{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 0 #00000010}
.gtile:hover{box-shadow:0 6px 20px #3a2e2630}
.gtile .gimg{aspect-ratio:3/2;background:linear-gradient(135deg,var(--lake),var(--forest));display:block;overflow:hidden}
.gtile img{width:100%;height:100%;object-fit:cover;display:block}
.gtile .gtxt{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.gtile b{color:var(--forest);font-size:18px;line-height:1.25}.gtile small{color:var(--sundk);font-weight:700;margin-top:auto}
.guide{max-width:820px;margin:0 auto;padding:30px 20px 50px}
.guide figure{margin:0 0 24px;border-radius:var(--radius);overflow:hidden;background:var(--lake);aspect-ratio:3/2}
.guide figure img{width:100%;height:100%;object-fit:cover;display:block}
.guide .lead{font-size:19px}
.guide .adspot{margin:28px 0;border:2px dashed var(--line);border-radius:var(--radius);background:#fffdf7;min-height:120px}
.moreguides{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}

/* membership card */
.mcard{display:flex;flex-wrap:wrap;gap:18px 30px;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--forest),#1f4030);color:var(--sand);border-radius:16px;padding:22px 26px;box-shadow:0 8px 24px #3a2e2640;border-bottom:6px solid var(--sun)}
.mc-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.mc-name{font-size:28px;font-weight:700;margin-top:2px;overflow-wrap:anywhere}.muted2{opacity:.8;font-size:14px}
.mc-code{font-size:clamp(26px,5vw,38px);font-weight:700;letter-spacing:.08em;color:var(--yel);margin:2px 0 8px}
.codechip{background:var(--sand);border:1px dashed var(--forest);border-radius:6px;padding:1px 8px;letter-spacing:1px}

/* FAQ */
.faq{display:grid;gap:10px;max-width:820px;margin-top:14px}
.faq details{background:#fff;border-radius:var(--radius);padding:4px 18px}
.faq summary{cursor:pointer;font-weight:700;color:var(--forest);padding:12px 0;list-style-position:outside}
.faq details p{margin:0 0 14px}

/* dashboards and tables */
.dash{display:grid;grid-template-columns:1fr 320px;gap:28px;align-items:start;padding:30px 0 50px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.stat{background:var(--sand);border-radius:10px;padding:12px}.stat b{display:block;font-size:26px;color:var(--forest)}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:10px 0}
.photo{position:relative;border-radius:8px;overflow:hidden;background:var(--sand);aspect-ratio:4/3}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo .x{position:absolute;top:6px;right:6px;background:#fff;border:0;border-radius:50%;width:28px;height:28px;font-weight:700;color:var(--danger)}
.photo .rank{position:absolute;left:6px;top:6px;background:var(--yel);font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}
.photo .mv{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:6px}
.photo .mv button{background:rgba(255,255,255,.92);border:0;border-radius:6px;width:34px;height:30px;cursor:pointer;color:var(--forest)}
.photo .mv button:disabled{opacity:.35;cursor:default}
#preview{margin:10px 0 14px}
table.t{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;font-size:14px}
table.t th,table.t td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
table.t th{background:var(--forest);color:var(--sand)}
.status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700}
.status.pending{background:var(--yel)}.status.approved{background:#cfe9d8;color:var(--ok)}.status.hidden{background:#e5ded0}
.prose{max-width:760px;padding:34px 20px 60px}.prose h2{font-size:22px;margin:26px 0 8px}
.mini{background:#fff;border-radius:var(--radius);padding:14px;box-shadow:0 6px 20px #3a2e2633;color:var(--bark)}
.mini .bar2{display:flex;gap:6px;margin-bottom:10px}.mini .bar2 span{width:10px;height:10px;border-radius:50%;background:var(--line)}
.mini .r{display:flex;gap:8px;margin-bottom:8px}.mini .r div{flex:1;border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-size:13px}
.mini .r b{display:block;font-size:11px;color:var(--forest)}
.mini .th{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.mini .th span{height:56px;border-radius:6px;background:linear-gradient(135deg,var(--lake),var(--forest))}
.mini .th span:nth-child(2){background:linear-gradient(135deg,var(--sun),var(--yel))}
.mini .th span:last-child{background:#fff;border:2px dashed var(--forest);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--forest)}
.chero{background:var(--forest);color:var(--sand);padding:64px 0}
.chero .w{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}
.chero h1{color:var(--sand)} .chero p{font-size:19px;margin:14px 0 24px}

@media (max-width:900px){
  .stats5{grid-template-columns:repeat(2,1fr)!important}
  .split,.owners .w,.chero .w,.detail,.dash{grid-template-columns:minmax(0,1fr)}
  .filters{grid-template-columns:1fr 1fr}
  .offerbox{position:static}
  #map{height:62vh;min-height:340px}
  .mapdetail{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:68%}
  .searchsec .row{grid-template-columns:1fr 1fr}.searchsec .row>:first-child{grid-column:1/-1}
  .rscroll{max-height:none;overflow:visible}
}
@media (max-width:960px){
  header.top .w{height:72px;gap:10px}
  header.top .logo img{height:52px}
  .burger{display:block}
  header.top .jn{padding:9px 14px;font-size:15px}
  header.top nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--forest);flex-direction:column;align-items:flex-start;padding:16px 20px 22px;gap:14px;margin:0}
  header.top.open nav{display:flex}
}
@media (max-width:480px){
  .btn.big{font-size:18px;padding:14px 20px}
  .panel{padding:20px}
}
@media (max-width:820px){
  .hero .w{min-height:0}.panel{padding:22px}
  .joinbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--bark);padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}
  .joinbar a{flex:1;font-size:18px;padding:14px;box-shadow:0 3px 0 var(--sundk)}
  body:not(.is-member){padding-bottom:76px}body.is-member{padding-bottom:76px}
  .row2,.filters{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){html,.track{scroll-behavior:auto}.toast{transition:none}}

/* ===== Camping guides ===== */
.gmeta{font-size:14px;opacity:.85;margin:6px 0 0}
.gtile .gcat{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lake)}
.guide h2{font-size:26px;margin:34px 0 10px}.guide h3{margin:22px 0 8px}
.guide ul,.guide ol{margin:0 0 16px;padding-left:22px}.guide li{margin-bottom:6px}
.guide a:not(.btn):not(.dlcard):not(.gtile){color:var(--forest);text-decoration:underline}
.guide p,.guide li{overflow-wrap:anywhere}
.callout{border-left:5px solid var(--lake);background:#fff;border-radius:8px;padding:14px 16px;margin:20px 0}
.callout.tip{border-color:var(--ok)}.callout.warn{border-color:var(--danger)}.callout.note{border-color:var(--yel)}
.callout p:last-child{margin:0}
.tablewrap{overflow-x:auto;margin:18px 0;-webkit-overflow-scrolling:touch}
table.gt{width:100%;border-collapse:collapse;background:#fff;font-size:15px;min-width:420px}
table.gt th,table.gt td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
table.gt th{background:var(--forest);color:var(--sand)}
.checklist{background:#fff;border-radius:var(--radius);padding:16px;margin:20px 0;box-shadow:0 1px 0 #00000010}
.cl-top{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}
.cl-progress{flex:1 1 160px;height:10px;background:var(--line);border-radius:6px;overflow:hidden}
.cl-progress span{display:block;height:100%;width:0;background:var(--ok);transition:width .2s}
.cl-count{font-weight:700;color:var(--forest);font-size:14px}
.cl-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:6px 24px}
.cl-group h3{font-size:17px;margin:14px 0 6px;border-bottom:2px solid var(--line);padding-bottom:4px}
.cl-group ul{list-style:none;padding:0;margin:0}.cl-group li{margin:0}
.cl-group label{display:flex;gap:10px;align-items:flex-start;padding:6px 2px;cursor:pointer}
.cl-group input{width:20px;height:20px;margin-top:2px;accent-color:var(--forest);flex:none}
.cl-group input:checked+span{text-decoration:line-through;color:var(--muted)}
.dlgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:14px;margin:18px 0}
.dlcard{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--yel);border-radius:var(--radius);padding:14px 16px;margin:18px 0}
.dlgrid .dlcard{margin:0}
.dlcard:hover{background:#fffaf0}
.dlcard>span:nth-child(2){flex:1;min-width:0}
.dlcard b{display:block;color:var(--forest)}.dlcard small{display:block;color:var(--muted);line-height:1.35}
.dl-ico{width:44px;height:44px;border-radius:50%;background:var(--forest);color:var(--sand);display:grid;place-items:center;font-size:24px;flex:none}
.dl-go{background:var(--sun);color:var(--bark);font-weight:700;border-radius:30px;padding:7px 14px;font-size:14px}
.joincta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--forest);color:var(--sand);border-radius:var(--radius);padding:20px 22px;margin:32px 0}
.joincta .btn{flex:none}
.related{margin-top:40px;padding-top:10px;border-top:2px solid var(--line)}
.related .link,.link{color:var(--forest);text-decoration:underline;font-weight:700}
.gsec{padding:28px 0 6px}.gsec h2{margin-bottom:16px}
.sources{font-size:14px;color:var(--muted);border-top:1px solid var(--line);margin-top:30px;padding-top:12px}
.sources li{margin-bottom:3px}
.clist{columns:2 220px;gap:24px;list-style:none;padding:0!important}.clist li{break-inside:avoid}
.adhouse{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;min-height:120px;color:var(--muted)}
.adspot{max-width:100%;overflow:hidden}
@media print{header.top,footer,.joinbar,.adspot,.joincta,.dlcard,.related,.cl-reset{display:none!important}.guide{max-width:none}}

/* ===== Modern look layer: light, CSS-only (no extra images, fonts or scripts) ===== */
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
/* brand splashes on plain backgrounds */
section.s>.w>h2:after,.guide h2:after{content:"";display:block;width:54px;height:5px;border-radius:3px;background:var(--sun);margin-top:8px}
.owners h2:after,.joinband h2:after,.offer h2:after,.cbanner h2:after{background:var(--forest)}
.joinband h2:after,.cbanner h2:after{background:var(--yel);margin-inline:auto}
.joinband h2:after{margin-inline:auto}
main>section.s:nth-of-type(even):not(.owners):not(.joinband){background:#fff}
.page-head{border-radius:0 0 36px 36px;border-bottom:6px solid var(--yel);padding-bottom:44px}
.owners{border-radius:36px;margin:0 12px}
.joinband{border-radius:36px 36px 0 0}
.chip,.pills a,.gtile .gcat{transition:background .15s,color .15s}
.gtile .gcat{align-self:flex-start;background:var(--yel);color:var(--bark);border-radius:20px;padding:2px 10px;font-size:11px}
/* rounder cards, organic image corners, lift on hover */
.card,.gtile,.steps>div,.pitch>div,.empty{border-radius:20px}
.card .ph,.gtile .gimg{border-radius:20px 20px 60px 20px}
.card,.gtile{transition:transform .2s,box-shadow .2s}
a.card:hover,.gtile:hover{transform:translateY(-4px)}
.card .ph img,.gtile img{transition:transform .5s}
a.card:hover .ph img,.gtile:hover img{transform:scale(1.06)}
.guide figure{border-radius:36px 36px 36px 8px;box-shadow:10px 10px 0 var(--yel);margin-right:10px}
.mapdetail,.mcard,.panel{border-radius:22px}
/* frosted hero panel (one element only, so it stays cheap) */
@supports (backdrop-filter:blur(8px)){.panel{background:#F6EEDDD9;backdrop-filter:blur(8px)}}
/* fade-up as cards scroll into view: pure CSS, ignored by older browsers */
@supports (animation-timeline:view()){
  .grid>*,.gtiles>*,.steps>div,.pitch>div,.dlgrid>*{animation:rise both linear;animation-timeline:view();animation-range:entry 0% entry 45%}
}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
/* skip drawing off-screen sections until needed */
@media (max-width:600px){.owners{margin:0;border-radius:0}.page-head{border-radius:0 0 24px 24px}.guide figure{box-shadow:6px 6px 0 var(--yel);margin-right:6px}}
@media (prefers-reduced-motion:reduce){.grid>*,.gtiles>*,.steps>div,.pitch>div,.dlgrid>*{animation:none}.card,.gtile,.card .ph img,.gtile img{transition:none}a.card:hover,.gtile:hover{transform:none}}

/* ===== Hero slideshow: 6 slides x 2.86s, cross-fade, slow zoom. CSS only. ===== */
.slides{position:absolute;inset:0;z-index:0;overflow:hidden;background:#24493a}
.slide{position:absolute;inset:0;opacity:0;animation:fade 17.136s infinite}
.slide img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;animation:zoom 17.136s infinite;transform-origin:50% 55%}
.slide:nth-child(1){opacity:1;animation-name:fade0}
.slide:nth-child(1) img{animation-name:zoom0}
.slide:nth-child(2),.slide:nth-child(2) img{animation-delay:2.856s}
.slide:nth-child(3),.slide:nth-child(3) img{animation-delay:5.712s}
.slide:nth-child(4),.slide:nth-child(4) img{animation-delay:8.568s}
.slide:nth-child(5),.slide:nth-child(5) img{animation-delay:11.424s}
.slide:nth-child(6),.slide:nth-child(6) img{animation-delay:14.28s}
@keyframes fade{0%{opacity:0}6.94%,16.67%{opacity:1}23.61%,100%{opacity:0}}
@keyframes fade0{0%,16.67%{opacity:1}23.61%,93.05%{opacity:0}100%{opacity:1}}
@keyframes zoom{0%{transform:scale(1)}23.61%,100%{transform:scale(1.1)}}
@keyframes zoom0{0%{transform:scale(1)}23.61%,91.67%{transform:scale(1.1)}93.05%,100%{transform:scale(1)}}
.hero .tint{background:linear-gradient(to bottom,rgba(36,73,58,.22) 0%,rgba(36,73,58,0) 30%,rgba(242,182,50,0) calc(100% - 190px),rgba(242,182,50,.6) calc(100% - 130px),#F2B632 calc(100% - 100px),#F2B632 100%)}
.hero .w{min-height:480px}.hero .panel{max-width:440px}
@media (max-width:820px){
  .hero{background:var(--yel);padding:0 0 120px;display:flex;flex-direction:column}
  .slides{position:relative;inset:auto;height:clamp(240px,68vw,400px);border-radius:0 0 28px 28px}
  .hero .tint{display:none}
  .hero .w{min-height:0;margin-top:20px}
  .hero .panel{max-width:none}
}
@media (prefers-reduced-motion:reduce){.slide,.slide img{animation:none!important}.slide:not(:first-child){display:none}}
@media (min-width:821px){.hero .panel{max-width:400px;padding:26px;margin-left:-30px}.hero .panel h1,.hero .panel .h1{font-size:clamp(28px,3.2vw,38px)}}

/* clean hero: no overlay, no waves */
.hero{padding:48px 0}
.hero .tint,.hero svg.hills{display:none}
@media (max-width:820px){.hero{background:var(--sand);padding:0 0 28px}}

/* ===== Phone fixes ===== */
/* sticky banner + header on its own layer: stops the flicker some iPhones show while scrolling */
.stickytop{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-font-smoothing:antialiased}
.slides{-webkit-transform:translateZ(0);transform:translateZ(0);contain:paint}
/* every map stays underneath the sticky banner and header */
.leaflet-container{position:relative;z-index:0;isolation:isolate}
/* two-finger map hint on touch screens */
.maphint{position:absolute;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;background:rgba(36,73,58,.72);color:var(--sand);font-weight:700;font-size:18px;opacity:0;pointer-events:none;transition:opacity .25s}
.maphint.on{opacity:1}

/* ===== Members-only holding page and badges ===== */
.gtile .gimg{position:relative}
.gtile.lk .gimg:after{content:"Members only";position:absolute;left:10px;top:10px;background:var(--forest);color:var(--sand);font-size:12px;font-weight:700;border-radius:20px;padding:3px 11px}
body.is-member .gtile.lk .gimg:after{display:none}
.lockpage{padding:30px 0 10px}
.lockbox{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:3/2;max-height:560px;background:var(--forest);box-shadow:10px 10px 0 var(--yel);margin:0 10px 0 0}
.lockbox>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.lockbox:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,rgba(47,93,70,.82),rgba(42,140,140,.7) 55%,rgba(232,116,59,.62))}
.lockmsg{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:20px;color:#fff}
.lockmsg h2{color:#fff;font-size:clamp(26px,4.4vw,42px)}
.lockmsg .big{font-size:clamp(17px,2.4vw,22px);margin:2px 0 12px}
.lockmsg .login a{color:#fff;text-decoration:underline;font-weight:700}
.lockico{width:62px;height:62px;border-radius:50%;background:var(--yel);display:grid;place-items:center;margin-bottom:6px}
.lockticks{max-width:520px;margin:24px auto 0!important}
@media (max-width:600px){.lockbox{aspect-ratio:auto;min-height:400px;box-shadow:6px 6px 0 var(--yel);margin-right:6px}}

/* ===== What can stay: filters and chips ===== */
.staybar{border:0;margin:0 0 14px;padding:0}
.staybar legend{font-weight:700;color:var(--forest);padding:0;margin-bottom:6px}
.staybar #stay{display:flex;flex-wrap:wrap;gap:6px 14px}
.staybar .sizes{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px;font-size:15px}
.staybar .sizes input{width:5.5em;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff}
.stay{font-size:13px;color:var(--forest);font-weight:700}
.searchsec .staybar{margin-top:14px}

/* Facebook group band (top of every footer) */
.fbband{display:block;background:var(--sand);color:var(--forest);margin:0 0 30px;padding:20px 0}
.fbband:hover{background:#fff7e6}
.fbin{display:flex;align-items:center;gap:18px;max-width:var(--max);margin:0 auto;padding:0 20px;flex-wrap:wrap}
.fblogo{flex:none;display:block}
.fbtxt{flex:1 1 240px;min-width:0}
.fbtxt b{display:block;font-size:clamp(20px,3vw,28px);line-height:1.2}
.fbtxt small{display:block;font-size:15px;color:var(--bark);margin-top:2px}
.fbin .btn{flex:none}
.fblink{text-decoration:underline;font-weight:700;color:var(--yel)}
.owners{margin-bottom:28px}

/* photo slideshow + lightbox */
.pslides{--sh:280px;position:relative;border-radius:var(--radius);overflow:hidden}
.pslides-track{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;outline-offset:-3px}
.pslides-track::-webkit-scrollbar{display:none}
.pslide{flex:0 0 auto;border:0;padding:0;background:var(--sand);cursor:zoom-in;height:var(--sh);border-radius:8px;overflow:hidden}
.pslide img{height:var(--sh);width:auto;max-width:none;display:block;transition:transform .35s}
.pslide:hover img,.pslide:focus-visible img{transform:scale(1.03)}
.pslide:focus-visible{outline:3px solid var(--yel);outline-offset:-3px}
.pslides-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--forest);font-size:30px;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.pslides-nav.prev{left:10px}.pslides-nav.next{right:10px}
.pslides.pstatic .pslides-track{justify-content:flex-start}
@media(max-width:700px){.pslides{--sh:210px}.pslides-nav{width:38px;height:38px;font-size:26px}}
.lb{position:fixed;inset:0;z-index:2000;background:rgba(10,18,14,.94);display:flex;align-items:center;justify-content:center;padding:56px 64px}
.lb[hidden]{display:none}
.lb-open,.lb-open body{overflow:hidden}
.lb-fig{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px}
.lb-img{max-width:100%;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);object-fit:contain;border-radius:6px;background:#111}
.lb-cap{color:#fff;font-size:15px;text-align:center}
.lb-x,.lb-nav{position:absolute;border:0;background:rgba(255,255,255,.16);color:#fff;border-radius:50%;cursor:pointer;line-height:1;width:48px;height:48px}
.lb-x:hover,.lb-nav:hover,.lb-x:focus-visible,.lb-nav:focus-visible{background:rgba(255,255,255,.34);outline:2px solid var(--yel)}
.lb-x{top:12px;right:12px;font-size:34px}
.lb-nav{top:50%;transform:translateY(-50%);font-size:38px}.lb-prev{left:10px}.lb-next{right:10px}
.lb.single .lb-nav{display:none}
@media(max-width:700px){.lb{padding:56px 8px 24px}.lb-nav{top:auto;bottom:14px;transform:none}.lb-prev{left:calc(50% - 120px)}.lb-next{right:calc(50% - 120px)}.lb-cap{margin-bottom:56px}}

/* login button in the hero */
.hero .login{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.hero .login a.btn.green{text-decoration:none;color:var(--sand);padding:10px 22px}
/* the map slide is shown exactly as supplied (wide picture): keep the UK in view when cropped */
.slide.map img{object-position:55% 50%}

/* ===== Main sponsor: bar, page and slideshow ===== */
.sponsorbar a{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;text-decoration:none;padding:5px 12px;min-height:38px}
.sponsorbar img{max-height:26px;max-width:200px;width:auto;height:auto;display:block}
.sponsorbar .sbrand{text-decoration:underline}
.sslides{position:absolute;inset:0;z-index:0;overflow:hidden;background:#24493a;-webkit-transform:translateZ(0);transform:translateZ(0);contain:paint}
.sslide{position:absolute;inset:0;opacity:0}
.sslide img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.shero.n1 .sslide{opacity:1}
.shero.n2 .sslide{animation:sf2 6.8s infinite}
.shero.n2 .sslide:nth-child(2){animation-delay:3.4s}
.shero.n3 .sslide{animation:sf3 10.2s infinite}
.shero.n3 .sslide:nth-child(2){animation-delay:3.4s}
.shero.n3 .sslide:nth-child(3){animation-delay:6.8s}
@keyframes sf2{0%{opacity:0}4%,50%{opacity:1}58%,100%{opacity:0}}
@keyframes sf3{0%{opacity:0}3%,33.3%{opacity:1}39%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.sslide{animation:none!important}.sslide:first-child{opacity:1}.sslide:not(:first-child){display:none}}
.shero .panel h1{margin:0}
@media (max-width:820px){
  .shero{background:var(--sand);padding:0 0 28px;display:flex;flex-direction:column}
  .sslides{position:relative;inset:auto;height:clamp(240px,68vw,400px);border-radius:0 0 28px 28px}
  .shero .w{min-height:0;margin-top:20px}.shero .panel{max-width:none}
}
.spage{background:var(--sand)}
.sblock{padding:44px 0}
.sgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center}
.sgrid.flip .sfig{order:-1}
.sgrid.solo{grid-template-columns:minmax(0,780px);justify-content:center}
.sfig{margin:0}.sfig a{display:block}
.sfig img{width:100%;height:auto;display:block;border-radius:var(--radius);box-shadow:0 6px 22px #3a2e2638}
.stxt h2{margin:0 0 12px}
.stxt p{margin:0 0 14px;font-size:18px;overflow-wrap:anywhere}
.sbtn{margin-top:6px}
@media (max-width:820px){.sgrid,.sgrid.flip{grid-template-columns:minmax(0,1fr);gap:22px}.sgrid.flip .sfig{order:0}.sblock{padding:30px 0}}
.stxt h2{color:inherit}

/* sponsor + webmaster control areas */
.wf{background:#fbfaf6;border:2px dashed #b9b09c}
.wf .field input,.wf .field textarea{background:#fff}
.barprev{background:var(--yel);color:var(--bark);font-weight:700;font-size:15px;text-align:center;min-height:38px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;border-radius:8px;padding:5px 12px}
.barprev img{max-height:26px;max-width:200px;width:auto}
.imgslot{display:grid;gap:8px;align-content:start}
.wfimg{aspect-ratio:16/9;border:2px dashed #b9b09c;border-radius:10px;background:repeating-linear-gradient(45deg,#f1ede2,#f1ede2 10px,#f7f4ea 10px,#f7f4ea 20px);display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;overflow:hidden}
.wfimg.has{border-style:solid;border-color:var(--line);background:#fff}
.wfimg img{width:100%;height:100%;object-fit:contain}
.slotbtns{display:flex;gap:8px;flex-wrap:wrap}
.slotbtns label{cursor:pointer}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:16px}
.bgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px}
@media (max-width:820px){.bgrid{grid-template-columns:minmax(0,1fr)}}
.cfield{display:flex;gap:8px;align-items:center}
.cfield input{flex:1;min-width:0}
.swatch{flex:none;width:38px;height:38px;border-radius:8px;border:1px solid var(--line);background:repeating-linear-gradient(45deg,#eee,#eee 6px,#fff 6px,#fff 12px)}
.warn{color:var(--danger);font-weight:600;margin:0}
.qitem{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff;display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.diff td,.diff th{vertical-align:top;text-align:left;padding:8px;border-bottom:1px solid var(--line)}
.diff .old{background:#fde8e6}.diff .new{background:#e4f4ea}
.shero .panel{margin-left:0!important}

/* sponsor page: calm cream look until the sponsor chooses colours */
.sblock{padding:32px 0}
.stxt{background:#FBF7EC;border:1px solid #E6DCC4;border-radius:18px;padding:28px 30px;color:var(--bark)}
.sbtn{background:var(--forest);color:var(--sand)}.sbtn:hover{background:#1f4030}
@media (max-width:820px){.stxt{padding:22px}}

/* sponsor control area: friendly layout, green picture holders, colour pickers */
.sec{background:#fff;border:1px solid var(--line)}
.stepttl{display:flex;gap:12px;align-items:center;font-size:24px;margin:0}
.stepn{flex:none;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--forest);color:var(--sand);font-size:18px;font-weight:700}
.stepn.small{width:28px;height:28px;font-size:15px}
.stepsub{margin:0}.subttl{display:flex;gap:10px;align-items:center;margin:8px 0 0;font-size:20px}
.mini-h{margin:14px 0 4px;font-size:16px;color:var(--forest)}
.ph-green{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:16/9;border-radius:12px;cursor:pointer;overflow:hidden;text-align:center;padding:12px;color:var(--sand);background:repeating-linear-gradient(135deg,#2f5d46,#2f5d46 14px,#336a4f 14px,#336a4f 28px);border:3px solid #24493a;transition:transform .15s,box-shadow .15s}
.ph-green:hover,.ph-green:focus-within{transform:translateY(-2px);box-shadow:0 8px 22px #24493a55}
.ph-green:focus-within{outline:3px solid var(--yel);outline-offset:2px}
.ph-green small{opacity:.85}.ph-green b{font-size:17px}
.ph-green.wide{aspect-ratio:4/1;flex-direction:row;gap:12px}.ph-green.wide svg{width:44px;height:44px}.ph-green.wide small{display:none}
.ph-green.has{background:#fff;border-color:var(--line);padding:0}
.ph-green.has img{width:100%;height:100%;object-fit:contain;display:block}
.ph-change{position:absolute;right:8px;bottom:8px;background:#24493acc;color:var(--sand);border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700}
.ph-green.busy{opacity:.6;cursor:wait}.ph-green.busy::after{content:'Adding your picture...';position:absolute;inset:auto 0 10px;font-weight:700}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:16px}
.more{margin:10px 0;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fbfaf6}
.more summary{cursor:pointer;font-weight:700;color:var(--forest)}
.colours{display:grid;gap:18px;margin-top:10px}.colours.two{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.cpick{display:grid;gap:6px;align-content:start}.cpick .label{margin:0}.cpick small{color:var(--muted)}
.cp-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cp-presets{display:flex;gap:6px;flex-wrap:wrap}
.cp-sw{width:36px;height:36px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #8a8170;cursor:pointer;padding:0}
.cp-sw:hover{transform:scale(1.12)}.cp-sw.on{box-shadow:0 0 0 3px var(--forest);transform:scale(1.12)}
.cp-wheel{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--forest);cursor:pointer;border:1px solid var(--line);border-radius:20px;padding:3px 12px 3px 4px;background:#fff}
.cp-wheel input{width:30px;height:30px;border:0;padding:0;background:none;cursor:pointer}
.cp-numl{display:inline-flex;align-items:center;gap:8px;font-size:14px}
.cp-num{width:150px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.cp-num[aria-invalid=true]{border-color:var(--danger)}
.cp-note{font-size:13px;color:var(--muted)}
.mini{margin-top:12px}.mini-cap{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}
.mini-card{border:1px solid #d8cfb8;border-radius:12px;padding:12px 16px;line-height:1.5}
.mini-btn{display:inline-block;margin-top:6px;border-radius:20px;padding:4px 16px;font-weight:700;font-size:14px}
.savebar{position:sticky;bottom:0;z-index:30;background:#fffdf6;border-top:3px solid var(--forest);padding:12px 16px;border-radius:14px 14px 0 0;box-shadow:0 -6px 18px #3a2e2626;display:grid;gap:6px}
.imgslot .label{margin-bottom:2px}
.savebar{padding:8px 14px}.savebar small{display:none}@media(min-width:700px){.savebar small{display:block;font-size:12px}}
.guide-box{background:#eef5ef;border:1px solid #b9d3c1;border-left:6px solid var(--forest);border-radius:10px;padding:12px 18px;margin:10px 0 14px}
.guide-box ul{margin:8px 0 0;padding-left:20px;display:grid;gap:4px;font-size:15px}
.cp-wheel{border:2px solid var(--forest);border-radius:12px;padding:6px 14px 6px 6px;gap:10px;background:#fff}
.cp-wheel input{width:56px;height:44px;border:0;border-radius:8px;cursor:pointer;padding:0;background:none}
.cp-wheel span{display:grid;line-height:1.2}.cp-wheel small{font-weight:400;color:var(--muted);font-size:12px}
.cp-wheel:hover,.cp-wheel:focus-within{background:#eef5ef}

.helpbox{background:#f4f1e6;border:1px solid #d9d2b8;border-radius:8px;padding:10px 14px}
.helpbox summary{cursor:pointer}
.helpbox ol{margin:8px 0 4px 20px}
.notice.warn{background:#fff6dc;border:1px solid var(--yel);border-radius:8px;padding:10px 14px}
.notice.warn ul{margin:6px 0 0 20px}
.picerr{background:#fde8e6;color:var(--danger);border:1px solid #f3b7b2;border-radius:8px;padding:10px 14px;margin:8px 0}

.wmbar{background:#2f5d46;color:#fff;font-size:15px}
.wmbar .w{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding-top:7px;padding-bottom:7px}
.wmbar a{color:#fff;text-decoration:underline;font-weight:600}
.wmcount{display:inline-block;min-width:22px;padding:0 7px;border-radius:11px;background:#f2b632;color:#3a2e26;text-align:center;font-weight:700}
.wmswitch{margin-left:auto;background:#fff;color:#2f5d46;border:0;border-radius:6px;padding:6px 12px;font-weight:700;cursor:pointer}
.wmback{background:#8a4b12;display:none}
.wmback .wmswitch{margin-left:0}
body.is-editor.cust-view .wmback{display:block}
body.cust-view .wmbar[data-show=editor]{display:none!important}
body.cust-view [data-show=editor]{display:none!important}

.spbar .spnote{opacity:.85;font-size:14px}
body.is-sponsor.cust-view .wmback{display:block}
body.cust-view .spbar{display:none!important}
body.cust-view [data-show=sponsor]{display:none!important}

.pwwrap{position:relative;display:block}
.pwwrap input{padding-right:70px!important;width:100%}
.pwtoggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:#f4f1e6;border:1px solid #d9d2b8;border-radius:6px;padding:4px 10px;font-weight:600;font-size:14px;font-family:inherit;color:#2f5d46;cursor:pointer}
.pwtoggle:hover{background:#ece6d0}

.pwmatch{font-size:14px;margin:4px 0 0;min-height:1em}
.pwmatch.ok{color:var(--ok)}
.pwmatch.no{color:var(--danger)}

/* sponsor strip: never wider than the screen */
.sponsorbar{overflow:hidden}
.sponsorbar a{max-width:100%;box-sizing:border-box;gap:8px 10px;font-size:15px;line-height:1.25;text-align:center}
.sponsorbar img{max-width:min(200px,55vw);max-height:26px;object-fit:contain}
.sponsorbar .sbrand{overflow-wrap:anywhere;max-width:100%}
@media (max-width:480px){.sponsorbar a{font-size:14px;padding:5px 8px}.sponsorbar img{max-width:50vw;max-height:24px}}
.barprev{overflow:hidden;max-width:100%}.barprev img{max-width:50vw;height:auto}
.wmbar .splogout{margin-left:0}
.spbar .w{row-gap:8px}

.memband{background:var(--sand);color:var(--forest);border-bottom:1px solid var(--line);text-align:center;padding:12px 0;font-size:16px}
.memband .w{display:flex;gap:6px 14px;justify-content:center;align-items:center;flex-wrap:wrap}
.memband b{font-size:clamp(26px,4.2vw,32px);line-height:1.15;color:var(--forest);display:block;flex:0 0 100%}

/* map sits inside the same page width as the text on larger screens, full width on small screens */
.mapstage{max-width:var(--max);margin:22px auto 0;padding:0 20px;box-sizing:border-box}
.mapstage #map{border-radius:var(--radius);overflow:hidden}
.mapstage .mapdetail{right:32px;top:12px;bottom:12px}
@media (max-width:900px){.mapstage{max-width:none;margin-top:0;padding:0}.mapstage #map{border-radius:0}.mapstage .mapdetail{left:8px;right:8px;top:auto;bottom:8px}}
/* signup reach box */
.reach{background:#fff6dc;border:2px solid var(--yel);border-radius:var(--radius);padding:16px 20px;margin:18px auto;max-width:var(--max);box-sizing:border-box}
.reach ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 18px}
.reach li b{display:block;font-size:22px;color:var(--forest)}
.edname{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.edname .btn{white-space:nowrap}
@media (max-width:640px){.spbar .spnote{display:none}.wmbar .wmswitch{margin-left:0}}

.card.yours{border:2px dashed var(--forest);background:#f4f1e6}
.card.yours .yourph{background:#2f5d46;color:#f6eedd;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:12px}
.card.yours .yourph b{font-size:20px}

.tierlist{list-style:none;margin:8px 0 0;padding:10px 12px;background:#f4f1e6;border-radius:8px;font-size:15px}
.tierlist li{padding:2px 0}.tierlist li:first-child{color:var(--forest);font-weight:600}
.tierrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}.tierrow input{width:84px}
.copyrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.copyrow input{flex:1;min-width:200px}.smsg{width:100%;font:inherit;line-height:1.45}.simg{max-width:340px;width:100%;border-radius:10px;display:block}

.usp{background:var(--forest);color:var(--sand);padding:34px 0}
.usp h2{color:var(--sand);margin:0 0 8px}.usp p{margin:0;font-size:18px;max-width:640px}
.uspin{display:grid;grid-template-columns:1.3fr .7fr;gap:26px;align-items:center}
.uspl{list-style:none;margin:0;padding:16px 18px;background:rgba(255,255,255,.1);border-radius:var(--radius);display:grid;gap:8px}
.uspl b{color:var(--yel)}
@media (max-width:800px){.uspin{grid-template-columns:minmax(0,1fr)}}

/* Join free link in the members band: brown with cream writing, not a button */
.memband a.joinlnk{background:var(--bark);color:var(--sand);padding:6px 16px;border-radius:999px;font-weight:700;text-decoration:none;white-space:nowrap}
.memband a.joinlnk:hover{background:#000;color:#fff}
/* Members area feature tiles */
.mtiles{display:grid;gap:16px;margin-top:12px}
.mtile{display:flex;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.mtile .mico{flex:none;width:92px;height:92px;display:block}
.mtile h3{font-size:22px}
.mtile p{margin:0 0 10px}
.mtile .soon{display:inline-block;background:var(--yel);color:var(--bark);font-weight:700;font-size:13px;padding:3px 10px;border-radius:999px;margin-left:8px;vertical-align:middle;letter-spacing:.03em;text-transform:uppercase}
.mtile .cta{margin-top:4px}
a.mtile.lnk{text-decoration:none;color:inherit}
a.mtile.lnk:hover{border-color:var(--forest)}
@media (max-width:560px){.mtile{flex-direction:column;align-items:flex-start;text-align:left}.mtile .mico{width:72px;height:72px}}

.feenote{margin-top:16px;background:#fff8e1;border:1px solid var(--yel);border-radius:var(--radius);padding:14px 16px}
.feenote b{display:block;color:var(--forest);margin-bottom:4px}
.feenote p{margin:0}
.logtabs{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.logtabs button{flex:1;min-width:140px;padding:12px 14px;border:2px solid var(--forest);background:#fff;color:var(--forest);border-radius:var(--radius);font:inherit;font-weight:700;cursor:pointer}
.logtabs button[aria-pressed=true]{background:var(--forest);color:var(--sand)}

.welcome .soonline{margin:0;font-weight:700}
#rprompt{text-align:left}

/* =====================================================================
   2026 DESIGN LAYER - flat, spacious, big type, soft depth.
   Sits last so it wins over the older rules above.
   ===================================================================== */
:root{--sand:#FAF8F3;--line:#E6E2D8;--deep:#17382B;--ink:#14231B;--radius:22px;
  --lift:0 1px 2px rgba(20,35,27,.05),0 16px 36px -16px rgba(20,35,27,.24)}
body{background:var(--sand);color:var(--ink);font-family:"Inter","SF Pro Text",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:800;letter-spacing:-.028em;line-height:1.08;margin-bottom:10px}
h1,.h1{font-size:clamp(36px,5.6vw,60px)} h2{font-size:clamp(28px,3.8vw,42px)} h3{font-size:20px;letter-spacing:-.015em;line-height:1.2}
p{margin-bottom:17px}
.sub{font-size:19px;color:var(--muted);margin-bottom:36px}
/* no more accent bars under headings */
section.s>.w>h2:after,.guide h2:after,.owners h2:after,.joinband h2:after,.offer h2:after,.cbanner h2:after{display:none}
section.s{padding:84px 0}
main>section.s:nth-of-type(even):not(.owners):not(.joinband){background:transparent}
/* header */
header.top{background:var(--deep)}
header.top .w{height:80px}
nav{gap:26px;font-weight:600;font-size:15px}
nav a{opacity:.92} nav a:hover{opacity:1;color:#fff}
/* buttons: flat pills */
.btn{font-weight:700;padding:12px 24px;transition:transform .15s,background .15s,color .15s,box-shadow .15s}
.btn:hover{background:var(--sun);filter:brightness(1.07);transform:translateY(-1px)}
.btn.big{font-size:18px;padding:16px 32px;box-shadow:none}
.btn.yel:hover{background:var(--yel)}
.btn.green:hover{background:var(--deep)}
.btn.ghost{border-width:1.5px}
.btn.ghost:hover{filter:none}
.btn.green{background:var(--deep)}
/* hero: type first, the photo does the talking */
.hero{background:var(--deep)}
.hero .tint{background:linear-gradient(to bottom,rgba(23,56,43,.28) 0%,rgba(23,56,43,0) 32%,rgba(23,56,43,0) 62%,var(--deep) 100%)}
.panel{background:rgba(250,248,243,.86);border-radius:28px;box-shadow:0 30px 60px -24px rgba(10,25,18,.5)}
@supports (backdrop-filter:blur(8px)){.panel{background:rgba(250,248,243,.78);backdrop-filter:blur(16px) saturate(1.2)}}
.panel h1,.panel .h1{letter-spacing:-.035em}
.free{background:var(--yel);padding:5px 14px;font-weight:700}
@media (max-width:820px){.hero{background:var(--deep)}}
/* bands */
.cbanner,.usp,.joinband,.welcome,.page-head{background:var(--deep)}
.cbanner .w{padding-top:34px;padding-bottom:34px}
.usp{padding:72px 0}
.usp h2{font-size:clamp(30px,4.4vw,48px)}
.uspl{background:rgba(255,255,255,.07);padding:22px 24px;border-radius:24px}
.joinband{border-radius:0;padding:84px 0}
.joinband h2{font-size:clamp(30px,4.4vw,48px)}
.joinband input{padding:17px 24px}
.page-head{border-radius:0;border-bottom:0;padding:72px 0 64px}
.page-head h1{font-size:clamp(36px,5.4vw,56px)}
.page-head p{font-size:20px;opacity:.9;max-width:680px}
.welcome{padding:30px 0}.welcome h1{font-size:clamp(28px,4vw,40px)}
.owners{background:#FBEFD2;border-radius:0;margin:0;padding:84px 0}
.owners .w{gap:56px}
/* cards: no borders, soft depth, square photos inside */
.card,.gtile,.steps>div,.pitch>div,.empty,.formcard,.sidecard,.mapdetail,.mcard{border:0;box-shadow:var(--lift);border-radius:24px}
.card .ph,.gtile .gimg{border-radius:0}
.card .in{padding:18px}
a.card:hover,.gtile:hover{box-shadow:0 2px 4px rgba(20,35,27,.06),0 26px 48px -18px rgba(20,35,27,.34)}
.pitch>div{border-top:0;padding:28px}
.steps>div{padding:28px}
.steps>div:before{position:static;width:auto;height:auto;background:none;border-radius:0;display:block;font-size:44px;font-weight:800;letter-spacing:-.04em;color:var(--sun);line-height:1;margin-bottom:14px}
.badge{border-radius:999px;padding:4px 10px}
.chip,.chips li{border:0;background:#EEF2EC}
.pills a{border-width:1.5px}
.reach{background:#fff;border:0;border-radius:24px;box-shadow:var(--lift);padding:24px 28px}
.reach li b{font-size:26px;letter-spacing:-.02em}
.dlcard{border:0;box-shadow:var(--lift);border-radius:24px}
.guide figure{border-radius:28px;box-shadow:none;margin-right:0}
.guide .adspot{border:1.5px dashed var(--line);background:transparent}
/* forms */
.formcard,.sidecard{padding:34px}
.field input,.field select,.field textarea,.searchsec input,.searchsec select{border:1px solid #D9D5C9;border-radius:14px;background:#fff;padding:13px 15px;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field select:focus,.field textarea:focus,.searchsec input:focus,.searchsec select:focus{outline:0;border-color:var(--forest);box-shadow:0 0 0 4px rgba(47,93,70,.16)}
.field label{font-weight:600}
.searchsec{border-bottom:0;padding:34px 0}
/* FAQ: plain list with hairlines */
.faq{gap:0;max-width:820px}
.faq details{background:none;border-radius:0;border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{list-style:none;font-size:19px;font-weight:700;color:var(--ink);padding:16px 40px 16px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:28px;font-weight:400;color:var(--sun);transition:transform .2s}
.faq details[open] summary:after{transform:translateY(-50%) rotate(45deg)}
/* members area tiles: no boxes, they simply rest on the page */
.mtiles{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:48px 64px;margin-top:20px}
.mtile,a.mtile.lnk:hover{background:none;border:0;border-radius:0;box-shadow:none;padding:0;align-items:flex-start}
.mtile .mico{width:84px;height:84px;border-radius:24px}
.mtile h3{font-size:24px;margin-bottom:8px}
.mtile .soon{background:#EEF2EC;color:var(--forest);text-transform:none;letter-spacing:0;font-size:13px}
a.mtile.lnk h3{transition:color .15s} a.mtile.lnk:hover h3{color:var(--sun)}
/* band under the page */
.memband{padding:26px 0}
.memband b{letter-spacing:-.025em}
.fbband{padding:26px 0}
footer{background:var(--ink)}
.toast{border-radius:999px}
@media (max-width:820px){section.s{padding:56px 0}.page-head{padding:48px 0 40px}.joinband,.owners,.usp{padding:56px 0}}
@media (max-width:820px){.panel,.hero .panel{background:var(--sand);backdrop-filter:none}}

/* home page: the member count sits above the campsite sign-up band, so the footer copy is hidden here */
body:has(#homeband) footer .memband{display:none}
.owners{background:#F3ECDA;color:var(--forest)}
.owners h2,.owners p,.owners li{color:var(--forest)}
.owners .ghost{color:var(--forest)}

/* Facebook banner: colour is set to match the section above it (see matchFbBand in app.js) */
.fbband{transition:none}
.fbband:hover{background:inherit}
.memband{border-bottom:0}
.fbband.dark,.fbband.dark b,.fbband.dark small{color:var(--sand)}
.fbband.dark .btn.green{background:var(--sand);color:var(--deep)}

/* big fluid member-count header */
.memband b{font-size:clamp(28px,5vw,48px)}
.memband.big{padding:56px 0;background:transparent;border:0}
.memband.big b{font-size:clamp(34px,6vw,68px);line-height:1.05;letter-spacing:-.035em;color:var(--forest)}
@media (min-width:1000px){.memband.big b{white-space:nowrap}}

.memband.big{padding:64px 0 8px}
.memband.big .w{padding:0}

/* sponsor dashboard: save buttons sit at the very bottom of the page (not floating) and are all one height */
.savebar{position:static;bottom:auto;background:none;border:0;border-radius:0;box-shadow:none;padding:24px 0 8px}
.savebar .btn{height:52px;min-height:52px;padding:0 26px;font-size:17px;box-sizing:border-box;line-height:1}
.savebar .cta{align-items:stretch}
.addwrap{margin:4px 0 24px}.addwrap .btn{height:52px;padding:0 28px}.addwrap p{margin:10px 0 0}
.savebar .btn{margin:0!important}.savebar .cta{margin-top:0}

.sponsor-welcome{margin-bottom:12px}.sponsor-welcome h2{margin-bottom:12px}.sponsor-welcome p{max-width:720px;font-size:18px}

.startover{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:8px;justify-items:start}
.startover .btn{height:52px;padding:0 26px;font-size:17px;margin:0!important}
footer a.fbband:hover,footer a.fbband:hover b{color:var(--forest)}footer a.fbband.dark:hover,footer a.fbband.dark:hover b{color:var(--sand)}

/* sponsor dashboard: letter counters and the out-of-space warning */
.cc{text-align:right;font-size:12px;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}
.cc.low{color:var(--sundk);font-weight:700}.cc.full{color:var(--danger);font-weight:700}
.spacemodal{position:fixed;inset:0;z-index:3000;background:rgba(20,35,27,.55);display:flex;align-items:center;justify-content:center;padding:20px;animation:spacein .15s}
.spacebox{background:#fff;border-radius:24px;padding:30px;max-width:440px;box-shadow:0 30px 70px -20px rgba(0,0,0,.5);text-align:left}
.spacebox h3{color:var(--danger);font-size:24px;margin-bottom:10px}.spacebox p{margin-bottom:20px}
@keyframes spacein{from{opacity:0}}

/* sponsor preview bar and equal-height boxes */
.prevbar .w{flex-direction:column;align-items:center;text-align:center;gap:12px;justify-content:center}
.prevbtns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.prevbtns .btn{height:48px;padding:0 24px;margin:0}
.prevbar .err{margin:0;color:var(--danger);font-weight:700}
@media (min-width:821px){
  .sgrid:not(.solo){align-items:stretch}
  .sgrid:not(.solo) .stxt{display:flex;flex-direction:column;justify-content:center;height:100%}
  .sgrid:not(.solo) .sfig{height:100%;margin:0}
  .sgrid:not(.solo) .sfig a{height:100%}
  .sgrid:not(.solo) .sfig img{width:100%;height:100%;object-fit:cover;min-height:320px}
}

.askbtns{display:flex;gap:10px;flex-wrap:wrap}.askbtns .btn{height:48px;padding:0 22px;margin:0}
.savedmsg{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--forest);color:#fff;font-weight:700;padding:14px 26px;border-radius:999px;box-shadow:0 14px 34px -10px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:2500}
.savedmsg.show{opacity:1;transform:translate(-50%,0)}

.sobtns{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.sobtns .btn{height:52px;padding:0 26px;font-size:17px;margin:0!important}
.btn.logout{background:#17382B;color:#fff;border:2px solid #17382B;font-weight:700}
.btn.logout:hover{background:#2F5D46;border-color:#2F5D46}
.heroslot{border-radius:14px;padding:6px;border:2px dashed transparent}
.heroslot.dr .movebar{cursor:grab}
.heroslot.dragging{opacity:.45}
.heroslot.dropto{border-color:#E8743B;background:rgba(232,116,59,.08)}
.movebar{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:14px;font-weight:600;color:#2F5D46}
.movebar .grip{flex:1}
.movebar .mv{width:36px;height:32px;border-radius:8px;border:1px solid #2F5D46;background:#fff;color:#2F5D46;cursor:pointer;font-size:16px}
.movebar .mv:disabled{opacity:.3;cursor:default}
.uspin{grid-template-columns:minmax(0,1fr)}
.uspin .uspl{margin-top:18px;max-width:640px}
.cbanner .uspl{margin-top:18px;max-width:460px}
.cbanner .uspl li{color:var(--sand)}
.usp{padding-bottom:28px}
.cbanner .w{padding-top:28px}
.cbanner h2{font-size:clamp(28px,4vw,44px);line-height:1.1}
.cbanner .w{flex-direction:column;align-items:flex-start}

.usp{padding-bottom:28px}
.cbanner .w{padding-top:28px}
.cbanner h2{font-size:clamp(28px,4vw,44px);line-height:1.1}
.cbanner .w{flex-direction:column;align-items:flex-start}

/* combined How it works (green) */
.hiw{background:#17382B!important;color:#EDE9DD;padding:clamp(56px,8vw,104px) 0!important}
main>section.hiw{background:#17382B!important}
.hiw>.w>h2{color:#FAF8F3;font-size:clamp(30px,4.4vw,48px);letter-spacing:-.02em}
.hiw .sub{color:#D7DFD3;font-size:clamp(17px,1.6vw,20px)}
.hsteps{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px}
.hsteps>div{display:flex;flex-direction:column;gap:14px;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.14);box-shadow:none!important}
.hsteps h3{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.02em;margin:0 0 4px;color:#FAF8F3}
.who{margin:0;padding:14px 16px;border-radius:16px;background:#F3ECDA;color:#17382B;font-size:17px;line-height:1.45}
.who b{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#C9581F;margin-bottom:4px}
.who:last-child{background:#0F2A20;color:#EDE9DD}
.who:last-child b{color:#F2B632}
.hiwcta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}
.hiwcta .btn{min-width:290px;text-align:center;justify-content:center}
.hiw .memband.big b{color:#FAF8F3}
@media (max-width:900px){.hsteps{grid-template-columns:minmax(0,1fr)}.hiwcta .btn{width:100%;min-width:0}}
.hiwcta .btn{width:330px;min-width:0;max-width:100%}@media (max-width:900px){.hiwcta .btn{width:100%}}

/* spacing between sections and capitalised headings */
main>section.s,section.s{padding-top:clamp(21px,2.67vw,37px)!important;padding-bottom:clamp(21px,2.67vw,37px)!important}
main>section.s.hiw{padding-top:clamp(21px,2.67vw,37px)!important}
section.s>.w>h2,.s h2{margin-top:0;margin-bottom:14px}
section.s>.w>h2+.sub{margin-bottom:32px}
h1,h2,h3,h4,h5,h6{text-transform:capitalize}

/* scroll reveal: only opacity and transform, layer released once shown */
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(36px)}
  .rv.rv-in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
}
@media print{.rv{opacity:1!important;transform:none!important}}

/* webmaster counts and sponsor card */
.wmstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:24px}
.wmstat{background:#17382B;color:#FAF8F3;border-radius:20px;padding:20px 22px;display:grid;gap:2px}
.wmstat b{font-size:clamp(30px,4vw,44px);line-height:1;color:#F2B632;letter-spacing:-.02em}
.wmstat span{font-weight:700}
.wmstat small{color:#C9D6CC}
.sponsorcard.unseen{border:2px solid #E8743B}
.newdot{display:inline-block;font-size:13px;font-weight:800;background:#E8743B;color:#17382B;padding:3px 10px;border-radius:999px;vertical-align:middle;margin-left:6px}

/* bold text: every word starts with a capital */
b,strong,th{text-transform:capitalize}
.sr,.em,.code span,.status{text-transform:none}
/* hidden discount code for non-members */
.lockedcode{display:flex;align-items:center;justify-content:center;padding:16px;margin:12px 0;background:#FAF8F3;border:2px dashed #2F5D46;border-radius:10px;color:#2F5D46;height:auto;min-height:0}
.blurcode{filter:blur(8px);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:26px;font-weight:800;letter-spacing:.08em;opacity:.85}

button.wmstat{border:0;font:inherit;text-align:left;cursor:pointer;transition:transform .15s,box-shadow .15s}
button.wmstat:hover,button.wmstat:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px rgba(23,56,43,.3)}
.wmstat em{font-style:normal;font-size:13px;color:#F2B632;margin-top:4px}
.listbox{max-width:900px;width:100%;max-height:85vh;display:flex;flex-direction:column}
.listscroll{overflow:auto;margin:10px 0}
.wmlist{width:100%;border-collapse:collapse;font-size:15px;text-transform:none}
.wmlist th,.wmlist td{text-align:left;padding:8px 10px;border-bottom:1px solid #e3ded2;word-break:break-word}
.wmlist th{position:sticky;top:0;background:#FAF8F3}

.tickbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:8px 0 14px}
.tickrow{float:right;margin:0 0 0 12px}
.tickrow input,.tickbar .tall{width:22px;height:22px;accent-color:#2F5D46}

.linkbtn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:#2F5D46;text-decoration:underline;cursor:pointer;text-align:left}
.listbox h3{font-size:18px;margin:16px 0 6px}

/* featured price calendar */
.pk-low{--pk-bg:#DDEBE2;--pk-fg:#17382B;--pk-bd:#9CC2AB}
.pk-mid{--pk-bg:#FBD9C4;--pk-fg:#7A3412;--pk-bd:#F0A97E}
.pk-high{--pk-bg:#F8E1A0;--pk-fg:#6B4E00;--pk-bd:#E6BE4A}
.pricekey{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.pricekey li{display:flex;align-items:center;gap:8px;font-size:15px}
.pricekey .sw{width:18px;height:18px;border-radius:6px;background:var(--pk-bg);border:2px solid var(--pk-bd)}
.pricestrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px}
.pricestrip .pm{background:var(--pk-bg);color:var(--pk-fg);border:2px solid var(--pk-bd);border-radius:14px;padding:8px 6px;text-align:center;display:grid;gap:0}
.pricestrip .pm span{font-weight:700;font-size:14px}.pricestrip .pm b{font-size:20px}
.pricebox{max-width:980px;width:100%;max-height:92vh;overflow:auto}
.pmonths{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:12px 0;max-height:46vh;overflow:auto;padding:4px}
.pmonth h4{margin:0 0 6px;padding:6px 10px;border-radius:10px;background:var(--pk-bg);color:var(--pk-fg);font-size:16px;display:flex;justify-content:space-between;align-items:baseline}
.pmonth h4 small{font-size:13px;font-weight:700}
.pdow,.pgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.pdow span{text-align:center;font-size:12px;color:#6b7a70;font-weight:700}
.pgrid i{display:block}
.pd{border:0;border-radius:8px;padding:7px 0;font:inherit;font-size:14px;background:var(--pk-bg);color:var(--pk-fg);cursor:pointer}
.pd:hover:not(:disabled){outline:2px solid #17382B}
.pd:disabled{opacity:.3;cursor:not-allowed}
.pd.sel{background:#2F5D46;color:#fff}.pd.edge{background:#17382B;font-weight:700}
.pricesum{position:sticky;bottom:0;background:#FAF8F3;border:2px solid #2F5D46;border-radius:14px;padding:12px 16px;font-size:17px;margin:8px 0 14px}
.pricekey b,.pmonth h4 small,.pricesum b,.pricestrip b,.pricestrip span{text-transform:none}
.pricestrip{grid-template-columns:repeat(6,1fr)}
@media (max-width:560px){.pricestrip{grid-template-columns:repeat(4,1fr)}}
.pricebox{display:flex;flex-direction:column;overflow:hidden}
.pricebox .pmonths{flex:1 1 auto;min-height:160px;max-height:none}
.pricebox>*{flex:none}.pricebox>.pmonths{flex:1 1 auto}
.pricebox textarea{min-height:0;height:52px}

.pricebox{height:min(92vh,880px)}
.pricebox h2{margin:0 0 6px;font-size:clamp(22px,4vw,32px)}
.pricebox .phint{margin:6px 0 0}
.pricebox .pmonths{margin:10px 0}
.pricebox .pnote{width:100%;margin:0 0 8px}
.pricebox .pfoot{margin:6px 0 0}
.pricebox .pfine{margin:6px 0 0;font-size:14px}
.pricebox .err{margin:0;min-height:0}
.pricebox .pricekey{gap:4px 14px}.pricebox .pricekey li{font-size:14px}
@media (max-width:560px){.pricebox .btn.big{padding:10px 18px;font-size:16px}.pricebox .pricesum{font-size:15px;padding:8px 12px;margin:4px 0 8px}}
.pricekey li{display:block}.pricekey .sw{display:inline-block;vertical-align:-3px;margin-right:6px}
#freqs .tickbar .check span,#freqs th,#freqs td,#freqs small{color:#17382B;text-transform:none}#freqs h3{margin:0 0 6px}
.pricebox .plabel{font-size:14px;font-weight:700;margin:0 0 2px;display:block}

body:has(.spacemodal){overflow:hidden}
.listbox{display:flex;flex-direction:column;max-height:88vh;overflow:hidden;padding:24px}
.listbox .lbody{flex:1 1 auto;overflow:auto;min-height:0;padding-right:4px}
.listbox .lfoot{flex:none;margin-top:12px;padding-top:10px;border-top:1px solid #e3ded2}
.listbox .listscroll{overflow:visible;margin:10px 0}

.card.filler .fillerph{background:#17382B;display:grid;place-items:center}
.card.filler .fillerph img{width:96px;height:96px;border-radius:24px}

.featheader{background:linear-gradient(90deg,#2F5D46,#17382B);color:#fff;padding:16px 0;border-bottom:4px solid #F2B632}
.featheader .w{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.featheader b{font-size:clamp(18px,3vw,24px);color:#F2B632}
.featheader b::before{content:'\2605\00a0'}
.featheader span{font-size:16px}

.chargecard{border:2px solid #cfc8b8}.chargecard.on{border-color:#2F5D46}
.chargerow{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.chargestate{color:#b3261e}.chargecard.on .chargestate{color:#2F5D46}
.switch{flex:none;width:76px;height:42px;border-radius:999px;border:0;background:#b9b3a4;position:relative;cursor:pointer;transition:background .15s}
.switch span{position:absolute;top:4px;left:4px;width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:left .15s}
.switch.on{background:#2F5D46}.switch.on span{left:38px}

/* opening dates: first thing on a campsite page, and a line on every card */
.openbanner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;background:#17382B;color:#FAF8F3;border-radius:14px;padding:14px 20px;margin:0 0 18px;font-size:20px;line-height:1.3}
.openbanner b{font-weight:700}
.openbanner .oicon{font-size:22px}
.openbanner .onow{font-size:14px;font-weight:700;border-radius:20px;padding:4px 12px;letter-spacing:.02em}
.openbanner .onow.yes{background:#F2B632;color:#17382B}
.openbanner .onow.no{background:rgba(250,248,243,.18);color:#FAF8F3;border:1px solid rgba(250,248,243,.5)}
.card .opens{font-size:14px;font-weight:600;color:#2F5D46;margin:2px 0 4px}
.openrange{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.openrange[hidden]{display:none}
.openrange select{width:auto;min-width:0}
.openbanner[hidden]{display:none}
.openbanner,.openbanner *{text-transform:none!important}

/* slideshow tiles: name, location, three lines of description, button */
.card.fcard .meta{margin:2px 0 8px}
.card .sd.clamp3{min-height:0;overflow:hidden;line-height:1.5;font-size:15px;margin:0 0 14px}
.card .sd.clamp3:not(:empty){min-height:calc(1.5em * 3)}

/* ===== festivals: full-width looping video hero ===== */
.fhero{position:relative;isolation:isolate;min-height:min(78vh,720px);display:flex;align-items:center;color:#FAF8F3;overflow:hidden;background:#17382B}
.fvideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(1.08) contrast(1.04)}
.fshade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,42,32,.88) 0%,rgba(15,42,32,.62) 48%,rgba(15,42,32,.25) 100%),linear-gradient(0deg,rgba(15,42,32,.75) 0%,rgba(15,42,32,0) 38%)}
.fcontent{padding-top:96px;padding-bottom:110px}
.feyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#F2B632;border:1px solid rgba(242,182,50,.55);border-radius:40px;padding:7px 16px;margin-bottom:22px;background:rgba(15,42,32,.35);backdrop-filter:blur(6px)}
.fhero h1{font-size:clamp(44px,8vw,92px);line-height:1;letter-spacing:-.02em;margin:0 0 20px;color:#FAF8F3;max-width:11ch;text-wrap:balance;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.flead{font-size:clamp(19px,2.4vw,27px);line-height:1.4;max-width:560px;margin:0 0 30px;opacity:.96}
.fcta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px}
.btn.ghostlight{background:rgba(250,248,243,.12);color:#FAF8F3;border:2px solid rgba(250,248,243,.7);backdrop-filter:blur(6px);box-shadow:none}
.btn.ghostlight:hover{background:#FAF8F3;color:#17382B}
.fchips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:12px}
.fchips li{background:rgba(250,248,243,.12);border:1px solid rgba(250,248,243,.28);backdrop-filter:blur(10px);border-radius:14px;padding:11px 18px;font-size:15px}
.fchips b{color:#F2B632;font-size:19px;margin-right:4px}
.fscroll{position:absolute;left:50%;bottom:26px;width:28px;height:46px;margin-left:-14px;border:2px solid rgba(250,248,243,.7);border-radius:16px}
.fscroll span{position:absolute;left:50%;top:8px;width:4px;height:9px;margin-left:-2px;border-radius:2px;background:#FAF8F3;animation:fscroll 1.8s ease-in-out infinite}
@keyframes fscroll{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}
@media (max-width:700px){.fhero{min-height:620px}.fcontent{padding-top:70px;padding-bottom:100px}.fshade{background:linear-gradient(0deg,rgba(15,42,32,.9) 0%,rgba(15,42,32,.55) 60%,rgba(15,42,32,.4) 100%)}.fhero h1{max-width:none}.fcta .btn{flex:1 1 100%;text-align:center}}
@media (prefers-reduced-motion:reduce){.fvideo{display:none}.fhero{background:#17382B url(/video/festivals-hero-poster.jpg) center/cover}.fscroll span{animation:none}}
.fhero .fcontent{width:100%}

/* festivals hero: plain site green until the video is playing, then it fades in */
.fhero{background:#2F5D46}
.fvideo{opacity:0;transition:opacity .9s ease}
.fvideo.on{opacity:1}
@media (prefers-reduced-motion:reduce){.fhero{background:#2F5D46}}

/* festivals page: everything centred in its section */
.fhero{text-align:center}
.fhero .fcontent{display:flex;flex-direction:column;align-items:center}
.fhero h1{max-width:14ch;margin-left:auto;margin-right:auto}
.fhero .flead{margin-left:auto;margin-right:auto}
.fhero .fcta,.fhero .fchips{justify-content:center}
.festpage .fintro{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
.festpage .fintro>div{flex:none;max-width:780px}
.festpage .fintro h2{margin-left:auto;margin-right:auto}
.festpage .s>.w>div[style*="background:var(--forest)"]{text-align:center}
.festpage .s>.w>h2{text-align:center}
.festpage .s>.w>h2:after{margin-left:auto;margin-right:auto}
.festpage .card.fest .fb{align-items:center;text-align:center}
.festpage .card.fest .fb>div{justify-content:center}
.festpage .s>.w>p.muted{text-align:center}
.festpage .grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.festpage .grid>.card.fest{flex:0 0 calc((100% - 48px)/3);max-width:calc((100% - 48px)/3)}
@media (max-width:900px){.festpage .grid>.card.fest{flex-basis:calc((100% - 24px)/2);max-width:calc((100% - 24px)/2)}}
@media (max-width:600px){.festpage .grid>.card.fest{flex-basis:100%;max-width:100%}}

/* Rallies */
.rallyhead{background:linear-gradient(135deg,var(--forest),var(--deep))}
.rtag{display:inline-block;background:var(--yel);color:var(--deep);border-radius:20px;padding:2px 12px;font-size:13px;font-weight:700;margin:0 0 4px}
.rcounty{margin-top:30px}.rcounty h2{border-bottom:3px solid var(--yel);display:inline-block;padding-bottom:2px;margin-bottom:14px}
.rcard .rdates{font-weight:700;color:var(--forest)}.rcard .rcount{font-size:14px;color:var(--ink)}.rfull{color:var(--danger);font-weight:700}
.rhero img{width:100%;max-height:420px;object-fit:cover;border-radius:20px;display:block;margin-bottom:20px}
.rallybox .rbar{height:10px;background:#e6e1d4;border-radius:8px;overflow:hidden;margin:8px 0}.rallybox .rbar span{display:block;height:100%;background:var(--sun)}
.rallybox .btn{width:100%;text-align:center}.rshare{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.rshare .chip{display:inline-block;margin:6px 6px 0 0;text-decoration:none;color:inherit}
.wo{background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:8px;border-left:5px solid var(--yel)}.wo p{margin:4px 0 0}
.rallyband{background:var(--sand)}
.rhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.rstatus{display:inline-block;border-radius:20px;padding:2px 12px;font-size:13px;font-weight:700;background:#eee}.s-live{background:#e4f4ea;color:var(--ok)}.s-submitted{background:#fff6dc}.s-completed{background:#e8eef7}
.rstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.rstats>div{background:var(--sand);border-radius:12px;padding:10px;font-size:13px}.rstats b{display:block;font-size:24px;color:var(--forest)}
.rform{display:grid;gap:12px}.rform h3,.rmanage h3{margin:14px 0 2px;font-size:18px}.rmanage{display:grid;gap:12px}
.racts{display:flex;flex-wrap:wrap;gap:8px}.worow{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:6px;margin-bottom:6px}.worow input{min-width:0}
@media (max-width:640px){.worow{grid-template-columns:1fr}}
.usedate{cursor:pointer;background:none;border:0;padding:0;text-decoration:underline;font:inherit;color:inherit;font-weight:700}
.homerally{text-align:center}.homerally .pitch{text-align:left;max-width:860px;margin:0 auto 18px}.homerally .cta{justify-content:center}
.rstatline{background:#fff6dc;border-left:6px solid var(--yel);border-radius:12px;padding:12px 16px;margin:0 0 18px}
.rposters{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:22px}
.rposter{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px #0002}
.rposter .rpimg,.rposter .rpgen{width:100%;aspect-ratio:3/4;object-fit:cover;display:flex}
.rpgen{flex-direction:column;justify-content:space-between;gap:8px;padding:20px 16px;text-align:center;color:#fff;background:linear-gradient(160deg,var(--forest),var(--deep) 70%);border-bottom:6px solid var(--yel)}
.rpgen .rpk{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--yel);font-weight:700}
.rpgen .rpt{font-size:26px;line-height:1.1}.rpgen .rpd{font-size:17px;font-weight:700;color:var(--yel)}.rpgen .rpw{font-size:14px;opacity:.92}
.rpgen .rpp{background:var(--sun);color:#fff;border-radius:20px;padding:4px 12px;font-weight:700;font-size:14px;align-self:center}.rpgen .rpa{font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.rcap{display:flex;flex-direction:column;gap:3px;padding:12px 14px;font-size:14px}.rcap .btn{margin-top:8px;text-align:center}
.rlocked .rposter{filter:blur(3px);pointer-events:none;opacity:.8}
.rposterbox{display:grid;gap:10px;background:var(--sand);border-radius:14px;padding:14px}.rposterbox textarea{min-height:230px;font-size:14px}
.rposterbox img{max-width:260px;border-radius:10px}
.rpostersec img.rpimg{max-width:320px;border-radius:12px;box-shadow:0 2px 10px #0003}
@media (min-width:861px) and (max-width:1400px){header.top .w{gap:12px}nav{gap:11px;font-size:14px}}
/* photo wall, checklist, rally calculator */
.wallgrid{columns:3 240px;column-gap:16px}.wallgrid.small{columns:3 180px}
.wphoto{break-inside:avoid;margin:0 0 16px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px #0002}
.wphoto img{width:100%;display:block;height:auto}.wphoto figcaption{padding:10px 12px;font-size:14px}.wphoto figcaption b{display:block;color:var(--sun)}
.calcbig{background:var(--forest);color:#fff;border-radius:14px;padding:16px;text-align:center}.calcbig b{display:block;font-size:40px;color:var(--yel)}
.calcrows{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:10px}.calcrows>div{background:var(--sand);border-radius:12px;padding:10px;text-align:center;font-size:13px}.calcrows b{display:block;font-size:22px;color:var(--forest)}
button.link{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--forest);text-decoration:underline}

/* Webmaster: member activity */
.act-card{display:flex;align-items:center;gap:16px;background:#fff;border:2px solid #2F5D46;border-radius:20px;padding:16px 20px;margin:0 0 24px;text-decoration:none;color:#17382B;transition:transform .15s,box-shadow .15s}
.act-card:hover,.act-card:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px rgba(23,56,43,.18)}
.act-card>span:nth-child(2){flex:1;display:grid;gap:2px}.act-card small{font-weight:400;color:#5b6b60;font-size:15px}
.act-card-ico{font-size:30px}
.act{max-width:1100px}
.act-bar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:14px}
.act-periods{display:flex;flex-wrap:wrap;gap:6px}
.act-periods button{border:2px solid #2F5D46;background:#fff;color:#17382B;border-radius:999px;padding:7px 14px;font:inherit;font-weight:700;cursor:pointer;min-height:40px}
.act-periods button.on{background:#2F5D46;color:#fff}
.act-inc{display:flex;gap:8px;align-items:center}
.act-live{margin-left:auto;font-weight:700;color:#2F5D46}
.act-live .dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#2e9e5b;margin-right:4px;box-shadow:0 0 0 4px rgba(46,158,91,.2)}.act-live .dot.off{background:#aaa;box-shadow:none}
.act-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:3px solid #2F5D46;margin-bottom:22px}
.act-tabs button{border:0;background:#EDE8DC;color:#17382B;border-radius:12px 12px 0 0;padding:10px 18px;font:inherit;font-weight:700;cursor:pointer;min-height:44px}
.act-tabs button[aria-selected=true]{background:#2F5D46;color:#fff}
.act-h{margin:0 0 6px}
.act-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}
.act-box{background:#fff;border-radius:18px;padding:18px 20px;box-shadow:0 2px 10px rgba(23,56,43,.08)}
.act-box.wide{grid-column:1/-1}
.act-box h3{margin:0 0 10px;font-size:19px}
.act small.small,.act .small{font-size:13px}
.act-bars{display:flex;align-items:flex-end;gap:2px;height:160px;padding-bottom:20px}
.act-bar-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;min-width:0}
.act-bar-col i{display:block;width:100%;background:#2F5D46;border-radius:4px 4px 0 0;min-height:1px}
.act-bar-col:hover i{background:#E8743B}
.act-bar-col small{position:absolute;bottom:-20px;font-size:11px;color:#5b6b60;white-space:nowrap}
.act-list{margin:0;padding-left:22px;display:grid;gap:6px}
.act-list li{overflow-wrap:anywhere}.act-list b{margin-left:6px}
.act-plain{list-style:none;margin:0;padding:0;display:grid;gap:7px}.act-plain li{overflow-wrap:anywhere}
.act-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}
.act-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;font-size:15px}
.act-table th{background:#17382B;color:#FAF8F3;text-align:left;padding:10px 12px;white-space:nowrap}
.act-table td{padding:10px 12px;border-top:1px solid #E7E1D3;vertical-align:top}
.act-table th.r,.act-table td.r{text-align:right;white-space:nowrap}
.act-row{cursor:pointer}.act-row:hover,.act-row:focus-visible{background:#F6F1E4;outline:none}
.act-filter{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:10px 0}
.act-filter input[type=search]{flex:1;min-width:220px}
.act-dls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px}
.act-dl{display:grid;gap:4px;background:#fff;border:2px solid #2F5D46;border-radius:16px;padding:16px 18px;text-decoration:none;color:#17382B}
.act-dl:hover,.act-dl:focus-visible{background:#F6F1E4}.act-dl small{font-weight:400;color:#5b6b60}
.act-modal{position:fixed;inset:0;background:rgba(23,56,43,.6);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;overflow-y:auto}
.act-md{position:relative;background:#FAF8F3;border-radius:20px;padding:24px;max-width:900px;width:100%}
.act-md .x{position:absolute;top:10px;right:12px;border:0;background:#17382B;color:#fff;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer}
.act-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:14px 0}
.act-mini>div{background:#17382B;color:#FAF8F3;border-radius:14px;padding:12px;display:grid}.act-mini b{font-size:24px;color:#F2B632}.act-mini span{font-size:13px}
.act-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:18px}
.act-visit{background:#fff;border-radius:12px;padding:10px 14px;margin:8px 0}.act-visit summary{cursor:pointer}
.act-trail{list-style:none;margin:10px 0 0;padding:0 0 0 4px;display:grid;gap:5px;border-left:3px solid #2F5D46;padding-left:12px}
.act-trail time{font-weight:700;color:#2F5D46;margin-right:6px}.act-trail .ev{background:#FFF3D6;border-radius:8px;padding:1px 8px}
@media (max-width:640px){.act-live{margin-left:0}.act-md{padding:18px 14px}}
.act b,.act-md b,.act-md span,.act-mini b{text-transform:none}
@media (max-width:640px){.act-tabs{flex-wrap:nowrap;overflow-x:auto}.act-tabs button{white-space:nowrap}}

/* Webmaster control panel navigation (phone and desktop) */
.wmnav{background:#17382B;position:sticky;top:var(--stick-h,124px);z-index:30;border-bottom:3px solid #F2B632}
.wmnav .w{padding-top:0;padding-bottom:0}
.wmnav ul{list-style:none;margin:0;padding:6px 0;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none}
.wmnav ul::-webkit-scrollbar{display:none}
.wmnav li{flex:0 0 auto;scroll-snap-align:start}
.wmnav a{display:flex;align-items:center;gap:7px;min-height:46px;padding:0 14px;border-radius:12px;color:#FAF8F3;text-decoration:none;font-weight:700;white-space:nowrap;font-size:16px}
.wmnav a:hover,.wmnav a:focus-visible{background:rgba(255,255,255,.14)}
.wmnav a[aria-current=page]{background:#F2B632;color:#17382B}
.wmnav .wmcount{font-style:normal;background:#E8743B;color:#17382B;border-radius:999px;padding:1px 8px;font-size:13px;font-weight:800}
.wmnav a[aria-current=page] .wmcount{background:#17382B;color:#F2B632}
@media (max-width:640px){.wmnav a{padding:0 12px;font-size:15px;min-height:48px}.wmnav .w{padding-left:8px;padding-right:8px}}
.wmglance{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px;margin-bottom:22px}
.wmglance-card{display:grid;gap:2px;background:#fff;border:2px solid #2F5D46;border-radius:18px;padding:16px 18px;text-decoration:none;color:#17382B;transition:transform .15s,box-shadow .15s}
.wmglance-card:hover,.wmglance-card:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px rgba(23,56,43,.18)}
.wmglance-card b{font-size:34px;line-height:1;color:#2F5D46}.wmglance-card span{font-weight:700}.wmglance-card small{color:#5b6b60}
.wmglance-card.hot{border-color:#E8743B;background:#FFF3E8}.wmglance-card.hot b{color:#E8743B}
.act-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.act-chips button{border:2px solid #E8743B;background:#fff;color:#17382B;border-radius:999px;padding:6px 13px;font:inherit;font-weight:700;cursor:pointer;min-height:40px}
.act-chips button.on{background:#E8743B;color:#17382B}
.wmbar .wmcount{background:#E8743B;color:#17382B;border-radius:999px;padding:1px 8px;font-size:13px;font-style:normal}
@media (max-width:640px){.act-chips{flex-wrap:nowrap;overflow-x:auto}.act-chips button{white-space:nowrap}}
@media (max-width:640px){
  #wmbar .w{flex-wrap:nowrap;justify-content:space-between;gap:10px;padding-top:5px;padding-bottom:5px}
  #wmbar strong,#wmbar a[href^="/sponsor"]{display:none}
  #wmbar .wmswitch{font-size:13px;padding:7px 10px;white-space:nowrap}
  .wmnav{position:static}
}

/* Cookie pop-up */
.ckb{position:fixed;z-index:2000;left:16px;bottom:16px;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;background:#FAF8F3;color:#17382B;border-radius:22px;border:3px solid #2F5D46;box-shadow:0 18px 50px rgba(23,56,43,.35);opacity:0;transform:translateY(24px);transition:opacity .3s ease,transform .3s ease;outline:none}
.ckb.show{opacity:1;transform:none}
.ckb-in{padding:20px 22px 18px}
.ckb-head{display:flex;align-items:center;gap:10px}.ckb-head h2{margin:0;font-size:22px;line-height:1.2}
.ckb-ico{font-size:30px;line-height:1}
.ckb p{margin:10px 0 0;font-size:15.5px;line-height:1.5}
.ckb-opts{display:grid;gap:10px;margin-top:14px}
.ckb-opt{display:flex;gap:12px;align-items:flex-start;background:#fff;border:2px solid #E7E1D3;border-radius:14px;padding:11px 13px;cursor:pointer}
.ckb-opt b{display:block;text-transform:none}.ckb-opt small{display:block;font-size:14px;line-height:1.4;color:#4a5a50;margin-top:2px}
.ckb-sw{flex:0 0 auto;padding-top:2px}.ckb-sw input{width:22px;height:22px;accent-color:#2F5D46;cursor:pointer}.ckb-locked input{cursor:not-allowed}
.ckb-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.ckb-btns .btn{flex:1 1 130px;justify-content:center;text-align:center;min-height:48px}
.ckb p.ckb-links{font-size:14px;margin-top:12px}.ckb-links a{color:#2F5D46;font-weight:700}
@media (max-width:640px){.ckb{left:0;right:0;bottom:0;width:100%;border-radius:22px 22px 0 0;border-width:3px 0 0;max-height:88vh}.ckb-in{padding:18px 16px calc(16px + env(safe-area-inset-bottom))}}
@media (prefers-reduced-motion:reduce){.ckb{transition:none}}
.ckb-set{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.ckb .ckb-opt{margin:0;font-weight:400;width:auto;max-width:none}
.ckb .ckb-sw{width:24px;min-width:24px;height:auto;display:block}
.ckb .ckb-sw input[type=checkbox]{width:22px;min-width:0;height:22px;min-height:0;padding:0;margin:0;display:block;box-shadow:none}
.prose b,.prose strong{text-transform:none}
/* cookie pop-up buttons: Essential only (left, same cream as the pop-up, clear outline) and Accept all (right, red). Same size. */
.ckb .ckb-ess{background:#FAF8F3;color:#17382B;border:2px solid #17382B}
.ckb .ckb-ess:hover,.ckb .ckb-ess:focus-visible{background:#EDE8DC}
.ckb .ckb-acc{background:#D62F25;color:#fff;border:2px solid #D62F25}
.ckb .ckb-acc:hover,.ckb .ckb-acc:focus-visible{background:#B6241B;border-color:#B6241B}
.ckb .ckb-choose{flex:1 1 100%}

/* ===== Online bookings ===== */
.pfrom{margin:4px 0 8px;font-size:15px;color:var(--forest)}.pfrom b{font-size:20px;color:var(--deep)}.pfrom span{color:#555}
.ordersel{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px}.ordersel select{padding:8px 10px;border-radius:10px;border:2px solid var(--forest);background:#fff;font:inherit;font-weight:600}
.results .head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.bookbtn{width:100%;text-align:center;background:var(--sun);color:#fff;margin-top:6px}
.pnow{font-size:18px;margin:0 0 10px}.pnow b{font-size:26px;color:var(--deep)}
.ptable{border-collapse:collapse;width:100%;max-width:520px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px #e4ded2}
.ptable th,.ptable td{padding:10px 14px;text-align:left;border-bottom:1px solid #eee8dc;font-size:16px}.ptable th{background:var(--sand);text-transform:none}.ptable td:last-child,.ptable th:last-child{text-align:right;white-space:nowrap}
.ptable tr.now td{background:#fff6d9}.ptable .tag{background:var(--forest);color:#fff;border-radius:99px;padding:1px 9px;font-size:12px;font-weight:700;margin-left:6px}
/* the customer's booking form */
.bookhead{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:10px 0 22px}
.bookhead .bk{background:var(--sand);border:2px solid var(--forest);border-radius:16px;padding:12px 16px}.bookhead .bk span{display:block;font-size:13px;color:#555;font-weight:600}.bookhead .bk b{font-size:20px;color:var(--deep);word-break:break-all;text-transform:none}
.bookform{max-width:820px;margin-bottom:50px}
.bsec{border:0;background:#fff;border-radius:20px;box-shadow:0 0 0 1px #e4ded2;padding:20px 20px 8px;margin:0 0 18px;min-width:0}
.bsec legend{font-weight:800;font-size:20px;color:var(--forest);padding:0 8px;float:left;width:100%;margin-bottom:6px}.bsec legend+*{clear:both}
.bintro{margin:0 0 12px}
.bgrid{display:grid;grid-template-columns:1fr;gap:0 18px}
@media(min-width:700px){.bgrid{grid-template-columns:1fr 1fr}.bgrid .field.group,.bgrid .field:has(textarea),.bgrid .field.agree{grid-column:1/-1}}
.bgrid .field input[type=text],.bgrid .field input[type=email],.bgrid .field input[type=tel],.bgrid .field input[type=number],.bgrid .field input[type=date],.bgrid .field input[type=time],.bgrid .field select,.bgrid .field textarea{width:100%;min-height:46px;font-size:16px}
.bgrid .opts{display:flex;flex-wrap:wrap;gap:8px 18px}
.bgrid .star{color:var(--danger)}
.nightsout{display:inline-block;min-width:48px;font-size:22px;font-weight:800;color:var(--deep)}
.termsbox{max-height:220px;overflow:auto;background:var(--sand);border:1px solid #ddd5c4;border-radius:12px;padding:6px 16px;margin:0 0 14px}.termsbox h3{font-size:16px;margin:10px 0 4px}.termsbox p{margin:0 0 10px;font-size:15px}
.agree .check{display:flex;gap:10px;align-items:flex-start;font-weight:600}.agree input{margin-top:4px;width:22px;height:22px;flex:none}
.quotebox{background:#fff;border:2px solid var(--forest);border-radius:20px;padding:16px 20px;margin:0 0 14px}.quotebox h2{font-size:20px;margin:0 0 8px;color:var(--forest)}
.qt{width:100%;border-collapse:collapse}.qt td{padding:7px 0;border-bottom:1px solid #eee8dc;font-size:16px}.qt td:last-child{text-align:right;white-space:nowrap;font-weight:700;padding-left:12px}
.qt .save td{color:#1d6b3c}.qt .tot td{font-size:20px;border-bottom:0;color:var(--deep);font-weight:800}
.saveline{margin:8px 0 0;font-weight:800;color:#1d6b3c}
.privnote{font-size:14px}
.savebox{max-width:480px;text-align:center}.savebox .tick{width:62px;height:62px;border-radius:50%;background:var(--forest);color:#fff;font-size:34px;line-height:62px;margin:0 auto 12px}
.savebox h3{color:var(--forest);font-size:26px;line-height:1.2}.savebox .telline{font-weight:800;margin:16px 0 10px;color:var(--deep)}.savebox .refline{font-size:14px;margin-bottom:6px}
.sharepanel{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.sharepanel .chip{padding:10px 16px;border-radius:99px;background:var(--forest);color:#fff;font-weight:700;text-decoration:none;border:0;font:inherit;font-weight:700;cursor:pointer}
.savebtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}.savebtns .btn{flex:1 1 150px}
.spacebox.savebox{max-height:92vh;overflow:auto}
/* owner pop-ups and buttons */
.bkpop{text-align:center;max-width:460px}.bkpop h3{color:var(--forest)}.bkbell{font-size:46px;line-height:1;margin-bottom:6px}
.bkbtns{display:flex;flex-wrap:wrap;gap:10px}
.newnum{display:inline-block;min-width:26px;padding:1px 8px;margin-left:8px;border-radius:99px;background:#d8d2c4;color:#555;font-weight:800}
.newbk.has .newnum{background:#ffe600;color:#111;box-shadow:0 0 0 3px #ff2d2d,0 0 14px 3px rgba(255,230,0,.9);animation:bkpulse 1.4s infinite}
@keyframes bkpulse{50%{transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.newbk.has .newnum{animation:none}}
/* the form builder */
.bcard{max-width:none;margin-bottom:24px}.bcard h2{font-size:22px}
.bbtns{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.raterow{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border:1px solid #ddd5c4;border-radius:14px;background:var(--sand);margin-bottom:10px;align-items:end}
@media(min-width:800px){.raterow{grid-template-columns:1.2fr 2.2fr 1fr auto}}
.raterow label{display:block;font-weight:600;font-size:14px}.raterow input,.raterow select{font-size:16px;min-height:44px;margin-top:3px}.raterow input{width:100%}.rdates{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.rfromto{display:inline-flex;gap:6px;align-items:center}
.bsecb{border:2px solid #ddd5c4;border-radius:16px;padding:14px;margin:0 0 16px;min-width:0;background:#fff}
.bsechead{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.stitle{flex:1 1 220px;font-size:18px;font-weight:800;min-height:44px}.sintro{width:100%;margin-bottom:10px;min-height:42px}
.bfield{border-top:1px solid #eee8dc;padding:10px 0}.bfrow{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.flabel{flex:1 1 260px;min-height:44px;font-size:16px}.ftypesel{min-height:44px;font-size:15px}.ftype{font-size:14px;color:#555;background:var(--sand);border-radius:99px;padding:5px 12px}
.fbtns{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.corenote{font-size:13px;font-weight:700;color:var(--forest)}
.fopts{margin:8px 0 0}.fopts textarea{width:100%;min-height:96px;font-size:15px}.fhelp{width:100%;margin-top:8px}
.reqchk{white-space:nowrap}
.stickysave{position:sticky;bottom:0;background:rgba(250,248,243,.97);padding:12px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-top:1px solid #ddd5c4;margin-top:10px;z-index:5}
.stickysave [data-alert]{flex:1 1 100%;margin:0}
/* the bookings list */
.bkbar{margin-bottom:18px}.bkbar .muted{margin:10px 0 0}
.bkitems{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:50px}
@media(min-width:1000px){.bkitems{grid-template-columns:1fr 1fr}}
.bk{background:#fff;border-radius:18px;box-shadow:0 0 0 1px #e4ded2;padding:16px;min-width:0}.bk.isnew{box-shadow:0 0 0 3px #ffb300}
.bkhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.bkname{font-size:19px;color:var(--deep)}.bkref{font-size:13px}
.bktotal{font-size:24px;font-weight:800;color:var(--forest);white-space:nowrap;text-align:right}.bktotal small{display:block;font-size:12px;color:#777;font-weight:600}
.newtag{background:#ffe600;color:#111;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:800;vertical-align:middle;box-shadow:0 0 0 2px #ff2d2d}
.bkgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;margin:0 0 10px}.bkgrid .wide{grid-column:1/-1}
@media(min-width:520px){.bkgrid{grid-template-columns:repeat(3,1fr)}}
.bkgrid dt,.bkdetail dt{font-size:12px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.03em}.bkgrid dd,.bkdetail dd{margin:2px 0 0;font-size:16px;overflow-wrap:anywhere}
.bk details{border-top:1px solid #eee8dc;padding-top:8px}.bk summary{cursor:pointer;font-weight:700;color:var(--forest);padding:6px 0;min-height:36px}
.bkdetail{display:grid;gap:10px;margin:8px 0}.bkdetail div{border-bottom:1px dashed #e4ded2;padding-bottom:6px}
.bkpay{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px;border-top:1px solid #eee8dc;padding-top:10px}
@media(min-width:520px){.bkpay{grid-template-columns:200px 1fr auto;align-items:end}}
.bkpay label{font-size:13px;font-weight:700;display:block}.bkpay select,.bkpay input{width:100%;min-height:44px;font-size:16px;margin-top:3px}
.savebox h3,.savebox b,.savebox strong,.bkpop h3,.bsec legend,.bsecb legend,.bkname,.quotebox h2{text-transform:none}
.bsec legend{float:none;display:block;padding:0;margin:0 0 6px}.bsec legend+*{clear:none}
.bsec .bintro{max-width:none}
.bkbar b,.bkbar strong{text-transform:none}
.kindtabs{display:flex;gap:8px;margin:6px 0 16px;flex-wrap:wrap}.kindtabs a{padding:10px 18px;border-radius:99px;border:2px solid var(--forest);color:var(--forest);font-weight:800;text-decoration:none;background:#fff}.kindtabs a.on{background:var(--forest);color:#fff}
/* booking records */
.bkfilters{margin-bottom:16px}.bkchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.bkchip{border:2px solid var(--forest);background:#fff;color:var(--forest);border-radius:99px;padding:8px 14px;font:inherit;font-weight:700;cursor:pointer;min-height:44px}.bkchip span{background:var(--sand);border-radius:99px;padding:0 8px;margin-left:4px}.bkchip.on{background:var(--forest);color:#fff}.bkchip.on span{background:rgba(255,255,255,.25)}
.bkrow{display:grid;grid-template-columns:1fr;gap:10px;align-items:end}@media(min-width:760px){.bkrow{grid-template-columns:2fr 1fr 1fr auto}}
.bkrow label{font-weight:700;font-size:14px;display:block}.bkrow input,.bkrow select{width:100%;min-height:46px;font-size:16px;margin-top:3px}
.bksum{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:12px;font-size:16px}.bksum b{color:var(--deep)}
.bkchips2{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.stbadge,.kbadge,.paybadge{font-size:12px;font-weight:800;border-radius:99px;padding:3px 10px;text-transform:none;white-space:nowrap}
.kbadge{background:var(--sand);color:#555}
.st-enquiry.stbadge{background:#e6eefc;color:#1b4aa8}.st-provisional.stbadge{background:#fff1cc;color:#8a5a00}.st-confirmed.stbadge{background:#d9f2e2;color:#14663a}.st-completed.stbadge{background:#e4e4e4;color:#444}.st-cancelled.stbadge{background:#fbdcd9;color:#a1271d}
.paybadge.pay-Unpaid{background:#fbdcd9;color:#a1271d}.paybadge.pay-Partpaid{background:#fff1cc;color:#8a5a00}.paybadge.pay-Paidinfull{background:#d9f2e2;color:#14663a}.paybadge.pay-Refunded{background:#e4e4e4;color:#444}
.paybig{padding:11px 14px;border-radius:12px;font-weight:800;text-align:center;background:var(--sand)}.paybig.pay-Paidinfull{background:#d9f2e2;color:#14663a}.paybig.pay-Partpaid{background:#fff1cc;color:#8a5a00}.paybig.pay-Unpaid{background:#fbdcd9;color:#a1271d}
.bk.st-cancelled{opacity:.7}.bktotal small{display:block;font-size:12px;color:#666;font-weight:600}
.bknote{margin:0 0 10px;font-size:15px;background:var(--sand);border-radius:10px;padding:8px 12px}
.bkacts{display:flex;flex-wrap:wrap;gap:10px;align-items:end;justify-content:space-between;border-top:1px solid #eee8dc;padding-top:10px}.bkacts .qs{font-size:13px;font-weight:700}.bkacts select{min-height:44px;font-size:16px;margin-left:6px}
.recbox{max-width:640px;width:100%;max-height:92vh;overflow:auto}.recbox h3{text-transform:none;font-size:22px;color:var(--forest)}.recbox h4{margin:14px 0 6px}
.recbox input,.recbox select,.recbox textarea{width:100%;min-height:44px;font-size:16px}.recbox .row2{display:grid;grid-template-columns:1fr;gap:0 14px}@media(min-width:560px){.recbox .row2{grid-template-columns:1fr 1fr}}
.recbox summary{cursor:pointer;font-weight:700;color:var(--forest);padding:8px 0}.bklog{padding-left:18px}.bklog li{margin-bottom:6px;font-size:15px}
.btn.danger{color:var(--danger);border-color:var(--danger)}
.toolpop{max-width:560px;text-align:left;max-height:90vh;overflow:auto}.toolpop h3{text-align:center;font-size:28px}
.toollist{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:12px}.toollist li{background:var(--sand);border-radius:16px;padding:12px 16px}.toollist h4{margin:0 0 4px;color:var(--forest);font-size:18px;text-transform:none}.toollist p{margin:0 0 10px;font-size:16px}
.toolpop #toolclose{position:sticky;bottom:0;box-shadow:0 0 0 8px #fff}
.recbox input[type=checkbox]{width:auto;min-height:0;margin-right:8px}.recbox .check.inline{display:flex;align-items:center;gap:6px;margin:6px 0 4px}

/* ---- booking setup, conditional questions, link preview, share image ---- */
.bform [hidden],.bookform [hidden],.field[hidden]{display:none!important}
.regs{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.regs .reg{text-transform:uppercase}
.hoursgrid{align-items:end;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;margin:10px 0}
.reqtag{display:inline-block;font-size:12px;font-weight:700;background:var(--sun);color:#222;border-radius:99px;padding:2px 9px;margin-left:8px;vertical-align:middle;text-transform:none}
.agebox{margin-top:18px;padding-top:14px;border-top:1px solid #0001}
.agebox h3{text-transform:none;font-size:18px;margin:0 0 6px}
.whennote{display:block;color:#555;margin:4px 0 0;text-transform:none}
.rulelink{display:inline-block;margin:4px 0 0 28px;font-size:14px}
.quotebox tr.dep td{font-weight:700;color:var(--forest)}
.savedimg{display:block;width:100%;max-width:420px;height:auto;border-radius:10px;margin:12px auto}
.savedpage{max-width:640px;padding:28px 16px;text-align:center}
.savedpage h1{text-transform:none;font-size:26px}
.lpbody{margin:0;display:flex;flex-direction:column;min-height:100vh;background:#fff}
.lpbar{display:flex;gap:14px;align-items:center;padding:10px 16px;background:var(--sand);border-bottom:1px solid #0002;position:sticky;top:0;z-index:5}
.lpbottom{border-top:1px solid #0002;border-bottom:0;position:static}
.lpmain{flex:1;display:flex;flex-direction:column}
.lpnote{margin:8px 16px}
#lpframe{flex:1;width:100%;min-height:70vh;border:0}

/* ---- help card and messages ---- */
.helpcard{text-align:center}.helpcard .btn{min-width:200px}.helpcard p{margin:10px auto 0;max-width:560px}
.helpmsg{border-top:1px solid #0002;padding:10px 0}.helpmsg.done{opacity:.55}

/* ---- my bookings and bank transfer ---- */
.mybk{background:#fff;border:1px solid #0002;border-radius:14px;padding:18px;margin-bottom:18px;max-width:760px}
.mybk header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mybk h2{font-size:22px;margin:0}.mywhen{font-weight:700;margin:10px 0}
.bankbox{background:var(--sand);border:2px solid var(--sun);border-radius:12px;padding:12px 14px;margin:12px 0}
.bankbox h4{margin:0 0 6px;text-transform:none}
.bankbox dl.bkdetail dd{font-weight:800;letter-spacing:.03em}
.bankbadge{background:#fff1cc;color:#8a5a00}
.mybk header{align-items:flex-start}.mybk .bkchips2{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.mybk .stbadge,.mybk .paybadge{align-self:flex-start;height:auto;line-height:1.4}

/* breadcrumbs: always in normal flow, never the mobile dropdown */
nav.crumbs{display:block!important;position:static!important;background:none!important;padding:0!important;margin:18px 0 10px!important;gap:0;font-size:14px;font-weight:400;text-transform:none}

/* campsite sign-up: what members get */
.page-head .zero{font-size:clamp(22px,4vw,32px);font-weight:800;color:var(--yel);margin:4px 0 10px}
.fccgain{background:var(--sand)}
.fccgain .gh{text-align:center;font-size:clamp(28px,5vw,40px);margin:0 0 8px}
.fccgain .gsub{text-align:center;max-width:680px;margin:0 auto 16px;font-size:18px}
.grows{display:grid;gap:22px}
.grow{display:grid;grid-template-columns:1fr 1.15fr;gap:26px;align-items:start;background:#fff;border-radius:18px;padding:26px;box-shadow:0 4px 18px rgba(23,56,43,.08)}
.grow:nth-child(even){grid-template-columns:1.15fr 1fr}.grow:nth-child(even) .gshot{order:-1}
.grow.noimg{grid-template-columns:1fr}
.gtxt h3{display:flex;gap:10px;align-items:flex-start;font-size:21px;margin:0 0 8px;text-transform:none}
.gtick{flex:none;width:28px;height:28px;border-radius:50%;margin-top:1px;background:var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23F6EEDD' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.gfree{display:inline-block;background:var(--yel);color:var(--forest);font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:3px 10px;margin:0 0 8px 38px}
.gtxt p{margin:0 0 0 38px;font-size:16px;line-height:1.55}
.gshot{margin:0;border:1px solid #e3dcc8;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.gshot img{display:block;width:100%;height:auto}
.gbar{display:flex;gap:6px;padding:8px 10px;background:#eee8d6}.gbar i{width:9px;height:9px;border-radius:50%;background:#c9c1a8}
.gshot figcaption{font-size:13px;color:#6b6652;padding:7px 12px;background:#faf7ee;border-top:1px solid #eee8d6}
.gfee{max-width:760px;margin:28px auto 0}
.gform .formcard{max-width:none!important;width:100%;margin:0}
@media(max-width:800px){.grow,.grow:nth-child(even){grid-template-columns:1fr;padding:20px}.grow:nth-child(even) .gshot{order:0}.gtxt p,.gfree{margin-left:0}}
.gshot[role=button]{cursor:zoom-in;position:relative}.gshot[role=button]:after{content:"Click to enlarge";position:absolute;right:10px;top:34px;background:rgba(23,56,43,.88);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px}
.gshot[role=button]:focus-visible{outline:3px solid var(--yel)}
.gl{position:fixed;inset:0;z-index:9999;background:rgba(15,30,24,.92);display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
.gl-in{position:relative;width:min(1000px,100%);max-height:100%;display:flex;flex-direction:column;gap:14px}
.gl-head{color:#fff;padding-right:48px}.gl-head .gfree{margin:0 10px 0 0}.gl-n{font-size:13px;opacity:.75}
.gl-t{font-size:clamp(20px,3.4vw,28px);margin:6px 0 4px;color:#fff;text-transform:none}.gl-d{margin:0;font-size:16px;line-height:1.5;max-width:780px;color:#f3eddc}
.gl-stage{position:relative;background:#fff;border-radius:12px;overflow:hidden;display:flex;justify-content:center;min-height:0}
.gl-stage img{display:block;max-width:100%;max-height:60vh;width:auto;height:auto;object-fit:contain}
.gl-x{position:absolute;right:0;top:-4px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.gl-p,.gl-nx{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(23,56,43,.85);color:#fff;font-size:32px;line-height:1;cursor:pointer;z-index:2}
.gl-p{left:10px}.gl-nx{right:10px}
.fccgain .gsub2{margin-top:0;font-weight:700;color:var(--forest)}.fccgain .gsub+.gsub2{margin-bottom:34px}
html{scroll-behavior:smooth}
#join{scroll-margin-top:70px}
.fccgain .gsetup{text-align:center;margin:0 0 34px}
.gjoin{text-align:center;margin:0 0 22px}
.page-head .cta{margin-top:18px}
.fccgain~section .w>div[style*="max-width:720px"]{max-width:none!important}

/* every page section fills the full page wrap (no narrow columns) */
.formcard,.guide,.prose,.faq,.bookform,.mybk,.savedpage,.ptable,.sub,.page-head p,.festpage .fintro>div,.homerally .pitch,.sponsor-welcome p,.usp p,.uspin .uspl,.gfee,.lockticks{max-width:none!important}
.guide,.prose{width:100%;max-width:var(--max)!important;margin-left:auto;margin-right:auto}
.fccgain .gsub{max-width:none}
.joinband p{max-width:none}
.guide figure{aspect-ratio:16/7}@media(max-width:700px){.guide figure{aspect-ratio:3/2}}
@media(min-width:601px){.lockbox{aspect-ratio:auto;height:460px;max-height:none;width:calc(100% - 10px)}}

/* house rule: every word in every header starts with a capital */
h1,h2,h3,h4,h5,h6,legend,.gl-t,.recbox h3,.toolpop h3,.gtxt h3{text-transform:capitalize!important}
.gtxt p{margin:0 0 10px 38px}.gtxt p:last-child{margin-bottom:0}
@media(min-width:801px){.grow:not(.noimg) .gfree{font-size:24px;padding:6px 22px;margin-bottom:14px}}

/* feature cards: text centred, with double the gaps between every line of text */
.gtxt{display:flex;flex-direction:column;align-items:center;text-align:center}
.gtxt h3{justify-content:center;text-align:center;margin:0 0 16px}
.gtxt .gfree{margin:0 0 16px}
.gtxt p,.gtxt p:last-child{margin:0 0 20px;margin-left:0}
.gtxt p:last-child{margin-bottom:0}
@media(min-width:801px){.grow .gfree{font-size:24px;padding:6px 22px;margin-bottom:28px}}
/* tick sits right beside the heading text, whatever the line length */
.gtxt h3{display:block;text-align:center}
.gtxt h3 .gtick{display:inline-block;vertical-align:middle;margin:-4px 10px 0 0}
.grow .gtxt{padding-top:16px} /* heading sits 40%+ lower inside its card (26px to 42px) */
.fccgain .gsub2{font-weight:400!important;color:inherit!important}
.fccgain .gbold{font-weight:700}
.who .wh{display:block;font-size:20px;font-weight:700;margin:0 0 4px}
/* home page: the six booking cards line up, so all of them are the same height */
@media(min-width:901px){
  .hsteps{grid-template-rows:auto auto auto;gap:14px 24px}
  .hsteps>div{display:grid;grid-row:span 3;grid-template-rows:subgrid;gap:14px}
  .hsteps .who{display:flex;flex-direction:column;justify-content:flex-start}
}
@media(min-width:901px){.hsteps .who{min-height:165px}}
/* ===== home page v2 and grouped menus ===== */
.nv{position:relative}
.nvb{background:none;border:0;color:inherit;font:inherit;font-weight:600;cursor:pointer;padding:6px 2px;display:flex;align-items:center;gap:6px}
.nvb:after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.8}
.nvp{display:none;position:absolute;left:-16px;top:100%;min-width:250px;padding:10px;background:#fff;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.28);z-index:60;flex-direction:column}
@media(min-width:961px){.nv:hover>.nvp,.nv:focus-within>.nvp,.nv.open>.nvp{display:flex}.nv:hover:before{content:"";position:absolute;left:0;right:0;top:100%;height:14px}}
header.top nav .nvp a{color:var(--forest);opacity:1;padding:10px 14px;border-radius:9px;font-weight:600;white-space:nowrap}
header.top nav .nvp a:hover{background:#F6EEDD;color:var(--forest)}
@media(max-width:960px){
  .nv{width:100%}.nvb{width:100%;justify-content:space-between;padding:4px 0;font-size:16px}
  .nvp{position:static;display:none;background:transparent;box-shadow:none;padding:0;min-width:0}
  .nvb{display:none}
  .nvp{display:flex}
  .nv.open>.nvp{display:flex}
  header.top nav .nvp a{color:var(--sand);padding:7px 0;white-space:normal}
  header.top nav .nvp a:hover{background:none;color:#fff}
}
.joinintro .w{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center}
.joinintro h2{margin-bottom:10px}.joinintro p{font-size:18px;line-height:1.6}
.jstrong{font-weight:700;color:var(--forest)}
.jlist{margin:0;background:#fff;border-radius:18px;padding:26px;box-shadow:var(--lift,0 6px 22px rgba(0,0,0,.08));gap:12px;font-size:17px}
@media(max-width:860px){.joinintro .w{grid-template-columns:minmax(0,1fr)}}
.regions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.region{display:flex;flex-direction:column;justify-content:flex-end;min-height:130px;padding:18px;border-radius:16px;color:#fff;background:linear-gradient(135deg,var(--forest),var(--lake));text-decoration:none}
.region:nth-child(3n+2){background:linear-gradient(135deg,#2F5D46,#E8743B)}.region:nth-child(3n){background:linear-gradient(135deg,#17382B,#F2B632)}
.region b{font-size:20px;text-transform:none}.region span{font-size:14px;opacity:.9}
.region:hover{transform:translateY(-2px)}
@media(max-width:860px){.regions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ess,.own{display:flex;gap:26px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:20px;padding:30px}
.ess{background:#fff;box-shadow:0 6px 22px rgba(0,0,0,.08)}.own{background:var(--forest);color:var(--sand)}
.own h2{color:var(--sand)}.ess p,.own p{max-width:640px;margin:6px 0 0;font-size:18px}
.ess .cta,.own .cta{margin-top:0}
.ownersband{padding-top:0}
footer .w{display:grid;grid-template-columns:auto repeat(4,1fr);gap:30px}
@media(max-width:860px){footer .w{grid-template-columns:repeat(2,minmax(0,1fr))}}
.own .btn.ghost{color:var(--sand);border-color:var(--sand)}
/* ===== home v3 ===== */
.calm,.bgrid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
.calm>div{background:#fff;border-radius:16px;padding:22px 24px;font-size:16px;line-height:1.55;box-shadow:0 6px 22px rgba(0,0,0,.07)}
.calm b{display:block;font-size:22px;color:var(--forest);margin-bottom:6px}
.bcard{background:#fff;border-radius:16px;padding:24px;box-shadow:0 6px 22px rgba(0,0,0,.07)}
.bcard h3{margin:10px 0 6px;font-size:19px}.bcard p{margin:0;font-size:16px;line-height:1.55}
.bi{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--forest);color:var(--yel);font-size:22px}
.included .cta{margin-top:26px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.wcol{background:#fff;border-radius:16px;padding:24px 28px;box-shadow:0 6px 22px rgba(0,0,0,.07)}
.wcol h3{margin:0 0 4px;font-size:22px;color:var(--forest)}.wcol .ticks{font-size:16px;gap:10px}
.soft{margin:16px 0 0;font-size:14px}
@media(max-width:860px){.calm,.bgrid,.two{grid-template-columns:minmax(0,1fr)}}

/* ===== 2026 refresh: type, cards, full-width photo bands, button system ===== */
:root{--ease:cubic-bezier(.2,.7,.2,1);--ring:#fff;--ringdk:#17382B}
body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:-.022em;line-height:1.12;text-wrap:balance}
h2{font-size:clamp(28px,3.4vw,42px);font-weight:800}
.sub,section.s p{text-wrap:pretty}
section.s{padding-top:clamp(44px,6vw,84px);padding-bottom:clamp(44px,6vw,84px)}
.bcard,.calm>div,.wcol,.ess,.own,.card,.formcard{border-radius:22px;border:1px solid rgba(23,56,43,.08);box-shadow:0 1px 2px rgba(23,56,43,.06),0 12px 32px -12px rgba(23,56,43,.18);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.bcard:hover,.card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(23,56,43,.06),0 22px 44px -14px rgba(23,56,43,.28)}
.bi{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--forest),#1c4331)}
.own{border:0}

/* full-width photo bands: no padding, edge to edge like the hero */
.photo{display:block;width:100%;height:clamp(230px,34vw,500px);margin:0;padding:0;overflow:hidden;position:relative;background:#24493a}
.photo img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--fp,50% 50%)}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .photo img{animation:photoDrift linear both;animation-timeline:view();animation-range:entry 0% exit 100%;transform-origin:center}
    @keyframes photoDrift{from{transform:scale(1.14) translateY(-4%)}to{transform:scale(1.14) translateY(4%)}}
  }
}
.guide figure{width:100vw;margin:0 0 28px calc(50% - 50vw);border-radius:0;box-shadow:none;aspect-ratio:16/6}
@media(max-width:700px){.guide figure{aspect-ratio:16/9}}

/* buttons: clear hierarchy, 48px targets, visible states, loading feedback */
.btn{min-height:48px;border-radius:999px;font-weight:700;letter-spacing:.005em;line-height:1.1;padding:12px 26px;cursor:pointer;text-decoration:none;color:#1f160f;
  background:var(--sun);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 6px 16px -6px rgba(199,91,43,.7);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s,color .18s,border-color .18s,filter .18s}
.btn:hover{background:var(--sun);filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 12px 22px -8px rgba(199,91,43,.75)}
.btn:active{transform:translateY(0) scale(.98);filter:brightness(.97);box-shadow:0 2px 6px -2px rgba(199,91,43,.6)}
.btn:focus-visible,.nvb:focus-visible,.faq summary:focus-visible{outline:3px solid var(--ring);outline-offset:2px;box-shadow:0 0 0 6px var(--ringdk)}
.btn.big{min-height:56px;font-size:clamp(16px,1.5vw,18px);padding:15px 32px;box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 10px 22px -8px rgba(199,91,43,.75)}
.btn.big:not(.ghost):not(.ghostlight)::after{content:"\2192";display:inline-block;font-weight:800;transition:transform .2s var(--ease)}
.btn.big:hover::after{transform:translateX(4px)}
.btn.yel{background:var(--yel);color:#1f160f;box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 8px 18px -8px rgba(160,110,0,.7)}
.btn.yel:hover{background:var(--yel);filter:brightness(1.05)}
.btn.green{background:var(--deep);color:#fff;box-shadow:0 8px 18px -8px rgba(23,56,43,.7)}
.btn.green:hover{background:#21503c;filter:none}
.btn.ghost{background:transparent;color:var(--forest);border:2px solid var(--forest);box-shadow:none}
.btn.ghost:hover{background:var(--forest);color:#fff;filter:none;box-shadow:0 10px 20px -10px rgba(23,56,43,.6)}
.own .btn.ghost,.hiw .btn.ghost{color:var(--sand);border-color:var(--sand)}.own .btn.ghost:hover,.hiw .btn.ghost:hover{background:var(--sand);color:var(--deep)}
.btn.danger{background:transparent;color:var(--danger);border:2px solid var(--danger);box-shadow:none}
.btn.danger:hover{background:var(--danger);color:#fff}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none;filter:grayscale(.3);box-shadow:none;pointer-events:none}
.btn.loading,.btn[aria-busy="true"]{position:relative;pointer-events:none;cursor:progress;filter:none;opacity:.92}
.btn.loading::before,.btn[aria-busy="true"]::before{content:"";width:1em;height:1em;flex:none;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:btnspin .7s linear infinite}
.btn.loading::after,.btn[aria-busy="true"]::after{display:none!important}
@keyframes btnspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.btn,.bcard,.card{transition:none}.btn:hover,.bcard:hover,.card:hover{transform:none}.btn.loading::before{animation-duration:1.6s}}
@media(max-width:560px){.cta .btn,.hero .panel .btn.big{width:100%}}
.cta{gap:12px}

/* page headers with a photo behind the text, like the home page hero */
.imghero{position:relative;overflow:hidden;background:#24493a;min-height:clamp(380px,40vw,540px);display:flex;align-items:center}
.imghero>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--fp,50% 50%)}
.imghero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,42,32,.38),rgba(15,42,32,0) 62%)}
.imghero .w{position:relative;z-index:2;width:100%;padding-top:40px;padding-bottom:40px}
.imghero .panel{max-width:min(560px,100%);padding:30px 32px}
.imghero .panel h1{margin:0;font-size:clamp(28px,3.4vw,42px);color:var(--forest)}
.imghero .panel p{margin:12px 0 0;font-size:18px;max-width:none}
.imghero .panel .gmeta{font-size:15px;color:var(--muted)}
.imghero .panel .free{display:inline-block;margin-bottom:12px}
.imghero .panel .btn{margin-top:16px}
.imghero .panel .soonline{font-weight:700;color:var(--forest)}
@media(max-width:820px){.imghero{min-height:0;display:block;padding-top:190px}.imghero .w{padding-top:0;padding-bottom:0}.imghero .panel{max-width:none;border-radius:24px 24px 0 0;padding:24px 20px}}

.imghero.full{aspect-ratio:3/2;min-height:0}
@media(max-width:820px){.imghero.full{aspect-ratio:auto;min-height:0}}

.imghero.top{align-items:flex-start}
@media(max-width:820px){.imghero.top{align-items:stretch}}

.imghero.bottom{align-items:flex-end}
@media(max-width:820px){.imghero.bottom{align-items:stretch}}

.imghero.right .w{display:flex;justify-content:flex-end}
.imghero.right .panel{margin-left:auto}
@media(max-width:820px){.imghero.right .w{display:block}}

/* every page header sits where the home page hero does: panel at the left, vertically centred */
.imghero.full{aspect-ratio:var(--ar,3/2)}
@media(max-width:820px){.imghero.full{aspect-ratio:auto}}

/* guide advert: recommendation line above the Decathlon banner */
.guide .adspot.hasad{border:0;background:transparent;min-height:0;text-align:center;padding:0;overflow:visible}
.adspot.hasad .adtext{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--forest)}
.adspot.hasad .adbanner{display:block}
.adspot.hasad img{display:block;max-width:100%;height:auto;margin:0 auto;border:0;border-radius:var(--radius)}
.adspot.hasad .adlabel{display:block;margin-top:6px;font-size:12px;color:var(--muted)}

/* featured slideshow: photos instead of icon placeholders */
.card.yours .yourph{position:relative;display:block;padding:0}
.card.yours .yourph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,42,32,.72),rgba(15,42,32,0) 70%)}
.card.yours .yourph b{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;text-align:left;font-size:18px}
.adsec{padding-top:0}
.adspot.hasad,.adsec .adspot.hasad{text-align:center}.adsec .adspot.hasad .adlabel{text-align:center}

/* phones: the page banner photo shows on its own at the top and the text box sits underneath it, so nothing is covered */
@media(max-width:820px){
  .imghero,.imghero.full{display:block;aspect-ratio:auto;min-height:0;padding-top:0;overflow:visible;background:transparent}
  .imghero::after{display:none}
  .imghero>img{position:static;display:block;width:100%;height:auto;max-height:300px;aspect-ratio:var(--ar,16/10);object-fit:cover;object-position:var(--fp,50% 50%)}
  .imghero .w{padding:0}
  .imghero .panel{max-width:none;margin:0;border-radius:0;box-shadow:none;background:var(--sand);backdrop-filter:none;padding:22px 20px 8px}
  .imghero.right .panel{margin:0}
}

/* ===== home: text slides (fade in 0.3s, stay 2s, wipe off to the left, next one straight away, repeat forever) ===== */
.tslides{background:var(--deep,#17382B);color:#fff;padding:clamp(28px,5vw,64px) 0 clamp(26px,4vw,48px);text-align:center;overflow:hidden}
.tstage{position:relative;overflow:hidden;height:clamp(150px,26vw,300px)}
.tslide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.6vw,18px);padding:0 5vw;opacity:0;
  animation:tslide 14s infinite both;animation-delay:calc(var(--i)*2.8s)}
.tslide b{font-size:clamp(34px,9.5vw,92px);font-weight:900;line-height:1;letter-spacing:-.03em;color:var(--yel,#F2B632);text-wrap:balance}
.tslide span{font-size:clamp(18px,4.6vw,42px);font-weight:600;line-height:1.2;color:#fff;text-wrap:balance}
@keyframes tslide{
  0%{opacity:0;transform:none;animation-timing-function:linear}
  2.14%{opacity:1;transform:none}
  16.43%{opacity:1;transform:none;animation-timing-function:ease-in}
  20%{opacity:1;transform:translateX(-105%)}
  20.01%,100%{opacity:0;transform:none}
}
.tcta{margin-top:clamp(18px,3vw,34px)}.tcta .cta{justify-content:center;margin-top:0}
.tslides .btn.ghost{color:#fff;border-color:#fff}
.sronly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){
  .tstage{height:auto;display:grid;gap:22px;padding:0 20px}
  .tslide{position:static;opacity:1;animation:none;padding:0}
}

/* ===== members landing: the Campsite Discounts band (the whole band is the link) ===== */
.discband{display:block;background:var(--forest);color:#fff;text-decoration:none;padding:clamp(34px,5vw,64px) 0 0;text-align:center}
.discband:hover{background:#26503b}
.discband>.w h2{color:var(--yel,#F2B632);font-size:clamp(34px,6vw,64px);margin:0 0 12px}
.discband>.w p{max-width:760px;margin:0 auto 28px;font-size:clamp(17px,2.2vw,22px);color:#fff}
.discband .btn{display:inline-flex}
.discband:focus-visible{outline:3px solid var(--yel,#F2B632);outline-offset:-6px}
.tslide b,.tslide span{text-transform:none}
#campsite-finder{scroll-margin-top:90px}

/* Featured Sites slideshow overlaid on the lakeside photo */
.topsites{position:relative;isolation:isolate;overflow:hidden;padding:clamp(28px,4vw,56px) 0 clamp(20px,3vw,40px);background:#24493a}
.topsites[hidden]{display:none}
.topsites .tsbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;z-index:-2}
.topsites:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(14,32,24,.45),rgba(14,32,24,.25));z-index:-1}
.topsites h2{color:var(--yel);font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.45);margin:0 0 8px}
.topsites .arrows{margin-bottom:0}
.topsites .track{padding:18px 14px 34px;margin:0 -14px;scroll-padding-left:14px}

/* Slideshows: no scroll bar, minimal white arrows at the left and right edges */
.slider{position:relative}
.track,.mtrack{scrollbar-width:none;-ms-overflow-style:none}
.track::-webkit-scrollbar,.mtrack::-webkit-scrollbar{display:none;width:0;height:0}
.slider .arrows{display:block;margin:0}
.slider .arrows button{position:absolute;top:50%;z-index:5;width:34px;height:64px;margin-top:-32px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#fff;font-size:0;line-height:0;cursor:pointer;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 3px rgba(0,0,0,.65));transition:transform .15s,filter .15s,opacity .15s}
.slider .arrows button:before{content:"";width:18px;height:18px;border-left:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(45deg)}
.slider .arrows button:first-child{left:-4px}
.slider .arrows button:last-child{right:-4px}
.slider .arrows button:last-child:before{transform:rotate(-135deg)}
.slider .arrows button:hover{filter:brightness(1.06) drop-shadow(0 6px 8px rgba(0,0,0,.6));transform:translateY(-2px)}
.slider .arrows button:active{transform:translateY(0) scale(.94)}
.slider .arrows button:focus-visible{outline:3px solid var(--ring,#fff);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.slider .arrows button{transition:none}.slider .arrows button:hover{transform:none}}
@media(min-width:1000px){.slider .arrows button:first-child{left:-46px}.slider .arrows button:last-child{right:-46px}}

/* Square corners on every full-width image and section background */
.hero,.hero .slides,.hero .slide,.hero .slide img,.slides,.sslides,.page-head,.imghero,.imghero>img,.imghero::after,.photo[style*="--fp"],.photo[style*="--fp"] img,.guide figure,.guide figure img,.joinband,.owners,.cbanner,.tslides,.topsites,.discband,.rallyband,.works,.adsec,.rhero img,.fvideo,.fhero,.vhero,.vhero video{border-radius:0!important}
@media(max-width:820px){.imghero .panel{border-radius:0}}

/* Ideas section overlaid on the awnings photo */
.ideasimg{position:relative;isolation:isolate;overflow:hidden;padding:clamp(36px,5vw,72px) 0;background:#24493a;border-radius:0}
.ideasimg .tsbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.ideasimg:before{content:"";position:absolute;inset:0;background:rgba(14,32,24,.35);z-index:-1}
.ideasimg h2{color:var(--yel);font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.45)}

/* Ideas section: everything centred except the header */
.ideasimg .w>p:last-child{text-align:center}
.ideasimg .gtiles{justify-content:center}

/* Sponsor bar + main menu always stay at the top on small screens (an open menu scrolls inside itself) */
.stickytop{position:-webkit-sticky;position:sticky;top:0}
@media(max-width:960px){header.top nav{max-height:calc(100vh - 130px);max-height:calc(100dvh - 130px);overflow-y:auto}}

/* Decathlon advert: one blue rounded card, overlaid on the photo, whole card is the link */
.photo.adover{display:flex;align-items:center;justify-content:center;min-height:clamp(300px,34vw,500px);padding:24px 16px}
.photo.adover>img{position:absolute;inset:0}
.photo.adover .adspot{position:relative;z-index:2;overflow:visible;width:fit-content;max-width:min(728px,100%)}
.adspot.adcardblue .adwhole{display:flex;flex-direction:column;align-items:center;gap:12px;background:#fff;color:var(--forest);border-radius:20px;padding:22px 24px 14px;text-align:center;text-decoration:none;box-shadow:0 14px 34px -10px rgba(0,0,0,.55);transition:transform .15s,filter .15s,box-shadow .15s}
.adspot.adcardblue .adwhole:hover{transform:translateY(-2px);box-shadow:0 22px 40px -10px rgba(0,0,0,.6)}
.adspot.adcardblue .adwhole:active{transform:translateY(0) scale(.99)}
.adspot.adcardblue .adwhole:focus-visible{outline:3px solid var(--yel);outline-offset:3px}
.adspot.adcardblue .adtext{margin:0;font-size:18px;font-weight:700;color:var(--forest)}
.adspot.adcardblue img{max-width:100%;height:auto;border-radius:10px;display:block}
.adspot.adcardblue .adlabel{margin:0;font-size:12px;color:var(--muted)}
@media(prefers-reduced-motion:reduce){.adspot.adcardblue .adwhole{transition:none}.adspot.adcardblue .adwhole:hover{transform:none}}

/* Log in button beside Join (wide screens only); joinbar pair on phones */
.jlog{display:none!important}
.btn.lg{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.btn.lg:hover{background:rgba(255,255,255,.14);filter:none}
@media(min-width:961px){body:not(.is-member) header.top .jlog.li{display:inline-flex!important;background:transparent;color:var(--sand);box-shadow:inset 0 0 0 2px var(--sand);margin-left:-6px}header.top .jlog:hover{background:rgba(255,255,255,.14)}header.top nav>a[href="/login"]{display:none}}
@media(max-width:820px){.joinbar{gap:10px}.joinbar a{box-shadow:0 3px 0 var(--sundk)}.joinbar a.lg{box-shadow:inset 0 0 0 2px #fff}}

/* Log out replaces Log in once signed in */
.lo{display:none!important}
body.is-member .lo,body.is-owner .lo{display:revert!important}
body.is-owner .li{display:none!important}
header.top nav>a.lo{display:none!important}
body.is-member header.top nav>a.lo,body.is-owner header.top nav>a.lo{display:block!important}
header.top .jlog.lo{display:none!important}
@media(min-width:961px){body.is-member header.top .jlog.lo,body.is-owner header.top .jlog.lo{display:inline-flex!important;background:transparent;color:var(--sand);box-shadow:inset 0 0 0 2px var(--sand);margin-left:-6px}body.is-member header.top nav>a.lo,body.is-owner header.top nav>a.lo{display:none!important}}
@media(max-width:820px){body.is-member .joinbar.lo,body.is-owner .joinbar.lo{display:flex!important}.joinbar.lo a{box-shadow:inset 0 0 0 2px #fff}}

.discband .mapstage{color:var(--bark);margin-top:0;padding-bottom:clamp(28px,4vw,48px);text-align:left}
header.top nav a,header.top .nvb{white-space:nowrap}
@media(min-width:961px) and (max-width:1250px){header.top .jn{padding:10px 16px;font-size:15px}header.top nav{gap:10px;font-size:13.5px}}

/* Guide cards as a slideshow (same workings as the featured slideshow) */
.gtrack{padding:16px 6px 26px;margin:-12px -6px}
.gtrack .gtile{flex:0 0 280px;scroll-snap-align:start}
.related .slider .arrows button{filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}

/* Decathlon card: the banner always scales to fit inside the card, on every screen */
.photo.adover .adspot{width:100%;max-width:728px;min-width:0}
.adspot.adcardblue .adwhole{width:100%;box-sizing:border-box;min-width:0}
.adspot.adcardblue img{width:100%;max-width:100%;height:auto;object-fit:contain}
@media(max-width:480px){.photo.adover{padding:20px 12px}.adspot.adcardblue .adwhole{padding:16px 14px 12px}.adspot.adcardblue .adtext{font-size:16px}}
.adspot.adcardblue .adwhole img{align-self:stretch;width:auto;min-width:0;max-width:100%;height:auto;margin:0}
.photo.adover .adspot.adcardblue .adwhole img{position:static;display:block;width:100%;max-width:100%;height:auto;object-fit:contain;border-radius:8px}
.photo.adover .adspot img{animation:none!important;transform:none!important}

/* white 5px border around the map */
.mapstage #map{border:5px solid #fff;box-sizing:border-box}

/* members band and Facebook band: all centred */
.memband,.memband .w{text-align:center;justify-content:center}
.fbin{justify-content:center;text-align:center}
.fbtxt{flex:0 1 auto;text-align:center}
@media(max-width:600px){.fbin{flex-direction:column;gap:10px}}

/* drop-down menu: same green as the nav bar, white text */
.nvp{background:var(--deep,#17382B);box-shadow:0 18px 40px rgba(0,0,0,.35)}
header.top nav .nvp a{color:#fff}
header.top nav .nvp a:hover,header.top nav .nvp a:focus-visible{background:rgba(255,255,255,.14);color:#fff}
@media(max-width:960px){.nvp{background:transparent;box-shadow:none}}

/* Decathlon card: the white background runs the full width of the page, the banner sits centred inside it */
.photo.adover .adspot{max-width:none;width:100%}
.adspot.adcardblue .adwhole{border-radius:0;box-shadow:none;width:100%;padding:22px max(20px,calc((100% - 728px)/2)) 14px}
.adspot.adcardblue .adwhole:hover{box-shadow:none}
.adspot.adcardblue .adwhole img{max-width:728px;margin-left:auto;margin-right:auto}
.photo.adover .adspot.adcardblue .adwhole img{max-width:728px}
.guide .adspot.adcardblue{width:100vw;max-width:100vw;margin:28px 0 28px calc(50% - 50vw)}
@media(max-width:480px){.adspot.adcardblue .adwhole{padding:16px 14px 12px}}
.photo.adover{padding-left:0;padding-right:0}
.guide .adspot.adcardblue .adwhole,.guide .adspot.adcardblue .adwhole *{text-decoration:none!important}
.guide .adspot.adcardblue .adtext{color:var(--forest)}

/* the full-width card keeps its rounded corners */
.adspot.adcardblue .adwhole{border-radius:20px;box-shadow:0 14px 34px -10px rgba(0,0,0,.45)}
.adspot.adcardblue .adwhole:hover{box-shadow:0 22px 40px -10px rgba(0,0,0,.55)}

/* Decathlon card: as wide as the page content (the same width as the sections around it), not the whole screen */
.photo.adover{padding-left:20px;padding-right:20px;box-sizing:border-box}
.photo.adover .adspot{width:100%;max-width:var(--max,1060px);margin:0 auto}
.adspot.adcardblue .adwhole{padding:22px 24px 14px}
.guide .adspot.adcardblue{width:100%;max-width:100%;margin:28px 0}
@media(max-width:480px){.photo.adover{padding-left:12px;padding-right:12px}.adspot.adcardblue .adwhole{padding:16px 14px 12px}}
.photo.adover .adspot{max-width:calc(var(--max,1100px) - 40px)}

/* Decathlon card: the slot holds the banner, or the centred fallback button */
.adspot.adcardblue .adslot{display:flex;justify-content:center;width:100%}
.adspot.adcardblue .adslot:empty{display:none}
.adspot.adcardblue .adfb{margin:4px auto}
.adspot.adcardblue .adslot img{display:block;width:100%;max-width:728px;height:auto}

/* Family Favourite Campsite contest */
.ffhead .ffcount{font-weight:700;font-size:18px;margin-top:8px}
.ffpodium{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:14px 0 24px}
.ffplace{background:#fff;border:1px solid #e3e0d5;border-radius:16px;padding:20px 16px;text-align:center;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.ffplace.p1{border:3px solid #e8b100;background:#fffbea}.ffplace.p2{border:3px solid #b8bfc7}.ffplace.p3{border:3px solid #c98a5a}
.ffplace h3{margin:4px 0}.ffplace .ffmedal{font-size:44px;line-height:1}.ffplace .ffname{font-size:20px;font-weight:700;margin:6px 0 2px}
.ffplace.empty{opacity:.75}.ffvotes{font-size:18px;margin:8px 0 12px}.ffvotes b{font-size:26px}
.ffrest{padding-left:34px}.ffrest li{padding:10px 0;border-bottom:1px solid #e3e0d5}.ffrest li .ffn{display:inline-block;min-width:50%}.ffrest .ffv{margin:0 14px;font-weight:700}
.ffresults{list-style:none;padding:0;margin:10px 0}.ffresults li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e0d5;border-radius:10px;margin-bottom:8px}
.ffnom{margin-top:18px;background:#fff;border:1px solid #e3e0d5;border-radius:12px;padding:12px 16px}.ffnom summary{cursor:pointer;font-weight:700}
.ffdup{background:#fff7e0;border-radius:10px;padding:12px;margin:12px 0}
.ffwinner{background:#fffbea;border:3px solid #e8b100;border-radius:16px;padding:6px 20px;margin-bottom:20px;text-align:center}
.ffsteps{padding-left:22px}.ffsteps li{margin:6px 0}
.ffbadge{display:inline-block;background:#e8b100;color:#222;font-weight:700;border-radius:999px;padding:6px 14px;margin:0 0 8px}
@media (max-width:760px){.ffpodium{grid-template-columns:1fr}.ffrest li .ffn{display:block}}
.s.alt{background:#f4f1e6}
.wmcard{background:#fff;border:1px solid #e3e0d5;border-radius:12px;padding:12px 16px;margin-bottom:12px}

/* Anchor links and the focus ring always land below the sticky sponsor bar and menu (taller for the webmaster) */
html{scroll-padding-top:calc(var(--stick-h,130px) + 12px)}
.fftrophy{display:block;margin:0 auto}.ffnote{margin:14px 0 0;color:var(--muted);font-size:15px}
.ffhidden{background:#fff3cd;border:2px solid #e0b100;border-radius:10px;padding:10px 14px;margin-bottom:16px}
.ffnom textarea,.ffnom input:not([type=checkbox]){width:100%}
.rules h2{margin-top:28px}.rules ol,.rules ul{padding-left:22px}.rules li{margin:6px 0}
.ffhead .ffcomp{color:var(--yel);font-size:clamp(22px,3.2vw,32px);font-weight:800;margin:0 0 4px;letter-spacing:.02em}
/* Campsite Support button on the campsite dashboard: the full address fits inside the button */
.sidecard a#support{display:block;box-sizing:border-box;width:100%;text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:16px;line-height:1.3;padding:12px 16px;text-decoration:none;color:var(--bark)}

/* Competition page: awards-style layout (sub-navigation, at-a-glance strip, featured leader, table, nation winners) */
.ffsubnav{background:#fff;border-bottom:1px solid #e3e0d5;position:static}
.ffsubnav .w{display:flex;gap:6px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.ffsubnav a{padding:10px 16px;border-radius:999px;font-weight:700;text-decoration:none;color:var(--forest)}
.ffsubnav a:hover,.ffsubnav a:focus-visible{background:var(--sand)}
.ffglance{padding:22px 0 6px}
.ffglance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ffglance-grid div{background:#fff;border:1px solid #e3e0d5;border-radius:14px;padding:14px 16px;text-align:center}
.ffglance-grid b{display:block;color:var(--forest);font-size:17px}.ffglance-grid span{color:var(--muted);font-size:14px}
.ffpodium{display:block}
.ffplace.ffbig{display:flex;align-items:center;gap:24px;text-align:left;padding:26px 28px;margin-bottom:18px}
.ffplace.ffbig .ffmedal .fftrophy{width:92px;height:92px}
.ffplace.ffbig .ffbody{flex:1}.ffplace.ffbig .ffname{font-size:28px}
.ffplace.ffbig h3 small{font-size:14px;color:var(--muted);font-weight:700;margin-left:6px}
.ffplace.ffbig .ffside{text-align:center}.ffplace.ffbig .ffvotes b{font-size:44px;display:block;line-height:1}
.ffpair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ffpair .ffplace{display:flex;align-items:center;gap:16px;text-align:left}.ffpair .ffbody{flex:1}.ffpair .ffside{text-align:center}
.ffquote{margin:8px 0 0;padding:8px 14px;border-left:4px solid #e8b100;background:#fffbea;border-radius:0 10px 10px 0;font-style:italic}
.fftable th,.fftable td{padding:10px 12px;text-align:left}.fftable th{background:var(--forest);color:#fff}.fftable tr:nth-child(even) td{background:#faf8f1}
.ffregions{margin-top:30px}.ffreg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.ffreg{background:#fff;border:1px solid #e3e0d5;border-top:5px solid var(--forest);border-radius:14px;padding:14px 18px}.ffreg h3{margin:0 0 6px}
@media (max-width:760px){.ffglance-grid{grid-template-columns:1fr 1fr}.ffplace.ffbig{flex-direction:column;text-align:center}.ffplace.ffbig .ffbody{text-align:center}.ffpair{grid-template-columns:1fr}.ffpair .ffplace{flex-direction:column;text-align:center}.ffpair .ffbody{text-align:center}.ffsubnav .w{flex-wrap:nowrap;overflow-x:auto}.ffsubnav a{white-space:nowrap}}

/* OLPRO advert: 300x250, one per page. Slideshow card mirrors .gtile; elsewhere a centred 300x250 box. */
.olprospot .adwhole{display:block;text-decoration:none;color:inherit}
.olprospot .adslot img{display:block;width:300px;max-width:100%;height:auto;aspect-ratio:300/250}
.olprospot .olfb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;width:300px;max-width:100%;aspect-ratio:300/250;background:#fff;color:var(--forest);padding:16px;box-sizing:border-box}
.olprospot .olfb b{font-size:34px;letter-spacing:.08em}.olprospot .olfb>span:not(.btn){font-weight:600}
.olproslot{padding:10px 0 34px}.olproslot .w{display:flex;justify-content:center}
.olproslot .olprospot{width:300px;max-width:100%;min-height:250px;border-radius:14px;overflow:hidden;box-shadow:0 1px 0 #00000010,0 0 0 1px #e3e0d5;background:#fff;position:relative}
.olproslot .adlabel{position:absolute;right:6px;bottom:4px;font-size:10px;color:#6b6b6b;background:#ffffffd0;padding:0 5px;border-radius:6px}
.dlad{display:flex;align-items:flex-start;justify-content:center}
.dlad .olprospot{width:300px;max-width:100%;min-height:250px;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px #e3e0d5;position:relative}
.dlad .adlabel{position:absolute;right:6px;bottom:4px;font-size:10px;color:#6b6b6b;background:#ffffffd0;padding:0 5px;border-radius:6px}
.gtile.gad{align-self:stretch;justify-content:flex-start}
.gtile.gad .olprospot{display:flex;flex-direction:column;flex:1;margin:0;padding:0;background:none;box-shadow:none;border-radius:0;min-height:0}
.gtile.gad .adwhole{display:flex;flex-direction:column;flex:1;padding:0;margin:0;gap:0;align-items:stretch;background:none;box-shadow:none}
.gtile.gad .gimg.olimg{aspect-ratio:300/250;width:100%;background:#fff;display:block;position:relative;overflow:hidden}
.gtile.gad .olimg .adslot{display:block;width:100%;height:100%}
.gtile.gad .olimg img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:300/250}
.gtile.gad .olfb{width:100%;height:100%;aspect-ratio:auto;background:linear-gradient(135deg,var(--lake),var(--forest));color:#fff}
.gtile.gad .olfb .btn{background:var(--yel);color:var(--bark)}
.gtile.gad .gsale{position:absolute;right:10px;top:10px;background:var(--yel);color:var(--bark);font-size:12px;font-weight:800;border-radius:20px;padding:3px 11px;box-shadow:0 1px 4px #0003}
.gtile.gad .gtxt{padding:14px;flex:1}.gtile.gad b{text-align:center}

/* Campsite Of The Year hero: splash photo behind the competition text (flipped, trimmed 5% top / 10% bottom) */
.ffhead{position:relative;background:#0f2b22 url(/img/photos/splash-hero-sm.webp) center 40%/cover no-repeat;isolation:isolate}
.ffhead:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0f2b22f2 0%,#0f2b22cc 38%,#0f2b2266 70%,#0f2b2233 100%)}
@media (min-width:901px){.ffhead{background-image:url(/img/photos/splash-hero.webp)}}
@media (max-width:700px){.ffhead:before{background:linear-gradient(180deg,#0f2b22e6,#0f2b22b3)}}
.guide .gtile.gad a.adwhole,.gtile.gad a.adwhole{text-decoration:none;color:inherit}
.gtile.gad .gtxt b{color:var(--forest);text-decoration:none}

/* Two columns: text left, OLPRO 300x250 right. Stacks on phones. */
.tentsplit{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;margin:12px 0 18px}
.tentsplit .tenttxt{align-self:center}.tentsplit .tenttxt p{margin:0 0 14px}.tentsplit .tenttxt p:last-child{margin-bottom:0}
.tentsplit .olprospot{width:300px;max-width:100%;min-height:250px;border-radius:14px;overflow:hidden;box-shadow:0 1px 0 #00000010,0 0 0 1px #e3e0d5;background:#fff;position:relative;margin:0}
.tentsplit .adlabel{position:absolute;right:6px;bottom:4px;font-size:10px;color:#6b6b6b;background:#ffffffd0;padding:0 5px;border-radius:6px}
.guide .tentsplit a.adwhole{text-decoration:none}
@media (max-width:760px){.tentsplit{grid-template-columns:1fr;gap:18px}.tentsplit .tentad{display:flex;justify-content:center}}
.tentsplit .tenttxt{max-width:640px;font-size:19px;line-height:1.7}
@media (max-width:760px){.tentsplit .tenttxt{max-width:none;font-size:inherit}}

/* Competition page: prize block at the top, links bar at the bottom in the same colours as the Members Zone dropdown */
.ffprize{padding:40px 0 10px}.ffprize h2{margin-bottom:12px}
.ffprize-lead{font-size:19px;max-width:880px}
.ffprize-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px;max-width:880px}
.ffprize-list li{background:#fff;border:1px solid #e3e0d5;border-left:6px solid var(--yel);border-radius:14px;padding:14px 18px}
.ffprize-list b{color:var(--forest)}
.ffsubnav.ffbottom{background:var(--deep,#17382B);border:0;margin-top:30px}
.ffsubnav.ffbottom .w{justify-content:center;padding-top:16px;padding-bottom:16px}
.ffsubnav.ffbottom a{color:#fff}
.ffsubnav.ffbottom a:hover,.ffsubnav.ffbottom a:focus-visible{background:rgba(255,255,255,.14);color:#fff}
.ffprize p{max-width:880px}

/* Competition: guest voting choices, forms and thank-you pop-up */
.ffenter{margin:18px 0 8px;max-width:880px}
.ffchoose{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 14px}
.ffpanel{background:#fff;border:1px solid #e3e0d5;border-radius:18px;padding:20px 22px;margin:10px 0 18px}
.ffpanel h3{margin:14px 0 8px}.ffpanel h3:first-child{margin-top:0}
.ffchosen{background:#fffbea;border:1px solid #e8b100;border-radius:12px;padding:10px 14px;margin:12px 0}
.ffchosen button{margin-left:10px}
.ffformerr{color:#b3261e;font-weight:700;min-height:1.2em}
.ffmodal{position:fixed;inset:0;background:#0f2b22b8;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px}
.ffmodal[hidden]{display:none}
.ffmodalbox{background:#fff;border-radius:22px;max-width:480px;width:100%;padding:32px 28px;text-align:center;box-shadow:0 20px 60px #0006;border-top:8px solid var(--yel)}
.ffmodalbox p{font-size:20px;font-weight:700;color:var(--forest);margin:0 0 20px;line-height:1.4}
.ffvotemy{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ffprize h2{margin-top:34px}.ffprize>.w>h2:first-child{margin-top:0}.ffenter h2{margin-top:22px}
.ffcost{background:#fffbea;border:1px solid #e8b100;border-radius:12px;padding:12px 16px;margin:14px 0}.ffcost p{margin:0 0 8px}.ffcost .field{margin:0}
@media (max-width:600px){.ffchoose .btn{width:100%;text-align:center}}

/* Share buttons */
.sharebtns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;justify-content:center}
.sharebtns a,.sharebtns button{background:#fff;border:2px solid var(--forest);color:var(--forest);border-radius:999px;padding:8px 16px;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;font-family:inherit}
.sharebtns a:hover,.sharebtns button:hover{background:var(--forest);color:#fff}
.sharebtns .sbtn-n{background:var(--yel);border-color:var(--yel);color:var(--bark)}
.sharelink input{width:100%;padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:10px;font-size:14px;text-align:center}
.ffmodalbox h4{margin:14px 0 4px;color:var(--forest)}
.ffmodalbox .sharenote{font-size:16px;font-weight:600;margin:6px 0}
.ffsite{background:#fffbea;border:2px solid #e8b100;border-radius:16px;padding:16px 20px;margin:16px 0;max-width:880px}
.ffsite p{margin:0 0 10px}
.ffmodalbox{max-height:92vh;overflow:auto}#ffmodalbtns{margin-top:14px}
/* Guide taster for visitors, and share block */
.gsnip{position:relative;max-height:300px;overflow:hidden}
.gsnip:after{content:"";position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(rgba(250,248,240,0),var(--sand) 90%)}
.glock{background:var(--forest);color:#fff;border-radius:24px;box-shadow:8px 8px 0 var(--yel);padding:28px 22px;text-align:center;margin:18px 8px 28px 0;display:flex;flex-direction:column;align-items:center;gap:6px}
.glock h2{color:#fff;margin:4px 0}.glock p{margin:0 0 10px;max-width:520px}.glock .login a{color:#fff;text-decoration:underline;font-weight:700}
.glock .lockico{background:#fff;border-radius:50%;width:56px;height:56px;display:flex;align-items:center;justify-content:flex-start}
.guideshare{margin:24px 0;text-align:center}.guideshare h2{font-size:22px;margin:0 0 4px}
.glock .login a,.glock .login a:visited{color:#fff!important}
.ffrulesnote{padding:10px 0 30px;text-align:center}.ffrulesnote p{margin:0;font-size:17px}
/* Discover: magazine article */
.dhead{padding:34px 0 18px;text-align:center}
.dkick{display:inline-block;background:var(--yel);color:var(--bark);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:14px;padding:5px 14px;border-radius:999px;margin:0 0 12px}
.dhead h1{font-size:clamp(44px,9vw,92px);line-height:1;margin:0;color:var(--forest)}
.dsub{font-size:clamp(19px,3vw,30px);margin:10px 0 0;opacity:.85}
.dhero{max-width:1100px}.dbody{max-width:780px;padding-bottom:30px}
.dbody h2{font-size:clamp(28px,4.4vw,40px);margin:46px 0 10px;color:var(--forest);border-top:4px solid var(--yel);padding-top:16px}
.dbody h3{font-size:clamp(22px,3vw,28px);margin:34px 0 8px;color:var(--forest)}
.dlead{font-size:clamp(21px,3vw,27px);line-height:1.4;font-weight:700;margin:22px 0}
.dcap:first-letter{float:left;font-size:4.2em;line-height:.8;padding:6px 10px 0 0;font-weight:800;color:var(--forest)}
.dbody p{font-size:18px;line-height:1.65}
.dbody ul{padding-left:22px}.dbody li{margin:8px 0;font-size:18px;line-height:1.55}
.dpull{margin:34px -20px;padding:18px 24px;border-left:8px solid var(--yel);font-size:clamp(24px,4vw,36px);line-height:1.2;font-weight:800;color:var(--forest);background:#fff;border-radius:0 18px 18px 0}
.dnote{font-size:clamp(20px,3vw,26px)!important;font-weight:700;color:var(--forest);border-left:6px solid var(--yel);padding-left:16px}
.dph{margin:22px 0;background:repeating-linear-gradient(135deg,#e8e4d6 0 14px,#efece0 14px 28px);border:2px dashed #b9b39b;border-radius:18px;display:flex;align-items:center;justify-content:center;text-align:center;color:#6b6652;aspect-ratio:16/9}
.dph.herox{aspect-ratio:21/9;margin:6px 0 10px}
.dph.half{aspect-ratio:4/3;margin:0}.dph.tall{aspect-ratio:3/4;margin:6px 0}
.dphin{padding:14px;display:flex;flex-direction:column;gap:4px;max-width:420px}.dphin b{font-size:18px;color:var(--forest)}.dphin span{font-size:14px}
.dimg{margin:22px 0}.dimg img{width:100%;height:100%;object-fit:cover;border-radius:18px;display:block}
.dpair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.dsplit{display:grid;grid-template-columns:5fr 7fr;gap:24px;align-items:start;margin:14px 0}
.dsplit.rev{grid-template-columns:7fr 5fr;align-items:center}
@media(max-width:700px){.dsplit,.dsplit.rev{grid-template-columns:1fr}.dsplit.rev .dph{order:2}.dpull{margin-left:0;margin-right:0}.dph.herox{aspect-ratio:16/9}}
.dimg{border-radius:18px;overflow:hidden;background:#e8e4d6;margin:22px 0}.dimg img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.dimg.wide{aspect-ratio:16/9}.dimg.herox{aspect-ratio:2.1/1;margin:6px 0 10px}.dimg.half{aspect-ratio:4/3;margin:0}.dimg.tall{aspect-ratio:3/4;margin:6px 0}
@media(max-width:700px){.dimg.herox{aspect-ratio:16/9}}
/* Members Zone heading is only a label (the menu opens on hover), so it shows an ordinary arrow; only the links under it show the pointing hand */

.dad{margin:30px 0 10px;display:flex;justify-content:center}
.dbody .glock h2{color:#fff;border-top:0;padding:0;margin:4px 0;font-size:clamp(24px,4vw,34px)}
/* Campsite Discount Map page: map first, title below it */
.discband.mapfirst{padding-top:0}
.discband.mapfirst .mapstage{margin-top:0;padding:0;max-width:none}
.discband.mapfirst .mapstage #map{border-radius:0}
.discband.mapfirst>.w{padding-top:clamp(26px,4vw,44px)}
.discband>.w h1{color:var(--yel,#F2B632);font-size:clamp(34px,6vw,64px);margin:0 0 12px}

/* Members Zone */
.zhero{background:var(--forest);color:#fff;text-align:center;padding:clamp(34px,5vw,60px) 0}
.zhero .zkick{color:var(--yel,#F2B632);font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px}
.zhero h1{color:#fff;font-size:clamp(34px,6vw,64px);margin:0 0 10px}
.zhero .zno{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:8px 20px;margin:0 0 14px;font-size:clamp(16px,2vw,20px)}
.zhero .zno b{color:var(--yel,#F2B632)}
.zhero .zlead{max-width:640px;margin:0 auto;font-size:clamp(16px,2vw,20px)}
.zsec{margin:34px auto 18px;font-size:clamp(28px,4vw,42px)}
.zgrid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:34px}
.zgrid>[hidden]{display:none}
.zb{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius,14px);overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.zbh{padding:22px 24px;flex:1;text-align:center}
.zbb{padding:20px;text-align:center}
.zbh h2{margin:0 0 6px;font-size:clamp(26px,3.4vw,36px)}
.zbh p{margin:0}
.zband{--bh:clamp(200px,24vw,280px);container-type:inline-size;display:block;position:relative;overflow:hidden;height:var(--bh);background:#fff}
.zband img{--hr:calc(.157 * 100cqw + .988 * var(--bh));--wr:calc(.988 * 100cqw + .157 * var(--bh));position:absolute;left:50%;top:50%;height:calc(max(var(--hr), var(--wr) / var(--ar)) + 8px);width:auto;max-width:none;transform:translate(-50%,-50%) rotate(-9deg);transition:transform .5s}
.zband:hover img{transform:translate(-50%,-50%) rotate(-9deg) scale(1.03)}
.zsoon{padding:10px 0 clamp(34px,5vw,60px)}
.zsl{margin:0 0 20px}
.zcols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.zcard{background:#fff;border-radius:var(--radius,14px);padding:24px;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.zcard h3{margin:0 0 8px;font-size:24px}
@media(max-width:800px){.zgrid{grid-template-columns:1fr}.zcols{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.zband img{transition:none}}

/* Members Zone: green all the way down to the footer */
.zonepage{background:var(--forest)}
.zonepage .zgrid{margin-top:34px}
.zonepage .zsec,.zonepage .zsl{color:#fff}
.zonepage .zsec{margin-top:0}
.zonepage .zsoon .zcard .btn.ghost{color:var(--forest)}

/* Campsite Discount Map: green carries on to the search results, filters sit on a card */
.searchsec.zgreen{background:var(--forest);padding:6px 0 clamp(34px,5vw,56px)}
.searchsec.zgreen .filtercard{background:#fff;border-radius:var(--radius,14px);padding:clamp(20px,3vw,32px);box-shadow:0 8px 24px rgba(0,0,0,.22)}
.searchsec.zgreen .filterhead{margin-top:0}
/* footer bands always take the colour of the section above them */
.memband,.fbband{background:var(--ftband,var(--sand));color:var(--ftink,var(--forest))}
.memband b,.fbband,.fbband *{color:var(--ftink,var(--forest))}
.fbband:hover{background:var(--ftband-hover,#fff7e6)}
.zonepage{--ftband:var(--forest);--ftink:#fff;--ftband-hover:#26503b}
.fbtxt small{color:var(--ftink,var(--bark))}
.discband.mapfirst{padding-bottom:clamp(22px,3vw,34px)}.discband.mapfirst>.w p{margin-bottom:0}

/* Members Zone: the top item links to the Members Zone page; the drop-down lists the pages inside it */
a.nvb{text-decoration:none;cursor:pointer}
.nvp a.nvm{display:none}
@media(max-width:960px){.nvp a.nvm{display:block}}

/* Members Zone hero: photo with a green gradient so the words stand out */
.zhero{position:relative;overflow:hidden;text-align:left;padding:clamp(48px,8vw,110px) 0}
.zhero .zhimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%}
.zhero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(23,56,43,.96) 0%,rgba(30,70,52,.90) 38%,rgba(47,93,70,.55) 68%,rgba(47,93,70,.15) 100%)}
.zhero .zhtxt{position:relative;z-index:2}
.zhero .zlead{margin:0;max-width:560px}
.zhero h1,.zhero .zlead,.zhero .zkick{text-shadow:0 2px 14px rgba(0,0,0,.35)}
@media(max-width:700px){.zhero::before{background:linear-gradient(180deg,rgba(23,56,43,.94),rgba(30,70,52,.82))}}
.ehuadd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 14px}.ehuadd span{flex:1 1 240px;font-weight:600}
.sidepromo{margin:18px 0 0;border-top:1px solid #e3e0d5}.sidepromo>div{padding:16px 0;border-bottom:1px solid #e3e0d5}.sidepromo h3{margin:0 0 6px;font-size:17px}.sidepromo p{margin:0 0 10px}.sidepromo>div[hidden]{display:none}
.fccgain .gbtns{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap}
.fccgain .hiwtop{margin:0 0 34px;text-align:center}.fccgain .hiwh{margin:0 0 14px}
.fccgain .hiwstop{text-align:center;font-weight:700;font-size:20px;color:var(--forest);margin:20px 0 0}
.fccgain .gbook{margin-top:8px}
.fccgain .gbtns{margin-top:12px}
.fccgain .hiwbox{width:50%;margin:0 auto;border-radius:16px;overflow:hidden;box-shadow:0 14px 40px rgba(23,56,43,.28);background:#17382b}
.fccgain .hiwbox video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#17382b}
/* Webmaster tables on a phone: every row becomes a readable card instead of squashed columns */
@media (max-width:700px){
  .act-scroll{overflow:visible}
  table.diff,table.wmlist,table.act-table,table.t{display:block;width:100%;background:none;font-size:16px}
  table.diff thead,table.wmlist thead,table.act-table thead,table.t thead{display:none}
  table.diff tbody,table.wmlist tbody,table.act-table tbody,table.t tbody{display:block}
  table.diff tr,table.wmlist tr,table.act-table tr,table.t tr{display:block;background:#fff;border:1px solid #e3ded2;border-radius:14px;padding:6px 14px;margin:0 0 10px}
  table.diff th,table.diff td,table.wmlist th,table.wmlist td,table.act-table td,table.act-table th,table.t th,table.t td{display:block;width:auto!important;border:0;padding:6px 0;text-align:left!important;white-space:normal!important;background:none;color:inherit;overflow-wrap:anywhere}
  table.diff th,table.wmlist tbody th,table.t tbody th{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b5f52;padding:8px 0 0}
  table.diff td+td,table.wmlist td+td,table.act-table td+td,table.t td+td{border-top:1px dashed #e7e1d3}
  td[data-l]::before{content:attr(data-l);display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b5f52}
  table.diff td.old{background:#fde8e6;border-radius:8px;padding:6px 8px;margin:4px 0}
  table.diff td.new{background:#e4f4ea;border-radius:8px;padding:6px 8px;margin:4px 0}
  .wmlist .btn,.wmlist button{min-height:44px}
  .formcard table.diff tr{background:none;border:0;border-bottom:1px solid #e3ded2;border-radius:0;padding:4px 0;margin:0}
  .formcard table.diff tr:last-child{border-bottom:0}
  .formcard:has(table.diff){padding:20px 16px}
  .act-modal .act-md,.listbox{padding:18px 14px}
}
/* Phones: the Log Out bar sits at the very bottom of the page instead of floating over the content */
@media(max-width:820px){
  .joinbar.lo{position:static!important;left:auto;right:auto;bottom:auto}
  body.is-member,body.is-owner,body.is-editor{padding-bottom:0!important}
}
/* Webmaster bar "Control Panel" drop-down */
.wmdd{position:relative}
.wmddb{background:#fff;color:#2f5d46;border:0;border-radius:8px;padding:6px 14px;font:inherit;font-weight:700;cursor:pointer;min-height:36px}
.wmddp{position:absolute;left:0;top:calc(100% + 6px);min-width:260px;max-height:80vh;overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.35);padding:8px;z-index:200;display:flex;flex-direction:column}
.wmddp[hidden]{display:none}
.wmddp a{color:#17382B;text-decoration:none;padding:12px 14px;border-radius:9px;font-weight:700;display:flex;justify-content:space-between;gap:10px}
.wmddp a:hover,.wmddp a:focus-visible{background:#F6EEDD}
.wmddp .wmcount{margin-left:8px}
.wmddb{white-space:nowrap}
/* Tent To Tourer magazine guide: inline photos, option cards */
.guide .tpic{margin:22px 0}
.guide .tpic img{display:block;width:100%;height:auto;border-radius:14px;max-width:100%}
.guide .tcap{margin:8px 0 0;font-size:.9rem;font-style:italic;color:#4a4a4a}
.guide .tpair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}
.guide .tpair .tpic{margin:0}
.guide .topts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:22px 0}
.guide .topt{background:#fff;border-radius:14px;padding:0 0 16px;box-shadow:0 0 0 1px #e3e0d5;overflow:hidden}
.guide .topt img{display:block;width:100%;height:210px;object-fit:cover}
.guide .topt h3{margin:14px 16px 6px}.guide .topt p{margin:0 16px 10px}
.guide .topt .tbest{display:inline-block;background:var(--yel);color:var(--bark);font-weight:700;font-size:.9rem;padding:4px 10px;margin:0 16px}
@media (max-width:700px){.guide .tpair,.guide .topts{grid-template-columns:1fr}}
.formcard .photobox{margin:8px 0 0;padding-top:18px;border-top:2px solid #e3e0d5}
.pricecard{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--forest);color:var(--sand);border-radius:18px;padding:20px 24px;margin-bottom:18px;box-shadow:0 0 0 4px var(--yel)}
.pricecard h2{color:var(--yel);margin:0 0 4px;font-size:22px}.pricecard p{margin:0;max-width:520px}
.jumpbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.bcard.flash{box-shadow:0 0 0 5px var(--yel)}
/* Booking form builder: every section has its own colour */
.bbuild .bcard{--c:#2F5D46;--t:#EAF3EE;--ink:#fff;background:var(--t);border:2px solid var(--c);overflow:hidden;padding:24px}
.bbuild .bcard>h2{background:var(--c);color:var(--ink);margin:-24px -24px 18px;padding:16px 24px;font-size:22px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.bbuild .bcard>h2 .reqtag{background:#fff;color:#1d2a24;border-radius:99px;padding:3px 12px;font-size:13px}
.bbuild .bcard .field input,.bbuild .bcard .field select,.bbuild .bcard .field textarea{background:#fff}
#setupbox{--c:#1F6F6F;--t:#E7F3F3}
#ratesbox{--c:#F2B632;--t:#FFF6DD;--ink:#3A2E26}
#sendbox{--c:#B54A1C;--t:#FCEDE4}
#bankbox{--c:#2F5D46;--t:#E8F2EC}
#formbox{--c:#6B4E8F;--t:#F1ECF7}
#ratesbox .raterow,#ratesbox .agebox{background:#fff}
.bbuild .bcard .btn:not(.ghost):not(.small){background:var(--c);color:var(--ink)}
.bbuild #ratesbox .btn:not(.ghost):not(.small){color:#3A2E26}
.bbuild .bcard .btn.ghost{border-color:var(--c);background:#fff}
@media (max-width:600px){.bbuild .bcard{padding:18px}.bbuild .bcard>h2{margin:-18px -18px 14px;padding:14px 18px;font-size:19px}}

/* From Tent To Camper: photos wrapped by the text, tables, sums */
.guide .tfl{margin:6px 0 14px;width:min(42%,300px)}
.guide .tfl.r{float:right;margin-left:22px}
.guide .tfl.l{float:left;margin-right:22px}
.guide .tfl.wide{width:min(52%,400px)}
.guide .tfl.sq{width:min(40%,290px)}
.guide .tfl.sq img{aspect-ratio:5/4;object-fit:cover;object-position:var(--op,50% 50%)}
.guide .tfl.tall{width:min(38%,270px)}
.guide .tfl.tall img{aspect-ratio:4/5;object-fit:cover;object-position:var(--op,50% 50%)}
.guide .tfl img{display:block;width:100%;height:auto;border-radius:14px}
.guide .tfl .tcap{margin:6px 0 0;font-size:.85rem;line-height:1.35}
.guide h2{clear:both}
.guide .tclear{clear:both}
.guide .gtwrap{overflow-x:auto;margin:20px 0;clear:both;border-radius:14px;box-shadow:0 0 0 1px #e3e0d5}
.guide table.gtable{border-collapse:collapse;width:100%;min-width:560px;font-size:.95rem;background:#fff}
.guide .gtable th{background:var(--forest);color:#fff;text-align:left;padding:10px 12px;font-size:.9rem}
.guide .gtable td{padding:10px 12px;border-top:1px solid #e3e0d5;vertical-align:top}
.guide .gtable tbody tr:nth-child(even) td{background:#faf7ee}
.guide .gtable td:first-child{font-weight:700;color:var(--forest)}
.guide .tsum{clear:both;background:#fff;border:2px dashed var(--forest);border-radius:14px;padding:6px 20px 16px;margin:22px 0}
.guide .tsum ol{margin:8px 0 0;padding-left:22px}.guide .tsum li{margin:6px 0}
.guide .tsum .tot{margin:12px 0 0;background:var(--yel);color:var(--bark);font-weight:700;padding:10px 14px;border-radius:10px}
.guide .twho{clear:both;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}
.guide .twho>div{border-radius:14px;padding:4px 18px 14px}
.guide .twho .yes{background:#e8f2ec;box-shadow:0 0 0 2px #2f5d46 inset}
.guide .twho .no{background:#fcede4;box-shadow:0 0 0 2px #b54a1c inset}
.guide .twho ul{margin:6px 0 0;padding-left:20px}
.guide .nextread{clear:both;display:flex;align-items:center;gap:14px;background:var(--forest);color:#fff;border-radius:14px;padding:16px 18px;margin:22px 0;text-decoration:none}
.guide a.nextread,.guide a.nextread:hover{color:#fff;text-decoration:none}
.guide .nextread b{display:block;font-size:1.1rem;color:var(--yel)}.guide .nextread small{display:block;opacity:.9;line-height:1.35}
.guide .nextread .go{margin-left:auto;flex:none;background:var(--yel);color:var(--bark);font-weight:700;padding:8px 14px;border-radius:999px}
@media (max-width:640px){.guide .tfl,.guide .tfl.wide,.guide .tfl.sq,.guide .tfl.tall{float:none;width:100%;margin:16px 0}.guide .tfl.sq img,.guide .tfl.tall img{aspect-ratio:3/2}.guide .twho{grid-template-columns:1fr}.guide .nextread{flex-wrap:wrap}}

/* Magazine styling for every guide: numbered sections, drop cap, pull quotes, offset photos */
.guide{counter-reset:sec}
.guide>h2{counter-increment:sec;margin-top:40px}
.guide>h2::before{content:counter(sec,decimal-leading-zero);display:block;font-size:12px;letter-spacing:.2em;font-weight:700;color:#E8753C;border-top:4px solid var(--forest);padding-top:10px;margin-bottom:8px}
.guide>h2::after{display:none}
.guide h3{color:#A8400F}
.guide .tsum h3,.guide .twho h3,.guide .topt h3,.guide .cl-group h3{color:var(--forest)}
.guide p.lead::first-letter{float:left;font-size:4.1em;line-height:.8;padding:7px 10px 0 0;font-weight:800;color:#A8400F}
.guide .pq{clear:both;font-style:italic;font-weight:700;font-size:clamp(1.3rem,3.2vw,1.7rem);line-height:1.3;color:var(--forest);text-align:center;margin:30px 6% 10px;padding:16px 0;border-top:1px solid var(--forest);border-bottom:1px solid var(--forest)}
.guide .tfl img,.guide .tpic img{box-shadow:6px 6px 0 var(--yel)}
.guide .tfl.l img{box-shadow:6px 6px 0 #E8753C}
.guide .tfl{margin-right:6px}.guide .tfl.l{margin-right:24px}
.guide .tcap{border-left:3px solid var(--forest);padding-left:9px;margin-top:10px;font-style:italic}
.guide .tpair{gap:26px}
.guide>ul,.guide>ol{padding-left:24px}
.olpad{display:flex;justify-content:center;margin:26px 0}

/* Camping Guides mega-menu: every guide with a one-line description, grouped by topic */
.nv.nvg{position:static}
header.top nav .nvg>.nvp{left:auto;right:12px;top:calc(100% - 6px);width:min(980px,calc(100vw - 24px));padding:20px 22px 14px;flex-direction:column;max-height:calc(100vh - 140px);overflow:auto}
.nvgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 26px}
.nvcol{display:flex;flex-direction:column;margin-bottom:10px}
.nvh{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--sun,#F2B632);padding:0 14px 6px}
header.top nav .nvg .nvp a{white-space:normal;padding:8px 14px;display:block;line-height:1.25}
.nvp a b{display:block;font-size:15px}
.nvp a small{display:block;font-size:13px;font-weight:400;opacity:.78;margin-top:2px}
header.top nav .nvg .nvp a.nvall{margin-top:6px;border-top:1px solid rgba(255,255,255,.2);border-radius:0 0 9px 9px;text-align:center;font-weight:800;color:var(--sun,#F2B632)}
@media(max-width:1100px){.nvgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:960px){
  header.top nav .nvg>.nvp{position:static;width:auto;max-height:none;padding:0;overflow:visible}
  .nvgrid,.nvh,.nvall{display:none}
  .nvg .nvp a.nvm{display:block}
}
header.top nav .nvg .nvp a.nvm{display:none}
@media(min-width:1180px){.nvgrid{grid-template-columns:repeat(4,1fr)}header.top nav .nvg>.nvp{width:min(1140px,calc(100vw - 24px))}}
@media(max-width:960px){header.top nav .nvg .nvp a.nvm{display:block}}
@media(max-width:960px){header.top nav .nvg .nvp a.nvall,header.top nav .nvg .nvgrid{display:none}header.top nav .nvg .nvp a.nvm{padding-left:0}}
@media(min-width:961px){.navquiet .nv>.nvp{display:none!important}}
/* phone: Camping Guides is a tap-to-open section holding every guide */
@media(max-width:960px){
  header.top nav .nvg .nvb{display:flex;width:100%;justify-content:space-between;padding:6px 0;font-size:16px}
  header.top nav .nvg>.nvp{display:none}
  header.top nav .nvg.open>.nvp{display:flex}
  header.top nav .nvg .nvp a.nvm,header.top nav .nvg .nvp a.nvall{display:none}
  header.top nav .nvg .nvgrid{display:block}
  header.top nav .nvg .nvh{display:block;padding:8px 0 2px}
  header.top nav .nvg .nvp a{padding:6px 0 6px 12px}
  header.top nav .nvg .nvp a small{display:none}
}
/* phone: a long open menu scrolls inside itself (so reaching a guide never scrolls the page and shuts the menu) */
@media(max-width:960px){header.top.open nav{max-height:calc(100vh - 84px);max-height:calc(100dvh - 84px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}}
/* computer: the Camping Guides button is as tall as the header, so the pointer can travel down into the panel without it closing */
@media(min-width:961px){header.top nav .nvg>.nvb{height:88px}}
/* Wide screens: the Log Out button floats at the bottom of the window (bottom right) for members and owners */
@media(min-width:821px){
  body.is-member .joinbar.lo,body.is-owner .joinbar.lo{display:block!important;position:fixed;left:auto;right:22px;bottom:20px;top:auto;z-index:30;background:transparent;padding:0;width:auto}
  body.is-member .joinbar.lo a,body.is-owner .joinbar.lo a{display:inline-flex;align-items:center;justify-content:center;flex:none;width:auto;font-size:16px;padding:12px 24px;background:var(--forest);color:#fff;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.35),inset 0 0 0 2px rgba(255,255,255,.55)}
  body.is-member .joinbar.lo a:hover,body.is-owner .joinbar.lo a:hover{background:var(--deep,#17382B)}
}

/* Off Season Camping: magazine rows (text beside a picture, equal gaps, nothing touching) */
.guide .ofrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,52px);align-items:center;margin:26px 0 38px;clear:both}
.guide .oftxt>ul{margin:0;padding-left:22px}
.guide .oftxt>ul li{margin:0 0 12px}
.guide .oftxt>p{margin:0}
.guide .ofimg img,.guide .ofwide img{display:block;width:100%;height:auto;object-fit:cover;object-position:var(--op,50% 50%);border-radius:14px;box-shadow:8px 8px 0 var(--yel)}
.guide .ofrow>.ofimg img{aspect-ratio:4/3}
.guide .ofrow:nth-of-type(even)>.ofimg img{box-shadow:8px 8px 0 #E8753C}
.guide .ofstack{display:grid;gap:28px}
.guide .ofstack .ofimg img{aspect-ratio:16/10}
.guide .ofstack .ofimg:nth-child(2) img{box-shadow:8px 8px 0 #E8753C}
.guide .ofpair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);margin:34px 0 40px;clear:both}
.guide .ofpair .ofimg img{aspect-ratio:4/3}
.guide .ofpair .ofimg:nth-child(2) img{box-shadow:8px 8px 0 #E8753C}
.guide .ofwide{margin:26px 8px 38px 0;clear:both}
.guide .ofwide img{aspect-ratio:21/9}
@media(max-width:760px){.guide .ofrow,.guide .ofpair{grid-template-columns:1fr;gap:26px}.guide .ofrow{margin:20px 0 32px}.guide .ofwide img{aspect-ratio:16/9}}

/* Warning and message boxes: always dark, easy-to-read text on a light background (no red-on-red) */
.alert,.picerr{color:#2b2118;line-height:1.5}
.alert.err,.picerr,.formcard .alert.err,.rallycard .alert.err{background:#fff0ee;color:#3b0d09;border:1px solid #e9a39b;border-left:6px solid #b3261e}
.alert.ok{background:#e9f7ee;color:#0e3a22;border:1px solid #9fd3b2;border-left:6px solid #1e7a46}
.alert.info{background:#fff6dc;color:#2b2118;border:1px solid #e8c660;border-left:6px solid #f2b632}
.alert b,.alert strong,.picerr b{color:inherit}
.alert .err,.alert.err .err{color:inherit;font-size:inherit}
.alert a,.alert .link,.alert .usedate{color:#17382B;text-decoration:underline;font-weight:700}
.rallynew{margin-bottom:26px}
.rallytop{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:0 0 16px}
.rallytop h2{margin:0;font-size:24px}
.rhero .rposterhero{width:auto;max-width:100%;max-height:640px;margin:0 auto 20px;border-radius:14px;box-shadow:0 2px 14px #0003;object-fit:contain;display:block}
.rgallery{margin:22px 0 4px;max-width:100%}
.detail .rhero .rposterhero{margin:0 0 20px;max-width:100%;max-height:none;width:100%;height:auto}
.detail .rhero a{display:block;border-radius:22px;overflow:hidden;box-shadow:0 6px 22px rgba(23,56,43,.22);transition:transform .25s ease,box-shadow .25s ease;margin-bottom:22px}
.detail .rhero a:hover,.detail .rhero a:focus-visible{transform:translateY(-4px);box-shadow:0 16px 38px rgba(23,56,43,.36)}
.detail .rhero .rposterhero{border-radius:0;box-shadow:none;margin:0;display:block}
@media(prefers-reduced-motion:reduce){.detail .rhero a{transition:none}.detail .rhero a:hover{transform:none}}
/* Weekend price and Book Now, directly under the poster */
.rbuy{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;background:#fff;border:2px solid var(--yel);border-radius:18px;padding:18px 22px;margin:0 0 24px;box-shadow:0 4px 16px rgba(23,56,43,.12)}
.rbuy[hidden]{display:none}
.rbuy .rprice{display:flex;flex-direction:column;line-height:1.1}
.rbuy .rpl{font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6b5d50}
.rbuy .rprice b{font-size:clamp(40px,7vw,56px);font-weight:900;color:#C85A24}
.rbuy .rpu{font-size:17px;font-weight:700;color:#17382B}
.rbuy #rbook{flex:1 1 260px;text-align:center}
.rbuy #rbook .btn{font-size:clamp(20px,3.4vw,26px);font-weight:900;padding:18px 36px;width:100%;max-width:420px}
.rbuy #rbook p.muted{font-size:13px;margin:8px 0 0}
/* centred price panel, and the same price + Book Now repeated in the right-hand box */
.rbuy{flex-direction:column;justify-content:center;text-align:center;gap:14px}
.rbuy .rprice{align-items:center;text-align:center}
.rbuy #rbook{flex:0 0 auto;width:100%}
.rbuy #rbook .btn{margin:0 auto;display:flex;justify-content:center;align-items:center;gap:8px}
.rallybox .rprice2{align-items:center;text-align:center;margin:6px 0 12px;display:flex;flex-direction:column;line-height:1.1}
.rallybox .rprice2:empty{display:none}
.rallybox .rpl{font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6b5d50}
.rallybox .rprice2 b{font-size:clamp(38px,5vw,48px);font-weight:900;color:#C85A24}
.rallybox .rpu{font-size:16px;font-weight:700;color:#17382B}
.rallybox #rbook2{text-align:center;margin-bottom:12px}
.rallybox #rbook2 .btn{font-size:20px;font-weight:900;width:100%}
.rallybox #rbook2 p.muted{font-size:13px;margin:8px 0 0}
/* under the poster: price on the left, Book Now to its right (right-hand box unchanged) */
.rbuy{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 28px;text-align:center}
.rbuy .rprice{align-items:center;text-align:center}
.rbuy #rbook{flex:0 1 auto;width:auto;max-width:100%}
.rbuy #rbook .btn{width:auto;max-width:none;font-size:clamp(17px,2.6vw,21px);font-weight:900;padding:13px 26px}
.rbuy #rbook p.muted{max-width:230px;margin:8px auto 0}
/* Rallies page: posters sit neatly inside the card, with a hover lift */
.rposter{transition:transform .25s ease,box-shadow .25s ease;border:2px solid transparent}
.rposter:hover,.rposter:focus-visible{transform:translateY(-6px);box-shadow:0 16px 34px rgba(23,56,43,.3);border-color:var(--yel)}
.rpwrap{display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#f6efdd,#e9dfc6);padding:14px;height:340px;overflow:hidden}
.rposter .rpwrap .rpimg{width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:auto;object-fit:contain;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.28);transition:transform .35s ease}
.rposter:hover .rpwrap .rpimg{transform:scale(1.045)}
.rposter .rcap{flex:1}.rposter .rcap .btn{margin-top:auto}
.rposter:hover .rcap .btn{background:var(--sun);color:#fff}
.rtop{margin-bottom:10px}
.rmore{margin:34px 0 0;font-size:26px}
.rpromo{justify-content:center;align-items:center;text-align:center;padding:26px 20px;gap:12px;min-height:340px}
.rpromo .rpmk{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.rpromo .rpmt{font-size:clamp(22px,2.4vw,28px);line-height:1.15}
.rpromo p{margin:0;font-size:15px;line-height:1.45}
.rphost{background:linear-gradient(160deg,var(--forest),var(--deep) 75%);color:#fff;border-bottom:6px solid var(--yel)}
.rphost .rpmk{color:var(--yel)}
.rpsoon,.rpwait{background:linear-gradient(160deg,#fff6dc,#f7e3a6);color:#2b2118;border-bottom:6px solid var(--sun)}
.rpsoon .rpmk,.rpwait .rpmk{color:#C85A24}
.rpsoon:hover,.rpwait:hover{transform:none;box-shadow:0 2px 10px #0002;border-color:transparent}
.rpromo .btn{margin-top:6px}
.rposters.rtop{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
/* every rally card is built the same: picture area, then date/title, sub-line, small line and a button, all level across the row */
.rposters{align-items:stretch}
.rposter{height:100%}
.rposter .rpwrap,.rposter .rpart,.rposter .rpgen{height:340px;flex:0 0 340px;box-sizing:border-box}
.rpart{display:flex;align-items:center;justify-content:center;overflow:hidden}
.rpa-host{background:linear-gradient(160deg,var(--forest),var(--deep) 80%)}
.rpa-soon{background:linear-gradient(160deg,#fff6dc,#f7e3a6)}
.rposter .rcap{display:flex;flex-direction:column;flex:1;padding:14px 16px 16px;gap:4px;text-align:left}
.rposter .rcap b{font-size:17px;line-height:1.25;min-height:2.5em;display:flex;align-items:flex-start;color:var(--forest)}
.rposter .rcap .rsub{font-size:15px;line-height:1.3;min-height:2.6em}
.rposter .rcap .rcount{font-size:14px;color:#6b5d50;min-height:1.4em}
.rposter .rcap .btn,.rposter .rcap a.btn{margin-top:auto;display:block;width:100%;text-align:center;box-sizing:border-box}
.rposter .rcap [data-show]{display:block;margin-top:auto}
.rposter .rcap [data-show] .btn{margin-top:0}
.rposter.rphost,.rposter.rpsoon,.rposter.rpwait{background:#fff;color:inherit;border-bottom:2px solid transparent;padding:0;min-height:0;gap:0}
.rphost .rpmk{display:none}
.rpsoon:hover,.rpwait:hover{transform:translateY(-6px);box-shadow:0 16px 34px rgba(23,56,43,.3);border-color:var(--yel)}
.rposter .rcap .btn,.rposter .rcap a.btn{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 16px;line-height:1.2}

/* calendar sync */
.calrow{display:flex;gap:8px;align-items:center}.calrow input{flex:1;min-width:0;font-size:.85rem}
.calfeed{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;align-items:end;margin:8px 0}.calfeed label{display:block}.calfeed input{width:100%}.calfeed .err{grid-column:1/-1;margin:0}
@media (max-width:640px){.calfeed{grid-template-columns:1fr}}
.linkbtn{background:none;border:0;color:var(--green,#2F5D46);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.calfeed .cdel{width:auto;justify-self:start}
@media (min-width:641px){.calfeed{grid-template-columns:1fr 2fr auto}}

/* Red buttons and red message pills: always white, bold writing so they are easy to read */
.toast.err,.toast.err *,.btn.danger:hover,.btn.danger:focus-visible,.ckb .ckb-acc,.ckb .ckb-acc:hover,.ckb .ckb-acc:focus-visible,.btn.red,.btn.red:hover{color:#fff!important}
.toast.err{font-weight:700}
.btn.danger:hover,.btn.danger:focus-visible{background:var(--danger)!important;border-color:var(--danger)!important}
.seasonbox{background:#fff8e6;border:2px solid var(--yel,#F2B632);border-radius:14px;padding:14px 18px;margin:0 0 18px}.seasonbox h3{margin:0 0 6px}
.addonrow{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;margin:8px 0}.addonrow label{display:block}.addonrow input,.addonrow select{width:100%}.addonrow .adel{width:auto}
@media (max-width:640px){.addonrow{grid-template-columns:1fr 1fr}}
.addonrow.withinfo{grid-template-columns:2fr 1fr 1fr auto}.addonrow .ainfo{grid-column:1/-1}
.chargebox summary{cursor:pointer;font-size:1.05rem}.chargebox summary small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.chargebox[open] summary{margin-bottom:8px}
.raterow .rt{max-width:100%}
@media(min-width:800px){#ratesbox .raterow{grid-template-columns:1.2fr 1.2fr 2.2fr 1fr auto}}
.agepr{grid-template-columns:repeat(4,1fr)}@media(max-width:700px){.agepr{grid-template-columns:1fr 1fr}}
.autobox ul{margin:6px 0 0 18px}.autobox li{margin:4px 0}.autobox h3{margin:0 0 4px}
.autosaved{font-size:.85rem;margin-right:10px}
.addonrow .amaxl{grid-column:1/-1;max-width:240px}.addonrow .amax{width:100%}
#pricebody h3{margin:22px 0 8px;font-size:19px}#pricebody .muted:last-child{margin-top:14px}
.campbar{background:#fff8e6;border-bottom:2px solid var(--yel,#F2B632);padding:8px 0;font-weight:600}.campbar .w{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.campbar select{font:inherit;padding:6px 10px;border-radius:10px;border:2px solid var(--forest,#2F5D46)}
/* ---- Last-Minute Deals, checklist, membership card, favourites, review replies, certificate ---- */
.dealsec{padding:26px 0}.dealsec h2{margin-bottom:4px}.dealsec .tablewrap{overflow-x:auto;border:3px solid #c0261e;border-radius:12px;background:#fff}
.dealtable{border-collapse:collapse;width:100%;min-width:760px;font-size:16px}.dealtable th{background:#fff1ef;color:#8e1a14;text-align:left;padding:10px 12px;font-size:14px;border-bottom:2px solid #c0261e}
.dealtable td{padding:11px 12px;border-bottom:1px solid #f0d4d0}.dealtable tbody tr{cursor:pointer}.dealtable tbody tr:hover,.dealtable tbody tr:focus{background:#fff6f4;outline:none}.dealtable tbody tr:last-child td{border-bottom:0}.dealtable a{color:var(--forest)}
.dealteaser{background:#fff6f4;border-top:3px solid #c0261e;border-bottom:3px solid #c0261e;text-align:center}.dealteaser .btn{margin-top:8px}
.dealbox{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff1ef;border:3px solid #c0261e;border-radius:14px;padding:14px 16px;margin:10px 0}
.dealbox.slim{padding:10px 14px}.dealtag{background:#c0261e;color:#fff;border-radius:99px;padding:2px 12px;font-size:14px;text-transform:uppercase;letter-spacing:.04em}
.dealbtn{background:#c0261e!important;color:#fff!important;font-size:20px;box-shadow:0 6px 16px rgba(192,38,30,.35)}.dealbtn:hover{background:#9f1d17!important}
.savebar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 12px}
.zmine{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px auto}.zlink{text-decoration:none;color:inherit;display:block;background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 0 0 1px #e4ded2}.zlink h3{color:var(--forest);margin:0 0 4px}.zlink:hover{box-shadow:0 0 0 2px var(--forest)}
.progress{height:14px;background:#e9e2d2;border-radius:99px;overflow:hidden;margin:8px 0}.progress span{display:block;height:100%;background:var(--forest);border-radius:99px;width:0;transition:width .4s}
.checklist{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.checklist li.done{color:var(--muted);text-decoration:line-through}.checklist li span{display:inline-block;width:22px;color:var(--forest);font-weight:800}
.growlinks{display:flex;gap:10px;flex-wrap:wrap}.integ{margin:0 0 18px}.integ h4{margin:12px 0 4px}.integ code{background:#f1ead9;padding:1px 6px;border-radius:6px}
.tablewrap{overflow-x:auto}.dealadmin{max-width:none}
.oreply{margin:8px 0 6px 18px;padding:8px 14px;border-left:4px solid var(--forest);background:#f4f9f5;border-radius:0 10px 10px 0}.oreply p{margin:4px 0 0}
.rrep{margin-top:8px}.rrep textarea{width:100%}
.mcard{max-width:420px;aspect-ratio:1.586;background:linear-gradient(135deg,#2F5D46,#1d4030);color:#fff;border-radius:22px;padding:22px 24px;box-shadow:0 14px 34px rgba(0,0,0,.25);display:flex;flex-direction:column;justify-content:space-between;position:relative;border:3px solid #F2B632}
.mc-top{display:flex;justify-content:space-between;align-items:center}.mc-top img{background:#fff;border-radius:10px;padding:4px 8px;width:120px;height:auto}.mc-free{background:#F2B632;color:#2a2200;border-radius:99px;padding:3px 14px;font-weight:800;font-size:14px;text-transform:uppercase}
.mc-name{font-size:24px;font-weight:800;margin:0}.mc-lab{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.8;margin:0}.mc-num{font-size:30px;font-weight:800;letter-spacing:.06em;margin:0;font-variant-numeric:tabular-nums}.mc-since{margin:0;opacity:.85;font-size:14px}.mc-foot{font-size:12px;opacity:.85;margin:0}
.favcard{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap;background:#fff;border-radius:16px;padding:16px 20px;margin-bottom:12px;box-shadow:0 0 0 1px #e4ded2}.favcard h2{font-size:22px;margin:0}.favcard a{color:var(--forest)}.favdeal{background:#fff1ef;border-left:4px solid #c0261e;padding:6px 10px;border-radius:0 8px 8px 0;margin:8px 0 0}.favact{display:grid;gap:8px;justify-items:start}
.cert{background:#fff;border:10px double #2F5D46;padding:18px;max-width:760px;margin:0 auto 18px}.certin{border:2px solid #F2B632;padding:34px 24px;text-align:center}.certin h2{font-size:34px;color:var(--forest)}.cs{text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.cname{font-size:36px;font-weight:800;margin:6px 0 0}.ctown{color:var(--muted);margin:0 0 14px}.crole{font-size:26px;font-weight:800;color:#b3791a;margin:6px 0 14px}
@media print{body *{visibility:hidden}.cert,.cert *,.mcard,.mcard *{visibility:visible}.cert,.mcard{position:absolute;left:0;top:0}.noprint{display:none!important}.mcard{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.cert{-webkit-print-color-adjust:exact;print-color-adjust:exact;width:100%;max-width:none}}
.dealsec h2,.dealsec .sub{color:#fff}.dealsec .sub{opacity:.9}
main .mcard{display:block;aspect-ratio:auto;width:100%;max-width:420px;min-height:250px;margin:0}
main .mcard p{max-width:none;margin:0;color:#fff}main .mcard .mc-top{margin-bottom:22px}main .mcard .mc-top img{background:none;padding:0;border-radius:0;width:130px}
main .mcard .mc-name{font-size:26px;margin-bottom:12px}main .mcard .mc-num{font-size:32px;margin:2px 0 8px}main .mcard .mc-since{margin-bottom:12px}main .mcard .mc-foot{border-top:1px solid rgba(255,255,255,.25);padding-top:10px}
.dealnote{background:#fff1ef;border-top:3px solid #c0261e;border-bottom:3px solid #c0261e}.dealnote .w{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.dealnote p{margin:0;max-width:none}.dealnote .btn{background:#c0261e;color:#fff}
.dealsec{background:var(--forest);margin-top:18px}
/* signed-in campsite owners never see the visitor buttons (Join free / Log in) */
body.is-owner header.top .jlog.li,body.is-owner header.top .btn.jn[data-show=guest],body.is-owner [data-show=guest]{display:none!important}
/* long campsite names wrap instead of pushing the page wider than the screen */
.backlink,.crumbs,#btitle,#name,.favcard h2,.dealtable a,.dealbox{overflow-wrap:anywhere}.backlink{display:inline-block;max-width:100%}
nav.crumbs a{white-space:normal}
@media(max-width:640px){
.dealsec .tablewrap{overflow:visible;border:0;background:none}.dealtable{min-width:0;display:block}.dealtable thead{display:none}.dealtable tbody,.dealtable tr{display:block}
.dealtable tbody tr{background:#fff;border:3px solid #c0261e;border-radius:12px;margin:0 0 12px;padding:6px 14px}.dealtable td{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid #f0d4d0;text-align:right}
.dealtable td:last-child{border-bottom:0}.dealtable td::before{content:attr(data-l);font-weight:700;color:#8e1a14;text-align:left;flex:none}
.dealnote .btn{width:100%;text-align:center}.cert{padding:8px}.certin{padding:22px 12px}.certin h2{font-size:26px}.cname{font-size:28px}.crole{font-size:22px}
.favcard{align-items:flex-start}
}
.checklist li{display:flex;gap:8px;align-items:flex-start}.checklist li.done{text-decoration:none}.checklist li span{flex:none;width:20px}
.checkcard .checklist a{color:var(--forest);font-weight:600}
.tablewrap .ptable{max-width:100%}.tablewrap .ptable th,.tablewrap .ptable td{padding:9px 10px}
@media(max-width:640px){.growlinks .btn{width:100%;text-align:center}.tablewrap .ptable th,.tablewrap .ptable td{font-size:14px;padding:8px 6px}.dealadmin{min-width:620px}}
/* ---- Button colours: writing is always a different, readable colour from the button, in every state ---- */
/* orange and yellow buttons keep dark writing when hovered or focused (also inside nav bars and cards) */
nav a.btn:not(.ghost):not(.green):not(.danger):not(.red):not(.lg):not(.ghostlight):not(.logout):not(.dealbtn):hover,
nav a.btn:not(.ghost):not(.green):not(.danger):not(.red):not(.lg):not(.ghostlight):not(.logout):not(.dealbtn):focus-visible,
.rposter:hover .rcap .btn,.rposter:focus-visible .rcap .btn{color:#1f160f}
.rposter:hover .rcap .btn{background:var(--sun)}
/* outline (ghost) buttons turn green with cream writing on hover, whatever box they sit in */
.btn.ghost:hover,.btn.ghost:focus-visible,
.zonepage .zsoon .zcard .btn.ghost:hover,.zonepage .zsoon .zcard .btn.ghost:focus-visible,.bbuild .bcard .btn.ghost:hover,.bbuild .bcard .btn.ghost:focus-visible,nav a.btn.ghost:hover{background:var(--forest);color:#fff;border-color:var(--forest)}
.own .btn.ghost:hover,.hiw .btn.ghost:hover{background:var(--sand);color:var(--deep);border-color:var(--sand)}
/* link-buttons inside a yellow notice: dark writing on the orange button */
.alert a.btn{color:#1f160f;text-decoration:none}
/* greyed-out (unavailable) buttons: solid grey with dark writing, not see-through */
.btn[disabled],.btn[aria-disabled="true"]{opacity:1!important;filter:none!important;background:#e4dfd3!important;color:#4f463c!important;border-color:#a39a8b!important;box-shadow:none!important}
.btn.ghost[disabled],.btn.ghost[aria-disabled="true"]{background:#f1ede2!important}
.btn[disabled]::after,.btn[aria-disabled="true"]::after{color:#4f463c}
/* carousel arrows: solid dark circle with a white arrow, readable on photos, sand and green */
.slider .arrows button{top:90px;width:44px;height:44px;margin-top:-22px;border-radius:50%;background:#17382B;color:#fff;border:2px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.35);filter:none}
.slider .arrows button:hover,.slider .arrows button:focus-visible{background:#2F5D46;color:#fff;filter:none;box-shadow:0 6px 14px rgba(0,0,0,.4)}
.related .slider .arrows button{filter:none}
.slider .arrows button:before{width:12px;height:12px;border-width:3px}
.slider .arrows button:first-child:before{margin-left:4px}.slider .arrows button:last-child:before{margin-right:4px}
.slider .arrows button:first-child{left:6px}.slider .arrows button:last-child{right:6px}
@media(min-width:1000px){.slider .arrows button:first-child{left:6px}.slider .arrows button:last-child{right:6px}}

/* ---- holiday cottages (owner form) and cottage details on the campsite page ---- */
.unitrow{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:10px;align-items:end;margin:10px 0;padding:12px;border:2px solid var(--line);border-radius:14px;background:#fff}
.unitrow label{display:block;font-weight:600;font-size:14px}.unitrow input,.unitrow select{width:100%;margin-top:4px}
.unitrow .udates,.unitrow .uinfo{grid-column:1/-1}.unitrow .udates select{width:auto;display:inline-block}.unitrow .udel{justify-self:start}
@media(max-width:640px){.unitrow{grid-template-columns:1fr 1fr}.unitrow label:first-child{grid-column:1/-1}.unitrow>label:nth-child(4){grid-column:1/-1}}
.cottages{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:12px 0}
.cottage{background:#fff;border:2px solid var(--line);border-radius:14px;padding:14px 16px}.cottage h3{margin:0 0 4px;font-size:19px}.cottage p{margin:2px 0;font-size:15px}.cottage .from{font-weight:800;color:var(--forest)}
.calunit{margin:8px 0}.calunit label{font-weight:600;display:block}
.disclaimer-note{font-size:14px}

.gemmaguide{background:#fff;border:2px solid var(--line);border-radius:14px;padding:12px 16px}.gemmaguide summary{cursor:pointer}.gemmaguide .steps{padding-left:22px}.gemmaguide .steps li{margin:6px 0}
#cal_bulk{width:100%;margin:6px 0}
.gemmaguide summary{list-style:none;display:flex;align-items:center;gap:8px;color:var(--forest)}.gemmaguide summary::-webkit-details-marker{display:none}
.gemmaguide summary::before{content:"i";display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--forest);color:#fff;font-weight:800;font-style:italic}
.gemmaguide summary::after{content:"Show \25BE";margin-left:auto;font-size:14px;font-weight:700}.gemmaguide[open] summary::after{content:"Hide \25B4"}
.gemmaguide .gsteps{display:block;padding-left:24px;margin:10px 0}.gemmaguide .gsteps li{display:list-item;margin:8px 0;list-style:decimal}
.gemmaguide b,.gemmaguide strong{text-transform:none}.gemmaguide[open] summary{margin-bottom:10px}

/* cottage photos, facilities and the link line under the opening times */
.unitline{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:#fff}
.unitline .btn{margin-left:auto}
.cottages{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.cottage .cphotos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:6px 0 10px}.cottage .cphotos img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:8px;display:block}
.cottage .chips{margin:8px 0}
.unitrow textarea{width:100%;margin-top:4px}
.uphotos .uthumbs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}.uthumb{position:relative;display:inline-block}.uthumb img{width:110px;height:74px;object-fit:cover;border-radius:8px;display:block}
.uthumb .x{position:absolute;top:2px;right:2px;width:26px;height:26px;border-radius:50%;border:0;background:#222;color:#fff;cursor:pointer;line-height:1}
.uthumb .x:hover,.uthumb .x:focus-visible{background:#fff;color:#222;outline:2px solid #222}
.upadd{cursor:pointer}

/* the cottages line under the opening times: tidy on a phone */
.unitline{flex-wrap:nowrap;gap:12px;padding:10px 12px 10px 16px;margin:0 0 18px;border-radius:14px;font-size:18px;line-height:1.3}
.unitline,.unitline *{text-transform:none!important}
.unitline .oicon{font-size:22px;flex:none}
.unitline .utext{flex:1;min-width:0}
.unitline .umore{margin-left:0;flex:none;min-width:84px;text-align:center;padding:9px 18px;font-size:16px}
@media(max-width:600px){
  .openbanner{padding:12px 14px;font-size:17px;gap:8px 10px;margin-bottom:12px}.openbanner .oicon{font-size:20px}.openbanner .onow{font-size:13px;padding:3px 10px}
  .unitline{font-size:16px;gap:10px;padding:8px 8px 8px 14px;margin-bottom:14px}.unitline .umore{min-width:72px;padding:8px 14px;font-size:15px}
}
@media(max-width:600px){
  .openbanner{flex-wrap:nowrap;font-size:16px;padding:12px}.openbanner .onow{margin-left:auto;font-size:12px;padding:3px 8px;white-space:nowrap}
  .unitline .utext b{display:block}
}
.upadd{display:inline-block;width:auto}.unitrow .uphotos .btn{width:auto}
.unitrow .uphotos label.upadd{display:inline-flex;width:auto;margin:4px 0}.unitsec{margin:8px 0 18px;padding-top:6px}

.uslots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0}
.uslot{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;border-radius:10px;overflow:hidden}
.uslot.has img{width:100%;height:100%;object-fit:cover;display:block}
.uslot.empty{border:2px dashed var(--forest);background:#fff;color:var(--forest);font-weight:700;text-align:center;cursor:pointer;padding:6px;font-size:15px}
.uslot.empty:hover,.uslot.empty:focus-within{background:var(--forest);color:#fff}
.uslot .x{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:50%;border:0;background:#222;color:#fff;cursor:pointer;line-height:1}
.uslot .x:hover,.uslot .x:focus-visible{background:#fff;color:#222;outline:2px solid #222}

.cottagebox .cottages{margin-top:10px}
.cottage .from small{font-weight:400;color:var(--bark)}
.cottage .ptable{margin:8px 0}
.cottage .bookhome{display:block;text-align:center;margin-top:12px}

/* Picture framing box */
.cropov{position:fixed;inset:0;background:rgba(20,30,25,.72);z-index:3000;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto}
.cropbox{background:#fff;border-radius:14px;padding:18px;max-width:600px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}
.cropbox h2{font-size:21px;margin:0 0 6px}
.cropnote{margin:0 0 12px;color:#555;font-size:15px}
.cropframe{position:relative;overflow:hidden;margin:0 auto;border:3px solid #2f6b4f;border-radius:8px;background:#222;cursor:grab;touch-action:none;outline-offset:3px}
.cropframe.drag{cursor:grabbing}
.cropframe img{position:absolute;max-width:none;user-select:none;-webkit-user-select:none;pointer-events:none}
.cropzoom{display:flex;gap:10px;align-items:center;justify-content:center;margin:12px 0;font-weight:600}
.cropzoom input{flex:1;max-width:320px}
.cropbtns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.cropbtns .btn{min-height:46px}

/* More free tools (campsite sign-up page) */
.mtools{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:18px}
.mtool{background:#fff;border:2px solid #e3ebe5;border-radius:14px;padding:18px;position:relative}
.mtool h3{font-size:19px;margin:0 0 6px;display:flex;gap:8px;align-items:center}
.mtool p{margin:8px 0 0}
.mtool .gfree{display:inline-block;margin:2px 0}

/* Glossy 3D buttons and pills */
/* PROPOSED v2: glossy 3D buttons and pills, text pressed into the surface */
.btn{--gl:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 48%,rgba(255,255,255,0) 50%,rgba(0,0,0,.06) 100%);
 border-radius:16px;font-weight:700;letter-spacing:.012em;min-height:50px;padding:12px 28px;border:1px solid rgba(150,60,15,.55);
 background:var(--gl),linear-gradient(180deg,#F59560 0%,#E9733A 55%,#D95F26 100%);color:#fff;
 text-shadow:0 -1px 1px rgba(110,40,5,.65),0 1px 0 rgba(255,255,255,.28);
 box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 -3px 6px rgba(120,45,10,.35) inset,0 2px 0 #B84E1B,0 10px 18px -6px rgba(185,78,27,.55);
 transition:transform .15s,box-shadow .15s,filter .15s}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.75) inset,0 -3px 6px rgba(120,45,10,.35) inset,0 3px 0 #B84E1B,0 14px 22px -6px rgba(185,78,27,.6)}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 5px rgba(120,45,10,.4) inset,0 0 0 #B84E1B,0 3px 6px -2px rgba(185,78,27,.5)}
.btn.big{min-height:58px;padding:15px 36px;font-size:18px;border-radius:18px}
.btn.yel{border-color:rgba(160,110,10,.6);background:var(--gl),linear-gradient(180deg,#FBD670 0%,#F2B632 55%,#E1A01B 100%);color:#3a2a05;
 text-shadow:0 1px 0 rgba(255,255,255,.55),0 -1px 0 rgba(120,80,0,.25);box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 -3px 6px rgba(150,100,5,.3) inset,0 2px 0 #B8800F,0 10px 18px -6px rgba(184,128,15,.5)}
.btn.green{border-color:#0f261c;background:var(--gl),linear-gradient(180deg,#3E7358 0%,#2A5640 55%,#183A2B 100%);color:#fff;
 text-shadow:0 -1px 1px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.18);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -3px 6px rgba(0,0,0,.35) inset,0 2px 0 #0c1f17,0 10px 18px -6px rgba(15,38,28,.6)}
.btn.ghost{border-color:rgba(47,93,70,.45);background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.55) 49%,rgba(225,236,229,.6) 50%,rgba(205,222,212,.65) 100%);color:#1B3C2D;
 text-shadow:0 1px 0 rgba(255,255,255,.9),0 -1px 0 rgba(20,60,40,.18);box-shadow:0 1px 0 #fff inset,0 -3px 6px rgba(47,93,70,.18) inset,0 2px 0 rgba(47,93,70,.35),0 10px 16px -8px rgba(20,35,27,.35)}
.btn.ghost:hover{color:#fff;background:var(--gl),linear-gradient(180deg,#3E7358,#183A2B);text-shadow:0 -1px 1px rgba(0,0,0,.6)}
.btn.small{min-height:40px;padding:8px 20px;border-radius:13px;font-size:15px}
.gfree,.reqtag,.badge,.chip,.chips li,.ptable .tag,.dealtag{
 background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.6) 49%,rgba(225,236,229,.7) 50%,rgba(205,222,212,.8) 100%);color:#1B3C2D;
 border:1px solid rgba(47,93,70,.35);border-radius:999px;text-shadow:0 1px 0 rgba(255,255,255,.95),0 -1px 0 rgba(20,60,40,.2);
 box-shadow:0 1px 0 #fff inset,0 -2px 4px rgba(47,93,70,.2) inset,0 2px 0 rgba(47,93,70,.28),0 6px 10px -5px rgba(20,35,27,.4)}
.gfree{background:linear-gradient(180deg,rgba(255,244,205,.98) 0%,rgba(250,214,110,.85) 49%,rgba(240,183,45,.95) 50%,rgba(226,160,27,1) 100%);border-color:rgba(160,110,10,.6);color:#4a3606;
 text-shadow:0 1px 0 rgba(255,255,255,.6);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 -2px 4px rgba(150,100,5,.3) inset,0 2px 0 #B8800F,0 6px 10px -5px rgba(184,128,15,.55)}
.reqtag,.bbuild .bcard>h2 .reqtag{background:linear-gradient(180deg,rgba(255,225,205,.98) 0%,rgba(247,163,115,.9) 49%,rgba(233,115,58,.95) 50%,rgba(217,95,38,1) 100%);border-color:rgba(150,60,15,.6);color:#fff;
 text-shadow:0 -1px 1px rgba(110,40,5,.6);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 -2px 4px rgba(120,45,10,.3) inset,0 2px 0 #B84E1B,0 6px 10px -5px rgba(185,78,27,.55)}
.on-dark .chip,.on-dark .chips li,.page-head .chip,.own .chip{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08) 49%,rgba(0,0,0,.12) 50%,rgba(0,0,0,.2));color:#fff;border-color:rgba(255,255,255,.35);text-shadow:0 -1px 1px rgba(0,0,0,.5);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 2px 0 rgba(0,0,0,.35),0 6px 10px -5px rgba(0,0,0,.5)}
.on-dark .btn.ghost,.btn.ghostlight,.own .btn.ghost,.page-head .btn.ghost,.fccgain .hiwtop .btn.ghost{background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.1) 49%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.2));color:#fff;border-color:rgba(255,255,255,.4);text-shadow:0 -1px 1px rgba(0,0,0,.55);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 2px 0 rgba(0,0,0,.4),0 10px 16px -8px rgba(0,0,0,.5)}

.btn.danger{--dg:1;color:#fff;border-color:#6d130d;background:var(--gl),linear-gradient(180deg,#d9564d 0%,#b3261e 55%,#8f1a14 100%);text-shadow:0 -1px 1px rgba(60,5,2,.65),0 1px 0 rgba(255,255,255,.2);box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 -3px 6px rgba(60,5,2,.35) inset,0 2px 0 #6d130d,0 10px 18px -6px rgba(143,26,20,.55)}
.btn.logout{color:#fff;border-color:#0c1f17;background:var(--gl),linear-gradient(180deg,#3E7358 0%,#2A5640 55%,#183A2B 100%);text-shadow:0 -1px 1px rgba(0,0,0,.6);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -3px 6px rgba(0,0,0,.35) inset,0 2px 0 #0c1f17,0 8px 14px -6px rgba(15,38,28,.6)}
.badge.f{background:linear-gradient(180deg,rgba(255,244,205,.98) 0%,rgba(250,214,110,.85) 49%,rgba(240,183,45,.95) 50%,rgba(226,160,27,1) 100%);border-color:rgba(160,110,10,.6);color:#4a3606}
.badge.d{background:linear-gradient(180deg,rgba(255,225,205,.98) 0%,rgba(247,163,115,.9) 49%,rgba(233,115,58,.95) 50%,rgba(217,95,38,1) 100%);border-color:rgba(150,60,15,.6);color:#fff;text-shadow:0 -1px 1px rgba(110,40,5,.6)}
.pills a{border:1px solid rgba(47,93,70,.35);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.6) 49%,rgba(225,236,229,.7) 50%,rgba(205,222,212,.8) 100%);color:#1B3C2D;text-shadow:0 1px 0 rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 -2px 4px rgba(47,93,70,.2) inset,0 2px 0 rgba(47,93,70,.28),0 6px 10px -5px rgba(20,35,27,.4)}
.pills a:hover{background:linear-gradient(180deg,#3E7358,#183A2B);color:#fff;text-shadow:0 -1px 1px rgba(0,0,0,.6)}
.btn.big:not(.ghost):not(.ghostlight)::after{text-shadow:inherit}
.btn[disabled]{filter:grayscale(.3);transform:none}
.free{border:1px solid rgba(160,110,10,.6);border-radius:999px;background:linear-gradient(180deg,rgba(255,244,205,.98) 0%,rgba(250,214,110,.85) 49%,rgba(240,183,45,.95) 50%,rgba(226,160,27,1) 100%);color:#4a3606;text-shadow:0 1px 0 rgba(255,255,255,.6);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 -2px 4px rgba(150,100,5,.3) inset,0 2px 0 #B8800F,0 6px 10px -5px rgba(184,128,15,.55)}
.status{border-radius:999px;border:1px solid rgba(47,93,70,.3);background-image:linear-gradient(180deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.18) 49%,rgba(0,0,0,.05) 50%,rgba(0,0,0,.1) 100%);text-shadow:0 1px 0 rgba(255,255,255,.7);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 -2px 3px rgba(47,93,70,.15) inset,0 2px 0 rgba(47,93,70,.2),0 4px 8px -4px rgba(20,35,27,.35)}

/* Campsite sign-up page: the video fills its container, and on a phone it is exactly as wide as the Campsite login button */
.fccgain .hiwbox{width:100%;max-width:960px}
.fccgain .hiwtop{margin-bottom:0}
@media(max-width:640px){.btn.fullph{display:flex;width:100%}.fccgain .hiwbox{width:100%;max-width:none}}

/* Sign-up video shown on a monitor: square-cornered screen, dark bezel, stand and a soft drop shadow */
.fccgain .hiwbox{position:relative;border-radius:10px;overflow:visible;padding:14px 14px 26px;border:1px solid #444c48;
 background:linear-gradient(150deg,#323734 0%,#171b19 55%,#0e1110 100%);
 box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 0 0 2px #0b0e0d,0 34px 44px -22px rgba(10,25,18,.6),0 16px 30px -10px rgba(10,25,18,.35)}
.fccgain .hiwbox video{border-radius:0;background:#000;box-shadow:0 0 0 1px #000,0 0 14px rgba(0,0,0,.6) inset}
.fccgain .hiwbox::after{content:"";position:absolute;left:50%;bottom:9px;width:5px;height:5px;margin-left:-2px;border-radius:50%;background:#5a6660;box-shadow:0 0 0 1px #222}
.fccgain .hiwstand{position:relative;max-width:960px;margin:0 auto;height:46px}
.fccgain .hiwstand::before{content:"";position:absolute;left:50%;top:-1px;width:16%;height:30px;transform:translateX(-50%);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);background:linear-gradient(90deg,#8d9591,#d9deda 45%,#8d9591)}
.fccgain .hiwstand::after{content:"";position:absolute;left:50%;top:26px;width:34%;height:12px;transform:translateX(-50%);border-radius:50% 50% 8px 8px/70% 70% 8px 8px;background:linear-gradient(180deg,#e4e8e5,#8d9591);box-shadow:0 12px 14px -6px rgba(10,25,18,.45)}
@media(max-width:640px){.fccgain .hiwbox{padding:9px 9px 18px}.fccgain .hiwstand{height:38px}.fccgain .hiwstand::before{height:24px}.fccgain .hiwstand::after{top:20px}}

/* No stand under the monitor */
.fccgain .hiwstand{display:none}
.fccgain .hiwbox{margin-bottom:34px}

/* Fast Upload on the campsite sign-up form */
.fastup input[type=file]{width:100%;padding:12px;border:2px dashed rgba(47,93,70,.45);border-radius:14px;background:#fff;cursor:pointer}
.fastprev{display:flex;align-items:center;gap:14px;margin:10px 0}.fastprev img{width:160px;max-width:45%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.fastup input[type=file]::file-selector-button{margin-right:14px;padding:9px 20px;border-radius:13px;border:1px solid rgba(150,60,15,.55);font:inherit;font-weight:700;color:#fff;cursor:pointer;
 background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 48%,rgba(255,255,255,0) 50%,rgba(0,0,0,.06) 100%),linear-gradient(180deg,#F59560 0%,#E9733A 55%,#D95F26 100%);
 text-shadow:0 -1px 1px rgba(110,40,5,.65),0 1px 0 rgba(255,255,255,.28);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 -3px 6px rgba(120,45,10,.35) inset,0 2px 0 #B84E1B}

/* Webmaster bar: the "View the site as a customer" button may wrap on phones so the page never gets wider than the screen */
.wmbar .wmswitch{white-space:normal;text-align:center}
@media(max-width:640px){.wmbar .btn{min-height:40px;padding:8px 16px;font-size:15px}.wmbar .w{gap:10px}}
@media(max-width:640px){#wmbar .wmswitch{white-space:normal;max-width:100%;line-height:1.25}#wmbar .w{min-width:0}}
.fastup input[type=file]{font-size:0;line-height:0}
.fastup input[type=file]::file-selector-button{font-size:16px;line-height:1.2;margin-right:0}

/* Campsite sign-up page: one centred, sticky Campsite login button on every screen size (replaces the Join / Log in bar) */
.csignup .joinbar[data-show=guest]{display:none!important}
.cslogin{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;justify-content:center;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));pointer-events:none}
.cslogin[hidden]{display:none}
.cslogin .btn{pointer-events:auto;min-width:240px;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 -3px 6px rgba(120,45,10,.35) inset,0 2px 0 #B84E1B,0 14px 26px -6px rgba(10,25,18,.55)}
.cslogin .btn::after{display:none!important}
@media(max-width:640px){.cslogin .btn{width:100%;max-width:350px}}
body.csignup{padding-bottom:84px}

.ckb-fund{margin:8px 0 0;font-size:.92em}

/* Cookie pop-up: "Essential only" without a border, lighter text */
.ckb .btn.ckb-ess{border:0!important;font-weight:500;color:#1f3d31;background:#EDE8DC;box-shadow:0 8px 16px -8px rgba(10,25,18,.35)}
.ckb .btn.ckb-ess::after{display:none!important}

/* Cookie pop-up: "Accept all" in dark green */
.ckb .btn.ckb-acc,.ckb .btn.ckb-acc:hover,.ckb .btn.ckb-acc:focus-visible{
 background:linear-gradient(180deg,rgba(255,255,255,.4) 0%,rgba(255,255,255,.12) 48%,rgba(255,255,255,0) 50%,rgba(0,0,0,.08) 100%),linear-gradient(180deg,#2F6B52 0%,#1F4A38 55%,#17382B 100%)!important;
 border:1px solid #0E241B!important;color:#fff!important;text-shadow:0 -1px 1px rgba(0,0,0,.55);
 box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -3px 6px rgba(0,0,0,.35) inset,0 2px 0 #0E241B,0 10px 18px -8px rgba(10,25,18,.6)}
.ckb .btn.ckb-acc:hover{filter:brightness(1.12)}

/* Control panel: cookie accepts and declines */
.ckrow{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 12px}
.ckbig{flex:1 1 150px;background:#fff;border:1px solid #d9d3c3;border-radius:14px;padding:12px 16px;display:flex;flex-direction:column}
.ckbig b{font-size:2rem;line-height:1.1;color:#17382B}.ckbig span{font-size:.9rem;color:#4a5b52}
.ckbig.yes{border-color:#2F6B52}.ckbig.no{border-color:#B6241B}.ckbig.no b{color:#B6241B}
.ckbar{height:10px;border-radius:6px;background:#B6241B;overflow:hidden;display:flex;margin-bottom:10px}
.ckbar i{background:#2F6B52;display:block}.ckbar i.c{background:#E0A62A}

/* Members Zone: centre the Membership Card and My Saved Campsites cards */
.zmine .zcard{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.zmine .zcard h3,.zmine .zcard p{text-align:center;margin-left:auto;margin-right:auto}

/* Cookie box: centred pop-up with Consent / Details / About tabs, switches and one OK button */
body.ckm-lock{overflow:hidden}
.ckm{position:fixed;inset:0;z-index:3000;background:rgba(20,28,24,.62);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .2s}
.ckm.show{opacity:1}
.ckm-card{background:#fff;color:#1c2b24;width:min(760px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden;outline:0}
.ckm-top{padding:16px 24px;border-bottom:1px solid #e4e0d4}
.ckm-brand{font-weight:800;color:#17382B;font-size:1.05rem;display:flex;align-items:center;gap:10px}
.ckm-tabs{display:flex;border-bottom:1px solid #e4e0d4}
.ckm-tabs button{flex:1;background:none;border:0;border-bottom:3px solid transparent;padding:14px 8px;font:inherit;font-weight:700;color:#1c2b24;cursor:pointer;min-height:48px}
.ckm-tabs button.on{color:#1F4A38;border-bottom-color:#1F4A38}
.ckm-tabs button:focus-visible{outline:3px solid #E0A62A;outline-offset:-3px}
.ckm-body{padding:20px 24px;overflow-y:auto;flex:1 1 auto;-webkit-overflow-scrolling:touch}
.ckm-body h2{margin:0 0 10px;font-size:1.3rem;color:#17382B}
.ckm-body p{margin:0 0 12px;font-size:1rem;line-height:1.55}
.ckm-body a{color:#1F4A38;font-weight:700}
.ckm-row{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}
.ckm-chip{flex:1 1 180px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d9d3c3;border-radius:12px;padding:10px 14px;font-weight:700;background:#faf8f3}
.ckm .ckm-hint{font-size:.92rem;color:#4a5b52}
.ckm-sw{position:relative;display:inline-flex;flex:0 0 auto;cursor:pointer}
.ckm-sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.ckm-track{width:52px;height:30px;border-radius:30px;background:#9aa39e;display:block;position:relative;transition:background .15s}
.ckm-track i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .15s}
.ckm-sw input:checked+.ckm-track{background:#1F4A38}
.ckm-sw input:checked+.ckm-track i{transform:translateX(22px)}
.ckm-sw.lock{cursor:default;opacity:.7}.ckm-sw.lock input{cursor:default}
.ckm-sw input:focus-visible+.ckm-track{outline:3px solid #E0A62A;outline-offset:2px}
.ckm-cat{border-bottom:1px solid #e4e0d4;padding:6px 0}
.ckm-cat summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;padding:12px 0;min-height:48px}
.ckm-cat summary::-webkit-details-marker{display:none}
.ckm-cat summary b{font-size:1.05rem}
.ckm-swwrap{margin-left:auto}
.ckm-chev{width:10px;height:10px;border-right:2px solid #1c2b24;border-bottom:2px solid #1c2b24;transform:rotate(45deg);margin:0 6px 4px 4px;transition:transform .15s;flex:0 0 auto}
.ckm-cat[open] .ckm-chev{transform:rotate(-135deg);margin-top:6px}
.ckm-n{font-style:normal;font-size:.8rem;font-weight:800;background:#e2e2e2;border-radius:12px;padding:2px 9px}
.ckm-cbody{padding:0 0 12px 30px}
.ckm-list{margin:0;padding:0;list-style:none}.ckm-list li{margin:0 0 8px;font-size:.95rem;line-height:1.45}
.ckm-foot{padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e4e0d4;display:flex;justify-content:flex-end;background:#fff}
.ckm .btn.ckm-ok{min-width:260px;min-height:52px;font-size:1.1rem;color:#fff!important;border:1px solid #0E241B!important;text-shadow:0 -1px 1px rgba(0,0,0,.55);
 background:linear-gradient(180deg,rgba(255,255,255,.4) 0%,rgba(255,255,255,.12) 48%,rgba(255,255,255,0) 50%,rgba(0,0,0,.08) 100%),linear-gradient(180deg,#2F6B52 0%,#1F4A38 55%,#17382B 100%)!important;
 box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -3px 6px rgba(0,0,0,.35) inset,0 2px 0 #0E241B,0 10px 18px -8px rgba(10,25,18,.6)}
.ckm .btn.ckm-ok:hover{filter:brightness(1.12)}
@media(max-width:640px){.ckm{padding:10px}.ckm-top,.ckm-body,.ckm-foot{padding-left:16px;padding-right:16px}.ckm .btn.ckm-ok{width:100%}.ckm-cbody{padding-left:6px}}
@media(prefers-reduced-motion:reduce){.ckm,.ckm-track,.ckm-track i,.ckm-chev{transition:none}}
.ckm b,.ckm strong,.ckm summary b{text-transform:none}
.ckm-list li b{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em}

/* Partner advert boxes inside the guides (Camper Nation, BLUETTI) */
.partnerad{position:relative;background:#fff;border:1px solid var(--line);border-left:5px solid var(--sun);border-radius:10px;padding:16px 18px 18px;margin:22px 0}.partnerad .adlabel{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin-bottom:4px}.partnerad>b{display:block;font-size:19px;color:var(--forest);margin-bottom:4px}.partnerad p{margin:0 0 12px}.partnerad .pabtns{display:flex;flex-wrap:wrap;gap:10px}.guide .partnerad a.btn.btn,.guide .partnerad a.btn.btn:hover{width:auto;margin:0;flex:0 1 auto;padding:9px 18px;font-size:15px;color:var(--bark);text-decoration:none}

/* Camping Guides drop-down: every guide visible without scrolling (newspaper columns, each topic kept together) */
@media(min-width:961px){header.top nav .nvg>.nvp{padding:16px 18px 10px}header.top nav .nvg .nvgrid{display:block;columns:4 210px;column-gap:20px}header.top nav .nvg .nvcol{display:block;margin:0 0 6px;break-inside:avoid}header.top nav .nvg .nvh{display:block;padding:6px 12px 4px;break-after:avoid}header.top nav .nvg .nvp a:not(.nvall){break-inside:avoid;padding:5px 12px}header.top nav .nvg .nvp a b{font-size:14px}header.top nav .nvg .nvp a small{font-size:12px;margin-top:1px}}

/* Amazon picks inside the guides (magazine style: heading, framed photo beside the story, site button) */
.guide .pick{display:flow-root;margin:6px 0 26px;padding-bottom:22px;border-bottom:1px solid var(--line)}.guide .pick h3{margin-top:4px}.guide .pfig{margin:4px 0 12px;width:min(36%,230px);background:#fff;border-radius:18px;padding:14px 14px 10px;box-shadow:0 12px 30px rgba(31,64,48,.10)}.guide .pfig.r{float:right;margin-left:26px}.guide .pfig.l{float:left;margin-right:26px}.guide .pfig a{display:block;text-decoration:none}.guide .pfig img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:0;background:#fff}.guide .pfig .pcap{margin:8px 0 0;text-align:center;font-size:.85rem;font-style:italic;color:#5a5a5a}.guide .pick .buy{margin:14px 0 0;overflow:hidden}.guide .pick .buy .btn{margin:0;width:auto}.guide .adnote{font-size:.9rem;font-style:italic;color:#5a5a5a;border-left:3px solid var(--sun);padding:2px 0 2px 12px;margin:18px 0 22px}.guide h2{clear:both}@media (max-width:640px){.guide .pfig.r,.guide .pfig.l{float:none;margin:6px auto 14px;width:min(70%,240px)}}

/* Tick-box lists in the guides (checklist, countdown, meal planner): stop an older list style squeezing each item to 20px wide */
.checklist .cl-group li span{display:inline;width:auto;flex:1 1 auto;color:inherit;font-weight:400}.checklist .cl-group input:checked+span{text-decoration:line-through;color:var(--muted)}

/* Guide tables on phones: each row becomes a card with the column headings shown above each value (labels added by js/pages/guide.js) */
@media (max-width:600px){.guide .tablewrap,.guide .gtwrap{overflow:visible}.guide table.gstack{min-width:0!important;width:100%;display:block;background:none;border:0}.guide table.gstack thead{display:none}.guide table.gstack tbody{display:block}.guide table.gstack tr{display:block;background:#fff!important;border:1px solid var(--line);border-radius:12px;padding:6px 14px;margin:0 0 12px}.guide table.gstack td,.guide table.gstack th{display:block;width:auto;border:0;padding:6px 0;text-align:left;background:none!important;color:inherit}.guide table.gstack td+td{border-top:1px dashed var(--line)}.guide table.gstack td:first-child{font-weight:700;font-size:17px;color:var(--forest)}.guide table.gstack td[data-l]::before{content:attr(data-l);display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b5f52}.guide table.gstack td:first-child::before{display:none}}
/* Webmaster click and activity tables on tablets: keep dates and member numbers on one line; the table scrolls sideways in its box instead */
@media (min-width:701px) and (max-width:1100px){.act-table td{white-space:nowrap}}

/* Guide download cards: one slim line, title and button only */
.guide .dlcard.dlslim{justify-content:space-between;gap:12px;padding:10px 12px 10px 20px;border-radius:16px;margin:16px 0}.guide .dlcard.dlslim b{font-size:1.05rem;line-height:1.3}.guide .dlcard.dlslim .dl-go{flex:none}
/* Guide cross-links: plain text links that say where they go */
.guide .readnext{list-style:none;padding:0;margin:18px 0 24px}.guide .readnext li{position:relative;margin:0 0 8px;padding-left:24px}.guide .readnext li::before{content:"\2192";position:absolute;left:0;top:0;color:#E8753C;font-weight:700}.guide .readnext a{font-weight:600}
/* Amazon picks: centred, with the "why you need it" article first, then the photo, the write-up and the button */
.guide .pick{text-align:center;max-width:680px;margin-left:auto;margin-right:auto}.guide .pick h3{text-align:center}.guide .pick p{text-align:center}.guide .pick .why{font-size:1.06rem;line-height:1.65;margin:6px 0 4px}.guide .pick .pfig,.guide .pick .pfig.r,.guide .pick .pfig.l{float:none;margin:16px auto 14px;width:min(70%,240px)}.guide .pick .buy{text-align:center}.guide .pick .buy .btn{display:inline-flex;margin:0 auto}
/* Floated photos in the guides fill the width on phones, even when the page sets a width */
@media (max-width:640px){.guide .tfl{width:100%!important;float:none!important;margin:16px 0!important}}
/* Amazon product photos: the same look as the other guide photos (rounded, yellow offset edge, caption with a bar), full width on phones */
.guide .pick .pfig,.guide .pick .pfig.r,.guide .pick .pfig.l{float:none;background:none;padding:0;border-radius:0;box-shadow:none;width:min(100%,320px);margin:18px auto 16px}
.guide .pick .pfig img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#fff;padding:14px;box-sizing:border-box;border-radius:14px;box-shadow:6px 6px 0 var(--yel)}
.guide .pick .pfig .pcap{text-align:left;border-left:3px solid var(--forest);padding-left:9px;margin:12px 0 0;font-size:.9rem;font-style:italic;color:#4a4a4a}
@media (max-width:640px){.guide .pick .pfig,.guide .pick .pfig.r,.guide .pick .pfig.l{width:calc(100% - 6px);margin:18px 6px 16px 0}}
/* Wide screens: the map slide is only 917px wide, so show it at its real size and fade its edges into the sea colour instead of stretching it */
@media (min-width:1100px){.hero .slide.map{background:#aad3de}.hero .slide.map img{object-fit:contain;object-position:62% 50%;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 16%,#000 84%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 16%,#000 84%,transparent 100%)}}

/* Member ratings: stars, the score, the campsite's rating form and the member's own view */
.rtstars{color:#E8A317;letter-spacing:1px;white-space:nowrap}.rtstars span{color:#d6d0c4}
.rtchip{display:inline-flex;align-items:center;gap:3px;background:#fff7e0;color:#7a4d00;border:1px solid #f0d58a;border-radius:999px;padding:2px 9px;font-size:13px;font-weight:700;white-space:nowrap}.rtchip small{font-weight:600;color:#7a5a20}
.rtpanel,.myrating{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:16px 0}
.myrating:empty{display:none}.myrating h2{margin:0 0 10px}
.rthead{display:flex;align-items:center;gap:14px;margin:6px 0 10px}.rthead p{margin:2px 0 0}
.rtscore{flex:none;width:64px;height:64px;border-radius:50%;background:var(--forest);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800}
.rthead .rtstars{font-size:22px}
.rtchecks{list-style:none;padding:0;margin:8px 0 12px;display:flex;flex-wrap:wrap;gap:6px}.rtchecks li{background:#eef5ef;border-radius:999px;padding:3px 10px;font-size:14px}.rtchecks li.warn{background:#fdecea}
.rtlist{list-style:none;padding:0;margin:10px 0 0}.rtlist li{border-top:1px solid var(--line);padding:10px 0}.rtlist li p{margin:4px 0 0}.rtreply{background:#f6f3ec;border-radius:8px;padding:6px 10px}
.rtform{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}.rtform h4{margin:0 0 4px}
.rtpick{border:0;padding:0;margin:10px 0;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}.rtpick legend{font-weight:700;margin-bottom:4px;width:100%}
.rtpick input{position:absolute;opacity:0;width:1px;height:1px}.rtpick label{font-size:38px;line-height:1;color:#d6d0c4;cursor:pointer;padding:0 2px}
.rtpick input:checked~label,.rtpick label:hover,.rtpick label:hover~label{color:#E8A317}.rtpick input:focus-visible+label{outline:2px solid var(--forest);border-radius:6px}
.rtyn{border:0;padding:0;margin:8px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.rtyn legend{float:left;width:100%;font-weight:600;margin-bottom:2px}.rtyn label{display:inline-flex;align-items:center;gap:5px;font-weight:400}
.rtrep{margin-top:8px}.rtrep label{display:block;font-size:14px;font-weight:600}.rtrep textarea{width:100%;min-height:60px;margin:4px 0 6px}
.rttable tr.rthidden td{opacity:.55}
@media (max-width:600px){.rtpick label{font-size:44px}.rtscore{width:56px;height:56px;font-size:21px}}
.rtyn input[type=radio]{width:18px;height:18px;min-height:0;min-width:0;flex:none;margin:0;padding:0}.rtyn label{white-space:nowrap}
.rtchecks b,.rtreply b,.rtlist b,.myrating p b{text-transform:none}
.rtinfo a{color:var(--forest);text-decoration:underline;font-weight:600}
.rtbadge{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff7e0;border:1px solid #f0d58a;border-radius:999px;padding:8px 18px;margin:0 0 14px}.rtbadge .rtstars{font-size:24px}.rtbadge b{font-size:20px;color:var(--forest)}.rtbadge small{color:#7a5a20;font-weight:600}
.rtinfo .rtqs{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px 12px 36px}
/* Membership card: the member rating beside the membership number */
main .mcard .mc-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:6px 18px}
main .mcard .mc-rt{text-align:right}main .mcard .mc-rtv{display:flex;align-items:center;gap:6px;margin:2px 0 8px;justify-content:flex-end}
main .mcard .mc-stars{color:#F2B632;font-size:20px;letter-spacing:1px;white-space:nowrap}main .mcard .mc-stars span{color:rgba(255,255,255,.3)}
main .mcard .mc-rtv b{font-size:22px;color:#fff}
@media (max-width:380px){main .mcard .mc-rt{text-align:left}main .mcard .mc-rtv{justify-content:flex-start}}
main .mcard .mc-row{display:block}main .mcard .mc-rt{text-align:left}main .mcard .mc-rtv{justify-content:flex-start;margin:2px 0 10px}
/* Member ratings: fairness (waiting to publish, flagged for the webmaster) */
.rtchip.rtwait{background:#e8f1fb;border-color:#b9d3ef;color:#1d4f7a}
.rttable tr.rtflag td{background:#fff8e6}.rtwarn{color:#9a5b00;font-weight:600;margin:0 0 4px}
.rttable td.rtacts{white-space:nowrap}.rttable td.rtacts .btn{margin:2px 4px 2px 0}
/* Webmaster: setup reminders */
.srgaps{margin:0;padding-left:18px}.srgaps li{margin:0 0 2px}
.srmail{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:20px 0}.srmail pre{white-space:pre-wrap;word-break:break-word;font:15px/1.55 inherit;font-family:inherit;background:#f8f6f0;border-radius:10px;padding:14px;margin:10px 0;max-height:70vh;overflow:auto}
