:root {
  --green-950: #0c281f;
  --green-900: #12372a;
  --green-800: #1b4938;
  --green-700: #286047;
  --cream: #faf6ed;
  --parchment: #f1e6d1;
  --paper: #fffdf8;
  --gold: #a8874d;
  --gold-light: #d8c49b;
  --ink: #202821;
  --muted: #5f685f;
  --line: #d9cdb9;
  --shadow: 0 18px 45px rgba(20, 55, 42, 0.12);
  --shadow-soft: 0 8px 24px rgba(20, 55, 42, 0.09);
  --radius: 2px;
  --max: 1240px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --script: "Segoe Print", "Bradley Hand", cursive;
}

/* Botts Pool visitor guide and voluntary catch journal */
.fishing-new-hero{position:relative;min-height:min(760px,78vh);display:grid;align-items:end;color:#fff;background:var(--green-950);overflow:hidden}.fishing-new-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,24,18,.2),rgba(7,24,18,.88))}.fishing-new-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%}.fishing-hero-copy{position:relative;z-index:1;padding-block:clamp(5rem,12vw,9rem) clamp(2rem,6vw,4rem);max-width:1180px}.fishing-hero-copy h1{max-width:800px;font-size:clamp(2.6rem,7vw,5.7rem);line-height:.96;color:#fff}.fishing-hero-copy .lead{max-width:650px}.fishing-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}.button-light{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.7);color:#fff;backdrop-filter:blur(8px)}.fishing-quick{background:var(--green-900);color:#fff}.fishing-quick-grid{display:grid;grid-template-columns:repeat(5,1fr)}.fishing-quick-grid span{padding:1.25rem;border-right:1px solid rgba(255,255,255,.18)}.fishing-quick-grid b,.fishing-quick-grid small{display:block}.fishing-quick-grid small{opacity:.78;margin-top:.25rem}.fishing-species,.fishing-ticket-panel,.directions-panel,.history-journal{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:clamp(2rem,6vw,5rem);align-items:center}.species-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.species-list li{padding:.85rem 1rem;background:#fff;border:1px solid var(--line);color:var(--green-900);font-weight:700}.fishing-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.fishing-guide-grid article,.rules-notice,.journal-card{padding:clamp(1.25rem,3vw,2rem);background:#fff;border:1px solid var(--line)}.rules-notice{margin-top:1rem;border-left:5px solid var(--gold)}.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4rem)}.care-grid article{padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(255,255,255,.18)}.care-grid a{color:#fff}.directions-panel address{font-style:normal;font-size:1.2rem;line-height:1.7}.direction-actions{display:grid;gap:.75rem}.direction-actions .button{justify-content:center}.fishing-new-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.fishing-new-gallery figure{margin:0;aspect-ratio:4/3;overflow:hidden}.fishing-new-gallery img{width:100%;height:100%;object-fit:cover;display:block}.faq-list{max-width:900px}.faq-list details{border-top:1px solid var(--line);padding:1rem 0}.faq-list summary{font-weight:700;font-size:1.08rem;cursor:pointer;min-height:44px}.catch-log-hero{padding:clamp(3rem,8vw,6rem) 0;background:var(--green-900);color:#fff}.catch-log-hero h1{color:#fff}.catch-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:clamp(2rem,5vw,4rem);align-items:start}.catch-form{padding:clamp(1.25rem,4vw,2.5rem);background:#fff;border:1px solid var(--line)}.catch-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field-wide{grid-column:1/-1}.weight-fields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1rem;border:0;padding:0}.weight-fields legend{grid-column:1/-1;font-weight:700}.weight-fields legend span,.field label span{font-weight:400}.check-row{display:flex;gap:.8rem;align-items:flex-start;padding:1rem;background:var(--paper);margin:1rem 0}.check-row input{width:22px;height:22px;flex:none}.check-row small{display:block}.welfare-note{padding:1rem;border-left:5px solid var(--gold);background:#fff8e8}.catch-aside{position:sticky;top:1rem;padding:1.5rem;background:var(--green-900);color:#fff}.catch-aside h2,.catch-aside a{color:#fff}.honeypot{position:absolute!important;left:-10000px!important}.form-status.success{color:#176c3f}.form-status.error{color:#a12626}
@media(max-width:900px){.fishing-quick-grid{grid-template-columns:repeat(2,1fr)}.fishing-species,.fishing-ticket-panel,.directions-panel,.history-journal,.catch-layout{grid-template-columns:1fr}.care-grid{grid-template-columns:1fr}.catch-aside{position:static}}
@media(max-width:680px){.catch-log-page{padding-bottom:0}.fishing-new-hero{min-height:650px}.fishing-new-hero>img{object-position:56% center}.fishing-hero-copy{padding-top:7rem}.fishing-hero-copy h1{font-size:clamp(2.45rem,13vw,3.8rem)}.fishing-hero-actions{display:grid}.fishing-hero-actions .button{width:100%;justify-content:center}.fishing-quick-grid{grid-template-columns:1fr}.fishing-quick-grid span{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.fishing-guide-grid,.fishing-new-gallery{grid-template-columns:1fr}.species-list{grid-template-columns:1fr 1fr}.fishing-new-gallery figure{aspect-ratio:4/3}.catch-form .form-grid,.weight-fields{grid-template-columns:1fr}.weight-fields .field{grid-column:auto}.field-wide{grid-column:1}.catch-form input,.catch-form select,.catch-form textarea{font-size:16px}}
@media(max-width:360px){.species-list{grid-template-columns:1fr}.fishing-hero-copy h1{font-size:2.35rem}}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font: 400 1rem/1.7 var(--sans);
  overflow-x: hidden;
}
img { display: block; width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #d5a950; outline-offset: 3px; }
.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 9999;
  padding: .7rem 1rem; background: var(--paper); color: var(--green-950);
  transform: translateY(-160%); box-shadow: var(--shadow-soft);
}
.skip-link:focus { transform: none; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.container { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.narrow { width: min(calc(100% - 2rem), 820px); margin-inline: auto; }
.eyebrow {
  margin: 0 0 .55rem; color: var(--green-700); font-size: .72rem; font-weight: 700;
  letter-spacing: .19em; text-transform: uppercase;
}
.script { font: 400 clamp(1.55rem, 3vw, 2.45rem)/1.2 var(--script); color: var(--green-800); }
h1, h2, h3, h4 { margin: 0 0 .8rem; color: var(--green-900); font-family: var(--serif); font-weight: 400; line-height: 1.1; }
h1 { font-size: clamp(2.7rem, 7vw, 5.7rem); }
h2 { font-size: clamp(2rem, 4vw, 3.35rem); }
h3 { font-size: clamp(1.3rem, 2.3vw, 1.75rem); }
p { margin: 0 0 1rem; }
.lead { font: 400 clamp(1.08rem, 2vw, 1.34rem)/1.65 var(--serif); color: #354239; }
.muted { color: var(--muted); }
.topbar { background: var(--green-950); color: #fff; font-size: .78rem; }
.topbar .container { min-height: 42px; display: flex; align-items: center; justify-content: center; gap: .8rem; text-align: center; }
.topbar .dot { color: var(--gold-light); }
.site-header { position: relative; z-index: 100; background: rgba(255, 253, 248, .97); border-bottom: 1px solid rgba(216, 203, 180, .8); }
.header-inner { min-height: 104px; display: flex; align-items: center; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .75rem; min-width: 222px; text-decoration: none; }
.brand-mark { width: 47px; height: 47px; color: var(--green-900); flex: 0 0 auto; }
.brand-name { display: block; font: 400 1.55rem/1.02 var(--serif); letter-spacing: .08em; text-transform: uppercase; }
.brand-place { display: block; margin-top: .35rem; font-size: .6rem; letter-spacing: .23em; text-transform: uppercase; color: #536057; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 1.25rem; }
.site-nav a { position: relative; text-decoration: none; font-size: .88rem; font-weight: 600; white-space: nowrap; }
.site-nav a:not(.button)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.55rem; height: 2px; background: var(--green-700); transition: right .2s ease; }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { right: 0; }
.menu-toggle { display: none; margin-left: auto; border: 1px solid var(--line); background: var(--paper); color: var(--green-950); padding: .65rem .8rem; min-width: 46px; min-height: 46px; }
.menu-toggle-icon { font-size: 1.15rem; line-height: 1; }
.menu-toggle-label { font-size: .72rem; font-weight: 800; letter-spacing: .07em; line-height: 1; text-transform: uppercase; }
.site-nav .mobile-menu-book-link { display: none; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: .5rem; padding: .78rem 1.2rem; border: 1px solid var(--green-900); background: var(--green-900); color: white; text-decoration: none; font-size: .8rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; transition: background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { background: var(--green-700); transform: translateY(-1px); }
.button-light { border-color: rgba(255,255,255,.78); background: rgba(255,255,255,.92); color: var(--green-950); }
.button-light:hover { background: #fff; color: var(--green-950); }
.button-outline { background: transparent; color: var(--green-900); }
.button-outline:hover { color: white; }
.hero { min-height: 650px; position: relative; display: flex; align-items: center; background: var(--parchment); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(250,246,237,.98) 0%, rgba(250,246,237,.89) 28%, rgba(250,246,237,.38) 53%, rgba(12,40,31,.05) 100%); z-index: 1; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-content { position: relative; z-index: 2; width: min(670px, 58%); padding-block: 5.2rem; }
.hero h1 { max-width: 650px; letter-spacing: .02em; text-transform: uppercase; }
.hero .script { margin-bottom: .25rem; }
.hero .lead { max-width: 510px; color: #223529; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.ornament { display: flex; align-items: center; gap: .8rem; width: min(380px, 100%); margin: 1rem 0; color: var(--green-700); }
.ornament::before, .ornament::after { content: ""; height: 1px; flex: 1; background: currentColor; opacity: .55; }
.feature-strip { background: var(--paper); border-block: 1px solid var(--line); }
.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.feature { display: grid; grid-template-columns: 48px 1fr; gap: .9rem; align-items: center; padding: 1.4rem 1.2rem; border-right: 1px solid var(--line); }
.feature:last-child { border: 0; }
.feature-icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--green-700); border-radius: 50%; color: var(--green-800); font-size: 1.45rem; }
.feature strong { display: block; color: var(--green-950); font-family: var(--serif); }
.feature span { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.section { padding-block: clamp(4.2rem, 8vw, 7.2rem); }
.section-sm { padding-block: 3.6rem; }
.section-head { max-width: 760px; margin: 0 auto 2.6rem; text-align: center; }
.section-head .ornament { margin-inline: auto; }
.paper-texture { background-color: var(--parchment); background-image: radial-gradient(rgba(18,55,42,.055) .7px, transparent .7px); background-size: 8px 8px; }
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.35rem; }
.card-grid.five { grid-template-columns: repeat(5, 1fr); }
.card { background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.card-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--parchment); }
.card-media img { height: 100%; object-fit: cover; transition: transform .45s ease; }
.card:hover .card-media img { transform: scale(1.025); }
.card-body { padding: 1.35rem; }
.card-body p { color: var(--muted); font-size: .92rem; }
.card-meta { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .9rem; }
.tag { display: inline-flex; align-items: center; padding: .26rem .55rem; background: #edf2ec; color: var(--green-800); border: 1px solid #cad7cb; font-size: .69rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
.text-link { color: var(--green-800); font-weight: 700; text-underline-offset: .25rem; }
.editorial { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 520px; background: var(--paper); box-shadow: var(--shadow); }
.editorial-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 5rem); }
.editorial-photos { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; padding: .65rem; }
.editorial-photos img { height: 100%; object-fit: cover; min-height: 220px; }
.editorial-photos img:first-child { grid-row: span 2; }
.cta-band { background: var(--green-900); color: white; }
.cta-band .container { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.cta-band h2, .cta-band p { color: white; }
.page-hero { position: relative; min-height: 390px; display: flex; align-items: end; overflow: hidden; background: var(--green-900); }
.page-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,40,31,.89), rgba(12,40,31,.48)); }
.page-hero img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 45%; }
.page-hero-content { position: relative; z-index: 1; color: white; padding-block: 4.5rem; max-width: 790px; }
.page-hero h1, .page-hero p, .page-hero .eyebrow { color: white; }
.breadcrumb { margin-bottom: 1rem; font-size: .78rem; }
.breadcrumb a { color: white; text-underline-offset: .2rem; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.split-media { min-height: 440px; height: 100%; object-fit: cover; box-shadow: var(--shadow); }
.info-panel { padding: clamp(1.6rem, 4vw, 3.2rem); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.notice { margin: 1.5rem 0; padding: 1.2rem 1.3rem; border-left: 4px solid var(--gold); background: #f4ead7; color: #394439; }
.notice strong { color: var(--green-900); }
.facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin: 2rem 0; }
.fact { background: var(--paper); padding: 1.1rem; }
.fact span { display: block; font-size: .66rem; font-weight: 700; color: var(--green-700); letter-spacing: .11em; text-transform: uppercase; }
.fact strong { display: block; margin-top: .25rem; font-family: var(--serif); font-size: 1.08rem; color: var(--ink); }
.article-section { scroll-margin-top: 1rem; padding: 2rem 0; border-top: 1px solid var(--line); }
.article-section:first-child { border: 0; padding-top: 0; }
.route-list { margin: 1rem 0; padding-left: 1.25rem; }
.route-list li { margin: .55rem 0; padding-left: .25rem; }
.mode-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-top: 1.2rem; }
.mode { padding: 1rem; background: var(--paper); border: 1px solid var(--line); }
.mode strong { display: block; color: var(--green-900); font-family: var(--serif); }
.mode p { margin: .4rem 0 0; font-size: .86rem; color: var(--muted); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 250px; gap: .8rem; }
.gallery-item { position: relative; border: 0; padding: 0; overflow: hidden; background: var(--parchment); }
.gallery-item:nth-child(1), .gallery-item:nth-child(6) { grid-row: span 2; }
.gallery-item:nth-child(3), .gallery-item:nth-child(8) { grid-column: span 2; }
.gallery-item img { height: 100%; object-fit: cover; transition: transform .35s ease; }
.gallery-item:hover img { transform: scale(1.035); }
.lightbox { position: fixed; inset: 0; z-index: 999; display: none; place-items: center; padding: 1rem; background: rgba(7,22,17,.94); }
.lightbox[aria-hidden="false"] { display: grid; }
.lightbox img { width: auto; max-width: min(1100px, 94vw); max-height: 86vh; }
.lightbox-close { position: absolute; top: 1rem; right: 1rem; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.45); background: transparent; color: #fff; font-size: 1.6rem; }
.form-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 2rem; align-items: start; }
.enquiry-form { padding: clamp(1.4rem, 4vw, 3rem); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.15rem; }
.field { display: flex; flex-direction: column; gap: .38rem; }
.field.full { grid-column: 1 / -1; }
label, legend { color: var(--green-950); font-weight: 700; font-size: .84rem; }
.required { color: #8d3f31; }
input, select, textarea { width: 100%; min-height: 50px; padding: .8rem .85rem; border: 1px solid #aa9f8e; border-radius: 0; background: #fffefa; color: var(--ink); }
textarea { min-height: 150px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--green-700); outline: 3px solid rgba(40,96,71,.16); }
.check { display: grid; grid-template-columns: 22px 1fr; gap: .7rem; align-items: start; }
.check input { min-height: 22px; width: 22px; margin: .1rem 0 0; }
.check label { font-weight: 400; }
.form-status { min-height: 1.6rem; margin-top: 1rem; font-weight: 700; }
.form-status.success { color: #176c3f; }
.form-status.error { color: #9a3428; }
.contact-card { padding: 1.5rem; background: var(--green-900); color: white; }
.contact-card h2, .contact-card h3, .contact-card a { color: white; }
.contact-card h2 { font-size: clamp(1.3rem, 2.5vw, 2rem); overflow-wrap: anywhere; }
.fact strong { overflow-wrap: anywhere; }
.contact-card + .contact-card { margin-top: 1rem; }
.faq details { border-top: 1px solid var(--line); background: var(--paper); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 1.2rem 3rem 1.2rem 1.2rem; color: var(--green-900); font-family: var(--serif); font-size: 1.15rem; position: relative; }
.faq summary::after { content: "+"; position: absolute; right: 1.2rem; top: 50%; transform: translateY(-50%); font: 400 1.4rem var(--sans); }
.faq details[open] summary::after { content: "−"; }
.faq details p { padding: 0 1.2rem 1.2rem; color: var(--muted); }
.site-footer { background: var(--green-950); color: rgba(255,255,255,.82); }
.footer-grid { display: grid; grid-template-columns: 1.25fr .75fr .9fr .8fr; gap: 2.5rem; padding-block: 4rem; }
.footer-brand .brand { color: white; }
.site-footer h2, .site-footer h3 { color: white; font-family: var(--sans); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-links { list-style: none; margin: 0; padding: 0; }
.footer-links li { margin: .42rem 0; }
.footer-links a { color: rgba(255,255,255,.82); text-decoration: none; }
.footer-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: .2rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.16); }
.footer-bottom .container { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: .65rem 1rem; flex-wrap: wrap; padding-top: .8rem; padding-bottom: .8rem; font-size: .76rem; }

/* Target Sport — first-class Glanfar activity and shared-inventory booking UI. */
.target-sport-hero { min-height: 650px; }
.target-sport-hero img { object-position: center 35%; }
.target-sport-hero::after { background: linear-gradient(90deg,rgba(8,31,23,.94) 0%,rgba(8,31,23,.67) 52%,rgba(8,31,23,.2)); }
.target-sport-hero .page-hero-content { width:100%; }
.target-sport-hero h1,.target-sport-hero p { max-width:100%;overflow-wrap:anywhere; }
.target-session-cards,.target-price-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:900px;margin:2rem auto; }
.target-session-cards .info-panel,.target-price-grid .info-panel { text-align:center; }
.target-session-time { font:700 clamp(1.3rem,3vw,2rem) var(--serif);color:var(--green-900); }
.target-session-note { text-align:center;font-weight:700; }
.target-guest-rate { border-top:5px solid var(--gold); }
.target-booking-section { background:var(--green-950);color:#fff; }
.target-booking-section h2,.target-booking-section h3,.target-booking-section p { color:inherit; }
.target-booking-layout { display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:2rem;align-items:start; }
.target-calendar-toolbar { display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem; }
.target-calendar-toolbar h3 { margin:0;text-align:center; }
.target-calendar { background:#fffefa;color:var(--ink);padding:1rem;min-height:410px; }
.target-calendar-weekdays,.target-calendar-days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem; }
.target-calendar-weekdays span { padding:.45rem 0;text-align:center;font-size:.72rem;font-weight:800;color:var(--green-800);white-space:nowrap; }
.target-calendar-day { min-width:0;min-height:74px;padding:.4rem;border:1px solid #b8b1a3;background:#edf2ec;color:var(--green-950);cursor:pointer; }
.target-calendar-day strong,.target-calendar-day span { display:block; }
.target-calendar-day span { margin-top:.25rem;font-size:.65rem;line-height:1.2;overflow-wrap:anywhere; }
.target-calendar-day:disabled { background:#eeeae1;color:#777;cursor:not-allowed;text-decoration:none; }
.target-calendar-day.selected { outline:4px solid var(--gold);background:var(--green-900);color:#fff; }
.target-calendar-day:focus-visible { outline:4px solid #b37a20;outline-offset:1px; }
.target-booking-layout .enquiry-form { position:sticky;top:1rem;color:var(--ink); }
.target-selected { padding:1rem;margin-bottom:1rem;background:#edf2ec;border-left:4px solid var(--gold); }
.target-total { margin:1.25rem 0;font:700 1.35rem var(--serif);color:var(--green-900); }
.target-status-panel { max-width:760px;margin:5vh auto; }
.target-status-panel dl { display:grid;grid-template-columns:minmax(130px,.4fr) 1fr;gap:.65rem 1rem;margin:2rem 0; }
.target-status-panel dt { font-weight:700;color:var(--green-900); }
.target-status-panel dd { margin:0; }
.target-sport-wide-image { min-height:320px; }
.target-sport-logo { min-height:0; max-height:520px; object-fit:contain; box-shadow:none; }
.target-camping-addon { grid-column:1/-1;margin-top:1.25rem;padding:1.25rem;border:2px solid var(--gold);background:#f7f0e2; }
.target-addon-option { display:flex;gap:.75rem;align-items:center;padding:.8rem;margin:.5rem 0;background:#fff;border:1px solid var(--line);cursor:pointer; }
.target-addon-option input { width:24px;min-height:24px }.target-addon-option span,.target-addon-option small { display:block }.target-addon-quantities { display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem }.target-addon-quantities input{margin-top:.35rem}
@media (max-width:820px){
  .target-sport-hero{min-height:690px}.target-sport-hero img{object-position:62% center}.target-sport-hero::after{background:linear-gradient(0deg,rgba(8,31,23,.96),rgba(8,31,23,.34))}
  .target-sport-hero .eyebrow{max-width:100%;letter-spacing:.13em;overflow-wrap:anywhere}
  .target-session-cards,.target-price-grid,.target-booking-layout{grid-template-columns:1fr}.target-booking-layout .enquiry-form{position:static}
  .target-calendar{padding:.55rem}.target-calendar-weekdays,.target-calendar-days{gap:.2rem}.target-calendar-day{min-height:64px;padding:.25rem}.target-calendar-day span{font-size:.58rem}.target-calendar-toolbar .button{padding:.65rem;font-size:.72rem;min-height:44px}
}
@media (max-width:420px){.target-calendar-day{min-height:58px}.target-calendar-day span{font-size:.53rem}.target-calendar-toolbar h3{font-size:1rem}.target-status-panel dl{grid-template-columns:1fr}.target-status-panel dd{margin-bottom:.7rem}}
.prime-cognito-credit { flex: 0 0 100%; text-align: center; font-size: .68rem; line-height: 1.35; color: rgba(255,255,255,.64); }
.prime-cognito-credit a { color: var(--gold-light); text-decoration: none; font-weight: 700; letter-spacing: .015em; }
.prime-cognito-credit a:hover,
.prime-cognito-credit a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: .18rem; }
.prose h2 { margin-top: 2.5rem; }
.prose h3 { margin-top: 1.8rem; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.prose li { margin: .45rem 0; }

@media (max-width: 1120px) {
  .header-inner { min-height: 90px; }
  .menu-toggle { display: inline-grid; grid-auto-flow: column; place-items: center; gap: .42rem; }
  .site-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: .65rem 1rem 1rem; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .site-nav.open { display: flex; }
  .site-nav a { padding: .75rem .25rem; font-size: 1rem; }
  .site-nav a:not(.button)::after { display: none; }
  .site-nav .button { margin-top: .5rem; }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .feature:nth-child(2) { border-right: 0; }
  .feature:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .card-grid.five { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 820px) {
  .topbar .container { padding-block: .55rem; flex-wrap: wrap; line-height: 1.25; }
  .hero { min-height: 650px; align-items: end; }
  .hero::before { background: linear-gradient(180deg, rgba(250,246,237,.8) 0%, rgba(250,246,237,.32) 32%, rgba(12,40,31,.78) 100%); }
  .hero-image { object-position: 62% center; }
  .hero-content { width: 100%; padding-block: 4rem 2.8rem; }
  .hero .script, .hero h1, .hero .lead { color: white; text-shadow: 0 2px 15px rgba(0,0,0,.34); }
  .hero .ornament { color: white; }
  .editorial, .split, .form-layout { grid-template-columns: 1fr; }
  .editorial-photos { min-height: 430px; }
  .card-grid, .card-grid.five { grid-template-columns: repeat(2, 1fr); }
  .facts { grid-template-columns: repeat(2, 1fr); }
  .mode-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-item:nth-child(3), .gallery-item:nth-child(8) { grid-column: auto; }
  .cta-band .container { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .container, .narrow { width: min(calc(100% - 1.35rem), var(--max)); }
  .brand { min-width: 0; }
  .brand-mark { width: 39px; height: 39px; }
  .brand-name { font-size: 1.18rem; }
  .brand-place { font-size: .5rem; letter-spacing: .16em; }
  .hero { min-height: 600px; }
  .hero h1 { font-size: clamp(2.7rem, 14vw, 4.2rem); }
  .hero-actions .button { width: 100%; }
  .feature-grid, .card-grid, .card-grid.five, .facts, .mode-grid, .footer-grid, .form-grid { grid-template-columns: 1fr; }
  .feature { border-right: 0; border-bottom: 1px solid var(--line); }
  .feature:last-child { border-bottom: 0; }
  .editorial-photos { min-height: 540px; grid-template-columns: 1fr; }
  .editorial-photos img:first-child { grid-row: auto; }
  .split-media { min-height: 330px; }
  .page-hero { min-height: 350px; }
  .gallery-grid { grid-auto-rows: 220px; }
  .gallery-item:nth-child(1), .gallery-item:nth-child(6) { grid-row: auto; }
  .footer-bottom .container { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Version 1.3: guest review heading refined for clean desktop and mobile wrapping */
.reviews-section { background: var(--cream); }
.reviews-section > .container > .section-head {
  max-width: 1120px;
}
.reviews-section .section-head h2 {
  white-space: nowrap;
  text-wrap: nowrap;
}
.reviews-section .section-head > p:last-child {
  max-width: 920px;
  margin-inline: auto;
  text-wrap: balance;
}
.review-scoreboard {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  max-width: 860px;
  margin: 0 auto 1.25rem;
}
.review-score {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .2rem 1rem;
  align-items: center;
  padding: 1.35rem 1.5rem;
  border: 1px solid var(--line);
  background: var(--green-900);
  color: white;
  text-decoration: none;
  box-shadow: var(--shadow-soft);
}
.review-score-label { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.review-score strong { grid-row: span 2; font: 400 clamp(2rem, 4vw, 3rem)/1 var(--serif); color: white; }
.review-score > span:last-child { color: rgba(255,255,255,.78); font-size: .82rem; }
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}
.review-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.5rem;
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}
.review-card-top {
  min-height: 2.2rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
}
.review-mark { font: 400 3.1rem/.75 var(--serif); color: var(--gold); }
.review-badge {
  display: inline-flex;
  align-items: center;
  padding: .22rem .45rem;
  border: 1px solid #cad7cb;
  background: #edf2ec;
  color: var(--green-800);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.review-card blockquote { margin: .55rem 0 1rem; }
.review-card blockquote p {
  margin: 0;
  color: var(--green-900);
  font: 400 clamp(1.42rem, 2.5vw, 1.85rem)/1.2 var(--serif);
}
.review-summary { color: var(--muted); font-size: .9rem; }
.review-details {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .65rem;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid #e5dbca;
  color: #59645b;
  font-size: .72rem;
}
.review-details span:not(:last-child)::after { content: "•"; margin-left: .65rem; color: var(--gold); }
.review-details strong { color: var(--green-900); }
.review-card-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: .9rem;
  margin-top: .9rem;
}
.review-rating { display: flex; flex-direction: column; gap: .2rem; }
.review-rating strong { color: var(--green-900); font-size: .76rem; letter-spacing: .05em; }
.stars {
  --rating: 5;
  --percent: calc(var(--rating) / 5 * 100%);
  display: inline-block;
  font-size: 1.08rem;
  letter-spacing: .08em;
  line-height: 1;
}
.stars::before {
  content: "★★★★★";
  background: linear-gradient(90deg, var(--gold) var(--percent), #d8d0c2 var(--percent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.review-source {
  max-width: 145px;
  color: var(--green-800);
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: right;
}
.feedback-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 2.2rem;
}
.feedback-panel h2 { margin-bottom: .35rem; }
.feedback-panel p:last-child { margin-bottom: 0; }
.feedback-actions { flex: 0 0 auto; }

@media (max-width: 980px) {
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .reviews-section > .container > .section-head { max-width: 760px; }
  .reviews-section .section-head h2 {
    max-width: 16ch;
    margin-inline: auto;
    white-space: normal;
    text-wrap: balance;
  }
}

@media (max-width: 700px) {
  .review-scoreboard, .reviews-grid { grid-template-columns: 1fr; }
  .review-score { padding: 1.1rem 1.2rem; }
  .feedback-panel { align-items: stretch; flex-direction: column; }
  .feedback-actions { display: grid; gap: .65rem; width: 100%; }
  .feedback-actions .button { width: 100%; }
}

@media (max-width: 420px) {
  .review-card { padding: 1.2rem; }
  .review-card-footer { align-items: flex-start; flex-direction: column; }
  .review-source { max-width: none; text-align: left; }
}

/* Version 2.0 booking application additions. These extend the established
   form system without changing the public visual language. */
.availability-action { justify-content: end; }
.availability-action .button { width: 100%; }
.availability-status {
  margin: 0;
  padding: .9rem 1rem;
  border-left: 4px solid var(--gold);
  background: #f4ead7;
  color: #394439;
  font-weight: 650;
}
.availability-status.success { border-color: var(--green-700); background: #edf2ec; color: #176c3f; }
.availability-status.error { border-color: #9a3428; background: #fbebe7; color: #842d23; }
.booking-unit-field[hidden] { display: none; }
.booking-extra-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.booking-extra {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 76px;
  gap: .8rem;
  align-items: center;
  min-height: 72px;
  padding: .75rem;
  background: #fffefa;
  border: 1px solid #b8ad9b;
}
.booking-extra span { display: grid; gap: .2rem; min-width: 0; }
.booking-extra strong { color: var(--green-950); font-size: .86rem; }
.booking-extra small { color: var(--muted); font-weight: 500; line-height: 1.3; }
.booking-extra input { min-height: 46px; padding: .6rem; text-align: center; }
.booking-extra.unavailable { opacity: .58; background: #eeeae1; }
.booking-submit-row { align-items: flex-start; }
.booking-submit-row .button { min-width: min(100%, 230px); }
.booking-summary {
  display: grid;
  gap: .65rem;
  margin: 1.25rem 0;
  padding: 1.2rem;
  border: 1px solid var(--line);
  background: var(--paper);
}
.booking-summary-row { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); padding-bottom: .55rem; }
.booking-summary-row:last-child { border: 0; padding-bottom: 0; }
.booking-summary-row strong { color: var(--green-900); text-align: right; }
.payment-state-card { max-width: 780px; margin-inline: auto; }
.payment-state-icon {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  margin-bottom: 1.2rem;
  border-radius: 50%;
  background: var(--green-900);
  color: white;
  font-size: 2rem;
}

@media (max-width: 620px) {
  .booking-extra-grid { grid-template-columns: 1fr; }
  .booking-extra { grid-template-columns: minmax(0, 1fr) 70px; }
  .booking-submit-row .button { width: 100%; }
  .booking-summary-row { align-items: flex-start; }
}


/* Version 1.5 content expansion */
.card-link { display: block; min-width: 0; height: 100%; color: inherit; text-decoration: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.card-link:hover { transform: translateY(-3px); border-color: var(--gold-light); box-shadow: var(--shadow); }
.card-link:focus-visible { outline: 3px solid #d5a950; outline-offset: 4px; }
.card-link .text-link { text-decoration: underline; }
.card-link:hover .text-link { color: var(--green-700); }
.compact-panel { padding: 1.5rem; }
.compact-panel p:last-child { margin-bottom: 0; }
.subsection-head { max-width: 760px; margin: 3.4rem 0 1.5rem; }
.subsection-head:first-of-type { margin-top: 0; }
.visit-summary { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin: 1.2rem 0 1.5rem; }
.visit-note { padding: 1rem 1.1rem; background: #f4f0e7; border: 1px solid var(--line); }
.visit-note strong { display: block; margin-bottom: .25rem; color: var(--green-900); font-family: var(--serif); font-size: 1.08rem; }
.visit-note p { margin: 0; color: var(--muted); font-size: .9rem; }
.checked-line { margin: 1rem 0 2rem; color: var(--muted); font-size: .82rem; font-style: italic; }
.walk-safety-panel { margin-top: 2.5rem; }
@media (max-width: 720px) {
  .visit-summary { grid-template-columns: 1fr; }
  .card-link { height: auto; }
}


/* Version 1.6: mobile-first homepage rebuild */
.mobile-directions-button,
.mobile-arrival-bar,
.mobile-nav-priority { display: none; }

@media (max-width: 820px) {
  /* Keep the mobile navigation practical: directions appear immediately after Home. */
  .site-nav .mobile-nav-priority { display: block; }

  /* One fixed Glanfar image replaces the competing homepage image stack. */
  .home-page {
    position: relative;
    background: var(--green-950);
  }
  .home-page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    background-image: url("../images/home/homepage-sticky-mobile.webp");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }
  .home-page::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(7, 28, 21, .18), rgba(7, 28, 21, .55));
    pointer-events: none;
  }

  .home-page main { background: transparent; }
  .home-page .hero {
    min-height: clamp(620px, 112svh, 820px);
    align-items: flex-end;
    background: transparent;
  }
  .home-page .hero-image { display: none; }
  .home-page .hero::before {
    background: linear-gradient(180deg,
      rgba(6, 24, 18, .08) 0%,
      rgba(6, 24, 18, .18) 32%,
      rgba(6, 24, 18, .76) 72%,
      rgba(6, 24, 18, .94) 100%);
  }
  .home-page .hero-content {
    width: 100%;
    padding: 11rem 0 3rem;
  }
  .home-page .hero h1 {
    max-width: 8ch;
    font-size: clamp(3rem, 15vw, 5rem);
    line-height: .94;
    overflow-wrap: normal;
    word-break: normal;
  }
  .home-page .hero .lead {
    max-width: 31rem;
    font-size: clamp(1.08rem, 4.8vw, 1.32rem);
    line-height: 1.5;
  }
  .home-page .hero-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
  }
  .home-page .hero-actions .button { width: 100%; }
  .home-page .hero-actions .mobile-directions-button {
    display: inline-flex;
    grid-column: 1 / -1;
    background: var(--gold-light);
    border-color: var(--gold-light);
    color: var(--green-950);
  }

  .mobile-arrival-bar {
    display: block;
    padding: 1.35rem 0;
    background: rgba(255, 253, 248, .97);
    border-bottom: 1px solid var(--line);
  }
  .mobile-arrival-bar .container {
    display: grid;
    gap: 1rem;
  }
  .mobile-arrival-bar h2 {
    margin-bottom: .35rem;
    font-size: clamp(1.8rem, 8vw, 2.35rem);
  }
  .mobile-arrival-bar p { margin-bottom: .45rem; }
  .mobile-arrival-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
  }
  .mobile-arrival-actions .button { width: 100%; }

  /* Each section is now a clean readable layer over the same fixed image. */
  .home-page .feature-strip,
  .home-page .section:not(.paper-texture) {
    background: rgba(250, 246, 237, .97);
  }
  .home-page .feature-strip { border-top: 0; }
  .home-page .section { padding-block: clamp(3.4rem, 12vw, 5rem); }
  .home-page .section-head {
    margin-bottom: 1.8rem;
  }
  .home-page .section-head h2 {
    font-size: clamp(2rem, 10vw, 3rem);
    text-wrap: balance;
  }

  .home-page .card-grid,
  .home-page .card-grid.five { grid-template-columns: 1fr; }
  .home-page .card {
    display: grid;
    grid-template-columns: minmax(108px, 34%) 1fr;
    min-height: 150px;
  }
  .home-page .card-media {
    height: 100%;
    aspect-ratio: auto;
  }
  .home-page .card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1.05rem;
  }
  .home-page .card-body h3 {
    font-size: clamp(1.25rem, 6vw, 1.65rem);
  }
  .home-page .card-body p {
    margin-bottom: .55rem;
    font-size: .88rem;
    line-height: 1.48;
  }

  .home-page .paper-texture {
    padding-block: clamp(3.2rem, 12vw, 5rem);
    background: rgba(12, 40, 31, .88);
    background-image: none;
  }
  .home-page .editorial {
    min-height: 0;
    grid-template-columns: 1fr;
    background: rgba(255, 253, 248, .96);
  }
  .home-page .editorial-copy {
    padding: clamp(1.5rem, 7vw, 2.4rem);
  }
  .home-page .editorial-copy h2 {
    font-size: clamp(2rem, 10vw, 3rem);
  }
  .home-page .editorial-photos { display: none; }

  /* The closing call-to-action and footer are solid, so no image can bleed through them. */
  .home-page .cta-band {
    position: relative;
    background: var(--green-900);
  }
  .home-page .cta-band .container {
    display: grid;
    gap: 1.2rem;
  }
  .home-page .cta-band h2 {
    max-width: 12ch;
    font-size: clamp(2.25rem, 11vw, 3.4rem);
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: balance;
  }
  .home-page .cta-band p {
    max-width: 34rem;
    line-height: 1.55;
  }
  .home-page .site-footer {
    position: relative;
    background: var(--green-950);
  }
  .home-page .footer-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-block: 3rem;
  }
  .home-page .footer-brand,
  .home-page .footer-grid > div {
    min-width: 0;
  }
  .home-page .footer-brand p,
  .home-page .footer-links a {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 560px) {
  .home-page .topbar .container {
    gap: .3rem .55rem;
    font-size: .7rem;
  }
  .home-page .topbar .dot { display: none; }
  .home-page .header-inner { min-height: 76px; }
  .home-page .hero {
    min-height: 690px;
  }
  .home-page .hero-content {
    padding-top: 9rem;
  }
  .home-page .hero-actions,
  .mobile-arrival-actions {
    grid-template-columns: 1fr;
  }
  .home-page .hero-actions .mobile-directions-button {
    grid-column: auto;
  }
  .home-page .feature-grid { grid-template-columns: 1fr 1fr; }
  .home-page .feature {
    grid-template-columns: 38px 1fr;
    gap: .65rem;
    padding: 1rem .7rem;
  }
  .home-page .feature:nth-child(odd) { border-right: 1px solid var(--line); }
  .home-page .feature:nth-child(even) { border-right: 0; }
  .home-page .feature:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .home-page .feature-icon {
    width: 38px;
    height: 38px;
    font-size: 1.05rem;
  }
  .home-page .feature strong { font-size: .88rem; }
  .home-page .feature span { font-size: .72rem; }
  .home-page .card {
    grid-template-columns: 112px 1fr;
  }
  .home-page .card-body { padding: .9rem; }
  .home-page .card-body p { font-size: .8rem; }
  .home-page .card-body .text-link { font-size: .82rem; }
}

@media (max-width: 390px) {
  .home-page .card { grid-template-columns: 96px 1fr; }
  .home-page .hero h1 { font-size: 3rem; }
}

/* Version 1.7: focused mobile polish and navigation */
.home-page .card-media picture,
.home-page .card-media picture img { display: block; width: 100%; height: 100%; }
.home-page .card-media picture img { object-fit: cover; }

@media (max-width: 820px) {
  /* Let more of the fixed farm image remain visible through the content layers. */
  .home-page .feature-strip,
  .home-page .section:not(.paper-texture) {
    background: rgba(250, 246, 237, .84);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .home-page .feature-strip {
    border-top: 1px solid rgba(218, 209, 190, .7);
    border-bottom: 1px solid rgba(218, 209, 190, .7);
  }
  .home-page .feature {
    background: rgba(255, 253, 248, .50);
  }
  .home-page .card {
    background: rgba(255, 253, 248, .90);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  /* The duplicate arrival panel is no longer needed on mobile. */
  .mobile-arrival-bar { display: none !important; }
}

/* Version 1.8: clearer Find Us CTA and transport service links. */
.contact-card .find-us-directions {
  background: var(--gold, #d8b45b);
  border-color: var(--gold, #d8b45b);
  color: var(--green-950, #102a21);
}
.contact-card .find-us-directions:hover,
.contact-card .find-us-directions:focus-visible {
  background: #f1d27e;
  border-color: #f1d27e;
  color: var(--green-950, #102a21);
}
.service-link-row { margin-top: 1rem; }
.external-service-link { font-weight: 700; }
@media (max-width: 820px) {
  .service-link-row .button { width: 100%; text-align: center; }
}

/* Version 1.9: mobile quick-directions directory */
.quick-directions-page .directions-hero { background: var(--green); color: #fff; }
.quick-directions-page .directions-hero .eyebrow { color: var(--gold); }
.quick-directions-page .directions-hero .lead { max-width: 46rem; }
.directions-directory { background: var(--paper); }
.directions-notice, .directions-health-note { border: 1px solid var(--line); border-left: 4px solid var(--gold); background: #fff; padding: 1rem 1.1rem; border-radius: 12px; margin-bottom: 1.5rem; }
.directions-notice { display: grid; gap: .25rem; }
.directions-group { margin: 2rem 0 2.5rem; }
.directions-group h2 { margin-bottom: .9rem; }
.direction-card-list { display: grid; gap: .85rem; }
.direction-card { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(18,55,42,.07); }
.direction-card h3 { margin: 0 0 .3rem; font-size: 1.12rem; }
.direction-card p { margin: 0; }
.direction-address { margin-top: .45rem !important; font-size: .88rem; opacity: .72; }
.direction-go { white-space: nowrap; }
@media (max-width: 820px) {
  .quick-directions-page { padding-bottom: 5.5rem; }
  .quick-directions-page .page-hero.compact { padding: 2.25rem 0 1.7rem; }
  .directions-directory { padding-top: 1.35rem; }
  .directions-group { margin: 1.5rem 0 2rem; }
  .direction-card { grid-template-columns: 1fr; gap: .8rem; padding: .95rem; }
  .direction-go { width: 100%; text-align: center; }
}

/* Version 1.10: compact Quick Directions top on mobile */
.quick-directions-page .directions-directory { padding-top: 1rem; }
.quick-directions-page .directions-group:first-child { margin-top: .25rem; }
@media (max-width: 820px) {
  .quick-directions-page .directions-directory { padding-top: .75rem; }
  .quick-directions-page .directions-group:first-child { margin-top: .15rem; }
}


/* Version 1.12: mobile-only guest review card on homepage */
.mobile-review-section { display: none; }

@media (max-width: 820px) {
  .home-page .mobile-review-section {
    display: block;
    padding: 0 0 clamp(3.2rem, 11vw, 4.5rem);
    background: rgba(250, 246, 237, .84);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .mobile-review-card {
    display: grid;
    grid-template-columns: 104px 1fr;
    overflow: hidden;
    color: var(--ink);
    text-decoration: none;
    background: rgba(255, 253, 248, .92);
    border: 1px solid rgba(18, 55, 42, .16);
    box-shadow: 0 12px 30px rgba(13, 45, 34, .10);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }
  .mobile-review-card-image { min-height: 188px; }
  .mobile-review-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .mobile-review-card-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1.15rem 1rem;
  }
  .mobile-review-card-copy .eyebrow {
    margin-bottom: .35rem;
    font-size: .69rem;
    letter-spacing: .15em;
  }
  .mobile-review-card-copy h2 {
    margin: 0 0 .55rem;
    font-size: clamp(1.35rem, 6vw, 1.72rem);
    line-height: 1.05;
    text-wrap: balance;
  }
  .mobile-review-card-copy p:not(.eyebrow) {
    margin: 0 0 .6rem;
    font-size: .87rem;
    line-height: 1.48;
  }
  .mobile-review-card-copy .text-link {
    margin-top: auto;
    font-weight: 800;
  }
}

/* Version 1.13: give mobile guest reviews a true standalone feature section */
@media (max-width: 820px) {
  .home-page .mobile-review-section {
    position: relative;
    display: block;
    margin: 1.5rem 0 2.25rem;
    padding: 1.15rem 0 1.35rem;
    background: rgba(18, 55, 42, .86);
    border-top: 1px solid rgba(216, 196, 155, .55);
    border-bottom: 1px solid rgba(216, 196, 155, .55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }

  .home-page .mobile-review-section .container {
    padding-inline: 1rem;
  }

  .home-page .mobile-review-card {
    display: block;
    overflow: hidden;
    background: rgba(250, 246, 237, .96);
    border: 1px solid rgba(216, 196, 155, .72);
    box-shadow: 0 14px 34px rgba(5, 28, 21, .22);
    color: var(--ink);
  }

  .home-page .mobile-review-card-image {
    width: 100%;
    height: clamp(210px, 58vw, 290px);
    min-height: 0;
    overflow: hidden;
    background: #d8c49b;
  }

  .home-page .mobile-review-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 54% 49%;
  }

  .home-page .mobile-review-card-copy {
    display: block;
    padding: 1.35rem 1.25rem 1.4rem;
  }

  .home-page .mobile-review-card-copy .eyebrow {
    margin: 0 0 .45rem;
    color: #8a6a2f;
    font-size: .7rem;
    letter-spacing: .17em;
  }

  .home-page .mobile-review-card-copy h2 {
    margin: 0 0 .65rem;
    font-size: clamp(1.65rem, 7vw, 2.05rem);
    line-height: 1.04;
    color: #12372a;
    text-wrap: balance;
  }

  .home-page .mobile-review-card-copy p:not(.eyebrow) {
    margin: 0 0 1rem;
    font-size: .96rem;
    line-height: 1.55;
    color: #31483e;
  }

  .home-page .mobile-review-cta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 800;
    color: #12372a;
    border-bottom: 2px solid #d8c49b;
    padding-bottom: .15rem;
  }
}

/* Version 1.15: finished pricing page, breakfast baskets and booking extras */
@media (max-width: 1260px) {
  .header-inner { min-height: 90px; }
  .menu-toggle { display: inline-grid; place-items: center; }
  .site-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: .65rem 1rem 1rem;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow);
  }
  .site-nav.open { display: flex; }
  .site-nav a { padding: .75rem .25rem; font-size: 1rem; }
  .site-nav a:not(.button)::after { display: none; }
  .site-nav .button { margin-top: .5rem; }
  .site-nav .mobile-nav-priority { display: block; }
}

.pricing-hero img { object-position: center 58%; }
.pricing-section-head { max-width: 850px; }
.pricing-section-head > p:last-child { max-width: 690px; margin-inline: auto; }
.pitch-price-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 1.4rem;
  align-items: stretch;
  max-width: 1080px;
  margin-inline: auto;
}
.pitch-price-card {
  position: relative;
  overflow: hidden;
  padding: clamp(1.7rem, 4vw, 3.2rem);
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.pitch-price-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: var(--gold);
}
.main-price {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: .15rem .55rem;
  margin: .35rem 0 1.1rem;
  color: var(--green-900);
}
.main-price-currency {
  align-self: flex-start;
  margin-top: .55rem;
  font: 400 clamp(2rem, 5vw, 3.2rem)/1 var(--serif);
}
.main-price strong {
  font: 400 clamp(5rem, 11vw, 8rem)/.78 var(--serif);
  letter-spacing: -.055em;
}
.main-price-unit {
  margin-bottom: .35rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pitch-price-summary { max-width: 670px; color: var(--muted); }
.price-included-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem 1rem;
  margin: 1.45rem 0 1.7rem;
  padding: 0;
  list-style: none;
}
.price-included-list li {
  position: relative;
  padding: .75rem .8rem .75rem 2.15rem;
  background: #f2f5ef;
  border: 1px solid #d4ded2;
  color: #31473b;
  font-size: .9rem;
  line-height: 1.45;
}
.price-included-list li::before {
  content: "✓";
  position: absolute;
  left: .78rem;
  top: .7rem;
  color: var(--green-700);
  font-weight: 900;
}
.price-card-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.peak-price-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.6rem, 4vw, 2.7rem);
  background: var(--green-900);
  color: rgba(255,255,255,.86);
  border: 1px solid rgba(216,196,155,.5);
  box-shadow: var(--shadow);
}
.peak-price-card .eyebrow { color: var(--gold-light); }
.peak-price-card h2,
.peak-price-card p { color: inherit; }
.peak-price-card h2 {
  margin-bottom: 1rem;
  color: white;
  font-size: clamp(3.2rem, 7vw, 5rem);
}
.peak-price-card h2 span {
  display: block;
  margin-top: .35rem;
  font: 700 .72rem/1.3 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-light);
}
.peak-total {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  margin: .7rem 0 1rem;
  padding: 1rem 0;
  border-block: 1px solid rgba(255,255,255,.19);
}
.peak-total span { max-width: 12rem; font-size: .82rem; line-height: 1.4; }
.peak-total strong { color: white; font: 400 2rem/1 var(--serif); }
.small-print { margin: 0; font-size: .78rem; line-height: 1.55; color: rgba(255,255,255,.68) !important; }

.longer-stay-section { border-block: 1px solid var(--line); }
.stay-price-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
  max-width: 1080px;
  margin-inline: auto;
}
.stay-price-card {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.35rem;
  background: rgba(255,253,248,.95);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}
.stay-price-card > span {
  color: var(--green-700);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.stay-price-card strong {
  display: block;
  margin: .45rem 0 .3rem;
  color: var(--green-900);
  font: 400 clamp(2.15rem, 4vw, 3rem)/1 var(--serif);
}
.stay-price-card small { color: var(--muted); font-size: .75rem; }
.stay-price-featured {
  grid-column: span 2;
  position: relative;
  overflow: hidden;
  background: var(--green-900);
  border-color: var(--green-900);
}
.stay-price-featured::after {
  content: "Best week-long value";
  position: absolute;
  right: -2.65rem;
  top: 1.2rem;
  width: 11rem;
  padding: .35rem 0;
  transform: rotate(36deg);
  background: var(--gold-light);
  color: var(--green-950);
  text-align: center;
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.stay-price-featured > span,
.stay-price-featured strong,
.stay-price-featured small { color: white; }
.stay-price-featured > span { color: var(--gold-light); }
.rate-basis {
  max-width: 760px;
  margin: 1.35rem auto 0;
  color: var(--muted);
  font-size: .82rem;
  text-align: center;
}

.extras-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  max-width: 1080px;
  margin-inline: auto;
}
.extra-card {
  min-width: 0;
  padding: 1.45rem;
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}
.extra-icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  margin-bottom: 1rem;
  border: 1px solid var(--green-700);
  border-radius: 50%;
  color: var(--green-800);
}
.extra-icon svg { width: 30px; height: 30px; }
.extra-card h3 { margin-bottom: .55rem; }
.extra-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.58; }
.extra-card p strong { color: var(--green-900); }
.extra-card .text-link { display: inline-block; margin-top: .8rem; }
.extra-card-breakfast { background: #f4ead7; border-color: #d5bd91; }

.breakfast-section {
  background: var(--green-900);
  color: rgba(255,255,255,.82);
}
.breakfast-section .section-head h2,
.breakfast-section .section-head p { color: white; }
.breakfast-section .section-head .eyebrow { color: var(--gold-light); }
.breakfast-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
  max-width: 1120px;
  margin-inline: auto;
}
.breakfast-card {
  min-width: 0;
  overflow: hidden;
  background: var(--paper);
  color: var(--ink);
  border: 1px solid rgba(216,196,155,.62);
  box-shadow: 0 18px 42px rgba(4,24,18,.22);
}
.breakfast-card-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #d9c9aa;
}
.breakfast-card-image img { height: 100%; object-fit: cover; transition: transform .4s ease; }
.breakfast-card:hover .breakfast-card-image img { transform: scale(1.02); }
.breakfast-card-body { padding: 1.35rem 1.4rem 1.5rem; }
.breakfast-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.breakfast-title-row > div:first-child { min-width: 0; }
.breakfast-title-row .eyebrow { color: var(--green-700); margin-bottom: .38rem; }
.breakfast-title-row h3 { margin-bottom: .7rem; }
.breakfast-card-body > p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.58; }
.basket-price {
  flex: 0 0 auto;
  min-width: 92px;
  padding: .65rem .7rem;
  background: var(--green-900);
  color: white;
  text-align: center;
}
.basket-price strong { display: block; font: 400 1.75rem/1 var(--serif); }
.basket-price span { display: block; margin-top: .2rem; color: var(--gold-light); font-size: .59rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.local-produce-panel {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: clamp(1.2rem, 4vw, 2.5rem);
  align-items: center;
  max-width: 1120px;
  margin: 2.2rem auto 0;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--parchment);
  color: var(--ink);
  border: 1px solid var(--gold-light);
}
.local-produce-panel h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); }
.local-produce-panel p:last-child { margin: 0; color: #465248; }
.local-produce-mark {
  width: 105px;
  height: 105px;
  display: grid;
  place-items: center;
  border: 1px solid var(--green-700);
  border-radius: 50%;
  color: var(--green-900);
  font: 400 2.25rem/1 var(--serif);
  box-shadow: inset 0 0 0 8px rgba(40,96,71,.08);
}
.basket-order-note {
  max-width: 1120px;
  margin: 1rem auto 0;
  padding: 1.15rem 1.25rem;
  background: rgba(255,255,255,.08);
  border-left: 4px solid var(--gold-light);
}
.basket-order-note strong { display: block; margin-bottom: .25rem; color: white; }
.basket-order-note p { margin: 0; color: rgba(255,255,255,.76); font-size: .86rem; }
.pricing-cta .container { align-items: center; }
.cta-button-group { display: flex; flex-wrap: wrap; gap: .7rem; }

.option-fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}
.option-fieldset legend { margin-bottom: .25rem; }
.field-help { margin: 0 0 .7rem; color: var(--muted); font-size: .82rem; }
.option-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.option-check {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: .65rem;
  align-items: start;
  min-height: 50px;
  padding: .75rem;
  background: #fffefa;
  border: 1px solid #b8ad9b;
  font-weight: 600;
  line-height: 1.35;
}
.option-check input { width: 22px; min-height: 22px; margin: .05rem 0 0; }
.option-check:has(input:checked) { border-color: var(--green-700); background: #edf2ec; }

@media (max-width: 960px) {
  .pitch-price-layout { grid-template-columns: 1fr; }
  .stay-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stay-price-featured { grid-column: span 2; }
  .extras-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .breakfast-grid { grid-template-columns: 1fr; max-width: 720px; }
}

@media (max-width: 820px) {
  .pricing-page {
    position: relative;
    background: var(--green-950);
  }
  .pricing-page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    background-image: url("../images/home/homepage-sticky-mobile.webp");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }
  .pricing-page::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(7,28,21,.18), rgba(7,28,21,.62));
    pointer-events: none;
  }
  .pricing-page main { background: transparent; }
  .pricing-page .pricing-hero {
    min-height: clamp(540px, 90svh, 720px);
    align-items: flex-end;
    background: transparent;
  }
  .pricing-page .pricing-hero img { display: none; }
  .pricing-page .pricing-hero::after {
    background: linear-gradient(180deg, rgba(6,24,18,.06) 0%, rgba(6,24,18,.22) 38%, rgba(6,24,18,.89) 100%);
  }
  .pricing-page .pricing-hero .page-hero-content { padding-block: 8rem 3.2rem; }
  .pricing-page .pricing-hero h1 { font-size: clamp(3.3rem, 17vw, 5rem); }
  .pricing-page .pricing-hero .lead { max-width: 33rem; color: white; text-shadow: 0 2px 12px rgba(0,0,0,.34); }
  .pricing-page .pricing-pitch-section,
  .pricing-page .extras-section {
    background: rgba(250,246,237,.94);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .pricing-page .longer-stay-section {
    background-color: rgba(241,230,209,.94);
    background-image: radial-gradient(rgba(18,55,42,.055) .7px, transparent .7px);
  }
  .pricing-page .breakfast-section { background: rgba(18,55,42,.95); }
  .pricing-page .section { padding-block: clamp(3.4rem, 12vw, 5rem); }
  .main-price strong { font-size: clamp(5rem, 24vw, 7rem); }
  .pricing-cta .container { align-items: flex-start; }
  .cta-button-group { width: 100%; }
  .cta-button-group .button { flex: 1 1 180px; }
}

@media (max-width: 620px) {
  .pitch-price-card,
  .peak-price-card { padding: 1.35rem; }
  .price-included-list { grid-template-columns: 1fr; }
  .price-card-actions { display: grid; }
  .price-card-actions .button { width: 100%; }
  .peak-total { align-items: flex-end; }
  .stay-price-grid { grid-template-columns: 1fr; }
  .stay-price-featured { grid-column: auto; }
  .stay-price-card { min-height: 125px; }
  .stay-price-featured::after { right: -3.15rem; top: 1.05rem; }
  .extras-grid { grid-template-columns: 1fr; }
  .breakfast-title-row { display: grid; grid-template-columns: 1fr auto; }
  .basket-price { min-width: 86px; }
  .local-produce-panel { grid-template-columns: 1fr; }
  .local-produce-mark { width: 84px; height: 84px; font-size: 1.8rem; }
  .option-check-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .main-price { gap: .05rem .4rem; }
  .main-price-currency { font-size: 2rem; }
  .main-price strong { font-size: 5.15rem; }
  .main-price-unit { width: 100%; margin: .35rem 0 0 .2rem; }
  .breakfast-card-body { padding: 1.15rem; }
  .breakfast-title-row { grid-template-columns: 1fr; }
  .basket-price { width: max-content; min-width: 96px; }
}

/* Version 2.1 booking calendar and operational booking flow */
.booking-v21-layout { align-items: start; }
.booking-form-v21 { display: grid; gap: 1.35rem; }
.booking-step { padding: 1.35rem; border: 1px solid var(--line); background: #fffefa; box-shadow: 0 8px 22px rgba(24,47,36,.05); }
.booking-step-heading { display: flex; align-items: center; gap: .85rem; margin-bottom: 1rem; }
.booking-step-heading .eyebrow { margin: 0 0 .15rem; }
.booking-step-heading h2 { margin: 0; }
.booking-step-number { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; background: var(--green-900); color: white; font-family: var(--serif); font-size: 1.15rem; }
.compact-grid { margin-top: 1rem; }
.booking-calendar-shell { border: 1px solid var(--line); background: var(--paper); padding: 1rem; }
.booking-calendar-toolbar { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: .6rem; margin-bottom: .8rem; text-align: center; }
.booking-calendar-toolbar .button { min-width: 0; width: 44px; height: 42px; padding: 0; }
.booking-calendar-legend { display: flex; flex-wrap: wrap; gap: .8rem 1rem; margin-bottom: .8rem; color: var(--muted); font-size: .82rem; }
.booking-calendar-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.calendar-dot { width: 10px; height: 10px; border-radius: 50%; background: #2f7d56; }
.calendar-dot.limited { background: #c28b2c; }
.calendar-dot.full { background: #a44b42; }
.booking-calendar { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.calendar-month { min-width: 0; }
.calendar-month h3 { margin: 0 0 .6rem; text-align: center; font-size: 1.05rem; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.calendar-weekdays { margin-bottom: 4px; }
.calendar-weekdays span { text-align: center; color: var(--muted); font-size: .68rem; font-weight: 700; }
.calendar-blank { min-height: 52px; }
.calendar-day { display: grid; place-items: center; align-content: center; gap: .05rem; min-height: 52px; padding: .2rem; border: 1px solid #c9c0b2; background: #fff; color: var(--green-950); cursor: pointer; }
.calendar-day small { font-size: .62rem; color: var(--muted); }
.calendar-day.available { border-bottom: 3px solid #2f7d56; }
.calendar-day.limited { border-bottom: 3px solid #c28b2c; }
.calendar-day.full { border-bottom: 3px solid #a44b42; background: #f2ece9; color: #81766f; cursor: not-allowed; }
.calendar-day:disabled { opacity: .55; cursor: not-allowed; }
.calendar-day:not(:disabled):hover { border-color: var(--green-700); transform: translateY(-1px); }
.calendar-day.selected-arrival, .calendar-day.selected-departure { background: var(--green-900); color: white; border-color: var(--green-900); }
.calendar-day.selected-arrival small, .calendar-day.selected-departure small { color: #e7efe9; }
.calendar-day.selected-range { background: #e7efe9; }
.calendar-loading { grid-column: 1/-1; padding: 1rem; text-align: center; color: var(--muted); }
.pitch-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.pitch-choice { position: relative; display: grid; gap: .4rem; min-height: 105px; padding: 1rem; border: 1px solid #b8ad9b; background: var(--paper); cursor: pointer; }
.pitch-choice input { position: absolute; opacity: 0; pointer-events: none; }
.pitch-choice-name { font-family: var(--serif); font-size: 1.2rem; color: var(--green-950); }
.pitch-choice-meta { display: grid; gap: .2rem; color: var(--muted); font-size: .82rem; }
.pitch-choice-meta strong { color: #176c3f; }
.pitch-choice.selected { border: 2px solid var(--green-800); box-shadow: 0 0 0 3px rgba(31,92,64,.10); background: #f3f7f2; }
.booking-summary-total { margin-top: .25rem; padding-top: .55rem; border-top: 2px solid var(--green-900); font-size: 1.08rem; }
.booking-review-step .booking-submit-row { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; }
.booking-side-card { position: sticky; top: 1rem; }

/* Version 2.1 client/admin preview */
.admin-shell { display: grid; gap: 1rem; }
.admin-login-card { max-width: 620px; }
.admin-toolbar { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; justify-content: space-between; }
.admin-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.admin-stat { padding: 1rem; border: 1px solid var(--line); background: var(--paper); }
.admin-stat strong { display: block; font-family: var(--serif); font-size: 1.7rem; color: var(--green-950); }
.admin-pitch-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.admin-pitch { padding: 1rem; border: 1px solid var(--line); background: #fffefa; }
.admin-table-wrap { overflow-x: auto; border: 1px solid var(--line); background: white; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.admin-table th, .admin-table td { padding: .7rem .8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; font-size: .86rem; }
.admin-table th { background: var(--paper); color: var(--green-950); }
.admin-status { display: inline-block; padding: .2rem .45rem; border-radius: 999px; background: #edf2ec; color: #176c3f; font-size: .73rem; font-weight: 700; }
.admin-block-form { display: grid; grid-template-columns: 1fr 1fr 1fr 1.5fr auto; gap: .65rem; align-items: end; }
.admin-block-list { display: grid; gap: .55rem; }
.admin-block-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; padding: .75rem; border: 1px solid var(--line); background: #fffefa; }

@media (max-width: 820px) {
  .booking-calendar { grid-template-columns: 1fr; }
  .booking-calendar .calendar-month:nth-child(2) { display: none; }
  .pitch-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-summary-grid, .admin-pitch-grid { grid-template-columns: 1fr 1fr; }
  .admin-block-form { grid-template-columns: 1fr 1fr; }
  .admin-block-form .field:last-of-type { grid-column: 1/-1; }
}
@media (max-width: 520px) {
  .booking-step { padding: 1rem; }
  .pitch-choice-grid { grid-template-columns: 1fr; }
  .calendar-day { min-height: 48px; }
  .calendar-day small { font-size: .57rem; }
  .admin-summary-grid, .admin-pitch-grid, .admin-block-form { grid-template-columns: 1fr; }
}

/* Version 2.3 — Botts Pool Fishery */
.fishing-page .fishing-hero img { object-position: center 56%; }
.fishing-page .fishing-overview { padding-top: clamp(3rem, 7vw, 6rem); }
.fishing-page .fishing-intro .split-media,
.fishing-page .fishing-history .split-media { border-radius: 2px; }
.fishing-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; margin-top: 2rem; }
.fishing-fact { background: #fff; border: 1px solid var(--line); padding: clamp(1.4rem, 3vw, 2rem); }
.fishing-fact h3 { margin-bottom: .55rem; color: var(--green-900); }
.fishing-fact p { margin: 0; }
.fishing-gallery { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 210px; gap: .85rem; margin-top: 2rem; }
.fishing-gallery figure { margin: 0; overflow: hidden; background: var(--parchment); }
.fishing-gallery figure:nth-child(1) { grid-column: span 7; grid-row: span 2; }
.fishing-gallery figure:nth-child(2) { grid-column: span 5; grid-row: span 2; }
.fishing-gallery figure:nth-child(3) { grid-column: span 5; }
.fishing-gallery figure:nth-child(4) { grid-column: span 7; }
.fishing-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fishing-cta-inner { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: clamp(2rem,5vw,4.5rem); align-items: center; }
.fishing-actions { display: flex; flex-direction: column; gap: .8rem; align-items: stretch; }
.fishing-actions .button { text-align: center; justify-content: center; }
.fishing-actions .button-secondary { background: transparent; color: var(--green-900); border: 1px solid var(--green-900); }
.fishing-actions .button-secondary:hover { background: var(--green-900); color: #fff; }

@media (max-width: 900px) {
  .fishing-facts { grid-template-columns: 1fr; }
  .fishing-cta-inner { grid-template-columns: 1fr; }
  .fishing-actions { max-width: 420px; }
}

@media (max-width: 680px) {
  .fishing-page .fishing-hero { min-height: 410px; }
  .fishing-page .fishing-hero img { object-position: center 59%; }
  .fishing-page .fishing-hero .page-hero-content { padding-block: 4rem 3.25rem; }
  .fishing-page .fishing-intro .split-media,
  .fishing-page .fishing-history .split-media { min-height: 300px; max-height: 420px; }
  .fishing-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 190px; gap: .65rem; }
  .fishing-gallery figure:nth-child(n) { grid-column: auto; grid-row: auto; }
  .fishing-gallery figure:first-child { grid-column: 1 / -1; height: 250px; }
  .fishing-actions { max-width: none; width: 100%; }
  .fishing-actions .button { width: 100%; }
}

@media (max-width: 430px) {
  .fishing-gallery { grid-template-columns: 1fr; grid-auto-rows: 230px; }
  .fishing-gallery figure:first-child { grid-column: auto; height: 260px; }
}

/* Version 2.5 — homepage image and card polish */
.home-discovery-grid { align-items: stretch; }
.home-discovery-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  overflow: hidden;
}
.home-discovery-card .card-media { flex: 0 0 auto; }
.home-discovery-card .card-body {
  display: grid;
  grid-template-rows: minmax(3.45rem, auto) 1fr;
  gap: .55rem;
  flex: 1;
}
.home-discovery-card .card-body h3 { margin-bottom: 0; }
.home-discovery-card .card-body p { margin: 0; }
.home-discovery-card:hover,
.home-discovery-card:focus-visible {
  transform: translateY(-4px);
  border-color: #b99757;
  box-shadow: 0 18px 38px rgba(20, 46, 35, .14);
}
.home-discovery-card:hover .card-media img,
.home-discovery-card:focus-visible .card-media img { transform: scale(1.035); }
.home-discovery-card:focus-visible { outline: 3px solid #d5a950; outline-offset: 4px; }
.home-discovery-card .card-media img { object-position: center center; }
.home-discovery-card[href="/booking"] .card-media img { object-position: center 54%; }
.home-discovery-card[href="/explore"] .card-media img { object-position: center 48%; }
.home-welcome-photos img { width: 100%; }
.home-welcome-photos .welcome-photo-stay { object-position: center 59%; }
.home-welcome-photos .welcome-photo-fishing { object-position: center center; }
.home-welcome-photos .welcome-photo-explore { object-position: center center; }

@media (max-width: 820px) {
  .home-discovery-card { display: grid; grid-template-columns: minmax(108px, 34%) 1fr; min-height: 150px; }
  .home-discovery-card .card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
  }
  .home-discovery-card .card-body h3 { min-height: 0; margin-bottom: .35rem; }
}

@media (max-width: 560px) {
  .home-discovery-card { grid-template-columns: 112px 1fr; }
}

@media (max-width: 390px) {
  .home-discovery-card { grid-template-columns: 96px 1fr; }
}

/* Version 2.6 — clearer booking journey and mobile discovery imagery */
.button-gold {
  background: var(--gold-light);
  border-color: var(--gold-light);
  color: var(--green-950);
}
.button-gold:hover,
.button-gold:focus-visible {
  background: #e6cf9f;
  border-color: #e6cf9f;
  color: var(--green-950);
}
.booking-choice-cta .cta-button-group,
.journey-booking-cta .cta-button-group {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  align-items: center;
}
.journey-booking-cta {
  background: #f4ead7;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.journey-booking-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.journey-booking-inner > div:first-child { max-width: 720px; }
.journey-booking-inner h2 { margin-bottom: .55rem; }
.journey-booking-inner p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); }

@media (max-width: 820px) {
  .booking-choice-cta .cta-button-group,
  .journey-booking-cta .cta-button-group {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
  }
  .booking-choice-cta .cta-button-group .button,
  .journey-booking-cta .cta-button-group .button { width: 100%; }
  .journey-booking-inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 1.3rem;
  }
  .home-discovery-card[href="/booking"] .card-media img,
  .home-discovery-card[href="/explore"] .card-media img { object-position: center center; }
}

/* Version 2.7 — client booking desk */
.admin-toolbar-actions { display:flex; gap:.6rem; align-items:center; }
.admin-live-section { overflow: visible; }
.admin-section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:end; margin-bottom:1rem; }
.admin-section-heading h2 { margin:.1rem 0 0; }
.admin-date-tools { display:flex; flex-wrap:wrap; gap:.55rem; align-items:end; }
.admin-date-tools label { font-weight:700; color:var(--green-950); }
.admin-date-tools input { min-height:46px; padding:.65rem .75rem; border:1px solid var(--line); background:#fffefa; }
.admin-email-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; }
.admin-email-tools .form-status { flex-basis:100%; margin:0; }
.correspondence-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:1rem;margin:.75rem 0;border:1px solid #d8d4c7;border-radius:14px;background:#fff;color:inherit;text-decoration:none}.correspondence-row.unread{border-left:6px solid #2f6b45;background:#f5faf6}.correspondence-row h2{font-size:1.1rem;margin:0 0 .35rem}.correspondence-row p{margin:.25rem 0}.correspondence-timeline{display:grid;gap:1rem}.correspondence-event{border-left:5px solid #78927f;background:#fff;padding:1rem;border-radius:0 12px 12px 0}.correspondence-event.inbound{border-color:#b8862d;background:#fffaf0}.correspondence-event.outbound{border-color:#2f6b45;background:#f4faf6}.correspondence-body{white-space:normal;overflow-wrap:anywhere}.admin-status.warning{background:#8a5a15;color:#fff}.correspondence-ai-assist{margin:1rem 0;padding:1rem;border:1px solid #d8d4c7;border-radius:12px;background:#f7f2e8}.correspondence-ai-actions{display:flex;flex-wrap:wrap;gap:.6rem}.correspondence-ai-actions .button{min-height:44px}.correspondence-ai-assist .form-status{margin:.7rem 0 0}
.admin-summary-grid { grid-template-columns: repeat(6,minmax(0,1fr)); }
.admin-legend { display:flex; flex-wrap:wrap; gap:1rem; margin:.85rem 0 1.1rem; font-size:.86rem; color:var(--muted); }
.admin-legend span { display:inline-flex; align-items:center; gap:.4rem; }
.admin-legend-dot { width:.75rem; height:.75rem; border-radius:50%; display:inline-block; }
.admin-legend-dot.available { background:#2e7d4f; }
.admin-legend-dot.occupied { background:#aa3b32; }
.admin-legend-dot.blocked { background:#b7862e; }
.admin-pitch-map { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.admin-pitch-card { border:2px solid var(--line); background:#fffefa; padding:1rem; min-height:260px; display:flex; flex-direction:column; transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease; }
.admin-pitch-card.available { border-color:#5f9b79; background:#f3f8f4; }
.admin-pitch-card.occupied { border-color:#b9574e; background:#fff2ef; }
.admin-pitch-card.reserved { border-color:#b8862d; background:#fffaf0; }
.admin-pitch-card.blocked { border-color:#c5a15b; background:#fbf5e8; }
.admin-pitch-card:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(24,45,35,.08); }
.admin-pitch-top { display:flex; gap:.7rem; justify-content:space-between; align-items:flex-start; }
.admin-pitch-number { margin:0; font-family:var(--serif); font-size:1.45rem; color:var(--green-950); font-weight:700; }
.admin-pitch-location { margin:.15rem 0 0; font-size:.78rem; color:var(--muted); }
.admin-pitch-state { border-radius:999px; padding:.25rem .55rem; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.available .admin-pitch-state { background:#dcecdf; color:#176c3f; }
.occupied .admin-pitch-state { background:#f1d7d3; color:#8d2b23; }
.blocked .admin-pitch-state { background:#eee0bd; color:#77540e; }
.admin-pitch-visual { height:92px; display:grid; place-items:center; margin:.65rem 0; }
.admin-pitch-visual svg { width:112px; height:68px; fill:none; stroke:currentColor; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
.available .admin-pitch-visual { color:#2e7d4f; }
.occupied .admin-pitch-visual { color:#9f3b32; }
.blocked .admin-pitch-visual { color:#9b752a; }
.admin-pitch-guest { display:grid; gap:.15rem; margin-top:auto; }
.admin-pitch-guest strong { font-size:1rem; color:var(--green-950); }
.admin-pitch-guest span { font-size:.8rem; color:var(--muted); }
.admin-pitch-link { border:0; background:none; padding:.55rem 0 0; color:var(--green-900); font-weight:800; text-decoration:underline; text-align:left; cursor:pointer; }
.admin-table-button { white-space:nowrap; padding:.55rem .7rem; font-size:.75rem; }
.admin-booking-row:hover td { background:#fbf7ef; }
.admin-booking-detail { border:2px solid var(--green-900); box-shadow:0 16px 35px rgba(18,55,42,.08); }
.admin-detail-header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:flex-start; padding-bottom:1rem; border-bottom:1px solid var(--line); }
.admin-detail-header h2 { margin:.1rem 0; }
.admin-detail-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.admin-detail-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-top:1rem; }
.admin-detail-grid>div,.admin-detail-columns>div { border:1px solid var(--line); background:#fffefa; padding:.9rem; }
.admin-detail-grid h3,.admin-detail-columns h3 { margin:.1rem 0 .5rem; color:var(--green-950); }
.admin-detail-grid p { margin:.2rem 0; font-size:.88rem; line-height:1.55; }
.admin-detail-columns { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:.8rem; }
.admin-detail-list { list-style:none; padding:0; margin:0; }
.admin-detail-list li { display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; border-bottom:1px solid var(--line); font-size:.86rem; }

@media (max-width: 980px) {
  .admin-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .admin-pitch-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-detail-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
  .admin-section-heading,.admin-date-tools { align-items:stretch; }
  .admin-date-tools { width:100%; display:grid; grid-template-columns:1fr; }
  .admin-date-tools .button { width:100%; }
  .admin-email-tools { align-items:stretch; flex-direction:column; }
  .admin-email-tools .button { width:100%; }
  .correspondence-row{grid-template-columns:1fr}
  .correspondence-ai-actions .button{width:100%}
  .admin-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-pitch-map,.admin-detail-grid,.admin-detail-columns { grid-template-columns:1fr; }
  .admin-pitch-card { min-height:235px; }
  .admin-detail-actions { width:100%; }
  .admin-detail-actions .button { flex:1 1 100%; }
}


/* Version 7.1 — operational revenue and human booking updates */
.admin-revenue-section { margin:1rem 0; padding:clamp(1rem,3vw,1.6rem); color:#fff; background:linear-gradient(135deg,var(--green-950),#245f45); border:1px solid rgba(255,255,255,.16); box-shadow:0 14px 30px rgba(10,38,29,.16); }
.admin-revenue-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:1rem; }
.admin-revenue-heading .eyebrow,.admin-revenue-heading h2,.admin-year-field label { color:#fff; }
.admin-revenue-heading h2 { margin:.1rem 0 0; text-transform:uppercase; }
.admin-year-field { min-width:150px; }
.admin-year-field select { min-height:46px; width:100%; padding:.6rem 2.2rem .6rem .75rem; background:#fffefa; color:var(--green-950); border:1px solid #d7c8ab; }
.admin-revenue-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) minmax(110px,.55fr); gap:.7rem; }
.admin-revenue-card,.admin-revenue-count { min-width:0; padding:1rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); }
.admin-revenue-card span,.admin-revenue-count span { display:block; margin-bottom:.35rem; color:#e6eee9; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.admin-revenue-card strong { display:block; color:#fff; font-family:var(--serif); font-size:clamp(1.35rem,2.5vw,2rem); line-height:1.1; overflow-wrap:anywhere; }
.admin-revenue-count strong { display:block; color:#fff; font-family:var(--serif); font-size:2rem; line-height:1.1; }
.admin-revenue-note { margin:.8rem 0 0; color:#dce7e0; font-size:.78rem; }
.admin-update-preview-button { margin-top:.75rem; }
.admin-detail-columns textarea { width:100%; margin-top:.35rem; padding:.7rem; border:1px solid var(--line); resize:vertical; }
.admin-ai-reply { margin:0 0 1.1rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:#f7f2e8; }
.admin-ai-reply h4 { margin:0 0 .45rem; color:var(--green-950); }
.admin-ai-reply>p { margin:0 0 .8rem; }
.admin-ai-reply label { display:block; margin-bottom:.35rem; }
.admin-ai-reply label span { font-weight:400; color:var(--muted); }
.admin-ai-reply input { width:100%; max-width:100%; margin-bottom:.65rem; }
.admin-ai-generate-button { width:100%; min-height:44px; }
.admin-ai-status { min-height:1.5em; margin-top:.6rem; color:var(--muted); }
.admin-ai-suggestions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:.9rem; margin-top:.55rem; }
.admin-ai-suggestion { width:100%; min-width:0; padding:.8rem; border:1px solid var(--line); border-radius:10px; background:#fff; }
.admin-ai-suggestion h5 { margin:0 0 .55rem; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--green-950); }
.admin-ai-suggestion p { margin:0 0 .75rem; overflow-wrap:anywhere; white-space:normal; }
.admin-ai-suggestion .button { width:100%; min-height:44px; }
.admin-email-preview { margin-top:.8rem; padding:.85rem; border:1px solid var(--line); background:#f7f2e8; }
.admin-email-preview pre { max-height:360px; overflow:auto; padding:.75rem; white-space:pre-wrap; overflow-wrap:anywhere; background:#fff; border:1px solid var(--line); font:inherit; font-size:.78rem; }
.admin-send-confirm { display:flex; gap:.55rem; align-items:flex-start; margin:.75rem 0; font-size:.82rem; }
@media (max-width:980px) { .admin-revenue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-revenue-count { grid-column:span 2; } .admin-ai-suggestions { display:block; width:100%; } .admin-ai-suggestion { width:100%; margin-bottom:.8rem; } .admin-ai-reply input,.admin-booking-message-panel textarea,.admin-ai-generate-button,.admin-update-preview-button { width:100%; max-width:100%; } }
@media (max-width:540px) { .admin-revenue-heading { align-items:stretch; flex-direction:column; } .admin-year-field { width:100%; } .admin-revenue-card { padding:.8rem; } .admin-revenue-card strong { font-size:clamp(1.18rem,6vw,1.6rem); } }

.admin-revenue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.admin-revenue-overall { grid-column:1/-1; padding:clamp(1.15rem,3vw,1.7rem); background:rgba(255,255,255,.17); border-color:rgba(255,255,255,.38); }
.admin-revenue-overall strong { font-size:clamp(2rem,5vw,3.25rem); }
.admin-revenue-card small,.admin-revenue-source small { display:block; margin-top:.45rem; color:#dce7e0; font-size:.76rem; line-height:1.45; }
.admin-revenue-target-total { border-color:var(--gold-light); }
.admin-revenue-source { min-width:0; padding:1rem; background:#fffefa; color:var(--green-950); border:1px solid #d7c8ab; }
.admin-revenue-source span { display:block; margin-bottom:.35rem; color:var(--green-700); font-size:.72rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.admin-revenue-source strong { display:block; color:var(--green-950); font-family:var(--serif); font-size:clamp(1.35rem,2.5vw,2rem); line-height:1.1; overflow-wrap:anywhere; }
.admin-revenue-source small { color:#536057; }
@media (max-width:540px) { .admin-revenue-grid { grid-template-columns:1fr; } .admin-revenue-overall { grid-column:auto; } .admin-revenue-card,.admin-revenue-source { padding:1rem; } .admin-revenue-overall strong { font-size:clamp(2rem,11vw,2.8rem); } }

/* Version 2.8 — streamlined booking journey */
.stay-unit-choice { border: 0; padding: 0; margin: 0; }
.stay-unit-choice legend { font-weight: 700; margin-bottom: .55rem; }
.stay-unit-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.stay-unit-options label { display:flex; gap:.7rem; align-items:flex-start; border:1px solid var(--line); padding:1rem; cursor:pointer; background:#fffdf8; }
.stay-unit-options label:has(input:checked) { border-color:var(--green); box-shadow: inset 0 0 0 1px var(--green); background:#f3f7f2; }
.stay-unit-options input { margin-top:.2rem; accent-color:var(--green); }
.stay-unit-options span { display:grid; gap:.15rem; }
.stay-unit-options small, .optional-label { color:var(--muted); font-weight:400; }
@media (max-width: 620px) { .stay-unit-options { grid-template-columns:1fr; } }


/* Version 2.9 — dog welcome notice */
.modal-open { overflow: hidden; }
.dog-notice-modal[hidden] { display: none; }
.dog-notice-modal { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 1rem; }
.dog-notice-backdrop { position: absolute; inset: 0; background: rgba(10, 37, 29, .58); backdrop-filter: blur(2px); }
.dog-notice-dialog {
  position: relative;
  z-index: 1;
  width: min(540px, 100%);
  background: #fffdf8;
  border: 1px solid var(--line);
  box-shadow: 0 24px 70px rgba(7, 33, 25, .28);
  padding: clamp(1.5rem, 5vw, 2.4rem);
  outline: none;
}
.dog-notice-dialog h2 { margin: .15rem 2rem .85rem 0; color: var(--green-950); }
.dog-notice-dialog p:not(.eyebrow) { color: var(--text); line-height: 1.7; }
.dog-notice-close {
  position: absolute;
  top: .7rem;
  right: .7rem;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--green-950);
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
}
.dog-notice-close:hover, .dog-notice-close:focus-visible { background: var(--cream-200); }
.dog-notice-understood { margin-top: .45rem; }
@media (max-width: 620px) {
  .dog-notice-modal { align-items: end; padding: .65rem; }
  .dog-notice-dialog { width: 100%; padding: 1.4rem; }
  .dog-notice-understood { width: 100%; }
}

/* Version 2.10 — conversion-focused booking flow */
.calendar-day.selected-range {
  background: #e8f0e9;
  border-color: #a9c0ae;
  box-shadow: inset 0 0 0 1px rgba(35, 95, 67, .08);
}
.calendar-day.selected-arrival,
.calendar-day.selected-departure {
  position: relative;
  background: var(--green-900);
  color: #fff;
  border-color: var(--green-900);
  box-shadow: 0 0 0 2px #d7b15a;
  z-index: 1;
}
.calendar-day.selected-arrival small,
.calendar-day.selected-departure small { color: #edf4ef; }
.availability-status.checking {
  border-left-color: #c28b2c;
  background: #fbf4e4;
  color: var(--green-950);
}
.booking-step.is-complete { border-color: #a9c0ae; }
.booking-step.is-complete .booking-step-number { background: #276b4d; }
.booking-review-step.is-ready { border-color: #9fb9a5; box-shadow: 0 12px 28px rgba(24,47,36,.08); }
.booking-summary.is-ready { border-color: #a9c0ae; background: #fffef9; }
.booking-summary.is-updated { animation: bookingSummaryReady .34s ease-out; }
.booking-submit-row .button[disabled] { opacity: .55; cursor: not-allowed; transform: none; }
.booking-submit-row .attention-link { border-color: #c28b2c; box-shadow: 0 0 0 2px rgba(194,139,44,.15); }
@keyframes bookingSummaryReady {
  0% { transform: translateY(4px); opacity: .72; }
  100% { transform: translateY(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .booking-summary.is-updated { animation: none; }
}

/* Version 2.11: booking preferences and Club information */
.club-info-grid { align-items: stretch; }
.club-info-grid .info-panel { height: 100%; }
.club-actions { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.4rem; }
@media (max-width: 700px) { .club-actions { display:grid; grid-template-columns:1fr; } .club-actions .button { width:100%; text-align:center; } }

/* Version 2.12: Club page, navigation and booking calendar polish */
@media (min-width: 1101px) {
  .site-nav { gap: .78rem; }
  .site-nav a { font-size: .79rem; }
  .site-nav .button { padding-inline: .9rem; }
}
.calendar-day small { max-width: 100%; white-space: nowrap; line-height: 1; }

.club-hero { position: relative; min-height: 620px; display:flex; align-items:flex-end; overflow:hidden; background:var(--green-950); }
.club-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.club-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,35,27,.93) 0%, rgba(8,35,27,.72) 48%, rgba(8,35,27,.22) 78%, rgba(8,35,27,.1) 100%); }
.club-hero-content { position:relative; z-index:1; color:#fff; padding-block:5.5rem; max-width:850px; }
.club-hero-content h1, .club-hero-content p, .club-hero-content .eyebrow { color:#fff; }
.club-hero-content h1 { max-width:820px; font-size:clamp(3rem,6vw,6rem); line-height:.95; }
.club-hero-content .lead { max-width:700px; font-size:clamp(1rem,1.8vw,1.25rem); }
.club-hero-actions, .club-cta-actions { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.5rem; }
.club-intro-section { padding-block:clamp(4rem,8vw,7rem); }
.club-intro-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.club-intro-copy h2, .club-details-copy h2, .club-section-heading h2, .club-cta-inner h2 { font-size:clamp(2.5rem,5vw,4.6rem); line-height:1; }
.club-intro-copy p, .club-details-copy p { max-width:720px; }
.club-fact-card { background:var(--green-900); color:#fff; padding:clamp(2rem,4vw,3.3rem); box-shadow:var(--shadow); }
.club-fact-card span, .club-fact-card strong, .club-fact-card p, .club-fact-card a { color:#fff; }
.club-fact-kicker { display:block; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; font-weight:800; margin-bottom:1rem; opacity:.78; }
.club-fact-card strong { display:block; font-family:var(--serif); font-size:clamp(2rem,4vw,3.25rem); line-height:1.02; margin-bottom:1.1rem; }
.club-section-heading { max-width:850px; margin:0 auto 2.5rem; text-align:center; }
.club-section-heading p:last-child { max-width:700px; margin-inline:auto; }
.club-route-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; max-width:1050px; margin-inline:auto; }
.club-route-card { position:relative; padding:clamp(2rem,4vw,3.5rem); background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.club-route-card-gold { background:#f4ead7; }
.club-route-number { display:inline-grid; place-items:center; width:46px; height:46px; border:1px solid var(--green-700); border-radius:50%; font-family:var(--serif); color:var(--green-900); margin-bottom:1.3rem; }
.club-route-card h3 { font-size:clamp(2rem,4vw,3rem); line-height:1.05; margin-bottom:1rem; }
.club-route-card .button { margin-top:1rem; }
.club-details-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:clamp(2rem,6vw,5rem); align-items:start; }
.club-checklist { background:#eef2ec; border:1px solid #cad7cb; padding:clamp(1.6rem,4vw,2.7rem); }
.club-checklist h3 { font-size:2rem; }
.club-checklist ul { margin:1rem 0 1.5rem; padding:0; list-style:none; }
.club-checklist li { position:relative; padding:.7rem 0 .7rem 1.7rem; border-bottom:1px solid rgba(18,55,42,.12); }
.club-checklist li::before { content:"✓"; position:absolute; left:0; color:var(--green-700); font-weight:900; }
.club-cta-band { background:var(--green-950); color:#fff; padding-block:clamp(3.5rem,7vw,5.5rem); }
.club-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; }
.club-cta-inner h2, .club-cta-inner p, .club-cta-inner .eyebrow { color:#fff; }
.club-cta-inner > div:first-child { max-width:720px; }

@media (max-width: 1100px) {
  .club-hero { min-height:560px; }
  .club-intro-grid, .club-details-grid { grid-template-columns:1fr; }
  .club-fact-card, .club-checklist { max-width:760px; }
  .club-cta-inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 700px) {
  .club-hero { min-height:640px; align-items:flex-end; }
  .club-hero > img { object-position:58% center; }
  .club-hero-overlay { background:linear-gradient(0deg, rgba(8,35,27,.96) 0%, rgba(8,35,27,.83) 48%, rgba(8,35,27,.3) 100%); }
  .club-hero-content { padding-block:3rem 3.5rem; }
  .club-hero-content h1 { font-size:clamp(2.55rem,13vw,4.2rem); }
  .club-hero-actions, .club-cta-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .club-hero-actions .button, .club-cta-actions .button { width:100%; text-align:center; }
  .club-route-grid { grid-template-columns:1fr; }
  .club-route-card { padding:1.6rem; }
  .club-intro-section { padding-block:3.5rem; }
  .club-section-heading { text-align:left; }
  .club-intro-copy h2, .club-details-copy h2, .club-section-heading h2, .club-cta-inner h2 { font-size:clamp(2.3rem,11vw,3.4rem); }
  .club-fact-card strong { font-size:2.4rem; }
  .calendar-day { min-height:48px; padding:.15rem .05rem; }
  .calendar-day small { font-size:.55rem; letter-spacing:-.01em; }
}


/* Version 3.0: Camping Club page refinement and responsive polish */
.club-welcome-section { padding-block: clamp(4.2rem, 7vw, 6.6rem); }
.club-welcome {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.club-welcome-copy { max-width: 760px; }
.club-welcome-copy h2 { font-size: clamp(2.5rem, 5vw, 4.45rem); line-height: 1; max-width: 760px; }
.club-welcome-copy .lead { max-width: 720px; margin-bottom: 1.2rem; }

.club-direct-panel {
  background: var(--green-900);
  color: #fff;
  padding: clamp(1.8rem, 3.4vw, 2.7rem);
  box-shadow: var(--shadow);
  min-width: 0;
}
.club-direct-panel .club-panel-kicker {
  display: block;
  margin-bottom: .75rem;
  color: var(--gold-light);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.club-direct-panel h3 {
  color: #fff;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  line-height: 1.05;
  margin-bottom: .9rem;
  overflow-wrap: normal;
  word-break: normal;
}
.club-direct-panel p { color: rgba(255,255,255,.9); margin-bottom: 1.35rem; }
.club-direct-panel .button { background: #fff; border-color: #fff; color: var(--green-950); }
.club-direct-panel .button:hover { background: var(--gold-light); border-color: var(--gold-light); }

.club-snapshot-section {
  background: var(--green-950);
  color: #fff;
  border-block: 1px solid rgba(255,255,255,.12);
}
.club-snapshot-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
.club-snapshot-item {
  padding: clamp(1.8rem, 3.5vw, 2.8rem);
  border-right: 1px solid rgba(255,255,255,.16);
  min-width: 0;
}
.club-snapshot-item:last-child { border-right: 0; }
.club-snapshot-label {
  display: block;
  color: var(--gold-light);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin-bottom: .55rem;
}
.club-snapshot-item strong {
  display: block;
  color: #fff;
  font: 400 clamp(1.45rem, 2.4vw, 2rem)/1.15 var(--serif);
  margin-bottom: .55rem;
}
.club-snapshot-item p { color: rgba(255,255,255,.76); margin: 0; font-size: .9rem; line-height: 1.6; }

.club-route-grid-v30 { gap: 1.35rem; }
.club-route-grid-v30 .club-route-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
}
.club-route-grid-v30 .club-route-card .eyebrow { margin-top: 0; }
.club-route-grid-v30 .club-route-card h3 { max-width: 520px; }
.club-route-points {
  list-style: none;
  padding: 0;
  margin: .75rem 0 1.5rem;
}
.club-route-points li {
  position: relative;
  padding: .6rem 0 .6rem 1.55rem;
  border-bottom: 1px solid rgba(18,55,42,.12);
  color: #445047;
  font-size: .92rem;
}
.club-route-points li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--green-700);
  font-weight: 900;
}
.club-card-actions {
  margin-top: auto;
  padding-top: .6rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.2rem;
}
.club-card-actions .button { margin-top: 0; }

.club-context-section { background: var(--paper); }
.club-details-grid-v30 { align-items: center; }
.club-checklist-v30 {
  background: var(--parchment);
  border-left: 4px solid var(--gold);
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  box-shadow: var(--shadow-soft);
}
.club-checklist-v30 .eyebrow { margin-bottom: .4rem; }
.club-checklist-v30 .button-outline { width: 100%; text-align: center; }

@media (max-width: 1100px) {
  .club-welcome { grid-template-columns: 1fr; }
  .club-direct-panel { max-width: 760px; }
  .club-snapshot-grid { grid-template-columns: 1fr; }
  .club-snapshot-item { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
  .club-snapshot-item:last-child { border-bottom: 0; }
}

@media (max-width: 700px) {
  .club-hero { min-height: 600px; }
  .club-hero-content { padding-block: 2.6rem 3rem; }
  .club-hero-content h1 {
    font-size: clamp(2.35rem, 11vw, 3.65rem);
    line-height: 1;
    max-width: 100%;
  }
  .club-hero-content .lead { font-size: 1rem; line-height: 1.55; }
  .club-welcome-section { padding-block: 3.2rem; }
  .club-welcome { gap: 1.8rem; }
  .club-welcome-copy h2 { font-size: clamp(2.25rem, 10vw, 3.2rem); }
  .club-direct-panel { padding: 1.55rem; }
  .club-direct-panel h3 { font-size: clamp(1.75rem, 8vw, 2.35rem); }
  .club-snapshot-item { padding: 1.45rem 1.1rem; }
  .club-route-grid-v30 { gap: 1rem; }
  .club-route-grid-v30 .club-route-card { padding: 1.45rem; }
  .club-route-grid-v30 .club-route-card h3 { font-size: clamp(1.9rem, 9vw, 2.55rem); }
  .club-card-actions { display: grid; grid-template-columns: 1fr; }
  .club-card-actions .button, .club-card-actions .text-link { width: 100%; }
  .club-card-actions .text-link { padding-block: .45rem; }
  .club-details-grid-v30 { gap: 1.7rem; }
  .club-checklist-v30 { padding: 1.4rem; }
  .club-cta-inner { gap: 1.35rem; }
}

@media (max-width: 390px) {
  .club-hero-content h1 { font-size: 2.25rem; }
  .club-hero-actions .button { font-size: .72rem; padding-inline: .8rem; }
  .club-direct-panel h3 { font-size: 1.8rem; }
  .club-route-grid-v30 .club-route-card h3 { font-size: 2rem; }
}


/* Version 3.1 — mobile booking friction reduction */
.quantity-stepper {
  display:grid;
  grid-template-columns:48px minmax(54px,1fr) 48px;
  align-items:stretch;
  width:100%;
  min-width:0;
  border:1px solid #aa9f8e;
  background:#fffefa;
}
.quantity-stepper input[type="number"] {
  min-width:0;
  width:100%;
  min-height:48px;
  padding:.55rem .3rem;
  border:0;
  border-inline:1px solid #c7bdad;
  text-align:center;
  font-weight:700;
  background:#fffefa;
  appearance:textfield;
  -moz-appearance:textfield;
}
.quantity-stepper input[type="number"]::-webkit-inner-spin-button,
.quantity-stepper input[type="number"]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.quantity-stepper-button {
  width:48px;
  min-height:48px;
  border:0;
  background:#f3eee4;
  color:var(--green-950);
  font-size:1.45rem;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  touch-action:manipulation;
}
.quantity-stepper-button:hover, .quantity-stepper-button:focus-visible { background:#e8dfcf; outline:2px solid var(--green-700); outline-offset:-2px; }
.quantity-stepper-button:disabled { opacity:.35; cursor:not-allowed; }
.quantity-stepper.is-disabled { opacity:.58; }
.booking-extra { grid-template-columns:minmax(0,1fr) minmax(150px,190px); }
.booking-extra .quantity-stepper { justify-self:end; max-width:190px; }
.booking-extra .quantity-stepper input { min-height:46px; }
.stay-unit-options label { min-width:0; width:100%; box-sizing:border-box; }
.stay-unit-options span { min-width:0; }
.stay-unit-options strong, .stay-unit-options small { overflow-wrap:anywhere; word-break:normal; }

@media (max-width: 620px) {
  .booking-v21-layout { grid-template-columns:1fr; }
  .booking-form-v21 { gap:1rem; }
  .booking-step { padding:.9rem; }
  .booking-step-heading { gap:.65rem; align-items:flex-start; }
  .booking-step-heading h2 { font-size:clamp(2rem,11vw,3rem); line-height:1; overflow-wrap:anywhere; }
  .booking-step-number { width:38px; height:38px; flex-basis:38px; }
  .booking-calendar-shell { padding:.7rem; }
  .booking-calendar-toolbar { grid-template-columns:40px 1fr 40px; gap:.4rem; }
  .booking-calendar-toolbar .button { width:40px; height:40px; }
  .booking-calendar-toolbar strong { min-width:0; font-size:.86rem; line-height:1.25; }
  .compact-grid { gap:.85rem; }
  .quantity-stepper { grid-template-columns:52px minmax(56px,1fr) 52px; }
  .quantity-stepper-button { width:52px; min-height:52px; font-size:1.55rem; }
  .quantity-stepper input[type="number"] { min-height:52px; font-size:1rem; }
  .booking-extra { grid-template-columns:minmax(0,1fr) minmax(156px,176px); gap:.6rem; padding:.7rem; }
  .booking-extra strong { font-size:.88rem; }
  .booking-extra .quantity-stepper { max-width:176px; }
  .stay-unit-options { grid-template-columns:1fr; gap:.6rem; }
  .stay-unit-options label { display:grid; grid-template-columns:24px minmax(0,1fr); gap:.7rem; align-items:start; padding:.9rem; }
  .stay-unit-options input { width:20px; min-height:20px; margin:.15rem 0 0; }
  .stay-unit-options strong { display:block; font-size:.96rem; line-height:1.25; }
  .stay-unit-options small { display:block; margin-top:.18rem; font-size:.78rem; line-height:1.35; }
  .booking-review-step .booking-submit-row { display:grid; grid-template-columns:1fr; }
  .booking-submit-row .button { width:100%; min-width:0; }
  .booking-summary { padding:.9rem; }
  .booking-summary-row { gap:.6rem; }
}

@media (max-width: 390px) {
  .booking-step { padding:.75rem; }
  .booking-calendar-shell { padding:.55rem; }
  .booking-extra { grid-template-columns:1fr; align-items:stretch; }
  .booking-extra .quantity-stepper { justify-self:stretch; max-width:none; }
  .quantity-stepper { grid-template-columns:56px 1fr 56px; }
  .quantity-stepper-button { width:56px; }
}


/* Version 3.3 — Who We Are editorial story */
.who-page-v33 { background: var(--paper); }
.who-hero-v33 { min-height: clamp(500px, 68vh, 760px); }
.who-hero-v33 > img { object-position: center 55%; filter: brightness(.66) saturate(.92); }
.who-hero-content-v33 { max-width: 860px; }
.who-hero-content-v33 h1 { max-width: 760px; }
.who-story-intro-v33 { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2.5rem,7vw,6rem); align-items:start; }
.who-story-intro-v33 h2 { font-size:clamp(2.6rem,5vw,4.6rem); line-height:.98; max-width:700px; }
.who-intro-copy-v33 { max-width:720px; }
.who-intro-copy-v33 p, .who-feature-copy-v33 p, .who-evolving-copy-v33 p, .who-difference-panel-v33 p { font-size:1.02rem; line-height:1.75; }
.who-pullquote-v33 { font:400 clamp(1.7rem,3vw,2.7rem)/1.15 var(--serif); color:var(--green-950); margin:1.4rem 0; }
.who-feature-v33, .who-staffordshire-v33 { border-block:1px solid var(--line); }
.who-feature-grid-v33 { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:clamp(2rem,6vw,5.5rem); align-items:center; }
.who-feature-reverse-v33 { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); }
.who-feature-copy-v33 { min-width:0; }
.who-feature-copy-v33 h2, .who-evolving-copy-v33 h2 { font-size:clamp(2.35rem,4.6vw,4rem); line-height:1.03; max-width:760px; }
.who-feature-media-v33 { margin:0; min-height:580px; border:1px solid var(--line); background:#e9e2d5; box-shadow:var(--shadow-soft); overflow:hidden; }
.who-feature-media-v33 img { width:100%; height:100%; min-height:580px; object-fit:cover; display:block; }
.who-family-media-v33 img { object-position:center center; }
.who-guest-media-v33 img { object-position:center 42%; }
.who-local-media-v33 img { object-position:center 42%; }
.who-quote-card-v33 { margin:1.25rem 0; padding:1rem 1.2rem; max-width:640px; background:var(--gold-light); color:var(--green-950); border-left:4px solid var(--gold); font:400 clamp(1.2rem,2vw,1.65rem)/1.32 var(--serif); box-shadow:var(--shadow-soft); }
.who-small-moments-v33 { margin:1.35rem 0; padding:1rem 1.25rem; border-left:3px solid var(--gold); background:var(--parchment); }
.who-small-moments-v33 p { margin:.35rem 0; font-size:.96rem; }
.who-explore-link-v33 { color:var(--gold-dark, #9b772f); font-weight:800; text-decoration-thickness:2px; text-underline-offset:4px; }
.who-explore-link-v33:hover, .who-explore-link-v33:focus-visible { color:var(--green-950); }
.who-evolving-grid-v33 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2.2rem,6vw,5rem); align-items:center; }
.who-evolving-gallery-v33 { display:grid; grid-template-columns:1.1fr .9fr; gap:.85rem; min-height:520px; }
.who-evolving-gallery-v33 figure { margin:0; overflow:hidden; min-height:520px; border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.who-evolving-gallery-v33 figure:last-child { margin-top:3rem; margin-bottom:-3rem; }
.who-evolving-gallery-v33 img { width:100%; height:100%; object-fit:cover; display:block; }
.who-evolving-gallery-v33 figure:first-child img { object-position:center center; }
.who-evolving-gallery-v33 figure:last-child img { object-position:center 42%; }
.who-difference-v33 { background:var(--cream); color:var(--ink); padding-block:clamp(2.2rem,5vw,4rem); }
.who-difference-panel-v33 { max-width:820px; margin-inline:auto; text-align:center; padding:clamp(1.7rem,4vw,3rem); background:var(--gold-light); border:1px solid rgba(168,135,77,.45); box-shadow:var(--shadow-soft); }
.who-difference-panel-v33 .eyebrow { color:var(--green-700); }
.who-difference-panel-v33 h2 { color:var(--green-950); font-size:clamp(2rem,4vw,3.6rem); line-height:1.04; max-width:720px; margin-inline:auto; }
.who-difference-panel-v33 p { color:var(--ink); max-width:700px; margin-inline:auto; }
.who-difference-panel-v33 strong { color:var(--green-950); }
.who-welcome-v33 { color:var(--green-950)!important; font:400 clamp(1.8rem,3.4vw,2.8rem)/1.08 var(--serif)!important; margin-top:1.45rem!important; }
.who-final-actions-v33 { display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin-top:1.35rem; }
.who-difference-v33 .button-outline { color:var(--green-950); border-color:var(--green-950); }
.who-difference-v33 .button-outline:hover { background:var(--green-950); color:#fff; border-color:var(--green-950); }

@media (max-width: 900px) {
  .who-story-intro-v33, .who-feature-grid-v33, .who-feature-reverse-v33, .who-evolving-grid-v33 { grid-template-columns:1fr; }
  .who-feature-reverse-v33 .who-feature-copy-v33 { order:2; }
  .who-feature-reverse-v33 .who-feature-media-v33 { order:1; }
  .who-feature-media-v33, .who-feature-media-v33 img { min-height:460px; }
  .who-evolving-gallery-v33 { min-height:430px; }
  .who-evolving-gallery-v33 figure { min-height:430px; }
}

@media (max-width: 620px) {
  .who-hero-v33 { min-height:560px; }
  .who-hero-v33 > img { object-position:center 55%; }
  .who-hero-content-v33 { padding-block:4rem 2.8rem; }
  .who-hero-content-v33 h1 { font-size:clamp(3rem,15vw,4.8rem); }
  .who-hero-content-v33 .lead { font-size:1rem; line-height:1.55; }
  .who-story-intro-v33 { gap:1.3rem; }
  .who-story-intro-v33 h2, .who-feature-copy-v33 h2, .who-evolving-copy-v33 h2 { font-size:clamp(2.15rem,10vw,3.15rem); }
  .who-intro-copy-v33 p, .who-feature-copy-v33 p, .who-evolving-copy-v33 p, .who-difference-panel-v33 p { font-size:.96rem; line-height:1.68; }
  .who-feature-grid-v33 { gap:1.4rem; }
  .who-feature-media-v33, .who-feature-media-v33 img { min-height:330px; }
  .who-family-media-v33 img { object-position:center 52%; }
  .who-guest-media-v33 img { object-position:center 42%; }
  .who-local-media-v33 img { object-position:center 40%; }
  .who-quote-card-v33 { padding:.9rem 1rem; max-width:none; font-size:1.2rem; }
  .who-evolving-grid-v33 { gap:1.6rem; }
  .who-evolving-gallery-v33 { grid-template-columns:1.15fr .85fr; gap:.55rem; min-height:315px; }
  .who-evolving-gallery-v33 figure { min-height:315px; }
  .who-evolving-gallery-v33 figure:last-child { margin-top:1.25rem; margin-bottom:-1.25rem; }
  .who-difference-panel-v33 { text-align:left; padding:1.35rem; }
  .who-difference-panel-v33 h2 { font-size:clamp(1.9rem,9vw,2.75rem); }
  .who-difference-panel-v33 p { margin-inline:0; } .who-welcome-v33 { font-size:clamp(1.75rem,8.5vw,2.35rem)!important; margin-top:1.1rem!important; }
  .who-final-actions-v33 { display:grid; grid-template-columns:1fr; }
  .who-final-actions-v33 .button { width:100%; }
}


/* Version 3.6 — real Glanfar and Botts Pool photography */
.fishing-page .fishing-hero img { object-position: center 48%; }
.fishing-page .fishing-intro .split-media { object-position: center 58%; }
.fishing-page .fishing-history .split-media { object-position: center 58%; }

.fishing-gallery figure:nth-child(1) { grid-column: span 7; grid-row: span 2; }
.fishing-gallery figure:nth-child(2) { grid-column: span 5; grid-row: span 2; }
.fishing-gallery figure:nth-child(3),
.fishing-gallery figure:nth-child(4),
.fishing-gallery figure:nth-child(5) { grid-column: span 4; grid-row: span 1; }
.fishing-gallery figure:nth-child(6) { grid-column: 1 / -1; grid-row: span 1; }
.fishing-gallery figure:nth-child(1) img { object-position: center 46%; }
.fishing-gallery figure:nth-child(4) img { object-position: center 59%; }

.home-discovery-card[href="/booking"] .card-media img { object-position: center 50%; }
.home-discovery-card[href="/fishing"] .card-media img { object-position: center 58%; }
.home-welcome-photos .welcome-photo-fishing { object-position: center 58%; }
.home-welcome-photos .welcome-photo-explore { object-position: center center; }

@media (max-width: 680px) {
  .fishing-page .fishing-hero img { object-position: center 50%; }
  .fishing-gallery figure:nth-child(n) { grid-column: auto; grid-row: auto; }
  .fishing-gallery figure:first-child { grid-column: 1 / -1; }
  .home-discovery-card[href="/booking"] .card-media img { object-position: center 50%; }
}

/* Version 3.7 — mobile photography framing and crop protection
   Preserve complete people/pond images on narrow screens rather than forcing
   them through fixed-height cover crops. Desktop mosaics remain unchanged. */
@media (max-width: 680px) {
  /* Botts Pool editorial photographs: keep faces, bodies and platforms intact. */
  .fishing-page .fishing-intro .split-media,
  .fishing-page .fishing-history .split-media {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    object-fit: contain;
    object-position: center center;
  }

  /* Botts Pool gallery: use each photograph's natural 4:3 frame on mobile. */
  .fishing-gallery {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: .8rem;
  }
  .fishing-gallery figure:nth-child(n),
  .fishing-gallery figure:first-child {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }
  .fishing-gallery img,
  .fishing-gallery figure:nth-child(n) img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center center;
  }

  /* Main Gallery: mobile visitors see the whole photograph before opening it.
     This prevents portraits and people shots being cropped at the head/feet. */
  .gallery-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: .8rem;
  }
  .gallery-item,
  .gallery-item:nth-child(1),
  .gallery-item:nth-child(3),
  .gallery-item:nth-child(6),
  .gallery-item:nth-child(8) {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
    height: auto;
    min-height: 0;
  }
  .gallery-item img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: contain;
    object-position: center center;
  }
}

@media (max-width: 560px) {
  /* Homepage lower image group: let the supplied photography keep its
     intended framing instead of turning every image into the same crop. */
  .home-welcome-photos {
    min-height: 0;
    grid-template-columns: 1fr;
  }
  .home-welcome-photos img,
  .home-welcome-photos .welcome-photo-stay,
  .home-welcome-photos .welcome-photo-fishing,
  .home-welcome-photos .welcome-photo-explore {
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: contain;
    object-position: center center;
  }
}



/* === Version 3.8: Botts Pool gallery framing =================================
   All Botts Pool gallery source photographs are 4:3. Keep that native frame on
   desktop/tablet/mobile rather than using the older crop-heavy mosaic. */
.fishing-page .fishing-gallery {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: .85rem;
  align-items: start;
}
.fishing-page .fishing-gallery figure,
.fishing-page .fishing-gallery figure:nth-child(n) {
  grid-column: span 2;
  grid-row: auto;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin: 0;
  background: var(--parchment);
}
.fishing-page .fishing-gallery figure:nth-last-child(-n+2) {
  grid-column: span 3;
}
.fishing-page .fishing-gallery img,
.fishing-page .fishing-gallery figure:nth-child(n) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

@media (max-width: 900px) {
  .fishing-page .fishing-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
    gap: .7rem;
  }
  .fishing-page .fishing-gallery figure,
  .fishing-page .fishing-gallery figure:nth-child(n),
  .fishing-page .fishing-gallery figure:nth-last-child(-n+2) {
    grid-column: auto;
    grid-row: auto;
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .fishing-page .fishing-gallery figure:last-child {
    grid-column: 1 / -1;
    width: min(100%, 620px);
    justify-self: center;
  }
}

@media (max-width: 640px) {
  .fishing-page .fishing-gallery {
    grid-template-columns: 1fr;
    gap: .9rem;
  }
  .fishing-page .fishing-gallery figure,
  .fishing-page .fishing-gallery figure:nth-child(n),
  .fishing-page .fishing-gallery figure:nth-last-child(-n+2),
  .fishing-page .fishing-gallery figure:last-child {
    grid-column: auto;
    width: 100%;
    aspect-ratio: auto;
    overflow: visible;
  }
  .fishing-page .fishing-gallery img,
  .fishing-page .fishing-gallery figure:nth-child(n) img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center center;
  }
}


/* Version 3.9 — real campsite photography */
.campsite-gallery-section { padding-top: clamp(2.5rem, 5vw, 4.5rem); }
.campsite-gallery-heading { max-width: 760px; margin-bottom: 1.5rem; }
.campsite-gallery-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:.85rem;
  align-items:stretch;
}
.campsite-gallery-photo {
  border:0; padding:0; margin:0; overflow:hidden;
  background:var(--parchment); box-shadow:var(--shadow-soft);
  cursor:zoom-in; min-height:290px;
}
.campsite-gallery-photo.landscape { grid-column:span 7; }
.campsite-gallery-photo.portrait { grid-column:span 5; }
.campsite-gallery-photo:nth-child(3),
.campsite-gallery-photo:nth-child(4) { grid-column:span 6; }
.campsite-gallery-photo img {
  width:100%; height:100%; min-height:290px; object-fit:cover; display:block;
  transition:transform .35s ease;
}
.campsite-gallery-photo:hover img,
.campsite-gallery-photo:focus-visible img { transform:scale(1.025); }
.campsite-gallery-photo:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.page-hero img[src*="green-lane-farm-entrance"],
.split-media[src*="green-lane-farm-entrance"] { object-position:center 42%; }
.home-discovery-card[href="/explore"] .card-media img { object-position:center 52%; }

@media (max-width:900px) {
  .campsite-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .campsite-gallery-photo.landscape,
  .campsite-gallery-photo.portrait,
  .campsite-gallery-photo:nth-child(3),
  .campsite-gallery-photo:nth-child(4) { grid-column:auto; min-height:280px; }
  .campsite-gallery-photo.landscape { grid-column:1 / -1; }
  .campsite-gallery-photo img { min-height:280px; }
}
@media (max-width:620px) {
  .campsite-gallery-section { padding-top:2rem; }
  .campsite-gallery-heading { margin-bottom:1rem; }
  .campsite-gallery-grid { grid-template-columns:1fr; gap:.9rem; }
  .campsite-gallery-photo,
  .campsite-gallery-photo.landscape,
  .campsite-gallery-photo.portrait,
  .campsite-gallery-photo:nth-child(n) {
    grid-column:auto; min-height:0; height:auto; background:transparent; box-shadow:none;
  }
  .campsite-gallery-photo img,
  .campsite-gallery-photo:nth-child(n) img {
    width:100%; height:auto; min-height:0; max-height:none;
    object-fit:contain; object-position:center; background:transparent;
  }
}


/* Version 4.2 — contact-page tidy-up */
.site-footer .brand-mark { color: #fff; }
.page-hero.contact-hero img[src*="green-lane-farm-entrance"] { object-position: center 59%; }

/* Version 4.3 — Getting Here hero sign crop */
.page-hero.getting-here-hero img[src*="green-lane-farm-entrance"] { object-position: center 59%; }

/* Version 4.4 — low-friction Room to settle / pitch journey */
.home-discovery-card[href="/stay-with-us"] .card-media img { object-position: center 54%; }
.stay-pitches-hero-v44 { min-height: 500px; }
.stay-pitches-hero-v44 img { object-position: center 58%; }
.stay-pitches-hero-v44::after { background: linear-gradient(90deg, rgba(12,40,31,.9) 0%, rgba(12,40,31,.63) 44%, rgba(12,40,31,.2) 100%); }
.stay-pitch-intro-grid-v44 { align-items: stretch; }
.stay-pitch-main-photo-v44 { min-height: 600px; object-position: center center; }
.stay-pitch-facts-v44 { margin-bottom: 1.6rem; }
.stay-pitch-detail-grid-v44 { align-items: stretch; }
.stay-pitch-detail-v44 { box-shadow: var(--shadow-soft); }
.stay-pitch-detail-v44 h3 { font-size: clamp(1.65rem, 2.5vw, 2.25rem); }
.stay-pitch-detail-v44 p:last-child { margin-bottom: 0; color: var(--muted); }
.stay-pitch-life-v44 { background: var(--paper); }
.stay-pitch-life-grid-v44 { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(2.2rem,6vw,5.5rem); align-items:center; }
.stay-pitch-life-copy-v44 { max-width: 620px; }
.stay-pitch-photo-story-v44 { display:grid; grid-template-columns:1.2fr .8fr; grid-template-rows:repeat(2,minmax(245px,1fr)); gap:1rem; min-height:620px; }
.stay-pitch-photo-v44 { margin:0; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-soft); background:var(--parchment); }
.stay-pitch-photo-wide-v44 { grid-row:1 / 3; }
.stay-pitch-photo-v44 img { width:100%; height:100%; object-fit:cover; }
.stay-pitch-photo-wide-v44 img { object-position:center 44%; }
.stay-pitch-photo-v44:nth-child(2) img { object-position:center 58%; }
.stay-pitch-photo-v44:nth-child(3) img { object-position:center 48%; }
.stay-pitch-booking-cta-v44 .container { gap:clamp(1.5rem,5vw,4rem); }
.stay-pitch-final-button-v44 { flex:0 0 auto; min-width:210px; }

@media (max-width: 900px) {
  .stay-pitch-life-grid-v44 { grid-template-columns:1fr; }
  .stay-pitch-life-copy-v44 { max-width:760px; }
  .stay-pitch-photo-story-v44 { min-height:560px; }
}

@media (max-width: 820px) {
  .home-discovery-card[href="/stay-with-us"] .card-media img { object-position:center center; }
  .stay-pitches-hero-v44 { min-height:430px; }
  .stay-pitches-hero-v44 img { object-position:center 56%; }
  .stay-pitch-main-photo-v44 { min-height:420px; }
  .stay-pitch-facts-v44 { grid-template-columns:repeat(2,1fr); }
  .stay-pitch-booking-cta-v44 .container { align-items:stretch; }
  .stay-pitch-final-button-v44 { width:100%; }
}

@media (max-width: 560px) {
  .stay-pitches-hero-v44 { min-height:405px; }
  .stay-pitches-hero-v44 .page-hero-content { padding-block:3.2rem; }
  .stay-pitch-facts-v44 { grid-template-columns:1fr 1fr; }
  .stay-pitch-main-photo-v44 { min-height:360px; }
  .stay-pitch-photo-story-v44 { grid-template-columns:1fr 1fr; grid-template-rows:340px 230px; min-height:0; gap:.7rem; }
  .stay-pitch-photo-wide-v44 { grid-column:1 / -1; grid-row:auto; }
  .stay-pitch-photo-v44:nth-child(2), .stay-pitch-photo-v44:nth-child(3) { grid-row:2; }
}

/* Version 4.5 — site-wide typography and mobile final brush-up
   Keep body copy from finishing with a stranded single word, make headings
   balance more naturally, and harden narrow layouts against clipping. */
main p,
main li,
main blockquote,
main figcaption,
main dd,
main dt {
  text-wrap: pretty;
  overflow-wrap: break-word;
}
main h1,
main h2,
main h3,
main h4 {
  max-width: 100%;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}
.section-head > p:last-child,
.pricing-section-head > p:last-child {
  text-wrap: pretty;
}
.pricing-section-head > p:last-child { max-width: 760px; }

/* Prevent grid/flex children from forcing a page wider than the viewport. */
main,
main section,
.card,
.card-body,
.split > *,
.form-layout > *,
.footer-grid > *,
.facts > *,
.mode-grid > *,
.pitch-price-layout > *,
.extras-grid > *,
.stay-pitch-life-grid-v44 > *,
.who-story-intro-v33 > *,
.who-feature-grid-v33 > *,
.who-evolving-grid-v33 > * {
  min-width: 0;
}

@media (max-width: 680px) {
  /* On phones, editorial photographs should show the photograph rather than
     sacrificing large areas to a fixed-height crop. Heroes remain deliberate
     cover images and keep their page-specific focal positions. */
  .split-media {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    object-fit: contain;
    object-position: center center;
  }

  .who-feature-media-v33 {
    min-height: 0;
    height: auto;
    overflow: visible;
  }
  .who-feature-media-v33 img {
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: contain;
    object-position: center center;
  }

  .who-evolving-gallery-v33 {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: .85rem;
  }
  .who-evolving-gallery-v33 figure,
  .who-evolving-gallery-v33 figure:last-child {
    min-height: 0;
    margin: 0;
    overflow: visible;
  }
  .who-evolving-gallery-v33 img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center center;
  }
}

@media (max-width: 560px) {
  .page-hero-content { max-width: 100%; }
  .page-hero h1 {
    font-size: clamp(2.4rem, 12vw, 3.55rem);
    line-height: 1.03;
  }
  .page-hero .lead {
    max-width: 100%;
    font-size: 1rem;
    line-height: 1.55;
  }
  .section-head h2 { text-wrap: balance; }
  main .button,
  main .text-link,
  main .direction-go {
    max-width: 100%;
  }

  /* The Version 4.4 pitch photo story now shows each supplied photograph in
     its natural frame on phones instead of forcing three different crops. */
  .stay-pitch-photo-story-v44 {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    min-height: 0;
    gap: .85rem;
  }
  .stay-pitch-photo-wide-v44,
  .stay-pitch-photo-v44:nth-child(2),
  .stay-pitch-photo-v44:nth-child(3) {
    grid-column: auto;
    grid-row: auto;
  }
  .stay-pitch-photo-v44 { overflow: visible; }
  .stay-pitch-photo-v44 img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center center;
  }
}

/* Version 4.6 — booking policy and payment-plan clarity */
.booking-policy-v46 { max-width: 860px; }
.booking-policy-v46 h2 { margin-top: 2.25rem; }
.booking-policy-v46 .notice { margin: 1.4rem 0 1rem; }
.booking-policy-consent-v46 { align-items: flex-start; }
.booking-policy-consent-v46 label { line-height: 1.55; }
.booking-payment-panel-v46 { margin-top: 1rem; }
.booking-payment-panel-v46 h3 { margin-bottom: .55rem; }
@media (max-width: 680px) {
  .booking-policy-v46 h2 { margin-top: 1.8rem; }
  .booking-policy-consent-v46 label { font-size: .96rem; }
}

/* Version 4.9 — named party manifest and emergency register */
.party-manifest{margin-top:1rem;padding:1rem;border:1px solid var(--line);background:#f8f6ef}.party-manifest-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);gap:1rem;align-items:end;margin-bottom:.8rem}.party-manifest-heading h3{margin:.1rem 0 0}.party-manifest-heading .field-help{margin:0}.party-manifest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.party-member-card{border:1px solid #cfc6b7;background:#fffefa;padding:.85rem}.party-member-card.child{background:#fbf8f0}.party-member-label{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-bottom:.55rem}.party-member-label span{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--green-800);background:#e5efe8;border-radius:999px;padding:.2rem .45rem}.party-child-fields{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:.65rem}.admin-party-list{display:grid;gap:.18rem;margin-top:.45rem;padding-top:.45rem;border-top:1px solid rgba(0,0,0,.12)}.admin-party-list span{font-size:.78rem!important;color:var(--green-950)!important}.admin-party-list b{display:inline-block;min-width:42px;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.admin-party-list.missing span{color:#7f423c!important;font-style:italic}.admin-pitch-guest strong small{font-family:var(--sans);font-size:.66rem;font-weight:700;color:var(--muted)}
@media(max-width:720px){.party-manifest-heading,.party-manifest-grid{grid-template-columns:1fr}.party-child-fields{grid-template-columns:minmax(0,1fr) 100px}}


/* Version 5.1: human-first conversion and trust layer */
.trust-foundation { background:#f5f0e5; border-top:1px solid rgba(39,70,54,.10); border-bottom:1px solid rgba(39,70,54,.10); }
.trust-foundation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.trust-foundation-item { padding:1.15rem 1.4rem; display:flex; flex-direction:column; gap:.2rem; text-align:center; }
.trust-foundation-item + .trust-foundation-item { border-left:1px solid rgba(39,70,54,.12); }
.trust-foundation-item strong { font:400 1.55rem/1.05 var(--serif); color:var(--green-900); }
.trust-foundation-item span { color:var(--muted); font-size:.86rem; line-height:1.4; }
.conversion-payment-line { display:flex; flex-wrap:wrap; gap:.45rem .85rem; align-items:center; margin:.85rem 0 0; font-size:.82rem; font-weight:700; letter-spacing:.01em; }
.hero .conversion-payment-line { color:rgba(255,255,255,.88); }
.conversion-payment-line span { display:inline-flex; align-items:center; gap:.35rem; }
.conversion-payment-line span:not(:last-child)::after { content:'•'; margin-left:.85rem; opacity:.55; }
.conversion-review { margin:1rem 0; padding:1rem 1.1rem; border:1px solid rgba(39,70,54,.14); border-radius:14px; background:rgba(255,255,255,.72); box-shadow:0 8px 22px rgba(24,47,36,.05); max-width:620px; }
.conversion-review-compact { padding:.82rem 1rem; margin:.85rem 0; }
.conversion-review-stars { display:flex; gap:.55rem; align-items:center; color:#a47826; font-size:.78rem; letter-spacing:.08em; }
.conversion-review-stars strong { color:var(--green-900); letter-spacing:0; }
.conversion-review blockquote { margin:.35rem 0 .3rem; font:400 clamp(1.03rem,2vw,1.25rem)/1.35 var(--serif); color:var(--green-900); }
.conversion-review p { margin:0; color:var(--muted); font-size:.78rem; }
.conversion-review-dark { background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.18); box-shadow:none; }
.conversion-review-dark blockquote,.conversion-review-dark p,.conversion-review-dark .conversion-review-stars strong { color:#fff; }
.conversion-review-dark p { color:rgba(255,255,255,.76); }
.booking-trust-strip { background:var(--green-900); color:#fff; }
.booking-trust-strip .container { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.booking-trust-strip span { padding:.85rem 1rem; text-align:center; font-size:.82rem; color:rgba(255,255,255,.82); }
.booking-trust-strip span + span { border-left:1px solid rgba(255,255,255,.15); }
.booking-trust-strip strong { color:#fff; }
.booking-review-step .conversion-review { max-width:none; }
.booking-review-step .conversion-payment-line { color:var(--green-900); margin:.7rem 0 .2rem; }
.family-trust-statement-v51 { display:grid; gap:.25rem; margin:1.2rem 0; padding:1rem 1.15rem; border-left:3px solid var(--gold); background:rgba(216,196,155,.14); }
.family-trust-statement-v51 strong { color:var(--green-900); font:400 1.2rem/1.25 var(--serif); }
.family-trust-statement-v51 span { color:var(--muted); }
.conversion-endcap { background:var(--cream); border-top:1px solid rgba(39,70,54,.10); }
.conversion-endcap-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; align-items:center; }
.conversion-endcap-inner .conversion-review { margin-bottom:0; }
.conversion-endcap-action { align-self:center; }
.contact-trust-v51 .conversion-review-dark { margin-bottom:0; }
.club-trust-v51 { display:inline-block; margin:.65rem 0 1rem; padding:.55rem .8rem; border-radius:999px; background:rgba(255,255,255,.12); color:rgba(255,255,255,.9); font-size:.84rem; }
.club-trust-v51 strong { color:#fff; }
.journey-booking-cta .conversion-review { max-width:520px; }
.pricing-cta .conversion-review-dark,.booking-choice-cta .conversion-review-dark { max-width:520px; }

@media (max-width:820px){
  .trust-foundation-grid,.booking-trust-strip .container { grid-template-columns:1fr; }
  .trust-foundation-item + .trust-foundation-item { border-left:0; border-top:1px solid rgba(39,70,54,.12); }
  .booking-trust-strip span + span { border-left:0; border-top:1px solid rgba(255,255,255,.12); }
  .booking-trust-strip span { text-align:left; padding:.7rem 1rem; }
  .conversion-payment-line { display:grid; gap:.25rem; }
  .conversion-payment-line span:not(:last-child)::after { display:none; }
  .conversion-endcap-inner { grid-template-columns:1fr; gap:1rem; }
  .conversion-endcap-action .button { width:100%; text-align:center; }
}

/* Version 5.2 — operational extras and 18-month bookings diary */
.admin-checkout-date { margin-top:.25rem; padding:.4rem .5rem; border-left:3px solid #9f3b32; background:rgba(255,255,255,.58); color:var(--green-950)!important; }
.admin-checkout-date b { text-transform:uppercase; font-size:.67rem; letter-spacing:.05em; margin-right:.3rem; }
.admin-pitch-extras { display:grid; gap:.2rem; margin-top:.5rem; padding:.5rem; background:#fff8ed; border:1px solid #dfc99f; }
.admin-pitch-extras>b { font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:#725417; }
.admin-pitch-extras span { color:var(--green-950)!important; font-size:.75rem!important; }

.admin-diary-section { overflow:visible; }
.admin-month-tiles { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.55rem; margin:1rem 0; }
.admin-month-tile { border:1px solid var(--line); background:#fffefa; color:var(--green-950); padding:.75rem; text-align:left; cursor:pointer; display:grid; gap:.18rem; min-height:92px; }
.admin-month-tile:hover { border-color:var(--green-700); }
.admin-month-tile.active { border:2px solid var(--green-900); background:#edf5ef; box-shadow:0 7px 18px rgba(18,55,42,.08); }
.admin-month-tile strong { font-family:var(--serif); font-size:1rem; line-height:1.1; }
.admin-month-tile span { font-size:.72rem; color:var(--muted); }
.admin-month-panel { border:1px solid var(--line); background:#fbf8f1; padding:1rem; }
.admin-diary-header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:end; padding-bottom:.8rem; border-bottom:1px solid var(--line); }
.admin-diary-header h3 { margin:.05rem 0; font-family:var(--serif); font-size:1.6rem; color:var(--green-950); }
.admin-diary-stats { display:flex; flex-wrap:wrap; gap:.45rem; }
.admin-diary-stats span,.admin-diary-unit-mix span { display:inline-flex; gap:.3rem; align-items:center; padding:.38rem .55rem; background:#fffefa; border:1px solid var(--line); font-size:.78rem; }
.admin-diary-unit-mix { display:flex; flex-wrap:wrap; gap:.4rem; margin:.75rem 0; }
.admin-diary-bookings { display:grid; gap:.5rem; }
.admin-diary-booking { display:grid; grid-template-columns:1.1fr 1.1fr .8fr minmax(180px,1fr) auto; gap:.7rem; align-items:center; padding:.75rem; border:1px solid var(--line); background:#fffefa; }
.admin-diary-booking>div { display:grid; gap:.14rem; min-width:0; }
.admin-diary-booking strong { color:var(--green-950); font-size:.84rem; }
.admin-diary-booking span { font-size:.74rem; color:var(--muted); overflow-wrap:anywhere; }
.admin-diary-extras { display:grid!important; gap:.12rem!important; }
.admin-diary-extras span { color:#725417!important; }
.admin-diary-empty { padding:1rem; color:var(--muted); background:#fffefa; border:1px dashed var(--line); }

@media (max-width:1100px){
  .admin-month-tiles { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .admin-diary-booking { grid-template-columns:1fr 1fr; }
  .admin-diary-booking .button { justify-self:start; }
}
@media (max-width:700px){
  .admin-month-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-diary-booking { grid-template-columns:1fr; }
}


/* Version 5.7 — rotating genuine guest reviews, natural fade only */
.conversion-review[data-review-rotator] {
  position:relative;
  overflow:hidden;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.conversion-review[data-review-rotator] .conversion-review-stars,
.conversion-review[data-review-rotator] blockquote,
.conversion-review[data-review-rotator] p {
  transition:opacity .28s ease, transform .28s ease;
}
.conversion-review[data-review-rotator].review-changing .conversion-review-stars,
.conversion-review[data-review-rotator].review-changing blockquote,
.conversion-review[data-review-rotator].review-changing p {
  opacity:0;
  transform:translateY(5px);
}
.conversion-review[data-review-rotator].review-arriving .conversion-review-stars,
.conversion-review[data-review-rotator].review-arriving blockquote,
.conversion-review[data-review-rotator].review-arriving p {
  animation:review-arrive-v55 .42s ease both;
}
.conversion-review[data-review-rotator]:hover {
  border-color:rgba(39,70,54,.25);
}
.conversion-review-dark[data-review-rotator]:hover {
  border-color:rgba(255,255,255,.32);
}
@keyframes review-arrive-v55 {
  from { opacity:0; transform:translateY(-4px); }
  to { opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .conversion-review[data-review-rotator] .conversion-review-stars,
  .conversion-review[data-review-rotator] blockquote,
  .conversion-review[data-review-rotator] p { transition:none; }
}


/* V5.8 — optional analytics consent */
.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  padding: 0.85rem;
  background: rgba(8, 48, 37, 0.98);
  color: #fff;
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.18);
}
.cookie-consent-inner {
  width: min(1180px, calc(100% - 1rem));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}
.cookie-consent-copy {
  max-width: 760px;
}
.cookie-consent-copy strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 0.2rem;
}
.cookie-consent-copy p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
}
.cookie-consent-copy a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.cookie-consent-actions {
  display: flex;
  gap: 0.65rem;
  flex: 0 0 auto;
}
.cookie-consent .button {
  margin: 0;
  white-space: nowrap;
}
.cookie-consent .button-secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.75);
}
.cookie-consent .button-secondary:hover,
.cookie-consent .button-secondary:focus-visible {
  background: #fff;
  color: #0b3b2e;
}
@media (max-width: 760px) {
  .cookie-consent {
    padding-bottom: calc(0.85rem + env(safe-area-inset-bottom));
  }
  .cookie-consent-inner {
    align-items: stretch;
    flex-direction: column;
    gap: 0.75rem;
  }
  .cookie-consent-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .cookie-consent .button {
    width: 100%;
    min-height: 46px;
    padding-inline: 0.75rem;
    font-size: 0.82rem;
  }
}


/* V5.10 — technical SEO launch and clearer search-facing hierarchy */
.home-seo-h1-v510 { max-width: 650px; }
.home-seo-brand-v510 { display:block; }
.home-seo-location-v510 {
  display:block;
  max-width: 34rem;
  margin-top: .75rem;
  font: 700 clamp(.82rem, 1.45vw, 1.08rem)/1.35 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-slower-v510 { margin-top: .15rem; }
.home-search-intro-v510 { background: var(--parchment); border-bottom: 1px solid var(--line); }
.home-search-intro-grid-v510 { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.home-search-copy-v510 h2 { max-width: 760px; }
.home-search-copy-v510 p:last-child { margin-bottom:0; }
.home-search-links-v510 { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.home-search-links-v510 a {
  display:block;
  min-height:100%;
  padding:1.05rem 1.1rem;
  border:1px solid var(--line);
  background:rgba(255,253,248,.82);
  text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.home-search-links-v510 a:hover { transform:translateY(-2px); border-color:var(--gold); box-shadow:var(--shadow-soft); }
.home-search-links-v510 strong { display:block; margin-bottom:.25rem; color:var(--green-950); font-family:var(--serif); font-size:1.08rem; }
.home-search-links-v510 span { display:block; color:var(--muted); font-size:.82rem; line-height:1.5; }
.stay-location-v510 { background:var(--paper); border-block:1px solid var(--line); }
.stay-location-grid-v510 { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:clamp(2rem,5vw,4rem); align-items:start; }
.stay-location-grid-v510 h2 { max-width:760px; }
.stay-location-panel-v510 { margin:0; }

@media (max-width: 820px) {
  .home-page .hero h1.home-seo-h1-v510 { max-width: 100%; font-size: clamp(3rem, 15vw, 5rem); }
  .home-seo-location-v510 { max-width: 28rem; color:inherit; font-size:.82rem; line-height:1.35; letter-spacing:.11em; }
  .home-search-intro-grid-v510, .stay-location-grid-v510 { grid-template-columns:1fr; }
  .home-search-links-v510 { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
  .home-page .hero h1.home-seo-h1-v510 { font-size: clamp(2.8rem, 14vw, 4rem); }
  .home-search-links-v510 { grid-template-columns:1fr; }
}

/* Version 6.3 — permanent payment text with a subtle left-to-right shimmer overlay */
/* Reassurance/payment copy uses the established Glanfar green on all light surfaces. */
.conversion-payment-line { color: var(--green-900); }
.home-page .hero .conversion-payment-line {
  --payment-glisten-base: var(--green-900);
  --payment-glisten-position: -18%;
  position: relative;
  color: var(--payment-glisten-base);
  width: fit-content;
  max-width: 100%;
}
.home-page .hero .conversion-payment-line > span:not(.payment-glisten-sheen):not(:last-child)::after,
.home-page .hero .payment-glisten-sheen > span:not(:last-child)::after {
  color: currentColor;
}

/* The normal words stay fully visible at all times. A duplicate, aria-hidden
   text layer sits above them and only a narrow masked band of that layer is
   revealed as it travels from left to right. */
.home-page .hero .payment-glisten-sheen {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .85rem;
  align-items: center;
  color: var(--gold-light);
  opacity: .82;
  pointer-events: none;
  user-select: none;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent calc(var(--payment-glisten-position) - 10%),
    rgba(0,0,0,.18) calc(var(--payment-glisten-position) - 5%),
    #000 var(--payment-glisten-position),
    rgba(0,0,0,.18) calc(var(--payment-glisten-position) + 5%),
    transparent calc(var(--payment-glisten-position) + 10%)
  );
  mask-image: linear-gradient(
    90deg,
    transparent calc(var(--payment-glisten-position) - 10%),
    rgba(0,0,0,.18) calc(var(--payment-glisten-position) - 5%),
    #000 var(--payment-glisten-position),
    rgba(0,0,0,.18) calc(var(--payment-glisten-position) + 5%),
    transparent calc(var(--payment-glisten-position) + 10%)
  );
  will-change: -webkit-mask-image, mask-image;
}
.home-page .hero .payment-glisten-sheen > span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.home-page .hero .payment-glisten-sheen > span:not(:last-child)::after {
  content: '•';
  margin-left: .85rem;
  opacity: .72;
}

@media (max-width: 820px) {
  /* The mobile homepage hero sits on the intentionally darkened farm image. */
  .home-page .hero .conversion-payment-line {
    --payment-glisten-base: #fffdf8;
    color: var(--payment-glisten-base);
  }
  .home-page .hero .payment-glisten-sheen {
    display: grid;
    gap: .25rem;
    color: var(--gold-light);
  }
  .home-page .hero .payment-glisten-sheen > span:not(:last-child)::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .hero .payment-glisten-sheen { display: none; }
}


.home-page .hero .payment-glisten-sheen::after { content: none !important; }

/* V6.5 — supplied Camping and Caravanning Club identity */
.club-official-logo-card {
  display: grid;
  place-items: center;
  width: min(100%, 300px);
  margin: 0 0 1.35rem;
  padding: 1rem 1.15rem;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(0,0,0,.16);
}
.club-official-logo-card img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 250px;
  object-fit: contain;
}
@media (max-width: 700px) {
  .club-official-logo-card { width: min(82vw, 270px); margin-inline: auto; }
}

.admin-arrival-eta { margin-top:.25rem; padding:.4rem .5rem; border-left:3px solid var(--green-700); background:rgba(255,255,255,.58); color:var(--green-950)!important; }
.admin-arrival-eta b { text-transform:uppercase; font-size:.67rem; letter-spacing:.05em; margin-right:.3rem; }

/* Version 6.6 — mobile-first Booking Desk and narrow-screen site polish */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Admin is an operational screen: keep useful controls comfortably tappable. */
.admin-page .admin-shell,
.admin-page [data-admin-dashboard],
.admin-page .admin-toolbar,
.admin-page .booking-step,
.admin-page .admin-table-wrap,
.admin-page .admin-month-panel,
.admin-page .admin-booking-detail {
  min-width: 0;
}
.admin-page .admin-toolbar {
  gap: .8rem;
}
.admin-page [data-admin-dashboard] > *,
.admin-page .admin-toolbar > *,
.admin-page .admin-section-heading > *,
.admin-page .admin-voucher-form > *,
.admin-page .admin-voucher-table td {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.admin-page .admin-voucher-form input,
.admin-page .admin-voucher-form select,
.admin-page .admin-voucher-form button {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.admin-page .admin-toolbar-actions .button,
.admin-page .admin-date-tools .button,
.admin-page .admin-block-row .button,
.admin-page .admin-table-button {
  min-height: 46px;
}
.admin-page .admin-contact-link {
  color: var(--green-800);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  overflow-wrap: anywhere;
}
.admin-detail-loading {
  min-height: 180px;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-weight: 700;
}
.admin-detail-floating-close { margin-bottom: 1rem; }

@media (max-width: 700px) {
  /* Site-wide phone ergonomics. 16px form controls stop iOS zooming into a
     field and leaving the visitor stranded at an enlarged viewport. */
  input,
  select,
  textarea {
    font-size: 16px;
  }
  button,
  .button,
  .menu-toggle,
  summary,
  a {
    touch-action: manipulation;
  }
  .section { padding-block: 3rem; }
  .section-sm { padding-block: 2.35rem; }
  .site-nav {
    max-height: calc(100dvh - 70px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
  }
  .site-nav a { min-height: 46px; display: flex; align-items: center; }
  .card-body { padding: 1.1rem; }
  .cta-band .button { width: 100%; }
  main table { max-width: 100%; }

  /* Booking Desk gets a compact header/hero so owners reach live data fast. */
  .admin-page .topbar { display: none; }
  .admin-page .header-inner {
    grid-template-columns: minmax(0,1fr) auto;
    min-height: 68px;
    gap: .55rem;
  }
  .admin-page .brand { min-width: 0; gap: .5rem; }
  .admin-page .brand-mark { width: 34px; height: 34px; }
  .admin-page .brand-name { font-size: 1.02rem; line-height: 1; letter-spacing: .055em; }
  .admin-page .brand-place { margin-top: .2rem; font-size: .48rem; letter-spacing: .12em; }
  .admin-page .admin-guest-link {
    margin-left: auto;
    min-height: 42px;
    padding: .55rem .65rem;
    font-size: .64rem;
    letter-spacing: .02em;
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }
  .admin-page .page-hero {
    min-height: 155px;
  }
  .admin-page .page-hero::after {
    background: linear-gradient(90deg, rgba(12,40,31,.94), rgba(12,40,31,.63));
  }
  .admin-page .page-hero-content { padding-block: 1.25rem 1.4rem; }
  .admin-page .page-hero .eyebrow { margin-bottom: .25rem; }
  .admin-page .page-hero h1 { margin-bottom: .35rem; font-size: clamp(2rem, 10vw, 2.8rem); }
  .admin-page .page-hero .lead { margin: 0; font-size: .9rem; line-height: 1.4; }
  .admin-page main > .section { padding-block: 1rem 2.5rem; }

  .admin-page .admin-login-card {
    max-width: none;
    padding: 1rem;
  }
  .admin-page .admin-login-card h2 { font-size: 1.65rem; }
  .admin-page .admin-login-card .button { width: 100%; }

  /* Keep Refresh in reach while scrolling through the operational desk. */
  .admin-page .admin-toolbar {
    position: sticky;
    top: 0;
    z-index: 35;
    margin: 0 0 .7rem;
    padding: .6rem .68rem;
    flex-wrap: wrap;
    align-items: center;
    background: rgba(250,246,237,.97);
    border-block: 1px solid var(--line);
    box-shadow: 0 6px 18px rgba(12,40,31,.08);
    backdrop-filter: blur(8px);
  }
  .admin-page .admin-toolbar .eyebrow,
  .admin-page .admin-toolbar p { display: none; }
  .admin-page .admin-toolbar h2 {
    margin: 0 !important;
    font: 700 1rem/1.2 var(--sans);
  }
  .admin-page .admin-toolbar-actions {
    min-width: 0;
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
  }
  .admin-page .admin-toolbar-actions .button {
    min-height: 42px;
    padding: .55rem .72rem;
    font-size: .68rem;
  }

  .admin-page .admin-connection-panel {
    padding: .75rem .85rem;
    font-size: .8rem;
    line-height: 1.45;
  }
  .admin-page .admin-connection-panel .eyebrow { margin-bottom: .25rem; }
  .admin-page .admin-connection-panel p { margin-bottom: .4rem; }
  .admin-page .admin-connection-panel p:last-child { margin-bottom: 0; }
  .admin-page .admin-connection-panel.admin-connection-ok {
    min-height: 42px;
    padding: .55rem .7rem;
    display: flex;
    align-items: center;
    border-color: #b9d1c0;
    background: #f1f7f2;
  }
  .admin-page .admin-connection-panel.admin-connection-ok > * { display: none; }
  .admin-page .admin-connection-panel.admin-connection-ok::before {
    content: "✓ Stripe payments & booking email connected";
    color: #176c3f;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .015em;
  }

  .admin-page .booking-step {
    padding: .9rem;
    margin: 0;
    box-shadow: 0 5px 16px rgba(24,47,36,.05);
  }
  .admin-page [data-admin-dashboard] { display: grid; gap: .8rem; }
  .admin-page .admin-section-heading {
    gap: .65rem;
    margin-bottom: .7rem;
  }
  .admin-page .admin-section-heading h2,
  .admin-page .booking-step > h2 { font-size: 1.55rem; }
  .admin-page .field-help { font-size: .78rem; line-height: 1.45; }

  /* Revenue stays visually first without turning the opening screen into a
     long run of oversized single-column cards. */
  .admin-page .admin-revenue-section { padding: .95rem; }
  .admin-page .admin-revenue-heading { gap: .65rem; margin-bottom: .7rem; }
  .admin-page .admin-revenue-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .5rem;
  }
  .admin-page .admin-revenue-card,
  .admin-page .admin-revenue-source { min-width: 0; padding: .7rem; }
  .admin-page .admin-revenue-overall { grid-column: 1/-1; }
  .admin-page .admin-revenue-card strong,
  .admin-page .admin-revenue-source strong { overflow-wrap: anywhere; }

  /* Day selector and print control are stacked and thumb-sized. */
  .admin-page .admin-date-tools {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: .45rem;
  }
  .admin-page .admin-date-tools input,
  .admin-page .admin-date-tools .button { width: 100%; min-width: 0; }

  /* Six live numbers in a compact 3 x 2 dashboard. */
  .admin-page .admin-summary-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: .4rem;
  }
  .admin-page .admin-stat {
    min-width: 0;
    padding: .6rem .45rem;
    text-align: center;
  }
  .admin-page .admin-stat strong { font-size: 1.4rem; line-height: 1; }
  .admin-page .admin-stat span { display: block; margin-top: .22rem; font-size: .67rem; line-height: 1.15; }
  .admin-page .admin-legend {
    gap: .45rem .75rem;
    margin: .65rem 0 .7rem;
    font-size: .74rem;
  }

  /* Pitch cards favour operational information over decorative height. */
  .admin-page .admin-pitch-map { gap: .6rem; }
  .admin-page .admin-pitch-card {
    min-height: 0;
    padding: .75rem;
  }
  .admin-page .admin-pitch-number { font-size: 1.2rem; }
  .admin-page .admin-pitch-location { font-size: .7rem; }
  .admin-page .admin-pitch-state { padding: .2rem .45rem; font-size: .64rem; }
  .admin-page .admin-pitch-visual {
    height: 44px;
    place-items: center start;
    margin: .3rem 0;
  }
  .admin-page .admin-pitch-visual svg { width: 72px; height: 42px; stroke-width: 3; }
  .admin-page .admin-pitch-guest { gap: .12rem; }
  .admin-page .admin-pitch-guest strong { font-size: .94rem; }
  .admin-page .admin-pitch-guest span { font-size: .75rem; line-height: 1.35; }
  .admin-page .admin-party-list { margin-top: .35rem; padding-top: .35rem; }
  .admin-page .admin-party-list span { font-size: .72rem !important; }
  .admin-page .admin-checkout-date,
  .admin-page .admin-arrival-eta { padding: .35rem .42rem; }
  .admin-page .admin-pitch-extras { margin-top: .35rem; padding: .4rem; }
  .admin-page .admin-pitch-link {
    min-height: 44px;
    display: flex;
    align-items: center;
    margin-top: .2rem;
    padding: .45rem 0 0;
  }

  /* Blocking dates: no squeezed five-column desktop form on a phone. */
  .admin-page .admin-block-form { grid-template-columns: 1fr; gap: .55rem; }
  .admin-page .admin-block-form .field:last-of-type { grid-column: auto; }
  .admin-page .admin-block-form .button { width: 100%; }
  .admin-page .admin-block-row { display: grid; grid-template-columns: 1fr; padding: .7rem; }
  .admin-page .admin-block-row .button { width: 100%; }

  /* The 18-month diary becomes a swipeable month rail rather than a very
     tall wall of month buttons. */
  .admin-page .admin-month-tiles {
    display: flex;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    gap: .45rem;
    margin: .7rem -.15rem;
    padding: .15rem .15rem .5rem;
    scrollbar-width: thin;
  }
  .admin-page .admin-month-tile {
    flex: 0 0 132px;
    min-height: 78px;
    padding: .6rem;
    scroll-snap-align: start;
  }
  .admin-page .admin-month-tile strong { font-size: .9rem; }
  .admin-page .admin-month-panel { padding: .7rem; }
  .admin-page .admin-diary-header { gap: .55rem; }
  .admin-page .admin-diary-header h3 { font-size: 1.35rem; }
  .admin-page .admin-diary-stats,
  .admin-page .admin-diary-unit-mix { gap: .3rem; }
  .admin-page .admin-diary-stats span,
  .admin-page .admin-diary-unit-mix span { padding: .32rem .42rem; font-size: .7rem; }
  .admin-page .admin-diary-booking { grid-template-columns: 1fr; gap: .45rem; padding: .7rem; }
  .admin-page .admin-diary-booking .button { width: 100%; justify-self: stretch; }

  /* Replace the desktop horizontal-scroll bookings table with readable cards. */
  .admin-page .admin-table-wrap { overflow: visible; border: 0; background: transparent; }
  .admin-page .admin-table,
  .admin-page .admin-table tbody,
  .admin-page .admin-table tr { display: block; width: 100%; min-width: 0; }
  .admin-page .admin-table thead { display: none; }
  .admin-page .admin-booking-row {
    margin-bottom: .65rem;
    padding: .7rem;
    border: 1px solid var(--line);
    background: #fffefa;
    box-shadow: 0 5px 14px rgba(24,47,36,.05);
  }
  .admin-page .admin-table .admin-booking-row td {
    display: grid;
    grid-template-columns: 76px minmax(0,1fr);
    gap: .55rem;
    width: 100%;
    padding: .45rem 0;
    border-bottom: 1px solid #e8dfd0;
    font-size: .8rem;
    overflow-wrap: anywhere;
  }
  .admin-page .admin-table .admin-booking-row td::before {
    content: attr(data-label);
    align-self: start;
    color: var(--muted);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
  }
  .admin-page .admin-table .admin-booking-row td:last-child { border-bottom: 0; display: block; padding-bottom: 0; }
  .admin-page .admin-table-button { width: 100%; }
  .admin-page .admin-empty-row { display: block; border: 1px dashed var(--line); background: #fffefa; }
  .admin-page .admin-empty-row td { display: block; width: 100%; padding: .9rem; border: 0; }

  /* Voucher management is a bottom-of-desk utility. Its desktop table becomes
     self-contained cards on phones, so no cell or action widens the document. */
  .admin-page .admin-vouchers-section { padding: .9rem; }
  .admin-page .admin-voucher-form {
    grid-template-columns: minmax(0,1fr);
    gap: .6rem;
  }
  .admin-page .admin-voucher-form .field { min-width: 0; margin: 0; }
  .admin-page .admin-voucher-form label { margin-bottom: .3rem; }
  .admin-page .admin-voucher-form input { min-width: 0; min-height: 44px; }
  .admin-page .admin-voucher-form .button { min-height: 44px; }
  .admin-page .admin-voucher-list { width: 100%; max-width: 100%; }
  .admin-page .admin-voucher-table { width: 100%; min-width: 0; table-layout: fixed; }
  .admin-page .admin-voucher-row {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .65rem .8rem;
    width: 100%;
    min-width: 0;
    margin-bottom: .65rem;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fffefa;
    box-shadow: 0 5px 14px rgba(24,47,36,.05);
  }
  .admin-page .admin-voucher-table .admin-voucher-row td {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    font-size: .82rem;
    overflow-wrap: anywhere;
  }
  .admin-page .admin-voucher-table .admin-voucher-row td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: .18rem;
    color: var(--muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
  }
  .admin-page .admin-voucher-code,
  .admin-page .admin-voucher-action { grid-column: 1/-1; }
  .admin-page .admin-voucher-code strong { font-size: 1rem; }
  .admin-page .admin-voucher-usage { white-space: nowrap; }
  .admin-page .admin-voucher-action .button {
    width: auto;
    max-width: 100%;
    min-height: 44px;
    padding: .55rem .8rem;
  }

  /* Opening a booking on a phone now behaves like an operational detail
     screen, not a distant section far below the table. */
  body.admin-detail-open { overflow: hidden; }
  .admin-page .admin-booking-detail:not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: block;
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    padding: calc(.8rem + env(safe-area-inset-top)) .75rem calc(1rem + env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: var(--cream);
    border: 0;
    box-shadow: none;
  }
  .admin-page .admin-detail-header { gap: .65rem; padding: .3rem 0 .75rem; }
  .admin-page .admin-detail-header h2 { padding-right: 5rem; font-size: 1.55rem; }
  .admin-page .admin-detail-header p { margin-bottom: .35rem; }
  .admin-page .admin-detail-actions { width: 100%; display: grid; grid-template-columns: 1fr; gap: .4rem; }
  .admin-page .admin-detail-actions .button { width: 100%; }
  .admin-page .admin-detail-actions [data-close-detail],
  .admin-page .admin-detail-floating-close {
    position: fixed;
    top: calc(.6rem + env(safe-area-inset-top));
    right: .65rem;
    z-index: 1002;
    width: auto;
    min-height: 42px;
    padding: .5rem .65rem;
    background: var(--paper);
    box-shadow: 0 4px 14px rgba(12,40,31,.16);
  }
  .admin-page .admin-detail-grid,
  .admin-page .admin-detail-columns { grid-template-columns: 1fr; gap: .55rem; margin-top: .55rem; }
  .admin-page .admin-detail-grid > div,
  .admin-page .admin-detail-columns > div { padding: .75rem; }
  .admin-page .admin-detail-grid h3,
  .admin-page .admin-detail-columns h3 { font-size: 1.15rem; }
  .admin-page .admin-detail-list li { gap: .55rem; font-size: .78rem; }

  .admin-page .site-footer { display: none; }
}

@media (max-width: 390px) {
  .container,
  .narrow { width: min(calc(100% - 1rem), var(--max)); }
  .header-inner { gap: .65rem; }
  .menu-toggle { min-width: 44px; min-height: 44px; padding: .55rem .65rem; }
  .button { padding-inline: .85rem; letter-spacing: .025em; }
  .admin-page .admin-guest-link { padding-inline: .5rem; font-size: .59rem; }
  .admin-page .admin-table .admin-booking-row td { grid-template-columns: 68px minmax(0,1fr); gap: .4rem; }
  .admin-page .admin-toolbar-actions { width: 100%; margin-left: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-page .admin-toolbar-actions .button { width: 100%; padding-inline: .45rem; }
  .admin-page .admin-voucher-action .button { width: 100%; }
}

@media (max-width: 350px) {
  .admin-page .admin-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Version 6.10 — compact, reliable top navigation replaces the former
   site-wide mobile bottom bar. */
@media (max-width: 820px) {
  html { scroll-padding-top: calc(82px + env(safe-area-inset-top)); }
  main [id] { scroll-margin-top: calc(82px + env(safe-area-inset-top)); }
  .site-header {
    position: sticky;
    top: 0;
    z-index: 1200;
    padding-top: env(safe-area-inset-top);
    background: rgba(250, 246, 237, .97);
    box-shadow: 0 1px 0 rgba(39, 70, 54, .12);
  }
  body.mobile-menu-open { overflow: hidden; }

  .header-inner { min-height: 68px; gap: .65rem; }
  .menu-toggle { min-width: 84px; min-height: 44px; padding: .55rem .7rem; }

  /* Booking leads the existing menu; the remaining destinations form a
     compact, scrollable directory that stays inside the live viewport. */
  .site-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .12rem .75rem;
    padding: .7rem .85rem calc(1rem + env(safe-area-inset-bottom));
    max-height: calc(100dvh - 68px - env(safe-area-inset-top));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .site-nav.open { display: grid; }
  .site-nav a {
    min-width: 0;
    min-height: 46px;
    padding: .62rem .45rem;
    border-bottom: 1px solid rgba(39,70,54,.10);
    white-space: normal;
  }
  .site-nav .mobile-menu-book-link {
    display: flex;
    color: var(--green-950);
    background: rgba(216, 180, 91, .16);
    font-weight: 800;
  }
  .site-nav .button {
    grid-column: 1 / -1;
    grid-row: 1;
    min-height: 50px;
    margin: .1rem 0 .55rem;
    border-bottom: 0;
  }

  .breadcrumb {
    max-width: 100%;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
  .breadcrumb a { display: inline-block; padding-block: .18rem; }
}

@media (max-width: 560px) {
  /* Reclaim the first screen for the brand, proposition and booking action. */
  .topbar { display: none; }
  .header-inner { min-height: 68px; gap: .65rem; }
  .brand { gap: .55rem; }
  .brand-mark { width: 35px; height: 35px; }
  .brand-name { font-size: 1.05rem; line-height: 1; letter-spacing: .065em; }
  .brand-place { margin-top: .2rem; font-size: .46rem; letter-spacing: .13em; }
  .menu-toggle { min-width: 82px; min-height: 44px; padding: .55rem .65rem; }

  .home-page .hero {
    min-height: 610px;
  }
  .home-page .hero-content {
    padding: 4.4rem 0 2.15rem;
  }
  .home-page .hero .script:first-child { font-size: 1.45rem; }
  .home-page .hero .lead {
    max-width: 28rem;
    font-size: 1.02rem;
    line-height: 1.45;
  }
  .home-page .hero-actions {
    grid-template-columns: 1fr;
    gap: .58rem;
    margin-top: 1.2rem;
  }
  .home-page .hero-actions .mobile-directions-button { display: none; }
  .home-page .hero-actions .home-primary-book-v68 {
    order: -1;
    background: var(--gold-light);
    border-color: var(--gold-light);
    color: var(--green-950);
    min-height: 52px;
  }
  .home-page .hero-actions .home-primary-book-v68:hover,
  .home-page .hero-actions .home-primary-book-v68:focus-visible {
    background: #efd59d;
    border-color: #efd59d;
    color: var(--green-950);
  }
  .home-page .hero .conversion-payment-line {
    display: flex;
    gap: .25rem .55rem;
    margin-top: .65rem;
    font-size: .72rem;
    line-height: 1.35;
  }

  /* Four high-value facts stay visible without four paragraphs of vertical drag. */
  .home-page .feature-grid { grid-template-columns: 1fr 1fr; }
  .home-page .feature {
    grid-template-columns: 34px 1fr;
    gap: .55rem;
    min-height: 68px;
    padding: .75rem .6rem;
  }
  .home-page .feature-icon { width: 34px; height: 34px; font-size: .95rem; }
  .home-page .feature strong { font-size: .82rem; line-height: 1.2; }
  .home-page .feature div > span { display: none; }

  /* Trust evidence is scanned as a single strip instead of three stacked cards. */
  .trust-foundation { padding-block: .3rem; }
  .trust-foundation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .trust-foundation-item {
    min-width: 0;
    padding: .8rem .42rem;
    gap: .24rem;
  }
  .trust-foundation-item + .trust-foundation-item {
    border-top: 0;
    border-left: 1px solid rgba(39,70,54,.12);
  }
  .trust-foundation-item strong { font-size: 1.18rem; }
  .trust-foundation-item span { font-size: .64rem; line-height: 1.3; }

  /* Put useful journeys before the longer search-facing explanation. */
  .home-search-intro-v510 { padding-block: 1.9rem 2.4rem; }
  .home-search-intro-grid-v510 { gap: 1.45rem; }
  .home-search-links-v510 {
    order: -1;
    grid-template-columns: 1fr 1fr;
    gap: .55rem;
  }
  .home-search-links-v510 a {
    position: relative;
    min-height: 74px;
    padding: .85rem 1.85rem .8rem .85rem;
    border-radius: 10px;
    box-shadow: 0 5px 14px rgba(24,47,36,.04);
  }
  .home-search-links-v510 a::after {
    content: "→";
    position: absolute;
    right: .75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--green-700);
    font-weight: 800;
  }
  .home-search-links-v510 strong {
    margin: 0;
    font-size: .96rem;
    line-height: 1.2;
  }
  .home-search-links-v510 span { display: none; }
  .home-search-copy-v510 h2 { font-size: clamp(1.8rem, 8.8vw, 2.35rem); }
  .home-search-copy-v510 p { font-size: .9rem; line-height: 1.55; }

  /* Discovery remains visual, but each destination consumes less scrolling. */
  .home-page .section { padding-block: 2.8rem; }
  .home-page .section-head { margin-bottom: 1.35rem; }
  .home-page .section-head h2 { font-size: clamp(1.95rem, 9vw, 2.55rem); }
  .home-discovery-grid { gap: .72rem; }
  .home-discovery-card {
    grid-template-columns: 94px 1fr;
    min-height: 116px;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(24,47,36,.07);
  }
  .home-discovery-card .card-body { padding: .78rem .82rem; }
  .home-discovery-card .card-body h3 { margin-bottom: .25rem; font-size: 1.18rem; }
  .home-discovery-card .card-body p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: .76rem;
    line-height: 1.38;
  }

  .home-page .mobile-review-section {
    margin: .7rem 0 1.5rem;
    padding: .8rem 0 .9rem;
  }
  .home-page .mobile-review-card { border-radius: 10px; }
  .home-page .mobile-review-card-image { height: 168px; }
  .home-page .mobile-review-card-copy { padding: 1rem 1.05rem 1.08rem; }
  .home-page .mobile-review-card-copy h2 { font-size: 1.55rem; }
  .home-page .mobile-review-card-copy p:not(.eyebrow) { margin-bottom: .72rem; font-size: .86rem; }

  .home-page .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.45rem 1rem;
    padding-block: 2.25rem;
  }
  .home-page .footer-brand { grid-column: 1 / -1; }
  .home-page .footer-grid h2 { font-size: 1.15rem; }
  .home-page .footer-links a { font-size: .78rem; }

}

@media (max-width: 370px) {
  .home-search-links-v510 { grid-template-columns: 1fr; }
  .trust-foundation-item span { font-size: .6rem; }
}

/* Version 6.11 — Target Sport route choice, verified guest journey and photographic mobile rhythm. */
.target-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:clamp(2rem,5vw,3.5rem); }
.target-route-card { display:flex; min-width:0; flex-direction:column; padding:clamp(1.4rem,3vw,2rem); border:1px solid var(--line); background:linear-gradient(180deg,#fffefa,#f7f0e3); box-shadow:var(--shadow-soft); }
.target-route-card::before { content:""; width:54px; height:3px; margin-bottom:1.15rem; background:var(--gold); }
.target-route-card h3 { font-size:clamp(1.55rem,2.4vw,2rem); }
.target-route-card p:not(.eyebrow) { color:#465248; }
.target-route-card > .button,.target-route-card > form { margin-top:auto; }
.target-route-card .button { width:100%; }
.target-route-guest { border-color:#b99a61; background:linear-gradient(180deg,#f4ead6,#fffdf8); }
.target-route-guest form { display:grid; gap:.8rem; }
.target-route-guest .field { margin:0; }
.target-route-guest input { width:100%; }
.target-booking-mode { display:flex; align-items:center; gap:.7rem 1.2rem; margin:0 0 1.25rem; padding:1rem 1.15rem; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.1); }
.target-booking-mode strong { color:var(--gold-light); }
.target-booking-mode span { font-size:.86rem; }
.target-calendar-empty { padding:2rem 1rem; color:var(--green-950)!important; text-align:center; }

@media (max-width:900px) { .target-route-grid { grid-template-columns:1fr; max-width:680px; margin-inline:auto; } .target-route-card { min-height:0; } }
@media (max-width:680px) {
  .target-sport-hero { min-height:760px; align-items:end; }
  .target-sport-hero img { object-position:66% center; }
  .target-sport-hero::after { background:linear-gradient(0deg,rgba(8,31,23,.98) 0%,rgba(8,31,23,.86) 49%,rgba(8,31,23,.24) 100%); }
  .target-sport-hero .page-hero-content { padding-block:2.7rem; }
  .target-sport-hero .hero-actions { display:grid; grid-template-columns:1fr; }
  .target-sport-page main > section .split { gap:1.5rem; }
  .target-sport-page main > section .split-media { width:calc(100% + 2rem); max-width:none; height:auto; min-height:0; margin-inline:-1rem; aspect-ratio:4/3; object-fit:cover; box-shadow:0 12px 28px rgba(20,55,42,.14); }
  .target-sport-page main > section:nth-of-type(2) .split-media { aspect-ratio:4/5; object-position:center 46%; }
  .target-sport-page main > section:nth-of-type(3) .split-media { object-position:center 44%; }
  .target-sport-page main > section:nth-of-type(4) .split-media { object-position:center 52%; }
  .target-sport-page main > section:nth-of-type(8) .split-media { object-position:center 48%; }
  .target-sport-page main > section:nth-of-type(9) .split-media { aspect-ratio:4/5; object-position:center 42%; }
  .target-route-grid { margin-top:2rem; }
  .target-route-card { padding:1.4rem 1.2rem; }
  .target-route-card .button { min-height:52px; }
  .target-booking-mode { align-items:flex-start; flex-direction:column; }
}

/* Version 6.12 — Target Sport calendar clarity and booking-page conversion balance. */
.target-calendar-toolbar .button {
  min-height:46px;
  padding:.7rem 1rem;
  border:2px solid var(--gold-light);
  background:var(--paper);
  color:var(--green-950);
  box-shadow:0 5px 16px rgba(0,0,0,.18);
}
.target-calendar-toolbar .button:hover:not(:disabled) {
  border-color:var(--gold);
  background:var(--gold-light);
  color:var(--green-950);
}
.target-calendar-toolbar .button:focus-visible {
  outline:3px solid #fff;
  outline-offset:3px;
}
.target-calendar-toolbar .button:disabled {
  border-color:rgba(255,255,255,.38);
  background:rgba(255,255,255,.14);
  color:rgba(255,255,255,.7);
  box-shadow:none;
  cursor:not-allowed;
  transform:none;
}
.target-calendar-column { min-width:0; }
.target-calendar-conversion {
  margin-top:clamp(1.7rem,4vw,2.6rem);
  padding:clamp(1.35rem,3vw,2rem) 0 0;
  border-top:2px solid var(--gold);
}
.target-calendar-conversion h3 { max-width:620px; font-size:clamp(1.55rem,2.7vw,2.25rem); }
.target-calendar-conversion p { max-width:680px; color:rgba(255,255,255,.88); }
.target-calendar-conversion .target-calendar-prompt { margin-top:1.4rem; color:var(--gold-light); }
.target-sport-camp .button { margin-top:.5rem; }

/* Version 6.19 — page-scoped HeartWork wellness experience */
.wellness-page .wellness-hero{min-height:680px;align-items:end}.wellness-page .wellness-hero img{object-position:center 48%}.wellness-page .wellness-hero::after{background:linear-gradient(90deg,rgba(8,31,23,.9),rgba(8,31,23,.25))}.wellness-page .wellness-hero .page-hero-content{max-width:720px}.wellness-page .wellness-hero h1{font-size:clamp(2.35rem,5vw,4.5rem)}.wellness-intro{max-width:720px;font-size:1.12rem}.wellness-split>div{max-width:650px}.wellness-split .split-media{aspect-ratio:4/5;object-fit:cover;object-position:center 45%}.wellness-split .wellness-landscape{aspect-ratio:4/3;object-position:center}.wellness-statement{background:var(--green-950);color:#fff;text-align:center}.wellness-statement .container{max-width:760px}.wellness-statement h2,.wellness-statement p{color:inherit}.wellness-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.wellness-route-card{display:flex;flex-direction:column;padding:clamp(1.4rem,4vw,2.4rem);background:#fffefa;border:1px solid var(--line);box-shadow:var(--shadow-soft)}.wellness-route-card .button,.wellness-route-card form{margin-top:auto}.wellness-guest-card{background:#f5ecda;border-color:#b99a61}.wellness-booking-section{background:var(--green-950);color:#fff}.wellness-booking-section h2,.wellness-booking-section h3,.wellness-booking-section p{color:inherit}.wellness-empty{max-width:700px;padding:clamp(1.5rem,4vw,2.5rem);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25)}.wellness-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.wellness-service-card{display:flex;flex-direction:column;gap:.55rem;text-align:left;padding:1.2rem;border:2px solid transparent;background:#fffefa;color:var(--green-950);cursor:pointer}.wellness-service-card strong{font:700 1.35rem var(--serif)}.wellness-service-card small{font-weight:700}.wellness-service-card.selected,.wellness-dates button.selected,.wellness-times button.selected{outline:3px solid var(--gold);background:#f4ead6}.wellness-booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:2rem;align-items:start}.wellness-dates,.wellness-times{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0 2rem}.wellness-dates button,.wellness-times button{min-height:52px;padding:.7rem 1rem;border:1px solid #b8b1a3;background:#fffefa;color:var(--green-950);cursor:pointer}.wellness-dates button small{display:block;margin-top:.2rem}.wellness-booking-layout .enquiry-form{color:var(--ink)}.wellness-selection{padding:1rem;margin-bottom:1rem;background:#edf2ec;border-left:4px solid var(--gold)}.wellness-total{margin:1rem 0;font:700 1.3rem var(--serif);color:var(--green-950)}.wellness-status-panel{max-width:720px;margin:5vh auto}.wellness-status-panel dl{display:grid;grid-template-columns:120px 1fr;gap:.65rem}.wellness-status-panel dd{margin:0}
@media(max-width:900px){.wellness-route-grid,.wellness-service-grid,.wellness-booking-layout{grid-template-columns:1fr}.wellness-booking-layout .enquiry-form{position:static}}
@media(max-width:600px){.wellness-page .wellness-hero{min-height:740px}.wellness-page .wellness-hero img{object-position:center 42%}.wellness-page .wellness-hero::after{background:linear-gradient(0deg,rgba(8,31,23,.98) 0%,rgba(8,31,23,.83) 50%,rgba(8,31,23,.16) 100%)}.wellness-page .wellness-hero h1{font-size:clamp(2.15rem,10vw,3rem)}.wellness-page .wellness-hero .lead{font-size:1.02rem}.wellness-page .wellness-split .split-media{width:calc(100% + 2rem);max-width:none;margin-inline:-1rem;min-height:0;aspect-ratio:4/5}.wellness-page .wellness-split .wellness-landscape{aspect-ratio:4/3}.wellness-route-card{padding:1.35rem 1.1rem}.wellness-dates button,.wellness-times button{flex:1 1 calc(50% - .65rem)}.wellness-status-panel dl{grid-template-columns:1fr}.wellness-status-panel dd{margin-bottom:.5rem}}
@media(max-width:600px){.wellness-page .wellness-hero h1{font-size:clamp(2rem,9vw,2.65rem);text-wrap:wrap;overflow-wrap:normal}}
@media(max-width:600px){.wellness-page .wellness-split .split-media{width:calc(100% + 1rem);margin-inline:-.5rem}}

@media (max-width:680px) {
  .target-calendar-toolbar { gap:.4rem; }
  .target-calendar-toolbar .button { min-width:92px; padding:.7rem .55rem; font-size:.72rem; }
  .target-calendar-toolbar h3 { font-size:clamp(1rem,5vw,1.25rem); }
  .target-calendar-day { min-height:64px; }
  .target-calendar-day span { font-size:.62rem; line-height:1.15; }
  .target-calendar-conversion { margin-bottom:.5rem; }
  .target-sport-camp .split-media { aspect-ratio:4/5!important; object-position:center 42%; }
  .target-sport-camp .button { width:100%; min-height:52px; }
  .target-sport-page main > section .target-sport-logo { width:min(78vw,360px); margin-inline:auto; aspect-ratio:1/1; object-fit:contain; box-shadow:none; }
}

@media (max-width:560px) {
  /* Match the shared .container's 1.35rem narrow-phone gutter exactly. The
     wider 2rem full-bleed calculation otherwise extends 0.325rem past each
     viewport edge and creates horizontal page movement in mobile Safari. */
  .target-sport-page main > section .split-media:not(.target-sport-logo) {
    width:calc(100% + 1.35rem);
    margin-inline:-.675rem;
  }
}

@media (max-width:390px) {
  .target-calendar-toolbar .button { min-width:84px; font-size:.68rem; }
  .target-calendar-day { min-height:62px; }
  .target-calendar-day span { font-size:.59rem; }
}

/* Version 6.21 — confirmed HeartWork services and group-session controls */
.wellness-page .wellness-service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.wellness-page .wellness-card-cta{margin-top:auto;font-weight:800;text-decoration:underline;text-underline-offset:.2em}
.wellness-page .wellness-service-card span{line-height:1.45}
@media(max-width:1100px){.wellness-page .wellness-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.wellness-page .wellness-service-grid{grid-template-columns:1fr}.wellness-page .wellness-service-card{min-height:0}.wellness-page input[type=number]{min-height:52px;font-size:1rem}}

/* Version 6.22 — month-based live appointment selection */
.wellness-page .wellness-dates{display:block}.wellness-month-label{display:block;margin-bottom:.45rem;font-weight:800}.wellness-month-select{width:min(100%,360px);min-height:52px;margin-bottom:1rem}.wellness-date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.wellness-date-grid button{width:100%}
@media(max-width:600px){.wellness-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wellness-month-select{width:100%}}

/* Version 6.24 — HeartWork photographic sales journey */
.wellness-page{--wellness-cream:#f6f0e4;--wellness-sage:#dfe8dc;--wellness-ink:#173c2d}
.wellness-page .section{padding-block:clamp(3.5rem,7vw,6.5rem)}
.wellness-page .wellness-hero{min-height:min(840px,88vh);align-items:end}
.wellness-page .wellness-hero img{object-position:center 55%}
.wellness-page .wellness-hero::after{background:linear-gradient(90deg,rgba(7,28,21,.92) 0%,rgba(7,28,21,.68) 46%,rgba(7,28,21,.12) 78%)}
.wellness-page .wellness-hero .page-hero-content{max-width:790px;padding-bottom:clamp(3rem,7vw,6rem)}
.wellness-page .wellness-hero h1{max-width:760px;font-size:clamp(2.65rem,5vw,5rem);line-height:.98;text-wrap:balance}
.wellness-page .wellness-hero .lead{max-width:650px;font-size:clamp(1.08rem,1.6vw,1.3rem)}
.wellness-hero-bridge{max-width:680px;color:#fff;font-size:1.02rem}
.wellness-page .hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.wellness-page .button{min-height:50px;display:inline-flex;align-items:center;justify-content:center}
.wellness-story-grid,.wellness-setting-grid,.wellness-massage-lead,.wellness-human-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.wellness-copy{max-width:640px}.wellness-copy h2,.wellness-sound-copy h2{font-size:clamp(2.15rem,4vw,3.65rem);line-height:1.05;text-wrap:balance;margin:.35rem 0 1.25rem}.wellness-copy p,.wellness-sound-copy p{max-width:62ch;font-size:clamp(1rem,1.25vw,1.13rem);line-height:1.75}.wellness-image-frame{margin:0;overflow:hidden;background:var(--green-950);box-shadow:0 24px 55px rgba(17,45,34,.2)}.wellness-image-frame img{display:block;width:100%;height:100%;object-fit:cover}.wellness-image-tall{height:clamp(500px,62vw,760px)}.wellness-image-tall img{object-position:center 48%}
.wellness-setting-grid{grid-template-columns:minmax(460px,1.08fr) minmax(0,.92fr)}.wellness-setting-images{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:end}.wellness-setting-images img{display:block;width:100%;height:clamp(410px,48vw,650px);object-fit:cover;box-shadow:0 18px 38px rgba(17,45,34,.18)}.wellness-setting-images img:first-child{object-position:center 54%}.wellness-setting-images img:last-child{height:clamp(340px,40vw,540px);object-position:center 52%}
.wellness-massage-section{background:var(--green-950);color:#fff}.wellness-massage-section h2,.wellness-massage-section h3,.wellness-massage-section p{color:inherit}.wellness-massage-lead{grid-template-columns:minmax(0,1fr) minmax(380px,.8fr);align-items:center}.wellness-massage-image{height:clamp(480px,58vw,720px)}.wellness-massage-image img{object-position:center 58%}.wellness-sales-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(2.5rem,5vw,4.5rem)}.wellness-sales-cards article{display:flex;flex-direction:column;min-height:390px;padding:clamp(1.5rem,2.5vw,2.2rem);background:#fffefa;color:var(--wellness-ink);border-top:5px solid var(--gold)}.wellness-sales-cards article h3{font-size:clamp(1.55rem,2.4vw,2rem);color:inherit}.wellness-sales-cards article p{color:inherit;line-height:1.6}.wellness-sales-cards .wellness-price{margin:.25rem 0 1rem;font:700 clamp(2.2rem,4vw,3.1rem) var(--serif)}.wellness-sales-cards .button{margin-top:auto;width:100%}
.wellness-hours-band{padding:clamp(2.5rem,5vw,4.5rem) 0;background:#cfb575;color:var(--green-950)}.wellness-hours-band .container{display:flex;align-items:center;justify-content:space-between;gap:3rem}.wellness-hours-band h2{font-size:clamp(2rem,3.5vw,3.25rem);margin:.2rem 0 .8rem}.wellness-hours-band p{max-width:760px;color:inherit}.wellness-hours-band .button{flex:0 0 auto}
.wellness-page .wellness-booking-section{padding-block:clamp(3.5rem,7vw,6rem)}.wellness-page .wellness-booking-section .section-head{max-width:780px}.wellness-page .wellness-booking-section .section-head h2{font-size:clamp(2.2rem,4vw,3.7rem)}.wellness-booking-step{display:flex;gap:.9rem;align-items:flex-start;margin:1.2rem 0}.wellness-booking-step>span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:var(--gold);color:var(--green-950);font-weight:900}.wellness-booking-step h3{margin:.1rem 0 .25rem;font-size:1.45rem}.wellness-booking-step p{margin:0;color:rgba(255,255,255,.78)}.wellness-details-step{margin-top:0}.wellness-details-step p{color:var(--muted)}.wellness-page .wellness-service-card{min-height:235px;padding:1.35rem}.wellness-page .wellness-service-card strong{font-size:1.55rem}.wellness-page .wellness-booking-layout{margin-top:2rem}.wellness-page .wellness-booking-layout .enquiry-form{border-top:5px solid var(--gold)}
.wellness-sound-section{background:var(--wellness-cream)}.wellness-sound-section .container{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(560px,1.28fr);gap:clamp(2rem,5vw,5rem);align-items:center}.wellness-sound-copy{max-width:620px}.wellness-sound-price{display:flex;align-items:baseline;gap:.6rem;margin:1.5rem 0}.wellness-sound-price strong{font:700 clamp(2.5rem,5vw,4rem) var(--serif);color:var(--green-950)}.wellness-sound-price span{font-weight:800}.button-muted,.button-muted:disabled{opacity:1;cursor:not-allowed;background:#ded8ca;color:#5b584f;border-color:#aaa497}.wellness-sound-gallery{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:260px 320px;gap:1rem}.wellness-sound-gallery img{width:100%;height:100%;object-fit:cover}.wellness-sound-gallery img:first-child{grid-row:1/-1;object-position:center 53%}.wellness-sound-gallery img:nth-child(2){object-position:center 60%}.wellness-sound-gallery img:nth-child(3){object-position:center 62%}
.wellness-routes-section{background:#fffefa}.wellness-page .wellness-route-grid{gap:1.5rem}.wellness-page .wellness-route-card{min-height:500px;padding:clamp(1.6rem,3.5vw,3rem)}.wellness-page .wellness-route-card h2{font-size:clamp(1.9rem,3vw,2.7rem)}.wellness-page .wellness-route-card p{font-size:1.05rem;line-height:1.7}.wellness-page .wellness-route-card .field{margin-top:1rem}
.wellness-human-grid{grid-template-columns:minmax(380px,.78fr) minmax(0,1.1fr)}.wellness-human-grid .wellness-image-frame{height:clamp(500px,65vw,760px)}.wellness-human-grid img{object-position:center 58%}
.wellness-final{position:relative;min-height:620px;display:flex;align-items:center;color:#fff;overflow:hidden}.wellness-final>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}.wellness-final::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,28,21,.9),rgba(7,28,21,.38))}.wellness-final .container{position:relative;z-index:1}.wellness-final .container>div{max-width:680px}.wellness-final h2{font-size:clamp(2.7rem,6vw,5rem);color:#fff;margin:.3rem 0 1rem}.wellness-final p{font-size:1.1rem;color:#fff}
@media(max-width:1050px){.wellness-story-grid,.wellness-setting-grid,.wellness-massage-lead,.wellness-human-grid,.wellness-sound-section .container{grid-template-columns:1fr;gap:2.2rem}.wellness-story-grid .wellness-image-frame{grid-row:1}.wellness-story-grid .wellness-copy{grid-row:2}.wellness-setting-images{max-width:800px}.wellness-massage-image{grid-row:1;height:620px}.wellness-massage-lead .wellness-copy{grid-row:2}.wellness-sales-cards{grid-template-columns:1fr}.wellness-sales-cards article{min-height:0}.wellness-sound-gallery{max-width:850px}.wellness-human-grid .wellness-image-frame{width:min(100%,650px);height:680px}.wellness-hours-band .container{align-items:flex-start;flex-direction:column;gap:1rem}}
@media(max-width:600px){.wellness-page .section{padding-block:3.4rem}.wellness-page .wellness-hero{min-height:760px}.wellness-page .wellness-hero img{object-position:56% center}.wellness-page .wellness-hero::after{background:linear-gradient(0deg,rgba(7,28,21,.98) 0%,rgba(7,28,21,.84) 58%,rgba(7,28,21,.22) 100%)}.wellness-page .wellness-hero .page-hero-content{padding-bottom:2.6rem}.wellness-page .wellness-hero h1{font-size:clamp(2.05rem,10vw,2.75rem);line-height:1.02}.wellness-hero-bridge{font-size:.96rem}.wellness-page .hero-actions{align-items:stretch;flex-direction:column}.wellness-page .hero-actions .button{width:100%}.wellness-copy h2,.wellness-sound-copy h2{font-size:clamp(2rem,9vw,2.65rem)}.wellness-image-tall{height:520px}.wellness-setting-images{grid-template-columns:1fr 1fr;gap:.55rem}.wellness-setting-images img,.wellness-setting-images img:last-child{height:390px}.wellness-massage-image{height:560px}.wellness-sales-cards{margin-top:2.2rem}.wellness-sales-cards article{padding:1.5rem 1.2rem}.wellness-page .wellness-service-card{min-height:0}.wellness-hours-band .button{width:100%}.wellness-sound-gallery{grid-template-columns:1fr 1fr;grid-template-rows:300px 230px;gap:.55rem}.wellness-sound-gallery img:first-child{grid-column:1/-1;grid-row:auto}.wellness-sound-gallery img:nth-child(2),.wellness-sound-gallery img:nth-child(3){height:230px}.wellness-page .wellness-route-card{min-height:0}.wellness-human-grid .wellness-image-frame{height:570px}.wellness-final{min-height:650px}.wellness-final>img{object-position:67% center}.wellness-page .wellness-date-grid{grid-template-columns:1fr 1fr}.wellness-page .wellness-times button{flex:1 1 calc(33.333% - .65rem);min-width:84px}}
@media(max-width:390px){.wellness-setting-images img,.wellness-setting-images img:last-child{height:330px}.wellness-massage-image{height:510px}.wellness-human-grid .wellness-image-frame{height:520px}.wellness-page .wellness-times button{flex-basis:calc(50% - .65rem)}}

/* Version 6.25 — HeartWork final-step decision support */
.wellness-booking-choice{min-width:0}.wellness-final-reassurance{margin-top:.5rem;padding:clamp(1.4rem,2.5vw,2rem);border-top:1px solid var(--gold);border-bottom:1px solid rgba(207,181,117,.45);background:rgba(255,255,255,.045);box-shadow:inset 0 1px rgba(255,255,255,.06)}.wellness-final-reassurance .eyebrow{margin:0 0 .45rem;color:#e4c77f}.wellness-final-reassurance h3{max-width:650px;margin:0 0 1rem;font-size:clamp(1.75rem,2.8vw,2.5rem);line-height:1.08;text-wrap:balance}.wellness-reassurance-body{max-width:650px}.wellness-reassurance-body p{margin:.45rem 0;color:rgba(255,255,255,.86);line-height:1.6}.wellness-final-summary{margin:1.35rem 0;padding:1.15rem 1.25rem;background:rgba(246,240,228,.1);border-left:3px solid var(--gold)}.wellness-final-summary h4{margin:.15rem 0 .55rem;color:#fff;font:700 clamp(1.35rem,2vw,1.75rem) var(--serif)}.wellness-final-summary p{margin:.2rem 0;color:#fff}.wellness-final-summary>strong,.wellness-final-summary>span{display:block}.wellness-final-summary>strong{margin-top:.8rem;color:#e4c77f;font-size:.75rem;letter-spacing:.11em;text-transform:uppercase}.wellness-final-summary>span{margin-top:.2rem;color:rgba(255,255,255,.82)}.wellness-summary-date{font-family:var(--serif);font-size:1.2rem}.wellness-summary-time{font:700 1.5rem var(--serif)}.wellness-summary-meta{color:#f1d997!important;font-weight:800}.wellness-reassurance-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.25rem;margin:0;padding:0;list-style:none}.wellness-reassurance-list li{min-width:0;padding-top:.75rem;border-top:1px solid rgba(207,181,117,.34)}.wellness-reassurance-list strong,.wellness-reassurance-list span{display:block}.wellness-reassurance-list strong{color:#f1d997;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}.wellness-reassurance-list span{margin-top:.25rem;color:rgba(255,255,255,.78);font-size:.88rem;line-height:1.45}.wellness-page .wellness-booking-layout .enquiry-form{width:100%;min-width:0}.wellness-checkout-hold,.wellness-stripe-note{margin:.65rem 0;color:var(--muted)!important;font-size:.82rem;line-height:1.45}.wellness-checkout-hold{padding-left:.7rem;border-left:2px solid var(--gold)}.wellness-stripe-note{text-align:center}.wellness-page [data-wellness-submit]{width:100%}
.wellness-page [data-wellness-quantity-wrap][hidden]{display:none!important}
@media(max-width:900px){.wellness-page .wellness-booking-layout{gap:1.35rem}.wellness-final-reassurance{margin-bottom:.25rem}.wellness-reassurance-body{display:none}.wellness-final-reassurance h3{font-size:1.75rem}.wellness-reassurance-list span{font-size:.82rem}}
@media(max-width:600px){.wellness-page .wellness-booking-layout{margin-top:1.25rem}.wellness-page .wellness-dates,.wellness-page .wellness-times{margin-bottom:1.4rem}.wellness-final-reassurance{margin-top:.15rem;padding:1.15rem 1rem}.wellness-final-reassurance h3{display:none}.wellness-final-summary{margin:.75rem 0 1rem;padding:.9rem 1rem}.wellness-final-summary p{font-size:.9rem}.wellness-summary-date,.wellness-summary-time{display:inline;font-size:1rem}.wellness-summary-time::before{content:" · "}.wellness-summary-meta{font-size:.88rem!important}.wellness-final-summary>strong{margin-top:.6rem}.wellness-final-summary>span{font-size:.84rem}.wellness-reassurance-list{gap:.7rem .85rem}.wellness-reassurance-list li{padding-top:.55rem}.wellness-reassurance-list strong{font-size:.66rem}.wellness-reassurance-list span{display:none}.wellness-page .wellness-booking-layout .enquiry-form{padding:1.15rem}.wellness-page .wellness-details-step{margin-bottom:.8rem}}
@media(max-width:374px){.wellness-reassurance-list{grid-template-columns:1fr}}

/* Version 6.26 — Wellness footer and final-row alignment */
.wellness-page .site-footer>.container>.footer-grid{width:100%;max-width:1080px;margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(2rem,4vw,3rem)}
.wellness-page .footer-bottom>.container{max-width:1080px}
.wellness-page .wellness-booking-layout{column-gap:2rem;row-gap:0;align-items:start}
.wellness-page .wellness-booking-choice{display:contents}
.wellness-page .wellness-booking-choice>.wellness-booking-step,.wellness-page .wellness-booking-choice>.wellness-dates,.wellness-page .wellness-booking-choice>.wellness-times{grid-column:1/-1}
.wellness-page .wellness-final-reassurance{grid-column:1;margin-top:.5rem}
.wellness-page .wellness-booking-layout>.enquiry-form{grid-column:2;position:static;top:auto;align-self:start;margin-top:.5rem}
@media(max-width:900px){.wellness-page .site-footer>.container>.footer-grid{width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}.wellness-page .footer-bottom>.container{max-width:var(--max)}.wellness-page .footer-brand{grid-column:1/-1}.wellness-page .wellness-booking-layout>.enquiry-form{grid-column:1;margin-top:1.35rem}}
@media(max-width:560px){.wellness-page .site-footer>.container>.footer-grid{grid-template-columns:1fr}.wellness-page .footer-brand{grid-column:auto}}

/* Version 6.27 — field-sun-rays Wellness hero */
.wellness-page .wellness-hero img{object-position:50% 51%}
.wellness-page .wellness-hero::after{background:linear-gradient(90deg,rgba(7,28,21,.94) 0%,rgba(7,28,21,.82) 38%,rgba(7,28,21,.48) 68%,rgba(7,28,21,.12) 100%)}
.wellness-page .wellness-hero .eyebrow,.wellness-page .wellness-hero h1,.wellness-page .wellness-hero .lead,.wellness-page .wellness-hero-bridge{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.28)}
.wellness-page .wellness-hero .button-gold,.wellness-page .wellness-hero .button-light{box-shadow:0 5px 16px rgba(7,28,21,.2)}
.wellness-page .wellness-story-section .wellness-image-tall{height:clamp(460px,45vw,620px)}
.wellness-page .wellness-story-section .wellness-image-tall img{object-position:45% center}
@media(max-width:600px){.wellness-page .wellness-hero img{object-position:52% center}.wellness-page .wellness-hero::after{background:linear-gradient(0deg,rgba(7,28,21,.98) 0%,rgba(7,28,21,.94) 48%,rgba(7,28,21,.72) 72%,rgba(7,28,21,.3) 100%)}.wellness-page .wellness-story-section .wellness-image-tall{height:min(82vw,360px);aspect-ratio:4/3}.wellness-page .wellness-story-section .wellness-image-tall img{object-position:45% center}}

/* Version 6.23 — mobile-first operational site register */
.register-page{background:#f6f1e7;color:var(--ink)}.register-header{min-height:88px;padding:1rem clamp(1rem,4vw,3rem);display:flex;align-items:center;justify-content:space-between;background:var(--green-950);color:#fff}.register-header .brand{color:#fff;text-decoration:none}.register-hero{padding:clamp(2.5rem,8vw,5rem) 0;background:var(--green-950);color:#fff}.register-hero h1,.register-hero p{color:inherit}.register-hero h1{font-size:clamp(2.15rem,7vw,4rem);margin:.2rem 0 1rem}.register-shell{max-width:780px}.register-purpose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.25rem 0 2rem}.register-purpose-grid button{min-height:64px;padding:1rem;text-align:left;border:2px solid var(--green-800);background:#fff;color:var(--green-950);font:700 1rem var(--sans);cursor:pointer}.register-purpose-grid button.selected{background:var(--green-950);color:#fff;outline:3px solid var(--gold);outline-offset:2px}.register-booking,.register-form,.register-success,.register-current{margin:1.5rem 0;padding:clamp(1.25rem,4vw,2rem);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft)}.register-booking summary{cursor:pointer;font-weight:800;padding:.5rem 0}.register-form fieldset{margin:1.5rem 0;padding:1rem;border:1px solid var(--line)}.register-form legend{font-weight:800;padding:0 .4rem}.register-form .button{min-height:52px}.register-submit{width:100%;margin-top:1.25rem;font-size:1.05rem}.register-person-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;align-items:end;margin-bottom:.8rem}.register-remove{min-height:48px;padding:.6rem;border:1px solid #8b3838;background:#fff;color:#742828}.register-success h2{font-size:clamp(2rem,8vw,3.5rem);color:var(--green-950)}.register-success dl{display:grid;grid-template-columns:150px 1fr;gap:.6rem}.register-success dd{margin:0}.register-footer{text-align:center;padding:2rem;background:var(--green-950);color:#fff}.register-footer a{color:#fff}.site-headcount-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.site-headcount-card{display:flex;flex-direction:column;padding:1.2rem;background:#fff;border:1px solid var(--line);color:var(--green-950);text-decoration:none}.site-headcount-card strong{font:700 clamp(2rem,5vw,3.5rem) var(--serif)}.site-headcount-card.junior{background:#f5df9d;border:3px solid #8a6507}.site-headcount-card.small strong{font-size:2rem}.register-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0}.register-tabs button{min-height:48px;padding:.7rem 1rem;border:1px solid var(--green-800);background:#fff;cursor:pointer}.register-tabs button.selected{background:var(--green-950);color:#fff}.register-admin-tools{display:flex;gap:.8rem;align-items:end}.register-admin-tools .field{flex:1}.register-admin-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem;margin:.7rem 0;background:#fff;border-left:5px solid var(--green-800);box-shadow:var(--shadow-soft)}.register-admin-card.stale{border-color:#a94442;background:#fff4f1}.junior-tag{font:700 .72rem var(--sans);text-transform:uppercase;background:#f5df9d;padding:.2rem .4rem}.emergency-head{border-top:5px solid var(--green-950);margin-top:2rem;padding-top:1rem}
@media(max-width:600px){.register-purpose-grid{grid-template-columns:1fr}.register-person-row{grid-template-columns:1fr}.register-person-row .register-remove{width:100%}.register-success dl{grid-template-columns:1fr}.register-success dd{margin-bottom:.6rem}.site-headcount-grid{grid-template-columns:1fr 1fr}.site-headcount-card:first-child,.site-headcount-card.junior{grid-column:1/-1}.register-admin-card{align-items:flex-start;flex-direction:column}.register-admin-card .button{width:100%}.register-admin-tools{align-items:stretch;flex-direction:column}.register-admin-tools .button{width:100%}}
@media print{.register-header,.register-tabs,.register-admin-tools,.admin-toolbar .button,.register-admin-card .button{display:none!important}.register-admin-card{box-shadow:none;break-inside:avoid}}
.recent-catches{grid-column:1/-1;margin-top:clamp(2rem,5vw,4rem)}.recent-catch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.recent-catch-grid article{padding:1.25rem;background:#fff;border:1px solid var(--line)}
.fishing-hero-copy .lead,.fishing-hero-copy .eyebrow,.catch-log-hero .lead,.catch-log-hero .eyebrow{color:#fff}.fishing-hero-actions .button{white-space:normal;text-align:center;line-height:1.25;min-height:52px}
@media(max-width:680px){.recent-catch-grid{grid-template-columns:1fr}}

/* Botts Pool density correction: keep related content and photography connected. */
.fishing-page main > .section{padding-block:clamp(2rem,3.3vw,3rem)}
.fishing-page main > .section-sm{padding-block:clamp(1.75rem,3vw,2.5rem)}
.fishing-page main > .section > .container,
.fishing-page main > .section-sm > .container,
.fishing-page .fishing-quick > .container{width:min(calc(100% - 2rem),1320px)}
.fishing-page .section-heading{margin-bottom:1rem}
.fishing-page .section-heading h2,
.fishing-page .section-heading p:last-child{margin-bottom:0}
.fishing-page h1,.fishing-page h2,.fishing-page h3{margin-bottom:.55rem}
.fishing-page p{margin-bottom:.75rem}
.fishing-page p:last-child,.fishing-page article > :last-child,.fishing-page aside > :last-child{margin-bottom:0}
.fishing-new-hero{min-height:clamp(500px,60vh,620px)}
.fishing-hero-copy{padding-block:clamp(3rem,6vw,5rem) clamp(1.75rem,3vw,2.5rem)}
.fishing-hero-copy .breadcrumb{margin-bottom:.65rem}
.fishing-hero-actions{gap:.65rem;margin-top:1rem}
.fishing-quick-grid span{padding:.9rem 1rem}
.fishing-species,.fishing-ticket-panel,.directions-panel,.history-journal{gap:clamp(1.5rem,3vw,2.5rem);align-items:start}
.species-list{gap:.5rem}
.species-list li{padding:.7rem .85rem}
.fishing-guide-grid{gap:.75rem}
.fishing-guide-grid article,.rules-notice,.journal-card{padding:clamp(1.125rem,1.8vw,1.5rem)}
.rules-notice{margin-top:.75rem}
.care-grid{gap:clamp(1rem,2.5vw,2rem)}
.care-grid article{padding:clamp(1.25rem,2.2vw,1.75rem)}
.care-grid ul{margin:.5rem 0 0;padding-left:1.2rem}
.care-grid li+li{margin-top:.3rem}
.direction-actions{gap:.6rem}
.direction-actions-single{align-self:center;justify-items:start}
.direction-actions-single .button{width:min(100%,22rem);min-height:48px}
.fishing-new-gallery{gap:.65rem}
.faq-list details{padding:.7rem 0}
.recent-catches{margin-top:1.5rem}
.recent-catch-grid{gap:.75rem}
.recent-catch-grid article{padding:1.125rem}
.fishing-page .journey-booking-inner{gap:clamp(1rem,2.5vw,2rem)}
.fishing-page .journey-booking-cta .conversion-review{margin-top:.85rem}
.fishing-page .site-footer{padding-top:clamp(2rem,3vw,3rem)}

@media(max-width:900px){
  .fishing-species,.fishing-ticket-panel,.directions-panel,.history-journal{gap:1.25rem}
}
@media(max-width:680px){
  .fishing-page main > .section{padding-block:1.75rem}
  .fishing-page main > .section-sm{padding-block:1.5rem}
  .fishing-page main > .section > .container,
  .fishing-page main > .section-sm > .container,
  .fishing-page .fishing-quick > .container{width:calc(100% - 2rem)}
  .fishing-new-hero{min-height:520px}
  .fishing-hero-copy{padding-block:2.5rem 1.5rem}
  .fishing-hero-copy h1{font-size:clamp(2.35rem,12vw,3.25rem);margin-bottom:.45rem}
  .fishing-hero-copy .lead{line-height:1.45;margin-bottom:.65rem}
  .fishing-hero-actions{gap:.5rem;margin-top:.75rem}
  .fishing-hero-actions .button{min-height:48px;padding-block:.65rem}
  .fishing-quick-grid{grid-template-columns:1fr 1fr}
  .fishing-quick-grid span{padding:.7rem .75rem;border-right:1px solid rgba(255,255,255,.18)}
  .fishing-quick-grid span:nth-child(even){border-right:0}
  .fishing-quick-grid span:last-child{grid-column:1/-1;border-right:0}
  .fishing-quick-grid small{line-height:1.35}
  .fishing-species,.fishing-ticket-panel,.directions-panel,.history-journal{gap:1rem}
  .direction-actions-single{width:100%}
  .direction-actions-single .button{width:100%}
  .species-list{gap:.45rem}
  .species-list li{padding:.65rem .7rem}
  .fishing-guide-grid{gap:.6rem}
  .fishing-guide-grid article,.rules-notice,.journal-card{padding:1rem}
  .rules-notice{margin-top:.6rem}
  .care-grid{gap:.65rem}
  .care-grid article{padding:1rem}
  .fishing-new-gallery{gap:.55rem}
  .fishing-new-gallery figure{width:100%;aspect-ratio:4/3}
  .faq-list details{padding:.6rem 0}
  .recent-catches{margin-top:1.25rem}
  .fishing-page .journey-booking-cta .conversion-review{margin-top:.75rem}
  .fishing-page .site-footer{padding-top:1.75rem}
}

/* Version 6.9 — show the place before asking for an action. */
.voucher-control{margin:1rem 0;padding:.75rem 0;border-top:1px solid var(--line,#d8ded9);border-bottom:1px solid var(--line,#d8ded9)}
.voucher-control summary{cursor:pointer;font-weight:700;color:var(--green-800)}
.voucher-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;margin-top:.75rem;max-width:30rem}
.voucher-entry input{min-width:0;width:100%;text-transform:uppercase}
.voucher-entry .button{min-height:44px}
.voucher-control [data-voucher-status]{margin:.55rem 0 0;color:var(--green-800);font-weight:700}
.voucher-remove{border:0;background:none;padding:.35rem 0;color:var(--green-800);text-decoration:underline;cursor:pointer}
.booking-summary-discount{color:var(--green-800)}
@media(max-width:360px){.voucher-entry{grid-template-columns:1fr}.voucher-entry .button{width:100%}}
.home-first-booking{margin-top:1.15rem}
.home-context-link{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;color:var(--green-800);font-weight:800;text-underline-offset:.22em}
.home-context-link-light{color:#fff}
.booking-choice-cta .cta-button-group{align-items:center}
.fishing-page{padding-bottom:0}

@media(max-width:820px){
  .home-page{padding-bottom:0}
}

@media(max-width:560px){
  .home-page .hero{min-height:clamp(500px,72svh,570px)}
  .home-page .hero-content{padding:2.75rem 0 1.8rem}
  .home-page .hero .script:first-child{margin-bottom:.2rem}
  .home-page .hero h1.home-seo-h1-v510{margin-bottom:.55rem}
  .home-page .hero .ornament{margin-block:.35rem}
  .home-page .hero .home-slower-v510{margin-bottom:.4rem}
  .home-page .hero .lead{margin-bottom:0}
  .home-first-booking{margin:.95rem 0 0}
  .home-first-booking .button{width:100%;justify-content:center;min-height:48px}
  .home-discovery-card{display:block;min-height:0;grid-template-columns:1fr;overflow:hidden}
  .home-discovery-card .card-media{width:100%;aspect-ratio:16/10}
  .home-discovery-card .card-media picture{display:block;width:100%;height:100%}
  .home-discovery-card .card-media img{width:100%;height:100%;object-fit:cover}
  .home-discovery-card .card-body{padding:.9rem 1rem 1rem}
  .home-discovery-card .card-body p{display:block;overflow:visible;font-size:.82rem;line-height:1.45}
  .booking-choice-cta .cta-button-group{gap:.65rem}
}

@media(max-width:680px){
  .fishing-page{padding-bottom:0}
  .fishing-new-hero{min-height:clamp(460px,68svh,520px)}
  .fishing-hero-copy{padding-block:2.25rem 1.4rem}
  .fishing-hero-copy h1{font-size:clamp(2rem,9vw,2.65rem);text-wrap:wrap}
  .fishing-hero-copy .lead{margin-bottom:0}
}
.visitor-rule{margin:1.25rem 0;padding:1rem;border-left:4px solid var(--gold,#b7893f);background:#f8f3e8}.visitor-card-list{display:grid;gap:.75rem;margin-top:1rem}.visitor-card{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid rgba(32,55,42,.2);border-radius:.65rem;background:#fff}.visitor-card>div:first-child{display:grid;gap:.25rem}.visitor-actions{display:flex;gap:.5rem;align-items:center}.visitor-manage form{margin:1rem 0;padding:1rem;background:#fff;border-radius:.65rem}@media(max-width:600px){.visitor-card{display:grid}.visitor-actions{display:grid;grid-template-columns:1fr 1fr}.visitor-actions .button{width:100%;min-height:44px}.visitor-manage .form-grid{grid-template-columns:1fr}.visitor-manage{padding-left:1rem;padding-right:1rem}}

.admin-mobile-back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:.75rem 0;padding:.65rem 1rem;border:2px solid var(--green-800,#285340);border-radius:.35rem;background:#fff;color:var(--green-950,#12372a);font-weight:800;text-decoration:none;max-width:100%;white-space:normal;text-align:center}.admin-mobile-back:focus-visible{outline:3px solid var(--gold,#b7893f);outline-offset:3px}.register-header a.button:not(.admin-back-control)[href="/admin"]::before,.register-header a.button:not(.admin-back-control)[href="/admin/correspondence"]::before{content:"← Back to ";font-weight:900}.register-header a.button[href="/admin"],.register-header a.button[href="/admin/correspondence"]{min-height:44px;max-width:100%;white-space:normal;text-align:center}.register-header .admin-back-control{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;border:2px solid #f0d58f;border-radius:.4rem;background:#fffdf7;color:#12372a!important;font-weight:900;text-decoration:none;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.register-header .admin-back-control:hover{background:#f4dfaa;color:#0b291e!important}.register-header .admin-back-control:focus-visible{outline:3px solid #ffd76a;outline-offset:3px}.admin-back-group{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}.register-header .admin-secondary-admin-link{display:inline-flex;align-items:center;min-height:44px;color:#fff;border:1px solid rgba(255,255,255,.75);padding:.6rem .85rem;border-radius:.35rem;text-decoration:none}
@media(max-width:768px){.admin-mobile-back{min-height:44px}.admin-booking-detail .admin-mobile-back{position:sticky;top:.5rem;z-index:4}.correspondence-thread-page .admin-secondary-admin-link{display:none}.register-header .admin-back-control{min-height:44px;max-width:min(58vw,240px);padding:.55rem .75rem}}
.register-header a.button[href="/admin"],.register-header a.button[href="/admin/correspondence"]{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;border:2px solid #f0d58f;border-radius:.4rem;background:#fffdf7;color:#12372a!important;font-weight:900;text-decoration:none;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.register-header a.button[href="/admin"]:hover,.register-header a.button[href="/admin/correspondence"]:hover{background:#f4dfaa;color:#0b291e!important}.register-header a.button[href="/admin"]:focus-visible,.register-header a.button[href="/admin/correspondence"]:focus-visible{outline:3px solid #ffd76a;outline-offset:3px}

/* Correspondence desk: desktop split view, calm full-screen mobile conversation. */
.correspondence-inbox-controls{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.correspondence-inbox-controls form{min-width:min(100%,320px)}.correspondence-inbox-controls form label{display:block;font-weight:800;margin-bottom:.35rem}.correspondence-inbox-controls form>div{display:flex;gap:.45rem}.correspondence-inbox-controls input{min-width:0;min-height:46px}.correspondence-desk-grid{display:grid;grid-template-columns:minmax(310px,38%) minmax(0,1fr);gap:1rem;height:min(74vh,900px);min-height:620px}.correspondence-inbox-pane,.correspondence-conversation-pane{min-width:0;overflow:auto;border:1px solid #d8d4c7;border-radius:14px;background:#f6f3ea}.correspondence-inbox-pane{padding:.35rem .7rem}.correspondence-conversation-pane{position:relative}.correspondence-conversation-pane iframe{display:block;width:100%;height:100%;border:0;background:#fff}.correspondence-empty-selection{padding:clamp(1.25rem,4vw,3rem)}.correspondence-row-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.correspondence-row-side{display:grid;justify-items:end;align-content:start;gap:.5rem;text-align:right}.correspondence-event.internal{border-color:#76598f;background:#f8f2fb}.correspondence-status-control{min-width:220px}.correspondence-status-control select{min-height:46px}.correspondence-compose-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1rem}.internal-note-panel{border-left:5px solid #76598f}.correspondence-thread-page textarea{font-size:16px}.correspondence-thread-page button,.correspondence-thread-page select,.correspondence-inbox-controls button,.register-tabs button{min-height:44px}
@media(max-width:767px){.correspondence-desk-grid{display:block;height:auto;min-height:0}.correspondence-inbox-pane{overflow:visible;border:0;padding:0;background:transparent}.correspondence-conversation-pane{display:none}.correspondence-compose-grid{grid-template-columns:1fr}.correspondence-row-side{justify-items:start;text-align:left}.correspondence-inbox-controls{align-items:stretch}.correspondence-inbox-controls form,.correspondence-inbox-controls form>div{width:100%}.correspondence-inbox-controls form>div{flex-wrap:wrap}.correspondence-inbox-controls input{flex:1 1 190px}.correspondence-inbox-controls .button{flex:1 0 auto}.correspondence-thread-page .section{padding-top:.5rem}.correspondence-thread-page .booking-step{padding:1rem}.correspondence-thread-page .admin-toolbar{align-items:stretch}.correspondence-status-control{min-width:0;width:100%}.correspondence-thread-page textarea{width:100%;max-width:100%}}
.correspondence-row.is-spam{border-left-color:#7b4b3f;background:#f5eee8}.spam-badge{background:#7b4b3f;color:#fff;border-radius:999px;padding:.18rem .48rem;font-weight:700}.spam-reason{color:#623b32;font-size:.9rem}.correspondence-spam-action{margin:.65rem 0 0;min-height:44px}
.correspondence-live-status{min-height:1.5rem;margin:.25rem 0 .75rem;color:var(--muted);font-size:.9rem}.correspondence-row.is-selected{outline:2px solid var(--gold);outline-offset:-2px}
.correspondence-selection-header{display:flex;align-items:center;min-height:44px;margin:.35rem 0}.correspondence-selection-header label,.correspondence-card-select{display:flex;align-items:center;gap:.45rem;font-weight:800}.correspondence-checkbox-target{display:grid;place-items:center;width:44px;height:44px}.correspondence-checkbox-target input{width:22px;height:22px;accent-color:var(--green-800,#285340)}.correspondence-row{position:relative}.correspondence-card-select{position:absolute;z-index:2;top:.35rem;left:.35rem}.correspondence-row-open{padding-left:3.25rem}.correspondence-bulk-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.65rem;border:1px solid #b7893f;border-radius:.55rem;background:#fff8e8}.correspondence-bulk-toolbar[hidden]{display:none}.correspondence-bulk-toolbar .button{min-height:44px}.correspondence-bulk-toolbar strong{margin-right:auto}@media(max-width:767px){.correspondence-bulk-toolbar{position:sticky;top:0;z-index:8}.correspondence-bulk-toolbar .button{flex:1 1 100%;width:100%}.correspondence-row-open{padding-left:3.1rem}}
.correspondence-triage-panel{border-left:5px solid var(--gold,#b7893f)}.triage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0}.triage-grid div{padding:.75rem;background:#f7f2e6;border:1px solid #d8c9a3;border-radius:.45rem}.triage-grid dt{font-weight:800;color:var(--green-950)}.triage-grid dd{margin:.25rem 0 0}.correspondence-triage-panel select,.correspondence-triage-panel textarea,.correspondence-triage-panel button{min-height:44px}.correspondence-triage-panel dialog{width:min(620px,calc(100% - 2rem));max-height:85vh;overflow:auto;border:3px solid var(--gold);border-radius:.7rem;padding:1.2rem}.dialog-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}@media(max-width:600px){.triage-grid{grid-template-columns:1fr}.correspondence-triage-panel{padding:1rem}.dialog-actions .button{width:100%;min-height:48px}}

/* V6.9 multi-page Admin operations hub. */
.admin-hub-page,.admin-area-page{background:#f6f1e7}.admin-area-page main,.admin-hub-page main{padding:1.5rem 0 3rem}.admin-primary-nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;margin:0 0 1.5rem}.admin-primary-nav a{display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:48px;padding:.55rem;border:1px solid #a89467;border-radius:.45rem;background:#fff;color:#173b2b;font-weight:800;text-align:center;text-decoration:none}.admin-primary-nav a[aria-current="page"]{background:#173b2b;color:#fff;border-color:#173b2b}.admin-attention-badge{display:inline-grid;place-items:center;min-width:1.65rem;height:1.65rem;padding:0 .35rem;border-radius:99px;background:#7b382f;color:#fff;font-size:.82rem}.admin-breadcrumb{margin:.25rem 0 1rem;font-weight:700}.admin-breadcrumb a{color:#285340}.admin-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;align-items:end}.admin-filter-grid input,.admin-filter-grid select,.admin-filter-grid button{width:100%;min-height:46px}.admin-list-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.65rem 0;padding:1rem;border:1px solid #d6cdbb;border-left:5px solid #285340;border-radius:.55rem;background:#fff;box-shadow:var(--shadow-soft)}.admin-list-card h2{margin:.15rem 0;font-size:1.2rem}.admin-list-card p{margin:.25rem 0}.admin-category-grid,.booking-workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.admin-category-grid a{color:inherit;text-decoration:none}.admin-email-actions{display:flex;gap:.65rem;flex-wrap:wrap}.admin-email-preview{margin-top:1rem;padding:1rem;border:2px solid #b7893f;background:#fff}.admin-email-preview pre{white-space:pre-wrap;overflow-wrap:anywhere}.booking-workspace textarea{font-size:16px}
.admin-bookings-primary-action{margin:.25rem 0 1rem}.admin-manual-booking{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.4rem;border:2px solid #9b5a16;background:#c97720;color:#fff;font-weight:900;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 3px 8px rgba(75,45,15,.18)}.admin-manual-booking:hover,.admin-manual-booking:focus-visible{border-color:#70400e;background:#a95f16;color:#fff}
@media(max-width:900px){.admin-primary-nav{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.admin-area-page main,.admin-hub-page main{padding-top:.75rem}.admin-primary-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.admin-primary-nav a{min-height:48px;font-size:.9rem;padding:.5rem}.admin-list-card{display:grid}.admin-list-card .button{width:100%;min-height:44px}.admin-category-grid,.booking-workspace-grid{grid-template-columns:1fr}.admin-filter-grid{grid-template-columns:1fr}.admin-email-actions .button{width:100%;min-height:48px}.admin-bookings-primary-action,.admin-manual-booking{width:100%;max-width:100%;box-sizing:border-box}.register-header{gap:.5rem;padding:.65rem}.register-header .brand{min-width:0}.admin-back-group{max-width:65%}}
.booking-payment-copy{width:100%;min-height:48px;margin-top:.65rem}.booking-payment-copy-status{min-height:1.5em;margin:.35rem 0 0;color:#6f211c}.booking-payment-complete{font-weight:900;color:#1b6347;letter-spacing:.04em}@media(max-width:600px){.booking-payment-card,.booking-payment-copy{min-width:0;max-width:100%;width:100%}.booking-payment-copy{min-height:48px;white-space:normal}}
.booking-email-send{min-height:48px}.booking-email-modal{position:fixed;z-index:10020;inset:0;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:rgba(8,29,22,.82);overflow:auto}.booking-email-modal[hidden]{display:none}.booking-email-modal-card{width:min(100%,430px);max-height:calc(100dvh - 2rem);overflow:auto;border-radius:18px;background:#123d2f;color:#fff;text-align:center;box-shadow:0 22px 70px rgba(0,0,0,.38)}.booking-email-modal-core{padding:clamp(1.3rem,5vw,2rem)}.booking-email-modal-card h2,.booking-email-modal-card p{color:#fff}.booking-email-modal-icon{display:grid;min-height:76px;place-items:center}.booking-email-spinner{display:block;width:62px;height:62px;border:7px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;animation:booking-email-spin .8s linear infinite}.booking-email-result{display:grid;width:72px;height:72px;place-items:center;border:5px solid currentColor;border-radius:50%;font-size:2.8rem;font-weight:900;line-height:1}.booking-email-result.success{color:#fff}.booking-email-result.failure{color:#ffd6ce}.booking-email-recipient strong{overflow-wrap:anywhere}.booking-email-modal-actions{display:grid;gap:.65rem;margin-top:1.2rem}.booking-email-modal-actions .button{width:100%;min-height:48px;align-items:center;justify-content:center}.booking-email-modal-actions .button-outline{border-color:#fff;color:#fff;background:transparent}.booking-email-modal-open{overflow:hidden}@keyframes booking-email-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-email-spinner{animation-duration:1.8s}}@media(max-width:600px){.booking-customer-email,.booking-customer-email form,.booking-customer-email .field{min-width:0}.booking-customer-email input,.booking-customer-email textarea,.booking-customer-email .admin-email-actions,.booking-customer-email .button{width:100%;max-width:100%}.booking-customer-email .button{min-height:48px}.booking-email-modal{align-items:center;padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.booking-email-modal-card{width:100%;max-height:calc(100dvh - 1.5rem)}.booking-email-modal-actions .button{min-height:52px}}

.admin-overdue-alert{margin:0 0 1rem;border:2px solid #8f3028;border-radius:.55rem;background:#fff0ec}.admin-overdue-alert a{display:flex;justify-content:space-between;gap:.75rem;align-items:center;min-height:54px;padding:.8rem 1rem;color:#6f211c;text-decoration:none}.admin-overdue-alert strong{font-size:1.05rem}.admin-overdue-alert span{text-decoration:underline}.admin-pitch-card.checkout-overdue,.admin-list-card.checkout-overdue,.operations-card.checkout-overdue{border-color:#8f3028;background:#fff0ec}.checkout-overdue .admin-pitch-state,.admin-overdue-label{background:#8f3028;color:#fff;border-radius:999px;padding:.28rem .55rem;font-weight:800}.retrospective-checkout{margin-top:1rem;padding:1rem;border:2px solid #8f3028;background:#fff}.retrospective-checkout .field{margin:.75rem 0}.retrospective-checkout textarea{min-height:110px}.admin-warning{font-weight:800;color:#6f211c}
@media(max-width:600px){.admin-overdue-alert a{align-items:flex-start;flex-direction:column}.retrospective-checkout .button{width:100%;min-height:48px}}

/* Booking Operations always exposes both primary actions; state controls availability. */
.booking-operation-state{margin:.25rem 0 .75rem;font-size:1rem}
.booking-operation-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:.75rem 0 1rem}
.booking-operation-control{display:flex;min-width:0;min-height:54px;flex-direction:column;gap:.15rem;line-height:1.1}
.booking-operation-control>span{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.booking-operation-control:disabled{border-color:#8b948e;background:#e4e7e3;color:#35483e;cursor:not-allowed;opacity:1;transform:none}
.retrospective-checkout[hidden]{display:none}
.missed-checkin-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0}
.missed-checkin-choice .button{min-width:0;min-height:52px;white-space:normal}
.admin-pitch-card.check-in-issue,.admin-list-card.check-in-issue{border-color:#9a6517;background:#fff8e8}
.check-in-issue .admin-pitch-state,.admin-checkin-label{display:inline-block;border-radius:999px;padding:.28rem .55rem;background:#8a5a15;color:#fff;font-weight:800}
@media(max-width:600px){.booking-operation-actions{grid-template-columns:1fr 1fr;gap:.5rem}.booking-operation-control{width:100%;min-height:52px;padding:.65rem .45rem}}
@media(max-width:600px){.missed-checkin-choice{grid-template-columns:1fr}.missed-checkin-choice .button{width:100%;min-height:52px}}

/* Live Pitch accommodation cues: local, supplementary line pictograms. */
.admin-hub-page .admin-pitch-visual{
  width:100%;
  height:64px;
  display:grid;
  place-items:center;
  margin:.45rem 0 .35rem;
  color:#173b2b;
  overflow:hidden;
}
.admin-hub-page .admin-pitch-visual svg{
  display:block;
  width:min(96px,100%);
  height:60px;
  fill:none;
  stroke:currentColor;
  stroke-width:3.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.admin-hub-page .admin-pitch-visual .departure-puff{fill:currentColor;stroke:none}
@media(prefers-reduced-motion:reduce){
  .admin-hub-page .checkout-day-animation .departure-puff{opacity:0!important}
}
@media(max-width:600px){
  .admin-hub-page .admin-pitch-visual{height:50px;margin:.35rem 0 .25rem}
  .admin-hub-page .admin-pitch-visual svg{width:min(70px,100%);height:46px;stroke-width:3}
}
.correspondence-row{display:block}.correspondence-row-open{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;color:inherit;text-decoration:none}.correspondence-row-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.correspondence-row-actions .button{min-height:44px}.button-danger{border-color:#7b2f2f;background:#7b2f2f;color:#fff}
@media(max-width:767px){.correspondence-row-open{grid-template-columns:1fr}.correspondence-row-actions .button{flex:1 1 190px}}

/* Admin Home mobile acceptance: clear money figures and iOS safe-area spacing. */
.admin-home-revenue{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.admin-home-revenue .admin-revenue-card{padding:1rem;background:#fffdf8;border:2px solid #b8a679;border-radius:.45rem;color:#12372a;box-shadow:0 5px 14px rgba(18,55,42,.08)}
.admin-home-revenue .admin-revenue-card span{display:block;margin-bottom:.35rem;color:#285340;font-size:.82rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;opacity:1}
.admin-home-revenue .admin-revenue-card strong{display:block;color:#12372a;font-family:var(--serif);font-size:clamp(1.65rem,4vw,2.25rem);font-weight:800;line-height:1.1;opacity:1;overflow-wrap:anywhere}
@media(max-width:600px){.admin-hub-page .register-header{min-height:calc(72px + env(safe-area-inset-top));padding:.65rem .65rem;padding-top:calc(.65rem + env(safe-area-inset-top))}.admin-hub-page .admin-primary-nav{position:static;top:auto;transform:none}.admin-home-revenue{grid-template-columns:1fr;gap:.65rem}.admin-home-revenue .admin-revenue-card{width:100%;min-width:0;padding:.9rem 1rem}}

/* Global Admin metric contract: operational figures always sit on light cards
   with opaque dark text. Public-site revenue cards may still use their dark skin. */
.admin-page .admin-revenue-card,
.admin-page .admin-stat,
.admin-page .admin-summary-card,
.admin-page .site-headcount-card {
  min-width:0;
  padding:1rem;
  border:2px solid #b8a679;
  border-radius:.45rem;
  background:#fffdf8;
  color:#12372a;
  box-shadow:0 5px 14px rgba(18,55,42,.08);
  opacity:1;
}
.admin-page .admin-revenue-card span,
.admin-page .admin-stat span,
.admin-page .admin-summary-card span,
.admin-page .site-headcount-card span {
  display:block;
  margin-bottom:.35rem;
  color:#285340;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.35;
  text-transform:uppercase;
  opacity:1;
}
.admin-page .admin-revenue-card strong,
.admin-page .admin-stat strong,
.admin-page .admin-summary-card strong,
.admin-page .site-headcount-card strong {
  display:block;
  color:#12372a;
  font-family:var(--serif);
  font-size:clamp(1.55rem,3vw,2.25rem);
  font-weight:800;
  line-height:1.1;
  overflow-wrap:anywhere;
  opacity:1;
}
.admin-page .admin-summary-card small,
.admin-page .admin-revenue-card small,
.admin-page .site-headcount-card small {
  display:block;
  margin-top:.4rem;
  color:#46594f;
  font-weight:700;
  opacity:1;
}
.admin-page .admin-revenue-overall {
  border-color:#8f7641;
  background:#f7efdd;
}
.admin-page .admin-revenue-overall strong { font-size:clamp(2rem,5vw,3.25rem); }
.admin-page .field>label,
.admin-page .admin-section-heading label { color:#173b2b; opacity:1; }
@media(max-width:600px){
  .admin-page .admin-revenue-grid,
  .admin-page .admin-summary-grid { grid-template-columns:1fr; }
  .admin-page .admin-revenue-overall { grid-column:auto; }
  .admin-page .admin-revenue-card,
  .admin-page .admin-stat,
  .admin-page .admin-summary-card,
  .admin-page .site-headcount-card { width:100%; padding:.9rem 1rem; }
}
.security-windows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.security-counts{display:grid;gap:.5rem}.security-counts div,.security-reasons li{display:flex;justify-content:space-between;gap:1rem}.security-counts dd{font-size:1.5rem;font-weight:900}.security-reasons{display:grid;gap:.6rem}@media(max-width:600px){.security-windows{grid-template-columns:1fr}}
.stable-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin:1rem 0}.stable-alerts{margin:1rem 0 1.5rem;padding:1rem;border:2px solid #b7893f;border-radius:.6rem;background:#fffaf0}.stable-alerts h2{margin:.1rem 0 .5rem}.stable-alert-empty{margin:0;color:#285340;font-weight:750}.stable-yard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.stable-card{display:flex;min-height:245px;flex-direction:column;padding:1rem;border:2px solid #6d876f;border-radius:.65rem;background:#f8fbf7;color:#173b2b;text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .16s ease,box-shadow .16s ease}.stable-card:hover,.stable-card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(24,45,35,.12)}.stable-card.occupied{border-color:#8c6239;background:#fffaf0}.stable-card.reserved{border-color:#b7893f;background:#fff7df}.stable-card.out_of_service{border-color:#7c7c78;background:#f1f0ec}.stable-card-heading{display:flex;justify-content:space-between;gap:.5rem;align-items:start;padding-bottom:.7rem;border-bottom:1px solid rgba(18,55,42,.18)}.stable-card-heading strong{font-family:var(--serif);font-size:1.25rem}.stable-card-heading span,.stable-detail-state{padding:.25rem .48rem;border-radius:99px;background:#dcecdf;font-size:.68rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.occupied .stable-card-heading span,.stable-detail-state.occupied{background:#ead8c1;color:#67401f}.reserved .stable-card-heading span,.stable-detail-state.reserved{background:#f0deb1;color:#684b10}.out_of_service .stable-card-heading span,.stable-detail-state.out_of_service{background:#deddd7;color:#444}.stable-card-body{flex:1}.stable-card-body h3{margin:.9rem 0 .25rem;font-size:1.12rem}.stable-card-body p{margin:.2rem 0}.stable-card-body dl{margin:.8rem 0}.stable-card-body dl div{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-top:1px solid rgba(18,55,42,.12)}.stable-card-body dt{font-weight:800}.stable-card-body dd{margin:0;text-align:right}.stable-card-open{font-weight:850;text-decoration:underline}.stable-detail-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.stable-detail-heading h1{margin:.1rem 0 .45rem}.stable-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.stable-charge{font-family:var(--serif);font-size:1.8rem}.stable-payment-actions>div{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.stable-payment-actions button[disabled]{opacity:.55;cursor:not-allowed}.stable-history-list p{padding:.5rem 0;border-bottom:1px solid var(--line)}.stable-assignment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.stable-form-wide{grid-column:1/-1}.stable-assignment-form textarea{min-height:100px}.stable-alert{padding:.7rem;border-left:5px solid #b7893f;background:#fff}.stable-alert.critical{border-color:#8f3028}.stable-alert p{margin:.2rem 0}.stable-plan-title{margin-top:1.5rem}
.stable-revenue{margin:.5rem 0 1rem;padding:.9rem;border:1px solid #b9c9bc;border-radius:.7rem;background:#f7fbf7}.stable-revenue h2{margin:.1rem 0 .65rem}.stable-revenue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.stable-revenue-value{min-width:0;padding:.65rem;background:#fff;border:1px solid #d9e2da;border-radius:.55rem}.stable-revenue-value span{display:block;font-size:.72rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.stable-revenue-value strong{display:block;margin-top:.2rem;font-family:var(--serif);font-size:1.35rem;color:#123d2f;white-space:nowrap}.stable-yard-more{display:contents}.stable-yard-more[hidden]{display:none}.stable-more-control{display:block;width:100%;min-height:48px;margin:1rem 0}.stable-alert{display:block;color:inherit;text-decoration:none;min-height:44px}.stable-alert+.stable-alert{margin-top:.5rem}
.stable-payment-return{max-width:620px;margin:0 auto}.stable-returning{font-weight:800;color:#285340}.stable-return-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center}
.stable-customer-return{text-align:center;padding:clamp(1.25rem,6vw,2.5rem);overflow-wrap:anywhere}.stable-customer-success-mark{display:grid;width:64px;height:64px;margin:0 auto 1rem;place-items:center;border-radius:50%;background:#e1f1e5;color:#174d32;font-size:2rem;font-weight:900}.stable-customer-return h1{font-size:clamp(1.75rem,8vw,2.65rem)}
@media(max-width:900px){.stable-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.stable-yard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.stable-yard-page .admin-shell{padding-inline:max(.75rem,env(safe-area-inset-left))}.stable-revenue-grid{gap:.35rem}.stable-revenue-value{padding:.55rem .4rem}.stable-revenue-value strong{font-size:clamp(1.05rem,5vw,1.3rem)}.stable-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.stable-summary .admin-stat:first-child{grid-column:auto}.stable-summary .admin-stat{min-width:0;padding:.65rem .35rem}.stable-yard-grid,.stable-detail-grid,.stable-assignment-form{grid-template-columns:1fr}.stable-card{min-height:0;padding:.85rem}.stable-card-heading{padding-bottom:.5rem}.stable-card-body h3{margin:.55rem 0 .2rem}.stable-card-open{margin-top:.45rem}.stable-form-wide{grid-column:auto}.stable-detail-heading{align-items:flex-start;flex-direction:column}.stable-detail-heading .button{width:100%;min-height:48px}.stable-payment-actions>div{display:grid}.stable-payment-actions button,.stable-more-control{min-height:48px;width:100%}.stable-detail-grid .booking-step{padding:.9rem;min-width:0}.stable-detail-grid a{overflow-wrap:anywhere}.stable-payment-return{margin-inline:0;overflow-wrap:anywhere}.stable-return-button{width:100%}}
.stable-electricity-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem;margin:1rem 0;border:2px solid #d38a27;border-radius:.7rem;background:#fff7e8}.stable-electricity-summary h2{margin:.1rem 0}.stable-electricity-settings{padding:1rem;margin-bottom:1rem;border:1px solid #d8c39f;border-radius:.7rem;background:#fff}.stable-electricity-settings form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.stable-electricity-settings label{font-weight:800}.stable-electricity-settings input{display:block;width:100%;margin-top:.3rem}.stable-electricity-revenue{margin:.7rem 0 0}.stable-card.electricity-due{border-color:#d06f13;background:#fff1d8;box-shadow:0 0 0 2px rgba(208,111,19,.15)}.stable-electricity-action{display:block;margin-top:.65rem;padding:.55rem;border-radius:.45rem;background:#d96f0b;color:#fff;text-align:center;font-size:.82rem}.stable-electricity-workflow{border:2px solid #d38a27;background:#fffaf1}.electricity-reading-input{width:100%;min-height:58px;margin:.5rem 0 1rem;font-size:1.6rem;font-weight:800}.electricity-review{margin-top:1rem;padding-top:1rem;border-top:2px solid #d38a27}.electricity-review dl div{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--line)}.electricity-review dd{margin:0;font-weight:800}.electricity-review .electricity-total{font-size:1.2rem}.electricity-review button,.stable-electricity-workflow button{width:100%;min-height:48px;margin-top:.5rem}.electricity-review label{display:block;margin-top:.8rem;font-weight:800}.electricity-review input,.electricity-review textarea{display:block;width:100%;margin-top:.3rem}.stable-electricity-history article{display:grid;gap:.18rem;padding:.65rem 0;border-bottom:1px solid var(--line)}
@media(max-width:600px){.stable-electricity-summary{align-items:flex-start;flex-direction:column}.stable-electricity-summary button{width:100%;min-height:48px}.stable-electricity-settings form{grid-template-columns:1fr}.stable-electricity-settings button{min-height:48px}}
.stable-setup-email{overflow-wrap:anywhere}.stable-setup-success-actions{display:grid;gap:.6rem;margin-top:1rem}.stable-setup-success-actions .button,.stable-setup-success-actions button{display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;text-align:center}.stable-setup-success-actions .secondary{background:#fff;color:#123d2f;border:2px solid #123d2f}
.stable-rental-ending{border:2px solid #9d6b32;background:#fffaf1}.stable-rental-ending>button,.rental-confirm-card button{width:100%;min-height:48px;margin-top:.55rem}.danger-button{border-color:#8f3028!important;background:#8f3028!important;color:#fff!important}.rental-confirm-card{margin-top:1rem;padding:1rem;border:2px solid #9d6b32;border-radius:.65rem;background:#fff}.rental-confirm-card.destructive{border-color:#8f3028;background:#fff5f4}.rental-ending-status{padding:.7rem;border-radius:.5rem;background:#fff0cc}.rental-ending-status strong{color:#7c4b00}
.stable-subscription-choices,.stable-pending-actions,.stable-simple-success{display:grid;gap:.75rem}.stable-subscription-choices button,.stable-pending-actions .button,.stable-pending-actions button,.stable-simple-success .button,.stable-simple-success button{min-height:48px;width:100%}.stable-simple-success{padding:1rem;border-radius:14px;background:#edf7f1}.stable-simple-success.warning{background:#fff4df}.stable-simple-success strong{overflow-wrap:anywhere}.stable-add-renter input,.stable-add-renter textarea{font-size:16px;min-height:48px}.stable-add-renter textarea{min-height:72px}
@media(max-width:600px){.stable-add-renter .stable-assignment-form{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.stable-add-renter,.stable-add-renter .field,.stable-subscription-choices,.stable-pending-actions,.stable-simple-success{min-width:0;width:100%}.stable-subscription-choices button,.stable-pending-actions .button,.stable-pending-actions button,.stable-simple-success .button,.stable-simple-success button{min-height:48px;width:100%;white-space:normal}}
.stable-email-modal{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:rgba(10,31,23,.72)}.stable-email-modal[hidden]{display:none}.stable-email-modal-card{width:min(100%,420px);max-height:calc(100dvh - 2rem);overflow:auto;padding:1.35rem;border-radius:16px;background:#fff;color:#173b2b;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.28)}.stable-email-modal-card h2{margin:.7rem 0}.stable-email-modal-card strong{overflow-wrap:anywhere;word-break:break-word}.stable-email-status-icon{display:grid;min-height:64px;place-items:center}.stable-email-spinner{display:block;width:54px;height:54px;border:6px solid #dce6df;border-top-color:#126342;border-radius:50%;animation:stable-email-spin .8s linear infinite}.stable-email-result{display:grid;width:64px;height:64px;place-items:center;border:4px solid currentColor;border-radius:50%;font-size:2.5rem;font-weight:900;line-height:1}.stable-email-result.success{color:#126342}.stable-email-result.failure{color:#8f3028}.stable-email-modal-actions{display:grid;gap:.65rem;margin-top:1rem}.stable-email-modal-actions .button,.stable-email-modal-actions button{width:100%;min-height:48px;align-items:center;justify-content:center;white-space:normal}@keyframes stable-email-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.stable-email-spinner{animation-duration:1.8s}}@media(max-width:430px){.stable-email-modal{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.stable-email-modal-card{width:100%;padding:1.1rem}}
.admin-session-expired{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:rgba(18,55,42,.96);overflow:auto}.admin-session-expired>div{width:min(100%,520px);padding:clamp(22px,6vw,40px);border-radius:18px;background:#fff;color:#17221d;box-shadow:0 18px 60px rgba(0,0,0,.32)}.admin-session-expired label,.admin-session-expired input,.admin-session-expired button{display:block;width:100%}.admin-session-expired input{min-height:54px;margin:8px 0 16px;font-size:16px}.admin-session-expired button{min-height:54px}.admin-logout-control{min-height:44px;padding:10px 14px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;font:inherit}.stable-yard-load-error{grid-column:1/-1;width:100%;padding:24px;border:2px solid #9e3428;border-radius:14px;background:#fff4f1;color:#4b1711}.stable-yard-load-error h2{margin-top:0}
.booking-correspondence-actions{display:grid;gap:.65rem}.booking-correspondence-actions .button,.booking-customer-email .admin-email-actions .button{width:100%;min-height:48px;white-space:normal}.booking-customer-email[hidden]{display:none}.booking-customer-email{margin-top:1rem;scroll-margin-top:1rem}.booking-customer-email input,.booking-customer-email textarea{width:100%;max-width:100%;box-sizing:border-box}.booking-customer-email textarea{overflow-wrap:anywhere}@media(min-width:701px){.booking-correspondence-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-customer-email .admin-email-actions{display:flex;flex-wrap:wrap;gap:.65rem}.booking-customer-email .admin-email-actions .button{width:auto;min-width:150px}}
