/* fonts:start */
/* Self-hosted Google Fonts (SIL Open Font License 1.1), latin subset. Generated by tools/vendor_fonts.py. */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-condensed-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-condensed-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/fira-sans-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/fira-sans-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/fira-sans-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/fira-sans-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* fonts:end */
/* Field & Pitch - Direction A "Walking map". Light map-paper pages, woodland green, bracken rust, contour brown, waymarker yellow.
   Barlow Condensed (uppercase) only for the H1, section headings and card names; Fira Sans for everything else. No fixed-width font.
   Font files are not vendored yet (CSP font-src 'self'): the stacks name the families first and fall back to local fonts. */
:root{
  --page:#fff8f5;--paper:#fff1e9;--paper-2:#ffeadc;--paper-3:#ffe3d0;--white:#fff;
  --green:#14341d;--green-2:#2b4b32;--rust:#984725;--rust-deep:#793010;--contour:#4a2400;--ink:#2b1705;--ink-2:#424842;
  --hair:#c2c8bf;--hair-2:#727971;--yellow:#facc15;--red:#c53030;--alert:#ffe9c9;
  --head:"Barlow Condensed","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --body:"Fira Sans","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:4px;--gap:20px;--section:32px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font:400 16px/1.5 var(--body);padding-bottom:72px}
img,svg{max-width:100%}
a{color:var(--rust-deep);text-underline-offset:2px}
a:hover{color:var(--green)}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}
h1,h2,h3{margin:0}
h1,.section-title,.card-title{font-family:var(--head);text-transform:uppercase;color:var(--green);font-weight:700;letter-spacing:.01em;line-height:1.1}
h1{font-size:clamp(2rem,6vw,3.25rem);margin-bottom:12px}
.h1-small{font-size:clamp(1.5rem,4vw,2rem)}
.section-title{font-size:1.5rem}
h3{font-size:1.1rem;font-weight:600}
p{margin:0 0 12px}
.small{font-size:.875rem}.muted{color:var(--ink-2)}
.not-listed{color:var(--ink-2);font-size:.875rem;margin:0}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:#fff;padding:10px 14px;z-index:60}.skip:focus{left:8px}
main{max-width:1320px;margin:0 auto;padding:16px 16px var(--section)}
section,.panel{margin-bottom:var(--section)}
.lede{font-size:1.0625rem;color:var(--ink-2);max-width:60ch}
.label-h{font:600 .875rem/1.3 var(--body);color:var(--ink-2);margin:16px 0 8px;text-transform:none}
.icon{flex:none;vertical-align:middle}
/* ---------- header, nav ---------- */
.site-header{background:var(--page);border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:30}
.header-inner{max-width:1320px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;gap:12px;min-height:56px}
[hidden]{display:none!important}
.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--green);font:700 1.125rem/1 var(--head);text-transform:uppercase;min-height:44px;white-space:nowrap;flex:none}
.top-nav{display:none;gap:4px;margin:0 auto}
.top-nav a{padding:10px 12px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}
.top-nav a[aria-current]{color:var(--green);font-weight:600;box-shadow:inset 0 -3px 0 var(--yellow)}
.search-form.header-search{display:none;flex:1;max-width:420px}
.account-entry{margin-left:auto;white-space:nowrap;flex:none}
.avatar{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;background:var(--green);color:#fff;font-weight:600;border-radius:50%}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);background:var(--page);border-top:1px solid var(--hair-2)}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;font-size:.75rem;color:var(--ink-2);text-decoration:none}
.bottom-nav a[aria-current]{color:var(--green);font-weight:600;box-shadow:inset 0 3px 0 var(--green)}
.breadcrumbs ol{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:0 4px;font-size:.875rem}
.breadcrumbs ol{align-items:center}
.breadcrumbs li{display:inline-flex;align-items:center;min-height:44px;line-height:1.3}.breadcrumbs li+li::before{content:"›";margin-right:4px;color:var(--ink-2)}
.breadcrumbs a,.breadcrumbs [aria-current]{display:inline-flex;align-items:center;min-height:44px;padding:0}
/* ---------- buttons, forms ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--green);border-radius:var(--r);background:var(--white);color:var(--green);font:500 1rem/1 var(--body);text-decoration:none;cursor:pointer}
.button:hover{background:var(--paper-2);color:var(--green)}
.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:var(--green-2);color:#fff}
.button.small-button{min-height:44px;font-size:.9375rem}
.button.wide{width:100%}.button[disabled]{opacity:.55;cursor:not-allowed}
.button.danger{color:var(--rust-deep);border-color:var(--rust)}
.button.google{border-color:var(--hair-2);color:var(--ink);min-height:48px}
.button.visit{flex-direction:column;gap:2px;padding:10px 16px;min-height:60px;width:100%}.button.visit .domain{font-size:.875rem;font-weight:400;opacity:.9}
.link{background:none;border:0;padding:12px 4px;min-height:44px;color:var(--rust-deep);text-decoration:underline;font:inherit;cursor:pointer}
.link-center{display:block;text-align:center;padding:12px}
.icon-button{display:inline-flex;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--hair-2);border-radius:var(--r);background:var(--white);color:var(--green);font:inherit;cursor:pointer}
.form-stack{display:grid;gap:12px}
label{display:grid;gap:4px;font-weight:500}
input,select,textarea{font:inherit;min-height:48px;padding:8px 12px;border:1px solid var(--hair-2);border-radius:var(--r);background:var(--white);color:var(--ink);width:100%}
textarea{min-height:100px}
input[type=checkbox],input[type=radio]{width:20px;min-height:20px;accent-color:var(--green)}
.check{display:flex;gap:8px;align-items:center;font-weight:400}
.alert{background:var(--alert);border-left:3px solid var(--rust);padding:10px 12px}
.right{text-align:right}
.search-form{display:flex;gap:8px;align-items:stretch}
.search-field{display:flex;align-items:center;gap:8px;flex:1;background:var(--white);border:1px solid var(--hair-2);border-radius:var(--r);padding:0 12px;color:var(--ink-2)}
.search-field input{border:0;padding:0;min-height:44px;background:none}
.search-field:focus-within{outline:3px solid var(--green)}.search-field input:focus-visible{outline:0}
/* ---------- motifs ---------- */
.ticks{position:relative;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);padding:16px}
.ticks::before,.ticks::after{content:"";position:absolute;width:12px;height:12px;border:2px solid var(--contour);pointer-events:none}
.ticks::before{top:-1px;left:-1px;border-right:0;border-bottom:0}.ticks::after{right:-1px;bottom:-1px;border-left:0;border-top:0}
.legend{background:var(--paper)}
.contour-divider{color:var(--contour);opacity:.55;height:20px;margin:var(--section) 0 24px}.contour-divider .contour{width:100%;height:20px;display:block}
.footpath-rule{border:0;border-top:2px dashed var(--red);margin:24px 0 16px;width:100%}
.disc{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--yellow);color:#000}
.pitch-post{position:absolute;left:8px;bottom:8px;background:var(--page);color:var(--ink-2);font-size:.75rem;line-height:1;padding:6px 8px;border-radius:2px;border-left:3px solid var(--green)}
.pitch-post b{color:var(--green)}
.pitch-symbol{color:var(--green);flex:none}.pitch-symbol .strike{stroke:var(--hair-2)}
.is-struck{color:var(--hair-2)}
.icon-struck{position:relative;display:inline-flex;color:var(--hair-2)}
.icon-struck::after{content:"";position:absolute;left:1px;right:1px;top:50%;border-top:2px solid var(--hair-2);transform:rotate(-45deg)}
/* ---------- tags, chips ---------- */
.tags{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;padding:4px 8px;border-radius:2px;background:var(--white);border:1px solid var(--hair)}
.tag-pitch{background:var(--paper-2)}.tag-pitch span,.tag-fac span{color:var(--ink)}
.tag-no{color:var(--hair-2);background:transparent;border-style:dashed}.tag-no span{text-decoration:line-through;color:var(--ink-2)}
.fac-tags{background:var(--white);padding:8px;border-radius:var(--r)}.fac-tags .tag{border:0;padding:2px 4px;background:none}
.fac-tags .icon{color:var(--rust)}
.fac-big{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;background:none;padding:0}.fac-big .tag{background:var(--paper);padding:10px 12px;min-height:44px;border:1px solid var(--hair)}
.tag-paper{display:inline-block;font-size:.875rem;padding:4px 10px;background:var(--paper-2);border:1px solid var(--hair);border-radius:2px;color:var(--ink-2)}
.badge{display:inline-block;background:var(--green);color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:2px;margin:0 6px 6px 0}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--hair-2);border-radius:var(--r);background:var(--white);color:var(--ink);text-decoration:none;font-size:.9375rem}
.chip .icon{color:var(--rust)}.chip-on{background:var(--green);color:#fff;border-color:var(--green)}.chip-on .icon,.chip-on .pitch-symbol{color:#fff}
.season{display:flex;gap:8px;align-items:flex-start;font-size:.875rem;color:var(--ink);margin:8px 0}.season .icon{color:var(--rust);margin-top:2px}
.season-none{color:var(--ink-2)}
/* ---------- distance capsule ---------- */
.distance-capsule{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 12px;background:var(--white);color:var(--ink);border:0;border-radius:22px;box-shadow:0 1px 4px rgba(43,23,5,.28);font:500 .875rem/1.15 var(--body);cursor:pointer}
.distance-capsule.is-unknown{cursor:default;color:var(--ink-2)}
.distance-capsule .icon-pin,.distance-capsule .icon-pin-outline{color:var(--rust)}
.distance-capsule[data-state=idle] .icon-pin,.distance-capsule[data-state=set] .icon-pin-outline{display:none}
.cap-text{display:grid;text-align:left}.cap-main{font-weight:700}.cap-sub{color:var(--ink-2);font-size:.75rem;font-weight:400}
/* ---------- cards ---------- */
.card-grid{display:grid;grid-template-columns:1fr;gap:var(--gap)}
.camp-card{background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.card-top{position:relative}
.card-media{position:relative;aspect-ratio:3/2;background:var(--paper-3);overflow:hidden;display:block}
.card-media img,.thumb{width:100%;height:100%;object-fit:cover;display:block}
.media-paper,.scene-paper,.way-paper,.map-fallback-panel{color:var(--contour);background:var(--paper-2)}
.paper-art{width:100%;height:100%;display:block}
.media-link{display:block}
.fav{position:absolute;top:8px;left:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--white);border:0;border-radius:var(--r);color:var(--green);box-shadow:0 1px 4px rgba(43,23,5,.28);cursor:pointer;text-decoration:none}
.fav.selected{background:var(--green);color:#fff}.fav.selected svg{fill:currentColor}
.fav-text{position:static;width:auto;padding:0 12px;gap:6px;border:1px solid var(--hair-2);box-shadow:none;font:inherit}
.card-body{padding:16px;display:flex;flex-direction:column;gap:2px;flex:1}
.card-title{font-size:1.375rem}.card-title a{color:inherit;text-decoration:none}.card-title a:hover{text-decoration:underline}
.card-place,.place-line{display:flex;align-items:center;gap:6px;margin:2px 0 6px;color:var(--rust);font-size:.9375rem}
.card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:auto 0 0;padding-top:12px}
.more{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-height:44px;padding:0 12px;background:var(--paper-3);border-radius:var(--r);text-decoration:none;color:var(--green);font:700 1.0625rem/1 var(--head);text-transform:uppercase;letter-spacing:.02em}
.sheet-card{background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);padding:0 0 16px;position:relative}.sheet-card>*:not(.card-top){margin-left:16px;margin-right:16px}
.sheet-foot{display:flex;gap:8px;margin-top:12px}
/* ---------- home ---------- */
.hero{display:grid;gap:var(--gap);margin-bottom:var(--section)}
.search-panel{display:grid;gap:12px}
.search-panel .search-form{flex-wrap:wrap}.search-panel .search-form .search-field{min-width:200px}
.near-entry{display:grid;gap:8px}
.scene{position:relative;margin:0 0 16px;border-radius:var(--r);overflow:hidden;background:var(--paper-3)}
.scene img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
.scene-img{position:relative}
.scene figcaption{padding:10px 0 4px;background:var(--page);line-height:1.4}
.hero-scene{margin:0;max-height:300px}.hero-scene img{aspect-ratio:16/9}
.scene-strip{max-height:160px}.scene-strip img{aspect-ratio:16/5}
.scene-paper{aspect-ratio:16/6}
.detail-scene figcaption{position:static}
.legend-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.legend-tiles a{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 10px;background:var(--white);border:1px solid var(--hair-2);border-radius:var(--r);color:var(--ink);text-decoration:none}
.legend-tiles a .disc{display:none}.legend-tiles a:hover{background:var(--green);color:#fff}.legend-tiles a:hover .pitch-symbol{color:#fff}
.near-band{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);padding:16px}.near-band>div{flex:1;min-width:200px}.near-band p{margin:0}
.near-band .disc{width:40px;height:40px}
.home-section .section-head{margin-bottom:12px}
.tiles{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}.tiles.two-col{grid-template-columns:1fr 1fr}
.tiles a,.link-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 12px;background:var(--white);border:1px solid var(--hair);border-radius:var(--r);color:var(--ink);text-decoration:none}
.tiles a .disc,.link-list a .disc{width:24px;height:24px}
.tiles a .tile-label{flex:1}
.link-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.link-list li.inline-links{padding:8px 0}
.inline-links{line-height:2.4}.inline-links a{display:inline-block;padding:10px 4px}
.text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none;font-weight:600;color:var(--green)}
.ways{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap)}
.way a{display:block;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);text-decoration:none;color:var(--ink);overflow:hidden}
.way-photo{display:block;aspect-ratio:16/9;overflow:hidden}.way-title{display:block;padding:12px 16px 4px;font:700 1.25rem/1.1 var(--head);text-transform:uppercase;color:var(--green)}
.way-link{display:flex;align-items:center;justify-content:space-between;padding:4px 16px 14px;color:var(--rust-deep)}
.check-note{background:var(--paper);padding:12px 16px;border-radius:var(--r);font-size:.9375rem;margin:0 0 16px}
.owner-line{margin:0 0 16px}.owner-line a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--white);border:1px solid var(--hair);border-radius:var(--r)}
/* ---------- lists ---------- */
.page-head{margin-bottom:16px}
.list-layout{display:grid;gap:var(--gap)}
.filter-box summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-weight:600;list-style:none}
.filter-box{padding:0 16px;margin-bottom:0}.filter-box[open]{padding-bottom:16px}
.filters{display:grid;gap:12px}
.check-group{border:0;margin:0;padding:0;display:grid;gap:2px}.check-group legend{font-weight:600;padding:8px 0}
.check-row{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:400}
.location-bar{display:grid;gap:8px;margin-bottom:var(--gap)}.location-bar p{margin:0}.location-bar .locate{justify-self:start}
.location-now{display:flex;align-items:center;gap:6px}
.list-tools{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:var(--gap)}
.view-toggle{display:inline-flex;border:1px solid var(--green);border-radius:var(--r);overflow:hidden}
.view-toggle>*{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;color:var(--green)}.view-toggle [aria-current]{background:var(--green);color:#fff}
.sort{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.sort a,.sort-on,.sort-near{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;border-radius:var(--r);color:var(--green);font:inherit;text-decoration:none;background:none;border:0;cursor:pointer}
.sort-on,.sort-near.active{background:var(--paper-3);font-weight:600}.sort-label{color:var(--ink-2)}
.sort p{flex-basis:100%;margin:0}
.pagination ol{list-style:none;margin:0 0 var(--section);padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pagination a,.pagination [aria-current]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--hair-2);border-radius:var(--r);background:var(--white);color:var(--green);text-decoration:none}
.pagination [aria-current]{background:var(--green);color:#fff}.pagination .gap{display:inline-flex;align-items:center;min-height:44px}
.rail{display:grid;gap:var(--gap);align-content:start}
.more-ways{margin-bottom:var(--section)}
.hub-links{margin-bottom:var(--gap)}
.empty-state{background:var(--paper);border:1px dashed var(--hair-2);border-radius:var(--r);padding:24px 16px;text-align:center}.empty-text{font-size:1.0625rem}
.empty-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.not-found{text-align:left}.not-found h1{margin-top:16px}
.footpath-end{border-top:2px dashed var(--red);margin:-8px 40% 16px 0;height:0}
.area-filter{display:block;margin-bottom:var(--gap)}
.nation-block{margin-bottom:var(--gap)}.nation-block summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;list-style:none}
.nation-block[open] summary .icon{transform:rotate(180deg)}
/* ---------- maps ---------- */
.live-map{position:relative;min-height:260px;border-radius:var(--r);overflow:hidden;border:1px solid var(--hair);background:var(--paper-2)}
.live-map-area{min-height:320px}.live-map-campsite{min-height:240px}
/* higher specificity than maplibre-gl.css .maplibregl-map{position:relative}, which loads later */
.live-map>.map-canvas{position:absolute;inset:0}
.map-fallback-panel{display:grid;place-items:center;min-height:inherit;padding:16px;text-align:center}.map-fallback-panel svg{max-width:220px}
.live-map.map-ready{background:var(--paper-2)}.map-ready .map-fallback-panel{display:none}
.map-tools{display:grid;gap:8px;margin-bottom:12px}
.page-map .live-map-area{min-height:58vh}
.map-sheet{position:absolute;left:8px;right:8px;bottom:8px;z-index:3;max-height:70%;overflow:auto;background:var(--paper);border:1px solid var(--hair-2);border-radius:var(--r);padding:8px}
.map-sheet[hidden]{display:none}.sheet-close{position:absolute;top:8px;right:8px;z-index:4;width:44px;height:44px;border:0;border-radius:50%;background:var(--white);font-size:1.5rem;cursor:pointer}
.map-activate,.map-recentre{position:absolute;z-index:2;min-height:44px;padding:0 14px;background:var(--paper);border:1px solid var(--contour);border-radius:var(--r);color:var(--green);font:inherit;cursor:pointer}
.map-activate{left:8px;bottom:8px}.map-recentre{left:8px;top:8px}
.map-you,.map-place{display:block;width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--contour)}
.map-you{background:var(--rust)}.map-place{background:var(--yellow)}
.map-campsite{display:block;width:22px;height:22px;background:var(--green);border:3px solid #fff;border-radius:3px;box-shadow:0 0 0 1px var(--contour)}
.coords-line{margin:8px 0}.coords-actions{display:flex;flex-wrap:wrap;gap:8px}
/* ---------- detail ---------- */
.back-row{margin:0}.back-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--green);font-weight:600}
.detail-grid{display:grid;gap:16px}
/* One column on narrow screens: the side wrapper dissolves and the sections keep the reading order below. */
.d-side{display:contents}
.d-scene{order:0}.d-head{order:1}.d-actions{order:2}.d-facts{order:3}.d-fac{order:4}.d-map{order:5}.d-trust{order:6}.d-near{order:7}.d-related{order:8}
.title-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px}.title-row>div:first-child{min-width:0;flex:1 1 240px}.head-actions{display:flex;flex-wrap:wrap;gap:8px}.detail-grid>*{min-width:0}
.badges{margin:4px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.distance-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-weight:500;margin:8px 0}.distance-line[hidden]{display:none}
.detail-actions{display:grid;gap:8px}.detail-actions p{margin:0}
.facts-grid{display:grid;gap:0;margin:8px 0 0}.fact{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--hair)}.fact:first-child{border-top:0}
.fact dt{font-size:.875rem;color:var(--ink-2)}.fact dd{margin:0}
.trust{background:var(--paper);padding:0 16px 16px;border-radius:var(--r)}.trust .footpath-rule{margin:0 0 16px}
.last-checked{font-weight:600;margin-bottom:4px}
.report-row{display:grid;gap:4px;margin:8px 0}
.report summary{display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--rust-deep);font-weight:500}
.report form{padding-bottom:12px}
.row-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.row-list a{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 8px;background:var(--white);border:1px solid var(--hair);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.row-thumb{flex:none;width:56px;height:44px;border-radius:2px;overflow:hidden;background:var(--paper-3)}.row-thumb .paper-art{height:100%}
.row-main{flex:1;display:grid;min-width:0}.row-name{font:700 1.0625rem/1.1 var(--head);text-transform:uppercase;color:var(--green)}
/* ---------- prose, legal, auth, account ---------- */
.prose{max-width:760px}.prose h2{margin-top:1.5em;font-size:1.5rem}.prose h2,.legal h2{font-family:var(--head);text-transform:uppercase;color:var(--green)}
.button-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.legal-table-wrap{overflow-x:auto}
.legal-table{border-collapse:collapse;font-size:.875rem;width:100%}
.legal-table th,.legal-table td{border:1px solid var(--hair);padding:6px 8px;text-align:left;vertical-align:top}
.legal-table code{font-family:inherit;font-size:.875rem;word-break:break-all}
.auth-shell{max-width:480px;margin:0 auto var(--gap)}.auth-shell h1{font-size:2rem}
.divider-text{text-align:center;color:var(--ink-2);margin:0 0 12px}
.account{display:grid;gap:var(--gap)}.account-row{display:flex;align-items:center;gap:12px}.account-row>div{flex:1}.account-email{margin:0;font-weight:600}
.saved-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap)}.saved-item.gone{padding:16px;background:var(--paper);border-radius:var(--r)}
.danger-link{color:var(--rust-deep);cursor:pointer;font-weight:600;display:inline-flex;align-items:center;min-height:44px}
.delete-account h3{color:var(--rust-deep)}
.ad-slot{min-height:0}
/* ---------- footer, toast, consent ---------- */
.site-footer{background:var(--paper);border-top:1px solid var(--hair);padding:0 16px 24px}
.footer-inner{max-width:1320px;margin:0 auto;font-size:.875rem}.footer-inner .contour-divider{margin:0 0 16px}
.footer-inner nav a{display:inline-block;padding:10px 2px}.footer-inner p{margin:0 0 4px;color:var(--ink-2)}
#message{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--ink);color:var(--page);padding:10px 16px;border-radius:var(--r);opacity:0;pointer-events:none;transition:opacity .2s;z-index:50;max-width:90vw}
#message.visible{opacity:1}
.consent-banner{position:fixed;left:0;right:0;bottom:56px;z-index:45;background:var(--page);border-top:2px solid var(--green);padding:12px 16px;display:grid;gap:8px}
.consent-banner[hidden]{display:none}.consent-actions{display:flex;gap:8px}
.analytics-optout{background:var(--paper);padding:12px;margin:12px 0}
.legend-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:2px}.legend-list li{display:flex;align-items:center;gap:10px;min-height:32px}.legend-list .icon{color:var(--rust)}
.legend-sub{font:600 .875rem/1.3 var(--body);color:var(--rust);margin:12px 0 4px}
.list-main{min-width:0}.consent-text p{margin:0}.consent-choice{flex:1}.ref-note{margin:0 0 12px}.notice{background:var(--alert);padding:10px 12px;border-radius:var(--r)}
.search-go{flex:none}.key-facts,.facilities,.location{min-width:0}
/* ---------- wider screens ---------- */
@media (min-width:600px){
  .search-form.header-search{display:flex}.account-entry{margin-left:0}.brand{font-size:1.375rem}
  .card-grid{grid-template-columns:repeat(2,1fr)}.ways{grid-template-columns:repeat(3,1fr)}.tiles.two-col{grid-template-columns:repeat(4,1fr)}
  .detail-actions{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
}
@media (max-width:899px){.home-section .camp-card:nth-child(n+4){display:none}.home-section[data-near-section] .camp-card{display:flex}}
@media (min-width:900px){
  body{padding-bottom:0}.bottom-nav{display:none}.top-nav{display:flex}
  .header-inner{padding:8px 24px}main{padding:24px}.site-footer{padding:0 24px 24px}
  #message{bottom:24px}.consent-banner{bottom:0}
  /* Home hero: the image column is as tall as the first block (H1 to the bottom of the search panel); the pitch-type and facility tiles run full width below both. */
  .hero{grid-template-columns:1fr 360px;align-items:start;row-gap:var(--section)}.hero-text{display:contents}
  .hero-intro{grid-column:1;grid-row:1}.hero-intro .search-panel{margin-bottom:0}
  .hero-tiles{grid-column:1/-1;grid-row:2}.hero-tiles>.label-h:first-child{margin-top:0}
  .hero-scene{grid-column:2;grid-row:1;align-self:stretch;position:relative;min-height:240px;max-height:none}.hero-scene .scene-img{position:absolute;inset:0}
  .hero-scene img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .list-layout{grid-template-columns:260px minmax(0,1fr) 380px;align-items:start}.list-layout.single{grid-template-columns:260px minmax(0,1fr)}
  .filter-col{position:sticky;top:72px}.filter-box{padding:0 16px 16px}.filter-box>summary{pointer-events:none}
  .card-grid{grid-template-columns:repeat(2,1fr)}.home-section .card-grid{grid-template-columns:repeat(3,1fr)}
  /* Left column: scene, head, key facts, facilities, trust. Right column (.d-side, one block spanning every row, so it never
     inherits the height of the scene image): actions, map, nearby, related - the map follows the buttons directly. */
  .detail-grid{grid-template-columns:minmax(0,1fr) 420px;grid-template-rows:repeat(5,auto);align-items:start;column-gap:32px}
  .d-scene,.d-head,.d-facts,.d-fac,.d-trust{grid-column:1;order:0}
  .d-side{display:grid;gap:16px;grid-column:2;grid-row:1 / span 5;align-self:start;min-width:0}
  .d-side>*{order:0}
  .d-scene .scene{margin:0}
  .ways{grid-template-columns:repeat(3,1fr)}
  .home-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
}
@media (min-width:1200px){.home-section .card-grid{grid-template-columns:repeat(3,1fr)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
