/* ===== singular reveal system ===== */
.reveal {
  opacity: 1;
  transform: none;
  transition: opacity 520ms ease, transform 520ms ease;
  will-change: opacity, transform;
}

html.js-reveal .reveal {
  opacity: 0;
  transform: translateY(14px);
}

html.js-reveal .reveal.is-in {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  html.js-reveal .reveal,
  html.js-reveal .reveal.is-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }
}

html.reduce-motion .reveal,
html.reduce-motion .reveal.is-in,
html.reduced-motion .reveal,
html.reduced-motion .reveal.is-in,
html.reduce-motion.js-reveal .reveal,
html.reduced-motion.js-reveal .reveal {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  will-change: auto !important;
}

.sticky-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 12px;
  z-index: 1100;
  display: flex;
  justify-content: center;
  pointer-events: none;
}

.sticky-cta__inner {
  width: min(980px, calc(100% - 24px));
  pointer-events: auto;
  border-radius: 1.25rem;
  border: 1px solid rgba(255,255,255,.14);

  
  background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  padding: .7rem .8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
  transform: translateY(16px);
  opacity: 0;
  transition: transform 240ms ease, opacity 240ms ease;
}

.sticky-cta.is-on .sticky-cta__inner { transform: translateY(0); opacity: 1; }

.sticky-cta__title { font-weight: 800; margin: 0; line-height: 1.1; }

.sticky-cta__sub { margin: .1rem 0 0 0; opacity: .88; font-size: .95rem; }

.sticky-cta__text { min-width: 0; }

.sticky-cta__actions { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }

@media (max-width: 560px) {
  .sticky-cta__sub { display: none; }
  .sticky-cta__inner { padding: .65rem .7rem; }
}

.centenary-hero2 { overflow: hidden; }

.centenary-hero2 h1{
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.08;
}

.hero-capacity-badge{
  font-size: .95rem;
  font-weight: 600;
  opacity: .88;
}

.centenary-rotator{ display:inline-block; position:relative; min-width: 9.5ch; }

.rotator-word{ display:none; padding: 0 .1rem; }

.rotator-word.is-on{ display:inline; }

.centenary-switcher{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.centenary-tab{
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.centenary-tab:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.26);
  background: rgba(255,255,255,.10);
}

.centenary-tab.is-active,
.centenary-tab[aria-selected="true"]{
  border-color: rgba(255,255,255,.42);
  background: rgba(255,255,255,.16);
  box-shadow: 0 10px 26px rgba(0,0,0,.18);
}

@media (max-width: 520px){
  .centenary-switcher{
    overflow:auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: .25rem;
    flex-wrap:nowrap;
  }
  .centenary-switcher .centenary-tab{
    white-space:nowrap;
    flex: 0 0 auto;
  }
}

.centenary-highlights .quick-card{
  border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  padding: .75rem .8rem;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.centenary-highlights .quick-card:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.10);
}

.quick-num{
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.0;
  font-size: 1.35rem;
}

.quick-label{ font-weight: 700; opacity: .95; }

.centenary-hero2 .small-muted,
.featured-photo__cap .small-muted,
.testimonial-card .small-muted{
  opacity: .88;
}

.centenary-collage .gallery-grid a,
#gallery .gallery-grid a{
  border-radius: 1rem;
  overflow:hidden;
  display:block;
  transform: translateZ(0);
  border: 1px solid rgba(255,255,255,.10);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.centenary-collage .gallery-grid a:hover,
#gallery .gallery-grid a:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 16px 36px rgba(0,0,0,.20);
}

.centenary-collage img,
#gallery img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.featured-photo{
  border-radius: 1.25rem;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
  box-shadow: 0 16px 42px rgba(0,0,0,.18);
}

.featured-photo img{
  width:100%;
  max-height: 420px;
  object-fit: cover;
  display:block;
}

.featured-photo__cap{
  padding: .75rem .9rem;
  border-top: 1px solid rgba(255,255,255,.12);
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap:.75rem;
}

.featured-photo__cap strong{ font-weight: 800; }

.featured-photo__cap span{ opacity: .86; }

.runline{
  display:grid;
  gap:.5rem;
}

.runline-step{
  border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  padding: .7rem .8rem;
}

.runline-step .top{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
}

.runline-step .tag{
  font-size:.85rem;
  opacity:.9;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  border-radius:999px;
  padding:.15rem .5rem;
}

.runline-step p{ margin:.35rem 0 0 0; opacity:.86; }

.testimonial-card{
  border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
}

#heroLead,
#heroHighlights,
#modeSellTitle,
#modeSellLead,
#modeSellList,
#modeStripTitle,
#modeStripText,
#modeEnquiryPurpose,
#galleryFeaturedTitle,
#galleryFeaturedText,
#featuredImg,
#runlineBox,
#stickySub {
  transition: opacity 220ms ease, transform 220ms ease;
  transform: translateY(0);
}

.is-swapping{
  opacity: 0;
  transform: translateY(6px);
}

@media (prefers-reduced-motion: reduce) {
  .centenary-tab,
  .centenary-highlights .quick-card,
  .centenary-collage .gallery-grid a,
  #gallery .gallery-grid a{
    transition:none !important;
    transform:none !important;
  }
  #heroLead,
  #heroHighlights,
  #modeSellTitle,
  #modeSellLead,
  #modeSellList,
  #modeStripTitle,
  #modeStripText,
  #modeEnquiryPurpose,
  #galleryFeaturedTitle,
  #galleryFeaturedText,
  #featuredImg,
  #runlineBox,
  #stickySub{
    transition:none !important;
    transform:none !important;
  }
}

html.reduce-motion .centenary-tab,
html.reduce-motion .centenary-highlights .quick-card,
html.reduce-motion .centenary-collage .gallery-grid a,
html.reduce-motion #gallery .gallery-grid a{
  transition:none !important;
  transform:none !important;
}

html.reduce-motion #heroLead,
html.reduce-motion #heroHighlights,
html.reduce-motion #modeSellTitle,
html.reduce-motion #modeSellLead,
html.reduce-motion #modeSellList,
html.reduce-motion #modeStripTitle,
html.reduce-motion #modeStripText,
html.reduce-motion #modeEnquiryPurpose,
html.reduce-motion #galleryFeaturedTitle,
html.reduce-motion #galleryFeaturedText,
html.reduce-motion #featuredImg,
html.reduce-motion #runlineBox,
html.reduce-motion #stickySub{
  transition:none !important;
  transform:none !important;
}

.chip i{ margin-right:.45rem; width:1.1em; text-align:center; }

.keyfacts{ position:relative; margin: 1rem auto 0; padding:0 1rem; max-width: var(--wrap, 1100px); }

.keyfacts__list{
  list-style:none;
  display:flex;
  flex-wrap:nowrap;
  gap:.6rem;
  padding:0;
  margin:0;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}

.keyfacts__list li{
  flex:0 0 auto;
  scroll-snap-align:start;
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.45rem .7rem;
  border-radius:999px;
  background: rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
  white-space:nowrap;
}

.keyfacts__list i{ width:1.1em; text-align:center; opacity:.9; }

.keyfacts__list strong{ font-weight:600; }

.keyfacts__list .muted{ opacity:.8; }

.keyfacts::after{
  content:"";
  position:absolute;
  right:0;
  top:0;
  height:100%;
  width:48px;
  pointer-events:none;
  background: linear-gradient(to right, rgba(0,0,0,0), rgba(245,247,251,1));
}

@media (max-width: 768px){
  body.centenary-theme .hub-hero.cent-hero::after{
    background:
      radial-gradient(900px 260px at 12% 15%, rgba(170, 40, 65, 0.22), transparent 60%),
      radial-gradient(700px 240px at 88% 0%, rgba(120, 20, 40, 0.20), transparent 55%),
      radial-gradient(500px 220px at 45% 110%, rgba(90, 10, 30, 0.16), transparent 60%);
    background-repeat: no-repeat;
    background-size: auto;
    background-position: center;
    opacity: 1;
  }
}

body.centenary-theme .hub-hero.cent-hero{
  position: relative;
  overflow: hidden;
}

body.centenary-theme .hub-hero.cent-hero::after{
  content:"";
  position:absolute;
  inset:-20px;
  background:
    radial-gradient(900px 260px at 12% 15%, rgba(170, 40, 65, 0.22), transparent 60%),
    radial-gradient(700px 240px at 88% 0%, rgba(120, 20, 40, 0.20), transparent 55%),
    radial-gradient(500px 220px at 45% 110%, rgba(90, 10, 30, 0.16), transparent 60%);
  pointer-events:none;
  z-index: 1;
}

body.centenary-theme .hub-hero.cent-hero > *{
  position: relative;
  z-index: 2;
}

.partners-carousel{
  overflow: hidden;
  position: relative;
  padding: 1rem;
  border-radius: 1.25rem;

  


  
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}

.partners-track{
  display: flex;
  gap: 1.25rem;
  align-items: stretch;
  width: max-content;
  
  animation: partners-marquee var(--partners-duration, 24s) linear infinite;
}

.partners-carousel:hover .partners-track,
.partners-carousel:focus-within .partners-track{
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce){
  .partners-track{ animation: none; }
  .partners-carousel{ overflow-x: auto; }
}

.partners-carousel .partner-card.step-card{
  width: min(360px, 86vw);
  flex: 0 0 auto;

 
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: none !important;

  border-radius: 1rem;
  padding: 1rem;
 
}

.partners-carousel .partner-media{
  height: 110px;   

}

.partners-carousel .partner-media img{
  height: 100px;    
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display: block;
}

.partners-carousel .partner-media img.logo--xl{ height: 110px; }

.partners-carousel .partner-media img.logo--sm{ height: 80px; }

@keyframes partners-marquee{
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-1 * var(--scroll-distance, 600px))); }
}

.who-closing{
  margin: 1.5rem 0 2.5rem;
  text-align: center;
}

.who-closing p{
  max-width: 70ch;
  margin: 0 auto;
  color: var(--muted);
  font-size: 1.05rem;
}

.partner-media {
  background: #1a4a8a!important;
}

.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.partner-card.step-card {
  display: flex;
  flex-direction: column;
}

.partner-media {
  min-height: 140px;
  border-radius: 1rem;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: 1rem;
  margin-bottom: 1rem;
}

.partner-media img {
  max-width: 100%;
  max-height: 90px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

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

@media (max-width: 575.98px) {
  .partners-grid {
    grid-template-columns: 1fr;
  }
}

:root{
  --org-trustees: #0f2f4f;  
  --org-mancom:   #0f5c52;  
  --org-warden:   #6b1e2b;  

  --org-card-radius: 16px;
  --org-shadow: 0 8px 24px rgba(0,0,0,0.08);
  --org-shadow-strong: 0 12px 32px rgba(0,0,0,0.18);

  --org-text: #111827;
  --org-muted: rgba(17,24,39,0.78);
}

[data-theme="dark"]{
  --org-trustees: #1e3a8a;
  --org-mancom:   #0d9488;
  --org-warden:   #9f1239;

  --org-text: #e5e7eb;
  --org-muted: rgba(229,231,235,0.78);
}

.org-card{
  border-radius: var(--org-card-radius);
  box-shadow: var(--org-shadow);
  background: #ffffff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  color: var(--org-text);
}

.org-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.12);
}

.small-muted{
  opacity: 1; 
  color: var(--org-muted);
}

.org-muted{
  opacity: 1;
  color: var(--org-muted);
}

.org-avatar{
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  font-weight: 700;
  letter-spacing: .5px;
  user-select: none;
  background: rgba(0,0,0,0.08);
  color: var(--org-text);
}

.org-item.org-primary .org-card{
  color: #ffffff;
  box-shadow: var(--org-shadow-strong);
}

.section-organisation .org-item.org-primary .org-card{ background: var(--org-trustees); }

.section-mancom       .org-item.org-primary .org-card{ background: var(--org-mancom); }

.section-warden       .org-item.org-primary .org-card{ background: var(--org-warden); }

.org-item.org-primary .org-card .small-muted,
.org-item.org-primary .org-card .org-muted{
  color: rgba(255,255,255,0.85) !important;
}

.org-item.org-primary .org-card .org-avatar{
  background: rgba(255,255,255,0.15);
  color: #ffffff;
}

.org-item.org-primary .org-card .btn{
  border-color: rgba(255,255,255,0.6) !important;
  color: #ffffff !important;
  background: transparent !important;
}

.org-item:not(.org-primary) .org-card{
  background: #ffffff;
  color: var(--org-text);
}

.section-organisation .org-item:not(.org-primary) .org-card{ border-top: 6px solid var(--org-trustees); }

.section-mancom       .org-item:not(.org-primary) .org-card{ border-top: 6px solid var(--org-mancom); }

.section-warden       .org-item:not(.org-primary) .org-card{ border-top: 6px solid var(--org-warden); }

.org-item:not(.org-primary) .org-card .small-muted,
.org-item:not(.org-primary) .org-card .org-muted{
  color: var(--org-muted) !important;
}

.section-organisation .org-item:not(.org-primary) .org-card .org-avatar{
  background: rgba(15,47,79,0.10);
  color: var(--org-trustees);
}

.section-mancom .org-item:not(.org-primary) .org-card .org-avatar{
  background: rgba(15,92,82,0.10);
  color: var(--org-mancom);
}

.section-warden .org-item:not(.org-primary) .org-card .org-avatar{
  background: rgba(107,30,43,0.10);
  color: var(--org-warden);
}

.btn.trusteesBtn{
  background: #0F2F4F !important;
  color: whitesmoke !important;
}

.btn.managementBtn{
  background: #0F5C52 !important;
  color: whitesmoke !important;
}

.btn.wardenBtn{
  background: #6B1E2B !important;
  color: whitesmoke !important;
}

.org-filter-panel{
  border-radius: 18px;
  background: rgba(255,255,255,0.62);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.45);
}

.filterbar{ gap: .75rem !important; }

.filterbar .btn{
  padding: .45rem .9rem;
  border-radius: 999px;
}

.filterbar .btn.active{
  transform: scale(1.04);
  box-shadow: 0 6px 16px rgba(0,0,0,0.14);
}

.org-card{
  line-height: 1.35;
}

.org-card h3{ line-height: 1.25; }

.org-card .small-muted{ line-height: 1.5; }

.org-section-plain{
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.section-organisation .row.g-3,
.section-mancom .row.g-3,
.section-warden .row.g-3{
  --bs-gutter-y: 1.25rem;
}

.section-warden .org-item.org-primary .org-card{
  background: #7a2534;
  box-shadow: 0 10px 26px rgba(0,0,0,0.16);
}

.section-mancom,
.section-warden{
  margin-top: 3rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(17,24,39,0.08);
}

[data-theme="dark"] .section-mancom,
[data-theme="dark"] .section-warden{
  border-top-color: rgba(229,231,235,0.14);
}

.org-cta .btn{
  padding: .55rem 1.15rem;
  box-shadow: none !important;
}

@media (min-width: 992px){
  .org-cta .btn{ width: auto !important; }
}

.org-item.org-primary .org-card {
  --text-color: #ffffff;
  --muted: rgba(255, 255, 255, 0.84);
  --org-text: #ffffff;
  --org-muted: rgba(255, 255, 255, 0.84);
}

.loc-muted{ opacity:.88; }

.loc-hero{
  position: relative;
  overflow: hidden;
}

.loc-hero::after{
  content:"";
  position:absolute;
  inset:-20px;
  background:
    radial-gradient(900px 280px at 10% 0%, rgba(93,153,210,.25), transparent 60%),
    radial-gradient(700px 280px at 90% 10%, rgba(34,75,142,.22), transparent 55%),
    url("../assets/media/location/header.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center right;
  
  pointer-events:none;
}

.loc-hero > *{ position:relative; }

.loc-quick-actions .btn{ white-space: nowrap; }

.loc-kv{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
}

.loc-kv-item{
  padding: .75rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.20);
  backdrop-filter: blur(10px);
}

[data-theme="dark"] .loc-kv-item,
[data-theme="autumn"] .loc-kv-item{
  background: rgba(0,0,0,0.22);
  border-color: rgba(255,255,255,0.12);
}

.loc-kv-label{ font-size: .85rem; opacity: .8; }

.loc-kv-value{ font-weight: 700; letter-spacing: .2px; }

.loc-stat{
  padding: .75rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.20);
  backdrop-filter: blur(10px);
  height: 100%;
}

[data-theme="dark"] .loc-stat,
[data-theme="autumn"] .loc-stat{
  background: rgba(0,0,0,0.20);
  border-color: rgba(255,255,255,0.12);
}

.loc-stat-label{ font-size:.85rem; opacity:.8; }

.loc-stat-value{ font-weight:700; font-size:1.05rem; }

.loc-card-actions{
  margin-top: 1rem;
  display:flex;
  gap:.5rem;
  align-items:center;
}

.loc-planner-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding-bottom: .9rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

[data-theme="dark"] .loc-planner-head,
[data-theme="autumn"] .loc-planner-head{
  border-bottom-color: rgba(255,255,255,.10);
}

.loc-planner-title{
  font-weight:900;
  letter-spacing:-.3px;
  margin:0 0 .25rem 0;
}

.loc-planner-head-actions{
  display:flex;
  gap:.5rem;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.loc-planner-shell{
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  box-shadow:
    0 40px 90px rgba(0,0,0,.12),
    0 14px 35px rgba(0,0,0,.08);
}

.loc-planner-shell::before{
  content:"";
  position:absolute;
  inset:-60px;
  background:
    radial-gradient(900px 380px at 12% 12%, rgba(93,153,210,.26), transparent 60%),
    radial-gradient(700px 360px at 88% 18%, rgba(34,75,142,.22), transparent 58%),
    radial-gradient(900px 420px at 50% 110%, rgba(93,153,210,.16), transparent 60%);
  filter: blur(.2px);
  pointer-events:none;
  z-index:0;
}

.loc-planner-shell > *{ position:relative; z-index:1; }

.loc-controls{
  padding: .9rem;
  border-radius: 18px;
  background: rgba(255,255,255,.50);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow:
    0 18px 45px rgba(0,0,0,.08),
    0 6px 16px rgba(0,0,0,.05);
}

.loc-controls .form-control{ border-radius: 1rem; }

[data-theme="dark"] .loc-controls,
[data-theme="autumn"] .loc-controls{
  background: rgba(0,0,0,.24);
  border-color: rgba(255,255,255,.12);
}

.loc-map-grid{
  display:grid;
  grid-template-columns: 340px 1.6fr 340px;
  gap: 1.5rem;
  align-items: stretch;
}

#routeInfoBox,
.loc-notes{
  background: rgba(255,255,255,.50);
  border-left: 1px solid rgba(0,0,0,.06);
  border-right: 1px solid rgba(0,0,0,.06);
  border-bottom: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  padding: 1rem;
  box-shadow:
    0 18px 40px rgba(0,0,0,.07),
    0 4px 12px rgba(0,0,0,.05);
}

[data-theme="dark"] #routeInfoBox,
[data-theme="autumn"] #routeInfoBox,
[data-theme="dark"] .loc-notes,
[data-theme="autumn"] .loc-notes{
  background: rgba(0,0,0,.22);
  border-left-color: rgba(255,255,255,.12);
  border-right-color: rgba(255,255,255,.12);
  border-bottom-color: rgba(255,255,255,.12);
  box-shadow:
    0 18px 40px rgba(0,0,0,.22),
    0 4px 12px rgba(0,0,0,.18);
}

#routeInfoBox{ min-height: 420px; }

.loc-route-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}

.loc-route-tools{
  display:flex;
  gap:.5rem;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.loc-route-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.45rem .9rem;
  margin:.25rem .4rem .25rem 0;
  border-radius: 999px;
  font-weight: 700;
  background: linear-gradient(135deg, rgba(93,153,210,.18), rgba(34,75,142,.18));
  border: 1px solid rgba(93,153,210,.35);
}

[data-theme="dark"] .loc-route-pill,
[data-theme="autumn"] .loc-route-pill{
  background: rgba(0,0,0,0.22);
  border-color: rgba(255,255,255,0.14);
}

.loc-steps-wrap{
  max-height: 320px;
  overflow-y: auto;
  padding-right: .25rem;
}

.loc-route-steps{
  padding-left: 1.1rem;
  margin: 0;
}

.loc-route-steps li{
  margin-bottom: .55rem;
  line-height: 1.35;
}

.loc-steps-wrap::-webkit-scrollbar{ width: 10px; }

.loc-steps-wrap::-webkit-scrollbar-thumb{
  background: rgba(0,0,0,.18);
  border-radius: 999px;
}

.loc-steps-wrap::-webkit-scrollbar-track{
  background: rgba(0,0,0,.06);
  border-radius: 999px;
}

#openRouteMapsBtn[aria-disabled="true"]{
  pointer-events:none;
  opacity:.6;
}

.loc-empty{
  padding: 1rem;
  border-radius: 16px;
  background: rgba(255,255,255,.40);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

[data-theme="dark"] .loc-empty,
[data-theme="autumn"] .loc-empty{
  background: rgba(0,0,0,.18);
  border-color: rgba(255,255,255,.10);
}

.loc-empty-icon{
  width: 48px;
  height: 48px;
  border-radius: 14px;
  margin-bottom: .75rem;
  background:
    radial-gradient(18px 18px at 30% 30%, rgba(93,153,210,.35), transparent 60%),
    radial-gradient(18px 18px at 70% 70%, rgba(34,75,142,.28), transparent 60%),
    rgba(255,255,255,.35);
  border: 1px solid rgba(93,153,210,.25);
  box-shadow: 0 12px 25px rgba(0,0,0,.08);
  position: relative;
}

.loc-empty-icon::after{
  content:"";
  position:absolute;
  inset: 12px;
  border-radius: 999px;
  border: 2px solid rgba(34,75,142,.35);
  box-shadow: inset 0 0 0 2px rgba(93,153,210,.18);
}

.loc-empty-title{
  font-weight: 900;
  letter-spacing: -.2px;
  margin-bottom: .25rem;
}

.loc-empty-text{
  opacity: .9;
  margin-bottom: .75rem;
}

.loc-empty-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.loc-chip{
  display:inline-flex;
  align-items:center;
  padding:.35rem .65rem;
  border-radius: 999px;
  background: rgba(255,255,255,.35);
  border: 1px solid rgba(0,0,0,.06);
  font-weight: 700;
  font-size: .85rem;
}

[data-theme="dark"] .loc-chip,
[data-theme="autumn"] .loc-chip{
  background: rgba(0,0,0,.18);
  border-color: rgba(255,255,255,.10);
}

.loc-map{
  height: 520px;
  width: 100%;
  border-radius: 18px;
  overflow: hidden;
  box-shadow:
    0 30px 70px rgba(0,0,0,.12),
    0 10px 22px rgba(0,0,0,.07);
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.35);
  backdrop-filter: blur(10px);
}

.loc-map .leaflet-tile{
  filter: saturate(1.15) contrast(1.05) brightness(1.02);
}

[data-theme="dark"] .loc-map .leaflet-tile{
  filter: saturate(1.05) contrast(1.05) brightness(.95);
}

.leaflet-control-container .leaflet-routing-container,
.leaflet-control-container .leaflet-control{
  border-radius: 1rem !important;
  background: rgba(255,255,255,0.18) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  backdrop-filter: blur(12px) saturate(150%);
}

[data-theme="dark"] .leaflet-control-container .leaflet-routing-container,
[data-theme="autumn"] .leaflet-control-container .leaflet-routing-container,
[data-theme="dark"] .leaflet-control-container .leaflet-control,
[data-theme="autumn"] .leaflet-control-container .leaflet-control{
  background: rgba(0,0,0,0.28) !important;
  border-color: rgba(255,255,255,0.14) !important;
}

.loc-list{ padding-left: 1.1rem; }

.loc-notes h3{
  font-size:1rem;
  font-weight:800;
  margin-bottom:.6rem;
}

.btn-success-flash{
  background: linear-gradient(135deg, #1c7c54, #2aa876) !important;
  color: #fff !important;
  box-shadow: 0 0 0 3px rgba(42,168,118,.22);
  transition: all .25s ease;
}

.loc-map-grid > *{
  transition: transform .25s ease, box-shadow .25s ease;
}

.loc-map-grid > *:hover{
  transform: translateY(-4px);
}

@media (max-width: 991px){
  .loc-kv{ grid-template-columns: 1fr; }
  .loc-map-grid{ grid-template-columns: 1fr; gap: 1rem; }
  .loc-map{ height: 380px; }
  .loc-controls{ padding: .8rem; }
}

#routeInfoBox{
  position: relative;
  z-index: 5;              
  pointer-events: auto;
}

#routeInfoBox .loc-route-head,
#routeInfoBox .loc-route-tools{
  position: relative;
  z-index: 6;
  pointer-events: auto;
}

#routeInfoBox.fade-box::before,
#routeInfoBox.fade-box::after{
  pointer-events: none !important;
}

#routeEmptyState{
  position: relative;
  z-index: 1;
  pointer-events: auto;
}

.loc-map-grid{ position: relative; }

#routeInfoBox,
.loc-notes{
  position: relative;
  z-index: 50;
}

.map-container,
.loc-map{
  position: relative;
  z-index: 1;
}

#routeInfoBox::before,
#routeInfoBox::after{
  pointer-events: none !important;
}

.loc-route-tools .btn:disabled,
.loc-route-tools .btn[aria-disabled="true"]{
  opacity: .45;
  cursor: not-allowed;
  box-shadow: none !important;
  transform: none !important;
  pointer-events: none;
  filter: grayscale(.4);
  background: rgba(200,200,200,.15) !important;
  border-color: rgba(0,0,0,.08) !important;
}

.loc-route-tools .btn:disabled:hover,
.loc-route-tools .btn[aria-disabled="true"]:hover{
  transform: none !important;
  box-shadow: none !important;
}

#copyRouteBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
}

#copyRouteBtn:disabled{
  opacity: .55 !important;                 
  pointer-events: none !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;

  
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  color: rgba(0,0,0,.55) !important;
  filter: none !important;                 
}

#openRouteMapsBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
}

#openRouteMapsBtn[aria-disabled="true"]{
  opacity: .55 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;

  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  color: rgba(0,0,0,.55) !important;
  filter: none !important;
}

[data-theme="dark"] #copyRouteBtn:disabled,
[data-theme="autumn"] #copyRouteBtn:disabled,
[data-theme="dark"] #openRouteMapsBtn[aria-disabled="true"],
[data-theme="autumn"] #openRouteMapsBtn[aria-disabled="true"]{
  background: rgba(0,0,0,.20) !important;
  border-color: rgba(255,255,255,.14) !important;
  color: rgba(255,255,255,.60) !important;
}

.mode-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
}

@media (max-width: 992px) {
  .mode-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

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

.mode-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: 18px;
  padding: 1.35rem 1rem;
  min-height: 100px;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .10);
  backdrop-filter: blur(10px);
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.mode-card:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, .14);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .12);
}

.mode-card.is-active {
  transform: translateY(-4px) scale(1.02);
  background: linear-gradient(145deg, rgba(255, 255, 255, .32), rgba(255, 255, 255, .18));
  border-color: rgba(255, 255, 255, .35);
  box-shadow: 0 22px 55px rgba(0, 0, 0, .18), inset 0 1px 0 rgba(255, 255, 255, .45);
}

.mode-card.is-active::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 18px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .40);
  pointer-events: none;
}

.mode-ico {
  font-size: 2.6rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  margin-bottom: .6rem;
}

.mode-title { font-weight: 900; margin-top: .35rem; }

.mode-sub { opacity: .8; font-size: .9rem; margin-top: .1rem; }

.soft-hr { border: 0; height: 1px; background: rgba(0, 0, 0, .10); margin: 1rem 0; }

.link-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .55rem .7rem;
  border-radius: 14px;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .10);
  margin-bottom: .5rem;
}

.link-list a:hover, .link-list a:focus-visible { background: rgba(255, 255, 255, .16); }

.route-options { display: grid; gap: .5rem; }

.route-btn {
  width: 100%;
  text-align: left;
  border-radius: 14px;
  padding: .6rem .7rem;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .10);
  cursor: pointer;
  font-weight: 800;
}

.route-btn:hover { background: rgba(255, 255, 255, .16); }

.route-btn.is-active {
  background: rgba(255, 255, 255, .20);
  outline: 2px solid rgba(255, 255, 255, .18);
}

.map-head {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  margin-bottom: .75rem;
}

.map-canvas {
  height: 560px;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
}

@media (max-width: 992px) {
  .map-canvas { height: 440px; }
}

.route-panel {
  border-radius: 14px;
  padding: .85rem;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .10);
  height: 520px;
  overflow-y: auto;
}

.route-steps {
  margin: 0;
  padding-left: 0;
  list-style: none;
  counter-reset: step;
}

.route-steps li {
  counter-increment: step;
  padding: .55rem .6rem;
  margin-bottom: .35rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .08);
  line-height: 1.25;
  display: flex;
  gap: .6rem;
  align-items: flex-start;
}

.route-steps li::before {
  content: counter(step) ".";
  font-weight: 900;
  min-width: 1.6rem;
  opacity: .85;
}

.taxi-list { display: grid; gap: .5rem; }

.taxi-item {
  border-radius: 14px;
  padding: .6rem .7rem;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .10);
  cursor: pointer;
}

.taxi-item:hover { background: rgba(255, 255, 255, .16); }

.taxi-item.is-active {
  background: rgba(255, 255, 255, .20);
  outline: 2px solid rgba(255, 255, 255, .18);
}

.taxi-item .name { font-weight: 800; }

.taxi-item .meta { opacity: .8; font-size: .9rem; margin-top: .1rem; }

.taxi-card {
  border-radius: 16px;
  padding: .85rem;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .10);
}

.taxi-name { font-weight: 900; font-size: 1.05rem; }

.taxi-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

#leftTitle { font-weight: 900; }

#routeSummary.route-summary {
  font-weight: 900;
  font-size: 1.05rem;
  line-height: 1.15;
  opacity: 1;
}

#routeMeta { font-weight: 700; }

.page-hero {
     user-select: none; 

  position: relative;
  overflow: hidden;
  min-height: 190px;
  background: url("../assets/media/who_we_are/transport.png") center/cover no-repeat;
  border-radius: 24px;
}

.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(255, 255, 255, .62) 0%,
    rgba(255, 255, 255, .38) 42%,
    rgba(255, 255, 255, .18) 100%);
  pointer-events: none;
}

.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 50%,
    rgba(0, 0, 0, 0) 35%,
    rgba(0, 0, 0, .10) 100%);
  pointer-events: none;
}

.page-hero__content {
  position: relative;
  z-index: 1;
  max-width: 560px;
  padding: 1.25rem 1.4rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, .18);
  border: 1px solid rgba(255, 255, 255, .28);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .14), inset 0 1px 0 rgba(255, 255, 255, .30);
}

.page-hero .eyebrow { opacity: .85; margin-bottom: .35rem !important; }

.page-hero h1 { line-height: 1.05; letter-spacing: .2px; }

@media (max-width:576px) {
  .page-hero { min-height: 170px; }
  .page-hero__content { max-width: 100%; padding: 1.05rem 1.1rem; }
}

.route-tools{
  display:grid;
  gap:.5rem;
  align-content:start;
  justify-items:stretch;
  min-width: 140px;
}

.route-tools .btn{
  width:100%;
  white-space:nowrap;
}

a[aria-disabled="true"] { pointer-events: none; opacity: .55; }

.mode-card:focus-visible,
.route-btn:focus-visible,
.taxi-item:focus-visible,
.link-list a:focus-visible,
.btn:focus-visible {
  outline: 3px solid rgba(13, 110, 253, .35);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .mode-card, .route-btn, .taxi-item { transition: none !important; }
  .mode-card:hover { transform: none !important; }
  .mode-card.is-active { transform: none !important; }
}

#taxiDock .glass-panel {
  height: 100%;
}

#taxiList{
  display:flex;
  gap:.6rem;
  flex-wrap:nowrap;
  overflow-x:auto;
  padding-bottom:.35rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

#taxiList .taxi-item{
  flex: 0 0 260px;          
  scroll-snap-align: start;
}

#taxiDetails{
  width:100%;
}

#taxiList::-webkit-scrollbar{ height:8px; }

#taxiList::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.18); border-radius:999px; }

#taxiList::-webkit-scrollbar-track{ background:rgba(0,0,0,.06); border-radius:999px; }

:root{
  --hub-accent:#0f2f4f;
  --hub-muted: rgba(17,24,39,0.78);
  --hub-shadow: 0 12px 34px rgba(0,0,0,.08);
  --hub-shadow-strong: 0 18px 44px rgba(0,0,0,.12);
}

[data-theme="dark"]{
  --hub-accent:#1e3a8a;
  --hub-muted: rgba(229,231,235,0.78);
}

.centenary-theme{
  --primary-rgb: 107 30 43;
  --hub-accent: #6b1e2b;
  --accent: #6b1e2b;
}

[data-theme="dark"] .centenary-theme{
  --primary-rgb: 159 18 57;
  --hub-accent: #9f1239;
  --accent: #9f1239;
}

.sl-theme{
  --primary-rgb: 12 35 64;
  --hub-accent: #0c2340;
  --accent: #0c2340;
}

[data-theme="dark"] .sl-theme{
  --primary-rgb: 34 74 130;
  --hub-accent: #224a82;
  --accent: #224a82;
}

.camp-theme{
  --primary-rgb: 34 197 94;    
  --hub-accent: #22c55e;
  --accent: #22c55e;           
}

[data-theme="dark"] .camp-theme{
  --primary-rgb: 74 222 128;
  --hub-accent: #4ade80;
  --accent: #4ade80;
}

.sports-theme{
  --primary-rgb: 249 115 22;
  --hub-accent: #f97316;
  --accent: #f97316;
}

[data-theme="dark"] .sports-theme{
  --primary-rgb: 251 146 60;
  --hub-accent: #fb923c;
  --accent: #fb923c;
}

.corporate-theme{
  --primary-rgb: 124 58 237;
  --hub-accent: #7c3aed;
  --accent: #7c3aed;
}

[data-theme="dark"] .corporate-theme{
  --primary-rgb: 167 139 250;
  --hub-accent: #a78bfa;
  --accent: #a78bfa;
}

.org-muted{ opacity:1; color: var(--hub-muted); }

.hub-hero{ position:relative; overflow:hidden; }

.hub-hero h1{
  font-size: clamp(2rem, 3.2vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.hub-hero .lead{
  font-size: 1.1rem;
  opacity: 0.9;
}

.hub-hero::after{
  content:"";
  position:absolute;
  inset:-40px;
  background:
      radial-gradient(700px 240px at 100% 0%, rgba(255, 255, 255, 0.12), transparent 60%),
      radial-gradient(600px 220px at 0% 100%, rgba(255, 255, 255, 0.10), transparent 65%);
  pointer-events:none;
  z-index:0;
}

.hub-hero > *{ position:relative; z-index:1; }

.hub-icon{
  width:44px;height:44px;flex:0 0 44px;
  display:grid;place-items:center;
  border-radius:12px;
  background: rgba(15,47,79,0.10);
  border: 1px solid rgba(15,47,79,0.16);
  color: var(--hub-accent);
  
-webkit-user-select:none;
user-select: none;
}

.hub-icon i{font-size:1.05rem;line-height:1;}

[data-theme="dark"] .hub-icon,
[data-theme="autumn"] .hub-icon{
  background: rgba(30,58,138,0.18);
  border-color: rgba(255,255,255,.12);
  color: rgba(255,255,255,.88);
}

.hub-card {
  border-radius: 16px;
  box-shadow: var(--hub-shadow);
  background: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-top: 6px solid var(--hub-accent);
  transition: transform .2s ease, box-shadow .2s ease;
}

.hub-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--hub-shadow-strong);
}

.hub-card--primary {
  background: var(--surface-bg-strong);
  border: 1px solid var(--surface-border);
  border-top: 6px solid var(--hub-accent);
}

.terms-item[open] {
  border-left: 3px solid var(--accent-color);
}


section.mb-4{
  margin-bottom: 3.5rem !important;
}

.glass-panel{
  
  -webkit-backdrop-filter: blur(22px) saturate(150%) brightness(110%);
  backdrop-filter: blur(22px) saturate(150%) brightness(110%);
  box-shadow: 0 12px 40px rgba(0,0,0,0.18);
}

.hero-img{
  border-radius: 14px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.25);
}

.steps-wrap{
  max-width: 920px;
  margin: 0 auto;
}

.steps-progress-wrap{
  position: relative;
}

.steps-progress-line{
  position: absolute;
  left: 50%;
  top: 14px;
  bottom: 14px;
  width: 2px;
  background: rgba(11,27,74,.10);
  transform: translateX(-50%);
  z-index: 0;
  pointer-events: none;
}

.steps-stack{
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.steps-stack .hub-card,
.step-connector{
  position: relative;
  z-index: 1;
}

.steps-stack .hub-card{
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(11,27,74,.10);
  border-top: 3px solid var(--hub-accent);
}

.step-head{
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .35rem;
}

.step-badge{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  background: rgba(255,255,255,.92);
  color: var(--hub-accent);
  border: 1px solid rgba(11,27,74,.10);
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
}

.step-badge--final{
  background: var(--hub-accent);
  color: #fff;
  border-color: transparent;
}

.step-connector{
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: .65;
  margin: -4px 0;
}

.step-connector i{
  font-size: 18px;
  color: var(--hub-accent);
  opacity: .75;
  animation: arrowBounce 2.6s infinite;
}

@keyframes arrowBounce{
  0%,100% { transform: translateY(0); opacity:.6; }
  50% { transform: translateY(3px); opacity:.95; }
}

.step-card{
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.step-card.is-active{
  transform: translateY(-3px);
  box-shadow: 0 20px 40px rgba(0,0,0,.14);
  background: rgba(255,255,255,.98);
}

.portal-preview{
  cursor: zoom-in;
  transition: transform .2s ease, box-shadow .2s ease;
}

.portal-preview:hover{
  transform: scale(1.03);
}
/* === Extracted page-scoped styles === */

/* ===== index ===== */
/* ── Page-scoped utilities ──────────────────────────── */

body[data-page="index"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--accent);
}

body[data-page="index"] .small-muted {
  font-size: 0.85rem; color: var(--muted);
}

body[data-page="index"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Check-list ─────────────────────────────────────── */

body[data-page="index"] .check-list {
  list-style: none; padding: 0; margin: 0;
}

body[data-page="index"] .check-list li {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        padding: 0.38rem 0;
        font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="index"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="index"] .check-list li i {
  color: var(--text-color); margin-top: 0.15rem; flex-shrink: 0;
}

/* ── Note pill ──────────────────────────────────────── */

body[data-page="index"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--muted);
}

body[data-page="index"] .note-pill i {
  color: var(--accent); margin-top: 0.1rem; flex-shrink: 0;
}

/* ── Stat card / icon badge ─────────────────────────── */

body[data-page="index"] .stat-card {
  padding: 1rem;
        border-radius: 1rem;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 20%);
        height: 100%;
}

body[data-page="index"] .icon-badge {
  width: 40px; height: 40px;
        border-radius: 14px;
        display: grid; place-items: center;
        border: 1px solid rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        flex: 0 0 auto;
}

/* ── Event feature grid ─────────────────────────────── */

body[data-page="index"] .event-features {
  display: grid;
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 0.4rem 0.9rem;
}

body[data-page="index"] .event-feature {
  display: flex;
        align-items: center;
        gap: 0.45rem;
        font-size: 0.85rem;
        font-weight: 500;
        color: var(--text-color);
}

body[data-page="index"] .event-feature i {
  font-size: 0.9rem; opacity: 0.8;
}

/* ── Home panel carousel images ─────────────────────── */

body[data-page="index"] .home-panel-media {
  overflow: hidden; border-radius: 14px;
}

body[data-page="index"] .home-panel-img {
  width: 100%; height: 200px; object-fit: cover; transition: transform .3s ease;
}

body[data-page="index"] .home-panel-img:hover {
  transform: scale(1.02);
}

@media (min-width: 992px) {
body[data-page="index"] .home-panel-img {
    height: 260px;
  }
}

/* ── Callout banner ─────────────────────────────────── */

body[data-page="index"] .callout-primary {
  background: var(--primary);
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="index"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%; right: -5%;
        width: 260px; height: 260px;
        border-radius: 50%;
        background: rgba(255,255,255,.06);
        pointer-events: none;
}

body[data-page="index"] .callout-primary h2, body[data-page="index"] .callout-primary h3 {
  color: #fff;
}

body[data-page="index"] .callout-primary p {
  color: rgba(255,255,255,.88); margin: 0;
}

body[data-page="index"] .callout-primary .btn-glass {
  border-color: rgba(255,255,255,.55) !important; color: #fff !important;
}

/* ── Venue cards ────────────────────────────────────── */

body[data-page="index"] .venue-card {
  border-radius: 1rem;
        border: 1px solid var(--surface-border);
        background: var(--surface-bg);
        padding: 1.1rem 1.2rem;
        height: 100%;
        transition: border-color .2s ease, box-shadow .2s ease;
}

body[data-page="index"] .venue-card:hover {
  border-color: var(--accent);
        box-shadow: 0 8px 28px rgba(34,75,142,.12);
}

body[data-page="index"] .venue-num {
  font-family: var(--font-heading);
        font-size: 1.8rem;
        font-weight: 700;

    color: var(--text-color);

        line-height: 1;
}

/* ── Testimonial ────────────────────────────────────── */

body[data-page="index"] .testimonial-card {
  padding: 0.75rem;
}

body[data-page="index"] .testimonial-card p {
  font-size: 0.95rem; font-style: italic; margin: 0;
}

/* ── Reveal animation ───────────────────────────────── */



/* ===== accommodation ===== */
/* ── Callout banner ─────────────────────────────────── */

body[data-page="accommodation"] .callout-primary {
  background: rgb(var(--primary-rgb));
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="accommodation"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%; right: -5%;
        width: 260px; height: 260px;
        border-radius: 50%;
        background: rgba(255,255,255,0.06);
        pointer-events: none;
}

body[data-page="accommodation"] .callout-primary h2 {
  color: #fff;
}

body[data-page="accommodation"] .callout-primary p {
  color: rgba(255,255,255,.88); margin: 0;
}

body[data-page="accommodation"] .callout-primary .btn-glass {
  border-color: rgba(255,255,255,0.55) !important; color: #fff !important;
}

body[data-page="accommodation"] .accommodation-theme {
  --primary-rgb: 34 75 142;
      --hub-accent: #224b8e;
}

body[data-page="accommodation"] [data-theme="dark"] .accommodation-theme {
  --primary-rgb: 74 123 201;
      --hub-accent: #4a7bc9;
}

body[data-page="accommodation"] .eyebrow {
  font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgb(var(--primary-rgb));
}

body[data-page="accommodation"] .small-muted {
  font-size: 0.85rem;
      color: var(--muted);
}

body[data-page="accommodation"] .section-gap {
  margin-bottom: 1.75rem;
}

body[data-page="accommodation"] .accom-card, body[data-page="accommodation"] .decision-card, body[data-page="accommodation"] .support-card {
  position: relative;
      overflow: hidden;
}

body[data-page="accommodation"] .accom-card::before, body[data-page="accommodation"] .decision-card::before, body[data-page="accommodation"] .support-card::before {
  content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 4px;
      background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.42) 100%);
      border-radius: 6px 6px 0 0;
}

body[data-page="accommodation"] .decision-card, body[data-page="accommodation"] .support-card {
  height: 100%;
}

body[data-page="accommodation"] .accom-card {
  border-radius: 18px;
      transition: transform .25s ease, box-shadow .25s ease;
}

body[data-page="accommodation"] .accom-card:hover, body[data-page="accommodation"] .decision-card:hover {
  transform: translateY(-4px);
      box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
}

body[data-page="accommodation"] .accom-media {
  position: relative;
      height: 230px;
      overflow: hidden;
      border-radius: 1rem 1rem 0 0;
}

body[data-page="accommodation"] .accom-media img {
  width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .35s ease;
}

body[data-page="accommodation"] .accom-card:hover .accom-media img {
  transform: scale(1.03);
}

body[data-page="accommodation"] .accom-body {
  padding: 1rem 1rem 1.15rem 1rem;
}

body[data-page="accommodation"] .accom-kicker {
  font-size: .78rem;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      margin-bottom: .45rem;
      color: rgb(var(--primary-rgb));
}

body[data-page="accommodation"] .accom-title {
  display: inline-flex;
      align-items: center;
      margin-bottom: .8rem;
}

body[data-page="accommodation"] .accom-copy {
  margin-bottom: .95rem;
}

body[data-page="accommodation"] .accom-points, body[data-page="accommodation"] .decision-points {
  list-style: none;
      margin: 0;
      padding: 0;
}

body[data-page="accommodation"] .accom-points li, body[data-page="accommodation"] .decision-points li {
  position: relative;
      padding-left: 1.15rem;
      margin-bottom: .5rem;
      font-size: 0.9rem;
}

body[data-page="accommodation"] .accom-points li:last-child, body[data-page="accommodation"] .decision-points li:last-child {
  margin-bottom: 0;
}

body[data-page="accommodation"] .accom-points li::before, body[data-page="accommodation"] .decision-points li::before {
  content: "•";
      position: absolute;
      left: 0;
      top: 0;
      font-weight: 700;
      color: rgb(var(--primary-rgb));
}

body[data-page="accommodation"] .decision-icon {
  width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 14px;
      margin-bottom: .8rem;
      border: 1px solid rgba(255, 255, 255, .16);
      background: color-mix(in srgb, var(--panel-bg), transparent 22%);
      color: rgb(var(--primary-rgb));
}

body[data-page="accommodation"] .support-card .btn {
  margin-top: 1rem;
}



/* ===== activities ===== */
body[data-page="activities"] .activities-theme {
  --primary-rgb: 34 75 142;
        --hub-accent: #224b8e;
}

body[data-page="activities"] [data-theme="dark"] .activities-theme {
  --primary-rgb: 74 123 201;
        --hub-accent: #4a7bc9;
}

body[data-page="activities"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgb(var(--primary-rgb));
}

body[data-page="activities"] .small-muted {
  font-size: 0.85rem;
        color: var(--muted);
}

body[data-page="activities"] .section-gap {
  margin-bottom: 1.75rem;
}

body[data-page="activities"] .hero-side-image-wrap {
  max-width: 320px;
        margin: 0 auto;
}

body[data-page="activities"] .hero-side-image {
  width: 100%;
        display: block;
        border-radius: 18px;
        border: 1px solid rgba(255, 255, 255, .14);
}

body[data-page="activities"] .activity-card, body[data-page="activities"] .decision-card, body[data-page="activities"] .support-card {
  position: relative;
        overflow: hidden;
}

body[data-page="activities"] .activity-card::before, body[data-page="activities"] .decision-card::before, body[data-page="activities"] .support-card::before {
  content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.42) 100%);
        border-radius: 6px 6px 0 0;
}

body[data-page="activities"] .decision-card, body[data-page="activities"] .support-card {
  height: 100%;
}

body[data-page="activities"] .activity-card {
  border-radius: 18px;
        transition: transform .25s ease, box-shadow .25s ease;
}

body[data-page="activities"] .activity-card:hover, body[data-page="activities"] .decision-card:hover {
  transform: translateY(-4px);
        box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
}

body[data-page="activities"] .activity-media {
  position: relative;
        height: 230px;
        overflow: hidden;
        border-radius: 1rem 1rem 0 0;
}

body[data-page="activities"] .activity-media img {
  width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform .35s ease;
}

body[data-page="activities"] .activity-card:hover .activity-media img {
  transform: scale(1.03);
}

body[data-page="activities"] .activity-body {
  padding: 1rem 1rem 1.15rem 1rem;
}

body[data-page="activities"] .activity-kicker {
  font-size: .78rem;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        margin-bottom: .45rem;
        color: rgb(var(--primary-rgb));
}

body[data-page="activities"] .activity-title {
  display: inline-flex;
        align-items: center;
        margin-bottom: .8rem;
}

body[data-page="activities"] .activity-copy {
  margin-bottom: .95rem;
}

body[data-page="activities"] .activity-points, body[data-page="activities"] .decision-points {
  list-style: none;
        margin: 0;
        padding: 0;
}

body[data-page="activities"] .activity-points li, body[data-page="activities"] .decision-points li {
  position: relative;
        padding-left: 1.15rem;
        margin-bottom: .5rem;
        font-size: 0.9rem;
}

body[data-page="activities"] .activity-points li:last-child, body[data-page="activities"] .decision-points li:last-child {
  margin-bottom: 0;
}

body[data-page="activities"] .activity-points li::before, body[data-page="activities"] .decision-points li::before {
  content: "•";
        position: absolute;
        left: 0;
        top: 0;
        font-weight: 700;
        color: rgb(var(--primary-rgb));
}

body[data-page="activities"] .decision-icon {
  width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        margin-bottom: .8rem;
        border: 1px solid rgba(255, 255, 255, .16);
        background: color-mix(in srgb, var(--panel-bg), transparent 22%);
        color: rgb(var(--primary-rgb));
}

body[data-page="activities"] .callout-primary {
  background: rgb(var(--primary-rgb));
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="activities"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%;
        right: -5%;
        width: 260px;
        height: 260px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.06);
        pointer-events: none;
}

body[data-page="activities"] .callout-primary h2, body[data-page="activities"] .callout-primary h4 {
  color: #fff;
}

body[data-page="activities"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
        margin: 0;
}

body[data-page="activities"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, 0.55) !important;
        color: #fff !important;
}

body[data-page="activities"] .support-card .btn {
  margin-top: 1rem;
}



/* ===== camp ===== */
/* ===== shared campsite theme ===== */

body.camp-theme[data-page="camp"],
body.camp-theme[data-page="campPlan"],
body.camp-theme[data-page="bedding-list-campsite"] {
  --primary-rgb: 16 73 53;
  --hub-accent: #104935;
  --accent: #104935;
}

body[data-theme="dark"].camp-theme[data-page="camp"],
body[data-theme="dark"].camp-theme[data-page="campPlan"],
body[data-theme="dark"].camp-theme[data-page="bedding-list-campsite"] {
  --primary-rgb: 24 117 84;
  --hub-accent: #187554;
  --accent: #187554;
}

/* shared hero/grid treatment for campsite pages */
body.camp-theme[data-page="camp"] .hub-hero,
body.camp-theme[data-page="campPlan"] .hub-hero,
body.camp-theme[data-page="bedding-list-campsite"] .hub-hero {
  position: relative;
  overflow: hidden;
}

body.camp-theme[data-page="camp"] .hub-hero .hero-grid,
body.camp-theme[data-page="campPlan"] .hub-hero .hero-grid,
body.camp-theme[data-page="bedding-list-campsite"] .hub-hero .hero-grid {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(600px 220px at 15% 20%, rgba(16, 73, 53, .18), transparent 60%),
    radial-gradient(540px 220px at 85% 35%, rgba(16, 73, 53, .14), transparent 60%);
  pointer-events: none;
}

body[data-theme="dark"].camp-theme[data-page="camp"] .hub-hero .hero-grid,
body[data-theme="dark"].camp-theme[data-page="campPlan"] .hub-hero .hero-grid,
body[data-theme="dark"].camp-theme[data-page="bedding-list-campsite"] .hub-hero .hero-grid {
  background:
    radial-gradient(600px 220px at 15% 20%, rgba(24, 117, 84, .20), transparent 60%),
    radial-gradient(540px 220px at 85% 35%, rgba(24, 117, 84, .16), transparent 60%);
}

/* ===== shared campsite page shell ===== */

body[data-page="camp"] .camp-card,
body[data-page="campPlan"] .camp-card,
body[data-page="bedding-list-campsite"] .camp-card {
  position: relative;
  overflow: hidden;
}

body[data-page="camp"] .camp-card::before,
body[data-page="campPlan"] .camp-card::before,
body[data-page="bedding-list-campsite"] .camp-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.45) 100%);
  border-radius: 6px 6px 0 0;
}

body[data-page="camp"] .eyebrow,
body[data-page="campPlan"] .eyebrow,
body[data-page="bedding-list-campsite"] .eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(var(--primary-rgb));
}

body[data-page="camp"] .small-muted,
body[data-page="campPlan"] .small-muted,
body[data-page="bedding-list-campsite"] .small-muted {
  font-size: 0.85rem;
  color: var(--muted);
}

body[data-page="camp"] .section-gap,
body[data-page="campPlan"] .section-gap,
body[data-page="bedding-list-campsite"] .section-gap {
  margin-bottom: 1.75rem;
}

body[data-page="camp"] .note-pill,
body[data-page="campPlan"] .note-pill,
body[data-page="bedding-list-campsite"] .note-pill {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  background: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: 0.75rem;
  padding: 0.65rem 0.9rem;
  font-size: 0.83rem;
  color: var(--muted);
}

body[data-page="camp"] .note-pill i,
body[data-page="campPlan"] .note-pill i,
body[data-page="bedding-list-campsite"] .note-pill i {
  color: rgb(var(--primary-rgb));
  margin-top: 0.1rem;
  flex-shrink: 0;
}

body[data-page="camp"] .callout-primary,
body[data-page="campPlan"] .callout-primary,
body[data-page="bedding-list-campsite"] .callout-primary {
  background: rgb(var(--primary-rgb));
  color: #fff;
  border-radius: 1rem;
  padding: 1.5rem 1.75rem;
  position: relative;
  overflow: hidden;
}

body[data-page="camp"] .callout-primary::after,
body[data-page="campPlan"] .callout-primary::after,
body[data-page="bedding-list-campsite"] .callout-primary::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -5%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .06);
  pointer-events: none;
}

body[data-page="camp"] .callout-primary h2,
body[data-page="camp"] .callout-primary h4,
body[data-page="campPlan"] .callout-primary h2,
body[data-page="campPlan"] .callout-primary h4,
body[data-page="bedding-list-campsite"] .callout-primary h2,
body[data-page="bedding-list-campsite"] .callout-primary h4 {
  color: #fff;
}

body[data-page="camp"] .callout-primary p,
body[data-page="campPlan"] .callout-primary p,
body[data-page="bedding-list-campsite"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
  margin: 0;
}

body[data-page="camp"] .callout-primary .btn-glass,
body[data-page="campPlan"] .callout-primary .btn-glass,
body[data-page="bedding-list-campsite"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, .55) !important;
  color: #fff !important;
}
/* ===== centenary ===== */
/* ── Centenary theme accent colour ─────────────────── */

body[data-page="centenary"] .centenary-theme {
  --primary-rgb: 107 30 43;
        --hub-accent: #6b1e2b;
}

body[data-page="centenary"] [data-theme="dark"] .centenary-theme {
  --primary-rgb: 159 18 57;
        --hub-accent: #9f1239;
}

/* ── Section card with accent top stripe ───────────── */

body[data-page="centenary"] .cent-card {
  position: relative;
        overflow: hidden;
}

body[data-page="centenary"] .cent-card::before {
  content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 4px;
        background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.45) 100%);
        border-radius: 6px 6px 0 0;
}

/* ── Eyebrow label ──────────────────────────────────── */

body[data-page="centenary"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgb(var(--primary-rgb));
}

/* ── Chips ──────────────────────────────────────────── */

body[data-page="centenary"] .chip-row {
  display: flex; flex-wrap: wrap; gap: .5rem;
}

body[data-page="centenary"] .chip {
  display: inline-flex;
        align-items: center;
        gap: .45rem;
        padding: .35rem .65rem;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 35%);
        font-size: .92rem;
}

/* ── Hero video panel ───────────────────────────────── */

body[data-page="centenary"] .hero-video {
  width: 100%;
        min-height: 320px;
        height: 100%;
        overflow: hidden;
        border-radius: 1rem;
        border: 1px solid rgba(255,255,255,.15);
}

body[data-page="centenary"] .hero-video video {
  width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ── Key facts grid ─────────────────────────────────── */

body[data-page="centenary"] .keyfacts__list {
  display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.75rem;
        list-style: none;
        margin: 0; padding: 0;
}

body[data-page="centenary"] .keyfacts__list li {
  display: flex;
        align-items: center;
        gap: 0.55rem;
        padding: 0.75rem 0.9rem;
        border-radius: 14px;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        font-size: 0.88rem;
}

body[data-page="centenary"] .keyfacts__list li i {
  color: rgb(var(--primary-rgb)); flex-shrink: 0;
}

@media (max-width: 575px) {
body[data-page="centenary"] .keyfacts__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Checklist ──────────────────────────────────────── */

body[data-page="centenary"] .check-list {
  list-style: none; padding: 0; margin: 0;
}

body[data-page="centenary"] .check-list li {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        padding: 0.38rem 0;
        font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="centenary"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="centenary"] .check-list li i {
  color: rgb(var(--primary-rgb)); margin-top: 0.15rem; flex-shrink: 0;
}

/* ── Note pills ─────────────────────────────────────── */

body[data-page="centenary"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--muted);
}

body[data-page="centenary"] .note-pill i {
  color: rgb(var(--primary-rgb)); margin-top: 0.1rem; flex-shrink: 0;
}

/* ── Stay-type switcher tabs ────────────────────────── */

body[data-page="centenary"] .centenary-switcher {
  display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem;
}

body[data-page="centenary"] .centenary-switcher .btn.btn-glass.centenary-tab.is-active {
  background: rgb(var(--primary-rgb)) !important;
        color: #fff !important;
        border-color: rgb(var(--primary-rgb)) !important;
}

body[data-page="centenary"] .centenary-switcher .btn.btn-glass.centenary-tab.is-active:hover, body[data-page="centenary"] .centenary-switcher .btn.btn-glass.centenary-tab.is-active:focus {
  background: rgb(var(--primary-rgb)) !important;
        color: #fff !important;
}

/* ── Quick-card highlights (rendered by JS) ─────────── */

body[data-page="centenary"] .quick-card {
  padding: 0.9rem;
        border-radius: 0.85rem;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body[data-page="centenary"] .quick-card:hover {
  transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.12);
}

body[data-page="centenary"] .quick-num {
  font-weight: 700; font-size: 0.92rem; color: var(--text-color);
}

body[data-page="centenary"] .quick-label {
  font-size: 0.8rem; color: rgb(var(--primary-rgb)); font-weight: 600; margin-top: 0.1rem;
}

body[data-page="centenary"] .quick-card .small-muted {
  font-size: 0.75rem; margin-top: 0.25rem;
}

/* ── Runline (day flow) ─────────────────────────────── */

body[data-page="centenary"] .runline {
  display: grid; gap: .9rem;
}

body[data-page="centenary"] .runline-step {
  padding: 1rem;
        border-radius: 14px;
        background: color-mix(in srgb, var(--panel-bg), transparent 18%);
        border: 1px solid rgba(255,255,255,.10);
}
/* ── camp-card accent stripe ────────────────────────── */

body[data-page="camp"].camp-theme {
  --primary-rgb: 16 73 53;
  --hub-accent: #104935;
}

[data-theme="dark"] body[data-page="camp"].camp-theme {
  --primary-rgb: 24 117 84;
  --hub-accent: #187554;
}

body[data-page="camp"] .camp-card {
  position: relative;
  overflow: hidden;
}

body[data-page="camp"] .camp-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.45) 100%);
  border-radius: 6px 6px 0 0;
}

/* ── Eyebrow ────────────────────────────────────────── */

body[data-page="camp"] .eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(var(--primary-rgb));
}

body[data-page="camp"] .small-muted {
  font-size: 0.85rem;
  color: var(--muted);
}

body[data-page="camp"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Chips ──────────────────────────────────────────── */

body[data-page="camp"] .chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

body[data-page="camp"] .chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .18);
  background: color-mix(in srgb, var(--panel-bg), transparent 35%);
  font-size: .92rem;
}

/* ── Key facts grid ─────────────────────────────────── */

body[data-page="camp"] .keyfacts__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

body[data-page="camp"] .keyfacts__list li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.75rem 0.9rem;
  border-radius: 14px;
  background: var(--surface-bg);
  border: 1px solid var(--surface-border);
  font-size: 0.88rem;
}

body[data-page="camp"] .keyfacts__list li i {
  color: rgb(var(--primary-rgb));
  flex-shrink: 0;
}

@media (max-width: 575px) {
  body[data-page="camp"] .keyfacts__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Checklist ──────────────────────────────────────── */

body[data-page="camp"] .check-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

body[data-page="camp"] .check-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--surface-border);
  font-size: 0.9rem;
}

body[data-page="camp"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="camp"] .check-list li i {
  color: rgb(var(--primary-rgb));
  margin-top: 0.2rem;
  flex-shrink: 0;
}

/* ── Callout primary ────────────────────────────────── */

body[data-page="camp"] .callout-primary {
  background: rgb(var(--primary-rgb));
  color: #fff;
  border-radius: 1rem;
  padding: 1.5rem 1.75rem;
  position: relative;
  overflow: hidden;
}

body[data-page="camp"] .callout-primary::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -5%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .06);
  pointer-events: none;
}

body[data-page="camp"] .callout-primary h2,
body[data-page="camp"] .callout-primary h4 {
  color: #fff;
}

body[data-page="camp"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
  margin: 0;
}

body[data-page="camp"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, .55) !important;
  color: #fff !important;
}

/* ── Reveal ─────────────────────────────────────────── */

body[data-page="camp"] .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 520ms ease, transform 520ms ease;
}

body[data-page="camp"] .reveal.is-in {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="camp"] .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
body[data-page="centenary"] .runline-step .top {
  display: flex;
        justify-content: space-between;
        align-items: center;
        gap: .75rem;
        margin-bottom: .35rem;
        flex-wrap: wrap;
}

body[data-page="centenary"] .runline-step .tag {
  padding: .2rem .55rem;
        border-radius: 999px;
        font-size: .78rem;
        border: 1px solid rgba(var(--primary-rgb)/.22);
        background: rgba(var(--primary-rgb)/.10);
}

body[data-page="centenary"] .runline-step p {
  margin: 0; opacity: .86;
}

/* ── Gallery ────────────────────────────────────────── */

body[data-page="centenary"] .bb-gallery__main {
  display: block;
        border-radius: 1rem;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.15);
}

body[data-page="centenary"] .bb-gallery__main img {
  width: 100%; height: 240px; object-fit: cover; display: block; transition: transform .35s ease;
}

body[data-page="centenary"] .bb-gallery__main:hover img {
  transform: scale(1.03);
}

body[data-page="centenary"] .bb-gallery__thumbs {
  display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.6rem;
}

body[data-page="centenary"] .bb-thumb {
  width: 60px; height: 46px;
        border-radius: 0.5rem;
        overflow: hidden;
        border: 2px solid transparent;
        padding: 0; background: none; cursor: pointer;
        transition: border-color .2s ease;
}

body[data-page="centenary"] .bb-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}

body[data-page="centenary"] .bb-thumb.is-active {
  border-color: rgb(var(--primary-rgb));
}

/* ── Testimonial carousel ───────────────────────────── */

body[data-page="centenary"] .testimonial-card p {
  font-size: 0.95rem; font-style: italic;
}

/* ── Enquiry box ────────────────────────────────────── */

body[data-page="centenary"] .enquiry-box {
  background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        font-size: 0.88rem;
}

/* ── Stat cards (for-schools / groups section) ──────── */

body[data-page="centenary"] .stat-card {
  padding: 1rem;
        border-radius: 1rem;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 20%);
        height: 100%;
}

body[data-page="centenary"] .icon-badge {
  width: 40px; height: 40px;
        border-radius: 14px;
        display: grid; place-items: center;
        border: 1px solid rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        flex: 0 0 auto;
}

/* ── Callout banner ─────────────────────────────────── */

body[data-page="centenary"] .callout-primary {
  background: rgb(var(--primary-rgb));
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="centenary"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%; right: -5%;
        width: 260px; height: 260px;
        border-radius: 50%;
        background: rgba(255,255,255,0.06);
        pointer-events: none;
}

body[data-page="centenary"] .callout-primary h2 {
  color: #fff;
}

body[data-page="centenary"] .callout-primary p {
  color: rgba(255,255,255,.88); margin: 0;
}

body[data-page="centenary"] .callout-primary .btn-glass {
  border-color: rgba(255,255,255,0.55) !important; color: #fff !important;
}

/* ── Swap animation ─────────────────────────────────── */

body[data-page="centenary"] .is-swapping {
  opacity: 0; transition: opacity 140ms ease;
}

/* ── Rotator ────────────────────────────────────────── */

body[data-page="centenary"] .centenary-rotator {
  position: relative; display: inline-block;
}

body[data-page="centenary"] .rotator-word {
  display: none;
}

body[data-page="centenary"] .rotator-word.is-on {
  display: inline;
}

/* ── Sticky CTA ─────────────────────────────────────── */

body[data-page="centenary"] .sticky-cta {
  position: fixed;
        bottom: 0; left: 0; right: 0;
        z-index: 120;
        padding: 0.75rem 1rem;
        transform: translateY(100%);
        transition: transform 0.3s ease;
        pointer-events: none;
}

body[data-page="centenary"] .sticky-cta.is-on {
  transform: translateY(0); pointer-events: auto;
}

body[data-page="centenary"] .sticky-cta__inner {
  max-width: 800px;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        flex-wrap: wrap;
        padding: 0.75rem 1.25rem;
        border-radius: 1rem;
}

body[data-page="centenary"] .sticky-cta__text {
  min-width: 0;
}

body[data-page="centenary"] .sticky-cta__title {
  margin: 0; font-weight: 700; font-size: 0.95rem;
}

body[data-page="centenary"] .sticky-cta__sub {
  margin: 0; font-size: 0.8rem; opacity: 0.78;
}

body[data-page="centenary"] .sticky-cta__actions {
  display: flex; gap: 0.5rem; flex-wrap: wrap;
}

/* ── Reveal ─────────────────────────────────────────── */


/* ── Section spacing ────────────────────────────────── */

body[data-page="centenary"] .section-gap {
  margin-bottom: 1.75rem;
}

body[data-page="centenary"] .small-muted {
  font-size: 0.85rem; color: var(--muted);
}


/* ===== companies ===== */
body[data-page="companies"] :root {
  --bb-panel-h: 88vh;
        --bb-map-min-h: 780px;
}

body[data-page="companies"] #bb-layout {
  gap: 1rem; align-items: stretch;
}

body[data-page="companies"] #map {
  height: var(--bb-panel-h);
        min-height: var(--bb-map-min-h);
        width: 100%;
        border-radius: 1rem;
        overflow: hidden;
}

body[data-page="companies"] .bb-panel {
  height: var(--bb-panel-h);
        min-height: var(--bb-map-min-h);
        overflow: auto;
}

body[data-page="companies"] #regionLeft a, body[data-page="companies"] #regionRight a {
  color: inherit; text-decoration: none;
}

body[data-page="companies"] #regionLeft a:hover, body[data-page="companies"] #regionRight a:hover {
  text-decoration: underline;
}

/* Battalion headings: bold + centered */

body[data-page="companies"] .region-heading {
  font-size: 0.95rem;
        letter-spacing: .04em;
        text-transform: uppercase;
        opacity: .95;
        margin-top: 1rem;
        margin-bottom: .6rem;
        border-bottom: 1px solid rgba(255,255,255,.18);
        padding-bottom: .35rem;
        font-weight: 700;
        text-align: center;
}

@media (min-width: 992px) {
body[data-page="companies"] .bb-col {
    flex: 1 1 0;
  }

  body[data-page="companies"] .bb-col.left, body[data-page="companies"] .bb-col.right {
    max-width: 340px;
  }

  body[data-page="companies"] .bb-col.map {
    flex: 2.2 1 0; min-width: 520px;
  }
}

@media (max-width: 991.98px) {
body[data-page="companies"] .bb-col.left, body[data-page="companies"] .bb-col.right {
    width: 100%;
  }

  body[data-page="companies"] #map {
    min-height: 520px;
  }

  body[data-page="companies"] .bb-panel {
    min-height: 360px;
  }
}


/* ===== corporate ===== */
/* ── Corporate page card — accent top stripe ───────── */

body[data-page="corporate"] .corp-card {
  position: relative;
        overflow: hidden;
}

body[data-page="corporate"] .corp-card::before {
  content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
        border-radius: 6px 6px 0 0;
}

/* ── Eyebrow / small label ──────────────────────────── */

body[data-page="corporate"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--accent);
}

body[data-page="corporate"] .small-muted {
  font-size: 0.85rem; color: var(--muted);
}

body[data-page="corporate"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Activity icon tiles ────────────────────────────── */

body[data-page="corporate"] .act-grid {
  display: grid;
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
        gap: 0.75rem;
}

body[data-page="corporate"] .act-tile {
  display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.45rem;
        padding: 1rem 0.5rem 0.85rem;
        border-radius: 0.85rem;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        box-shadow: var(--surface-shadow);
        text-align: center;
        transition: transform 0.22s ease, box-shadow 0.22s ease;
        cursor: default;
}

body[data-page="corporate"] .act-tile:hover {
  transform: translateY(-3px);
        box-shadow: 0 14px 36px rgba(0,0,0,0.14);
}

body[data-page="corporate"] .act-tile i {
  font-size: 1.65rem; color: var(--primary);
}

body[data-page="corporate"] .act-tile span {
  font-size: 0.78rem; font-weight: 600; line-height: 1.3; color: var(--text-color);
}

body[data-page="corporate"] .act-tile .act-sub {
  font-size: 0.70rem; color: var(--muted); margin-top: 0.1rem;
}

/* ── Checklist ──────────────────────────────────────── */

body[data-page="corporate"] .check-list {
  list-style: none; padding: 0; margin: 0;
}

body[data-page="corporate"] .check-list li {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        padding: 0.38rem 0;
        font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="corporate"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="corporate"] .check-list li i {
  color: var(--primary); margin-top: 0.15rem; flex-shrink: 0;
}

/* ── Note pills ─────────────────────────────────────── */

body[data-page="corporate"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--muted);
}

body[data-page="corporate"] .note-pill i {
  color: var(--accent); margin-top: 0.1rem; flex-shrink: 0;
}

/* ── Venue capacity cards ───────────────────────────── */

body[data-page="corporate"] .venue-card {
  border-radius: 1rem;
        border: 2px solid var(--surface-border);
        background: var(--surface-bg);
        padding: 1.25rem 1.35rem;
        height: 100%;
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
        position: relative;
}

body[data-page="corporate"] .venue-card:hover {
  border-color: var(--accent);
        box-shadow: 0 8px 28px rgba(34,75,142,0.12);
}

body[data-page="corporate"] .venue-card.featured {
  border-color: var(--primary); background: var(--surface-bg-strong);
}

body[data-page="corporate"] .venue-card .venue-badge {
  position: absolute;
        top: -0.65rem; left: 1.2rem;
        background: var(--primary);
        color: #fff;
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        border-radius: 999px;
        padding: 0.18rem 0.7rem;
}

body[data-page="corporate"] .venue-stat {
  font-family: var(--font-heading); font-size: 1.9rem; font-weight: 700; color: var(--primary); line-height: 1;
}

body[data-page="corporate"] .venue-stat-note {
  font-size: 0.76rem; color: var(--muted);
}

/* ── Pricing table ──────────────────────────────────── */

body[data-page="corporate"] .price-table {
  width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        font-size: 0.86rem;
}

body[data-page="corporate"] .price-table th {
  background: var(--primary);
        color: #fff;
        font-weight: 600;
        padding: 0.55rem 0.85rem;
        text-align: left;
}

body[data-page="corporate"] .price-table th:first-child {
  border-radius: 0.6rem 0 0 0;
}

body[data-page="corporate"] .price-table th:last-child {
  border-radius: 0 0.6rem 0 0; text-align: right;
}

body[data-page="corporate"] .price-table td {
  padding: 0.48rem 0.85rem;
        border-bottom: 1px solid var(--surface-border);
        color: var(--text-color);
}

body[data-page="corporate"] .price-table td:last-child {
  text-align: right; font-weight: 600;
}

body[data-page="corporate"] .price-table tr:nth-child(even) td {
  background: var(--surface-bg);
}

body[data-page="corporate"] .price-table tr:last-child td {
  border-bottom: none;
}

body[data-page="corporate"] .price-table tr:last-child td:first-child {
  border-radius: 0 0 0 0.6rem;
}

body[data-page="corporate"] .price-table tr:last-child td:last-child {
  border-radius: 0 0 0.6rem 0;
}

/* ── Programme timeline ─────────────────────────────── */

body[data-page="corporate"] .day-block {
  border-left: 3px solid var(--accent); padding-left: 1.1rem; margin-bottom: 1.5rem;
}

body[data-page="corporate"] .day-block:last-child {
  margin-bottom: 0;
}

body[data-page="corporate"] .day-label {
  display: inline-block;
        background: var(--primary);
        color: #fff;
        font-size: 0.74rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        border-radius: 999px;
        padding: 0.2rem 0.75rem;
        margin-bottom: 0.6rem;
}

body[data-page="corporate"] .time-row {
  display: flex; gap: 0.75rem; margin-bottom: 0.4rem; align-items: flex-start;
}

body[data-page="corporate"] .time-tag {
  flex: 0 0 70px; font-size: 0.72rem; font-weight: 600; color: var(--accent); padding-top: 0.1rem; white-space: nowrap;
}

body[data-page="corporate"] .time-desc {
  font-size: 0.83rem; color: var(--muted); line-height: 1.5;
}

body[data-page="corporate"] .time-desc strong {
  color: var(--text-color);
}

/* ── Primary callout banner ─────────────────────────── */

body[data-page="corporate"] .callout-primary {
  background: var(--primary);
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="corporate"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%; right: -5%;
        width: 260px; height: 260px;
        border-radius: 50%;
        background: rgba(255,255,255,0.06);
        pointer-events: none;
}

body[data-page="corporate"] .callout-primary h2 {
  color: #fff;
}

body[data-page="corporate"] .callout-primary p {
  color: rgba(255,255,255,0.88); margin: 0;
}

body[data-page="corporate"] .callout-primary strong {
  color: #fff;
}

body[data-page="corporate"] .callout-primary .btn-glass {
  border-color: rgba(255,255,255,0.55) !important; color: #fff !important;
}

/* ── USP stat strip ─────────────────────────────────── */

body[data-page="corporate"] .usp-strip {
  display: grid;
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        gap: 0.75rem;
}

body[data-page="corporate"] .usp-item {
  text-align: center;
        padding: 1rem 0.5rem;
        border-radius: 0.85rem;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
}

body[data-page="corporate"] .usp-num {
  font-family: var(--font-heading);
        font-size: 1.8rem;
        font-weight: 700;
        color: var(--primary);
        line-height: 1;
}

body[data-page="corporate"] .usp-label {
  font-size: 0.75rem; color: var(--muted); margin-top: 0.2rem;
}

/* ── Testimonial ────────────────────────────────────── */

body[data-page="corporate"] .testimonial-card {
  padding: 1.25rem 1.5rem;
}

body[data-page="corporate"] .testimonial-card p {
  font-size: 1rem; font-style: italic;
}

/* ── Enquiry box ────────────────────────────────────── */

body[data-page="corporate"] .enquiry-box {
  background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        font-size: 0.88rem;
}

/* ── Reveal animation (matches site) ────────────────── */



/* ===== faq ===== */
body[data-page="faq"] .faq-category-btn {
  min-width: 170px;
}

body[data-page="faq"] .faq-panel[hidden] {
  display: none !important;
}

body[data-page="faq"] details.faq-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        padding-bottom: 0.75rem;
        margin-bottom: 0.75rem;
}

body[data-page="faq"] details.faq-item:last-child {
  border-bottom: 0;
        padding-bottom: 0;
        margin-bottom: 0;
}

body[data-page="faq"] details.faq-item summary {
  cursor: pointer;
        list-style: none;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.35rem 0;
}

body[data-page="faq"] details.faq-item summary::-webkit-details-marker {
  display: none;
}

body[data-page="faq"] details.faq-item summary .faq-chevron {
  flex-shrink: 0;
        transition: transform 0.2s ease;
        opacity: 0.6;
}

body[data-page="faq"] details.faq-item[open] summary .faq-chevron {
  transform: rotate(180deg);
}

body[data-page="faq"] details.faq-item .faq-answer {
  padding-top: 0.6rem;
        padding-left: 0.1rem;
}

body[data-page="faq"] .faq-search-wrap {
  position: relative;
}

body[data-page="faq"] .faq-search-wrap .fa-magnifying-glass {
  position: absolute;
        left: 14px;
        top: 50%;
        transform: translateY(-50%);
        opacity: 0.5;
        pointer-events: none;
}

body[data-page="faq"] #faqSearchInput {
  padding-left: 2.4rem;
}

body[data-page="faq"] .faq-no-results {
  display: none;
}

body[data-page="faq"] .faq-no-results.visible {
  display: block;
}


/* ===== history ===== */
/* ── Hero grid background (matches who-we-are / centenary) ── */

body[data-page="history"] .hero-wrap {
  position: relative;
        border-radius: 1.25rem;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.18);
        background:
          radial-gradient(900px 420px at 18% 15%, rgba(255,255,255,.16), transparent 55%),
          radial-gradient(760px 380px at 85% 10%, rgba(255,255,255,.12), transparent 58%),
          color-mix(in srgb, var(--panel-bg), transparent 14%);
}

body[data-page="history"] .hero-grid {
  position: absolute;
        inset: 0;
        background-image:
          linear-gradient(to right, rgba(255,255,255,.06) 1px, transparent 1px),
          linear-gradient(to bottom, rgba(255,255,255,.06) 1px, transparent 1px);
        background-size: 56px 56px;
        mask-image: radial-gradient(60% 60% at 25% 30%, #000 55%, transparent 100%);
        pointer-events: none;
        opacity: .7;
}

/* ── Chips ── */

body[data-page="history"] .chip-row {
  display: flex; flex-wrap: wrap; gap: .5rem;
}

body[data-page="history"] .chip {
  display: inline-flex;
        align-items: center;
        gap: .45rem;
        padding: .35rem .65rem;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 35%);
        font-size: .92rem;
}

/* ── Stat / icon cards (matches who-we-are) ── */

body[data-page="history"] .stat-card {
  padding: 1rem;
        border-radius: 1rem;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 20%);
        height: 100%;
}

body[data-page="history"] .icon-badge {
  width: 40px;
        height: 40px;
        border-radius: 14px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        flex: 0 0 auto;
}

/* ── Step cards ── */

body[data-page="history"] .step-card {
  padding: 1rem;
        border-radius: 1rem;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 20%);
        height: 100%;
}

/* ── Vertical timeline ── */

body[data-page="history"] .history-timeline {
  position: relative;
        padding-left: 2.2rem;
}

body[data-page="history"] .history-timeline::before {
  content: "";
        position: absolute;
        left: .7rem;
        top: .5rem;
        bottom: .5rem;
        width: 2px;
        background: linear-gradient(to bottom, var(--primary), rgba(93,153,210,.25));
        border-radius: 2px;
}

body[data-page="history"] .timeline-item {
  position: relative;
        margin-bottom: 1.75rem;
}

body[data-page="history"] .timeline-item:last-child {
  margin-bottom: 0;
}

body[data-page="history"] .timeline-dot {
  position: absolute;
        left: -2.2rem;
        top: .25rem;
        width: 1rem;
        height: 1rem;
        border-radius: 50%;
        background: var(--primary);
        border: 2px solid rgba(255,255,255,.5);
        box-shadow: 0 0 0 3px rgba(34,75,142,.18);
        flex-shrink: 0;
}

body[data-page="history"] .timeline-era {
  font-size: .78rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        opacity: .6;
        margin-bottom: .2rem;
}

body[data-page="history"] .timeline-item h3 {
  font-size: 1rem;
        font-weight: 700;
        margin-bottom: .35rem;
        font-family: var(--font-heading);
}

body[data-page="history"] .timeline-item p {
  font-size: .93rem;
        margin-bottom: 0;
        opacity: .88;
}

/* ── Photo grid ── */

body[data-page="history"] .photo-grid {
  display: grid;
        grid-template-columns: 1.3fr .9fr;
        gap: .75rem;
}

body[data-page="history"] .photo-cell {
  border-radius: 1rem;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.15);
        background: color-mix(in srgb, var(--panel-bg), transparent 18%);
        position: relative;
}

body[data-page="history"] .photo-cell img {
  width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform .4s ease;
}

body[data-page="history"] .photo-cell:hover img {
  transform: scale(1.03);
}

body[data-page="history"] .photo-cell .photo-cap {
  position: absolute;
        left: .6rem;
        bottom: .6rem;
        padding: .22rem .55rem;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,.22);
        background: rgba(0,0,0,.22);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        font-size: .8rem;
        color: #fff;
}

body[data-page="history"] .photo-cell.tall {
  min-height: 240px;
}

body[data-page="history"] .photo-cell.short {
  min-height: 160px;
}

body[data-page="history"] .photo-right-col {
  display: grid; gap: .75rem;
}

@media (max-width: 767px) {
body[data-page="history"] .photo-grid {
    grid-template-columns: 1fr;
  }

  body[data-page="history"] .history-timeline {
    padding-left: 1.8rem;
  }
}

/* ── Pull-quote ── */

body[data-page="history"] .pull-quote {
  border-left: 3px solid var(--primary);
        padding-left: 1.1rem;
        font-family: var(--font-heading);
        font-size: 1.05rem;
        font-style: italic;
        opacity: .88;
        margin: 0;
}

/* ── Closing doxology ── */

body[data-page="history"] .doxology {
  font-family: var(--font-heading);
        font-size: 1.1rem;
        font-weight: 700;
        letter-spacing: .02em;
        color: var(--primary);
}

body[data-page="history"] [data-theme="dark"] .doxology, body[data-page="history"] [data-theme="winter"] .doxology, body[data-page="history"] [data-theme="autumn"] .doxology {
  color: var(--accent);
}


/* ===== how-to-book ===== */
body[data-page="how-to-book"] .booking-theme {
  --primary-rgb: 34 75 142;
        --hub-accent: #224b8e;
}

body[data-page="how-to-book"] [data-theme="dark"] .booking-theme {
  --primary-rgb: 74 123 201;
        --hub-accent: #4a7bc9;
}

body[data-page="how-to-book"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgb(var(--primary-rgb));
}

body[data-page="how-to-book"] .small-muted {
  font-size: 0.85rem;
        color: var(--muted);
}

body[data-page="how-to-book"] .section-gap {
  margin-bottom: 1.75rem;
}

body[data-page="how-to-book"] .booking-card, body[data-page="how-to-book"] .decision-card, body[data-page="how-to-book"] .support-card, body[data-page="how-to-book"] .step-shell, body[data-page="how-to-book"] .portal-shell {
  position: relative;
        overflow: hidden;
}

body[data-page="how-to-book"] .booking-card::before, body[data-page="how-to-book"] .decision-card::before, body[data-page="how-to-book"] .support-card::before, body[data-page="how-to-book"] .step-shell::before, body[data-page="how-to-book"] .portal-shell::before {
  content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.42) 100%);
        border-radius: 6px 6px 0 0;
}

body[data-page="how-to-book"] .hero-side-image-wrap {
  max-width: 340px;
        margin: 0 auto;
}

body[data-page="how-to-book"] .hero-side-image {
  width: 100%;
        display: block;
        border-radius: 18px;
        border: 1px solid rgba(255,255,255,.14);
        object-fit: cover;
}

body[data-page="how-to-book"] .decision-card, body[data-page="how-to-book"] .support-card {
  height: 100%;
}

body[data-page="how-to-book"] .decision-card {
  transition: transform .25s ease, box-shadow .25s ease;
}

body[data-page="how-to-book"] .decision-card:hover {
  transform: translateY(-4px);
        box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
}

body[data-page="how-to-book"] .decision-icon {
  width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        margin-bottom: .8rem;
        border: 1px solid rgba(255, 255, 255, .16);
        background: color-mix(in srgb, var(--panel-bg), transparent 22%);
        color: rgb(var(--primary-rgb));
}

body[data-page="how-to-book"] .decision-points, body[data-page="how-to-book"] .booking-points {
  list-style: none;
        margin: 0;
        padding: 0;
}

body[data-page="how-to-book"] .decision-points li, body[data-page="how-to-book"] .booking-points li {
  position: relative;
        padding-left: 1.15rem;
        margin-bottom: .5rem;
        font-size: 0.9rem;
}

body[data-page="how-to-book"] .decision-points li:last-child, body[data-page="how-to-book"] .booking-points li:last-child {
  margin-bottom: 0;
}

body[data-page="how-to-book"] .decision-points li::before, body[data-page="how-to-book"] .booking-points li::before {
  content: "•";
        position: absolute;
        left: 0;
        top: 0;
        font-weight: 700;
        color: rgb(var(--primary-rgb));
}

body[data-page="how-to-book"] .steps-progress-wrap {
  position: relative;
}

body[data-page="how-to-book"] .steps-progress-line {
  position: absolute;
        top: 0;
        bottom: 0;
        left: 1.15rem;
        width: 2px;
        background: linear-gradient(180deg, rgba(var(--primary-rgb), .28) 0%, rgba(var(--primary-rgb), .10) 100%);
        pointer-events: none;
}

body[data-page="how-to-book"] .steps-stack {
  position: relative;
        display: grid;
        gap: 0.9rem;
}

body[data-page="how-to-book"] .step-card {
  position: relative;
        transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

body[data-page="how-to-book"] .step-card.is-active {
  transform: translateY(-2px);
        box-shadow: 0 10px 28px rgba(0, 0, 0, .10);
}

body[data-page="how-to-book"] .step-head {
  display: flex;
        align-items: center;
        gap: 0.65rem;
        margin-bottom: 0.7rem;
}

body[data-page="how-to-book"] .step-badge {
  width: 2.3rem;
        height: 2.3rem;
        border-radius: 999px;
        display: grid;
        place-items: center;
        font-weight: 800;
        color: #fff;
        background: rgb(var(--primary-rgb));
        box-shadow: 0 0 0 6px rgba(var(--primary-rgb), .12);
        flex-shrink: 0;
}

body[data-page="how-to-book"] .step-badge--final {
  background: color-mix(in srgb, rgb(var(--primary-rgb)) 78%, #ffffff 22%);
}

body[data-page="how-to-book"] .step-connector {
  position: relative;
        z-index: 1;
        margin-left: 0.3rem;
        color: rgb(var(--primary-rgb));
        opacity: .72;
        display: flex;
        justify-content: flex-start;
        padding-left: 0.35rem;
}

body[data-page="how-to-book"] .portal-preview {
  display: block;
        transition: transform .25s ease;
}

body[data-page="how-to-book"] figure:hover .portal-preview {
  transform: scale(1.03);
}

body[data-page="how-to-book"] .callout-primary {
  background: rgb(var(--primary-rgb));
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="how-to-book"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%;
        right: -5%;
        width: 260px;
        height: 260px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.06);
        pointer-events: none;
}

body[data-page="how-to-book"] .callout-primary h2, body[data-page="how-to-book"] .callout-primary h4 {
  color: #fff;
}

body[data-page="how-to-book"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
        margin: 0;
}

body[data-page="how-to-book"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, 0.55) !important;
        color: #fff !important;
}

body[data-page="how-to-book"] .support-card .btn {
  margin-top: 1rem;
}



/* ===== local-amenities ===== */
/* ── Page utilities ─────────────────────────────────── */

body[data-page="local-amenities"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--accent);
}

body[data-page="local-amenities"] .small-muted {
  font-size: 0.85rem; color: var(--muted);
}

body[data-page="local-amenities"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Accent-stripe card ─────────────────────────────── */

body[data-page="local-amenities"] .map-card {
  position: relative;
        overflow: hidden;
}

body[data-page="local-amenities"] .map-card::before {
  content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
        border-radius: 6px 6px 0 0;
}

/* ── Note pill ──────────────────────────────────────── */

body[data-page="local-amenities"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--muted);
}

body[data-page="local-amenities"] .note-pill i {
  color: var(--accent); margin-top: 0.1rem; flex-shrink: 0;
}

/* ── Check-list ─────────────────────────────────────── */

body[data-page="local-amenities"] .check-list {
  list-style: none; padding: 0; margin: 0;
}

body[data-page="local-amenities"] .check-list li {
  display: flex; gap: 0.6rem; align-items: flex-start;
        padding: 0.38rem 0; font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="local-amenities"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="local-amenities"] .check-list li i {
  color: var(--primary); margin-top: 0.15rem; flex-shrink: 0;
}

/* ── Disclaimer note (replaces old bullet list) ─────── */

body[data-page="local-amenities"] .disclaimer-note {
  display: flex;
        gap: 0.65rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-left: 3px solid var(--accent);
        border-radius: 0.75rem;
        padding: 0.85rem 1rem;
        font-size: 0.83rem;
        color: var(--muted);
        line-height: 1.6;
}

body[data-page="local-amenities"] .disclaimer-note i {
  color: var(--accent); flex-shrink: 0; margin-top: 0.15rem;
}

/* ── Reveal ─────────────────────────────────────────── */



/* ===== off-site-activities ===== */
/* ── Page utilities ─────────────────────────────────── */

body[data-page="off-site-activities"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--accent);
}

body[data-page="off-site-activities"] .small-muted {
  font-size: 0.85rem; color: var(--muted);
}

body[data-page="off-site-activities"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Accent-stripe card ─────────────────────────────── */

body[data-page="off-site-activities"] .map-card {
  position: relative;
        overflow: hidden;
}

body[data-page="off-site-activities"] .map-card::before {
  content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
        border-radius: 6px 6px 0 0;
}

/* ── Note pill ──────────────────────────────────────── */

body[data-page="off-site-activities"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--muted);
}

body[data-page="off-site-activities"] .note-pill i {
  color: var(--accent); margin-top: 0.1rem; flex-shrink: 0;
}

/* ── Destination distance tiles ─────────────────────── */

body[data-page="off-site-activities"] .dest-tile {
  display: flex;
        flex-direction: column;
        gap: 0.3rem;
        padding: 0.9rem 1rem;
        border-radius: 1rem;
        border: 1px solid var(--surface-border);
        background: var(--surface-bg);
        height: 100%;
        transition: border-color .2s ease, box-shadow .2s ease;
}

body[data-page="off-site-activities"] .dest-tile:hover {
  border-color: var(--accent);
        box-shadow: 0 6px 20px rgba(34,75,142,.1);
}

body[data-page="off-site-activities"] .dest-tile .dest-dist {
  font-weight: 800;
        font-size: 1.3rem;
        line-height: 1;
        color: var(--primary);
}

body[data-page="off-site-activities"] .dest-tile .dest-name {
  font-weight: 700; font-size: 0.9rem;
}

body[data-page="off-site-activities"] .dest-tile .dest-note {
  font-size: 0.78rem; color: var(--muted);
}

/* ── Disclaimer ─────────────────────────────────────── */

body[data-page="off-site-activities"] .disclaimer-note {
  display: flex;
        gap: 0.65rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-left: 3px solid var(--accent);
        border-radius: 0.75rem;
        padding: 0.85rem 1rem;
        font-size: 0.83rem;
        color: var(--muted);
        line-height: 1.6;
}

body[data-page="off-site-activities"] .disclaimer-note i {
  color: var(--accent); flex-shrink: 0; margin-top: 0.15rem;
}

/* ── Reveal ─────────────────────────────────────────── */



/* ===== organisation ===== */


/* ===== residentials ===== */
/* ── Eyebrow / utilities ────────────────────────────── */

body[data-page="residentials"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--accent);
}

body[data-page="residentials"] .small-muted {
  font-size: 0.85rem;
        color: var(--muted);
}

body[data-page="residentials"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Accent-stripe card ─────────────────────────────── */

body[data-page="residentials"] .res-card {
  position: relative;
        overflow: hidden;
}

body[data-page="residentials"] .res-card::before {
  content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
        border-radius: 6px 6px 0 0;
}

/* ── Check-list ─────────────────────────────────────── */

body[data-page="residentials"] .check-list {
  list-style: none;
        padding: 0;
        margin: 0;
}

body[data-page="residentials"] .check-list li {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        padding: 0.38rem 0;
        font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="residentials"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="residentials"] .check-list li i {
  color: var(--text-color);
        margin-top: 0.15rem;
        flex-shrink: 0;
}

body[data-page="residentials"] .note-pill i {
  color: var(--text-color);
        margin-top: 0.1rem;
        flex-shrink: 0;
}

/* ── Note pill ──────────────────────────────────────── */

body[data-page="residentials"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--text-color);
}

body[data-page="residentials"] .note-pill i {
  color: var(--text-color);
        ;
        margin-top: 0.1rem;
        flex-shrink: 0;
}

/* ── Stay-type filter tabs ──────────────────────────── */

/* ── Stay-type filter tabs ──────────────────────────── */

.res-switcher {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.res-tab {
  position: relative;
  width: 100%;
  min-height: 64px;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 10px !important;
  padding: 0.65rem 0.9rem 0.65rem 1.1rem !important;
  background: color-mix(in srgb, var(--panel-bg), transparent 12%) !important;
  color: var(--text-color) !important;
  display: flex !important;
  align-items: center;
  gap: 0.5rem;
  text-align: left;
  font-weight: 600;
  transition:
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease;
}

.res-tab::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 6px;
  width: 3px;
  border-radius: 999px;
  background: var(--primary);
  transition: width .2s ease;
}

.res-tab i {
  width: 1.2rem;
  text-align: center;
  opacity: 0.9;
  margin-right: 0.2rem;
}

.res-tab:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: var(--text-color) !important;
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.res-tab:hover::before {
  width: 4px;
}

.res-tab.is-active {
  background: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: var(--text-color) !important;
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.res-tab.is-active::before {
  width: 4px;
}

.res-tab.is-active:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: var(--text-color) !important;
}

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

@media (max-width: 767.98px) {
  .res-switcher {
    grid-template-columns: 1fr;
  }

  .res-tab {
    min-height: auto;
  }
}

/* ── Stay panels (shown/hidden by JS) ───────────────── */

body[data-page="residentials"] .stay-panel {
  display: none;
}

body[data-page="residentials"] .stay-panel.is-active {
  display: block;
}

/* ── Stay panel internal layout ─────────────────────── */

body[data-page="residentials"] .stay-media {
  border-radius: 1rem;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, .15);
        background: var(--surface-bg);
}

body[data-page="residentials"] .stay-media img, body[data-page="residentials"] .stay-media video {
  width: 100%;
        height: 260px;
        object-fit: cover;
        display: block;
}

@media (min-width: 992px) {
body[data-page="residentials"] .stay-media img, body[data-page="residentials"] .stay-media video {
    height: 300px;
  }
}

/* ── Sound toggle for video ─────────────────────────── */

body[data-page="residentials"] .sound-wrap {
  position: relative;
}

body[data-page="residentials"] .sound-btn {
  position: absolute;
        bottom: 0.75rem;
        right: 0.75rem;
        z-index: 4;
        font-size: 0.78rem;
        padding: 0.3rem 0.7rem;
}

/* ── Feature list (existing site class) ─────────────── */

body[data-page="residentials"] .feature-list {
  list-style: none;
        padding: 0;
        margin: 0;
}

body[data-page="residentials"] .feature-list li {
  padding: 0.38rem 0;
        font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="residentials"] .feature-list li:last-child {
  border-bottom: none;
}

/* ── Logo strip ─────────────────────────────────────── */

body[data-page="residentials"] .logo-strip img {
  max-height: 40px;
        width: auto;
        opacity: 0.85;
}

body[data-page="residentials"] .logo-strip {
  row-gap: 1rem;
}

/* ── Callout banner ─────────────────────────────────── */

body[data-page="residentials"] .callout-primary {
  background: var(--primary);
        color: #fff;
        border-radius: 1rem;
        padding: 1.5rem 1.75rem;
        position: relative;
        overflow: hidden;
}

body[data-page="residentials"] .callout-primary::after {
  content: "";
        position: absolute;
        top: -40%;
        right: -5%;
        width: 260px;
        height: 260px;
        border-radius: 50%;
        background: rgba(255, 255, 255, .06);
        pointer-events: none;
}

body[data-page="residentials"] .callout-primary h2 {
  color: #fff;
}

body[data-page="residentials"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
        margin: 0;
}

body[data-page="residentials"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, .55) !important;
        color: #fff !important;
}

/* ── Reveal ─────────────────────────────────────────── */



/* ===== schools ===== */
/* ── Schools page extras ──────────────────────────────── */

/* Accent stripe on section cards */

body[data-page="schools"] .school-card {
  position: relative;
    overflow: hidden;
}

body[data-page="schools"] .school-card::before {
  content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
    border-radius: 6px 6px 0 0;
}

/* Activity icon grid */

body[data-page="schools"] .act-grid {
  display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 0.75rem;
}

body[data-page="schools"] .act-tile {
  display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    padding: 1rem 0.5rem 0.85rem;
    border-radius: 0.85rem;
    background: var(--surface-bg);
    border: 1px solid var(--surface-border);
    box-shadow: var(--surface-shadow);
    text-align: center;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

body[data-page="schools"] .act-tile:hover {
  transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(0,0,0,0.14);
}

body[data-page="schools"] .act-tile i {
  font-size: 1.65rem;
    color: var(--primary);
}

body[data-page="schools"] .act-tile span {
  font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-color);
}

body[data-page="schools"] .act-tile .act-price {
  font-size: 0.72rem;
    color: var(--muted);
    margin-top: 0.1rem;
}

/* Timeline / itinerary */

body[data-page="schools"] .day-block {
  border-left: 3px solid var(--accent);
    padding-left: 1.1rem;
    margin-bottom: 1.5rem;
}

body[data-page="schools"] .day-block:last-child {
  margin-bottom: 0;
}

body[data-page="schools"] .day-label {
  display: inline-block;
    background: var(--primary);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 0.2rem 0.75rem;
    margin-bottom: 0.6rem;
}

body[data-page="schools"] .time-row {
  display: flex;
    gap: 0.75rem;
    margin-bottom: 0.4rem;
    align-items: flex-start;
}

body[data-page="schools"] .time-tag {
  flex: 0 0 70px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--accent);
    padding-top: 0.1rem;
    white-space: nowrap;
}

body[data-page="schools"] .time-desc {
  font-size: 0.83rem;
    color: var(--muted);
    line-height: 1.5;
}

body[data-page="schools"] .time-desc strong {
  color: var(--text-color);
}

/* Feature checklist */

body[data-page="schools"] .check-list {
  list-style: none;
    padding: 0;
    margin: 0;
}

body[data-page="schools"] .check-list li {
  display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    padding: 0.35rem 0;
    font-size: 0.9rem;
    border-bottom: 1px solid var(--surface-border);
}

body[data-page="schools"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="schools"] .check-list li i {
  color: var(--primary);
    margin-top: 0.15rem;
    flex-shrink: 0;
}

/* Cost table */

body[data-page="schools"] .cost-table {
  width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.87rem;
}

body[data-page="schools"] .cost-table th {
  background: var(--primary);
    color: #fff;
    font-weight: 600;
    padding: 0.55rem 0.85rem;
    text-align: left;
}

body[data-page="schools"] .cost-table th:first-child {
  border-radius: 0.6rem 0 0 0;
}

body[data-page="schools"] .cost-table th:last-child {
  border-radius: 0 0.6rem 0 0; text-align: right;
}

body[data-page="schools"] .cost-table td {
  padding: 0.5rem 0.85rem;
    border-bottom: 1px solid var(--surface-border);
    color: var(--text-color);
}

body[data-page="schools"] .cost-table td:last-child {
  text-align: right; font-weight: 600;
}

body[data-page="schools"] .cost-table tr:last-child td:first-child {
  border-radius: 0 0 0 0.6rem;
}

body[data-page="schools"] .cost-table tr:last-child td:last-child {
  border-radius: 0 0 0.6rem 0;
}

body[data-page="schools"] .cost-table .total-row td {
  background: rgba(34,75,142,0.08);
    font-weight: 700;
    font-size: 0.95rem;
    border-bottom: none;
}

body[data-page="schools"] .cost-table tr:nth-child(even) td {
  background: var(--surface-bg);
}

/* Pull-quote / callout */

body[data-page="schools"] .callout-primary {
  background: var(--primary);
    color: #fff;
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
}

body[data-page="schools"] .callout-primary p {
  color: rgba(255,255,255,0.88); margin: 0;
}

body[data-page="schools"] .callout-primary strong {
  color: #fff;
}

body[data-page="schools"] .callout-primary .btn-glass {
  border-color: rgba(255,255,255,0.55) !important;
    color: #fff !important;
}

/* Note pills */

body[data-page="schools"] .note-pill {
  display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    background: var(--surface-bg);
    border: 1px solid var(--surface-border);
    border-radius: 0.75rem;
    padding: 0.65rem 0.9rem;
    font-size: 0.83rem;
    color: var(--muted);
}

body[data-page="schools"] .note-pill i {
  color: var(--accent); margin-top: 0.1rem; flex-shrink: 0;
}

/* Eyebrow */

body[data-page="schools"] .eyebrow {
  font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent);
}

/* Small muted */

body[data-page="schools"] .small-muted {
  font-size: 0.85rem;
    color: var(--muted);
}

/* Page section spacing */

body[data-page="schools"] .section-gap {
  margin-bottom: 1.75rem;
}

/* Dan Wright Adventures partnership banner */

body[data-page="schools"] .partner-banner {
  background: linear-gradient(135deg, var(--primary) 0%, #1a6fbf 100%);
    border-radius: 1rem;
    padding: 1.5rem 1.75rem;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.18);
    box-shadow: 0 12px 36px rgba(34,75,142,0.28);
    position: relative;
    overflow: hidden;
}

body[data-page="schools"] .partner-banner::after {
  content: "";
    position: absolute;
    top: -40%; right: -5%;
    width: 260px; height: 260px;
    border-radius: 50%;
    background: rgba(255,255,255,0.07);
    pointer-events: none;
}

body[data-page="schools"] .partner-banner .partner-logo-wrap {
  display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 999px;
    padding: 0.3rem 0.9rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fff;
    margin-bottom: 0.75rem;
}

body[data-page="schools"] .partner-banner h2 {
  color: #fff;
}

body[data-page="schools"] .partner-banner p {
  color: rgba(255,255,255,0.88);
}

body[data-page="schools"] .partner-banner strong {
  color: #fff;
}

/* Free-place highlight badge */

body[data-page="schools"] .free-place-badge {
  display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #fff;
    color: var(--primary);
    font-weight: 700;
    font-size: 0.82rem;
    border-radius: 999px;
    padding: 0.3rem 0.85rem;
    box-shadow: 0 4px 14px rgba(0,0,0,0.15);
    white-space: nowrap;
}

/* Two-option pricing cards */

body[data-page="schools"] .pricing-option {
  border-radius: 1rem;
    border: 2px solid var(--surface-border);
    background: var(--surface-bg);
    padding: 1.25rem 1.35rem;
    position: relative;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    height: 100%;
}

body[data-page="schools"] .pricing-option:hover {
  border-color: var(--accent);
    box-shadow: 0 8px 28px rgba(34,75,142,0.12);
}

body[data-page="schools"] .pricing-option.featured {
  border-color: var(--primary);
    background: var(--surface-bg-strong);
}

body[data-page="schools"] .pricing-option .option-badge {
  position: absolute;
    top: -0.6rem;
    left: 1.2rem;
    background: var(--primary);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 0.18rem 0.7rem;
}

body[data-page="schools"] .pricing-option .option-price {
  font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary);
    line-height: 1;
}

body[data-page="schools"] .pricing-option .option-price sup {
  font-size: 1rem;
    vertical-align: super;
}

body[data-page="schools"] .pricing-option .option-price-note {
  font-size: 0.78rem;
    color: var(--muted);
    margin-top: 0.1rem;
}


/* ===== sitemap ===== */
/* Sitemap: pill lists (no accordion) */

body[data-page="sitemap"] .sitemap-subhead {
  font-size: 0.95rem;
        font-weight: 700;
        margin: 0 0 .6rem 0;
}

body[data-page="sitemap"] .sitemap-divider {
  opacity: .15;
        margin: 1rem 0;
}

body[data-page="sitemap"] .sitemap-pill {
  text-decoration: none;
}


/* ===== sportsbarn ===== */
body[data-page="sportsbarn"] .sportsbarn-theme {
  --primary-rgb: 234 88 12;
        --hub-accent: #ea580c;
}

body[data-page="sportsbarn"] [data-theme="dark"] .sportsbarn-theme {
  --primary-rgb: 251 146 60;
        --hub-accent: #fb923c;
}

/* Slots grid (kept minimal; all other styles from site CSS) */

body[data-page="sportsbarn"] .sb-slots {
  display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
}

@media (min-width: 992px) {
body[data-page="sportsbarn"] .sb-slots {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

body[data-page="sportsbarn"] .sb-slot {
  border: 1px solid rgba(255, 255, 255, 0.10);
        border-radius: 12px;
        padding: 10px;
        cursor: pointer;
        user-select: none;
        background: rgba(255, 255, 255, 0.04);
}

body[data-page="sportsbarn"] .sb-slot strong {
  display: block;
}

body[data-page="sportsbarn"] .sb-slot .small-muted {
  font-size: 12px;
}

body[data-page="sportsbarn"] .sb-slot.is-booked {
  opacity: .45;
        cursor: not-allowed;
        text-decoration: line-through;
}

body[data-page="sportsbarn"] .sb-slot.is-past {
  opacity: .35;
        cursor: not-allowed;
}

body[data-page="sportsbarn"] .sb-slot.is-selected {
  outline: 2px solid rgba(var(--primary-rgb) / .45);
}

body[data-page="sportsbarn"] .keyfacts {
  position: static;
}

body[data-page="sportsbarn"] .keyfacts::after {
  content: none !important;
}

body[data-page="sportsbarn"] .keyfacts__list {
  display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

body[data-page="sportsbarn"] .keyfacts__list li {
  display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    background: var(--panel-bg);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.12));
    color: var(--text-color);
}

body[data-page="sportsbarn"] .keyfacts__list li i {
  flex: 0 0 auto;
    color: rgb(var(--primary-rgb));
}

body[data-page="sportsbarn"] .keyfacts__list li strong {
  display: inline;
    margin-right: 0.25rem;
}

body[data-page="sportsbarn"] .keyfacts__list li .muted {
  color: var(--muted);
}

@media (max-width: 575.98px) {
body[data-page="sportsbarn"] .keyfacts__list {
    grid-template-columns: 1fr;
  }
}

body[data-page="sportsbarn"] .modal-dialog {
  max-height: 90vh;
}

body[data-page="sportsbarn"] .modal-content {
  max-height: 90vh;
}

body[data-page="sportsbarn"] .modal-body {
  overflow-y: auto;
}

body[data-page="sportsbarn"] .bb-gallery__main img {
  width: 80%;
    max-height: 300px;
    display: block;
    margin: 0 auto;
}


/* ===== stedfast ===== */
/* ── Steadfast theme — blue accent, distinct from centenary crimson ── */

body[data-page="stedfast"].sl-theme {
  --primary-rgb: 30 111 168;
  --hub-accent: #1e6fa8;
}

[data-theme="dark"] body[data-page="stedfast"].sl-theme {
  --primary-rgb: 56 122 171;
  --hub-accent: #387aab;
}

/* ── Accent-stripe card (4px gradient top border) ───── */

body[data-page="stedfast"] .sl-card {
  position: relative;
        overflow: hidden;
}

body[data-page="stedfast"] .sl-card::before {
  content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 4px;
        background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.4) 100%);
        border-radius: 6px 6px 0 0;
}

/* ── Eyebrow label ──────────────────────────────────── */

body[data-page="stedfast"] .eyebrow {
  font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgb(var(--primary-rgb));
}

body[data-page="stedfast"] .small-muted {
  font-size: 0.85rem; color: var(--muted);
}

body[data-page="stedfast"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Chips ──────────────────────────────────────────── */

body[data-page="stedfast"] .chip-row {
  display: flex; flex-wrap: wrap; gap: .5rem;
}

body[data-page="stedfast"] .chip {
  display: inline-flex;
        align-items: center;
        gap: .45rem;
        padding: .35rem .65rem;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,.18);
        background: color-mix(in srgb, var(--panel-bg), transparent 35%);
        font-size: .92rem;
}

/* ── Hero video ─────────────────────────────────────── */

body[data-page="stedfast"] .hero-video {
  width: 100%;
        min-height: 320px;
        height: 100%;
        overflow: hidden;
        border-radius: 1rem;
        border: 1px solid rgba(255,255,255,.15);
}

body[data-page="stedfast"] .hero-video video {
  width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ── Key facts grid ─────────────────────────────────── */

body[data-page="stedfast"] .keyfacts__list {
  display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.75rem;
        list-style: none;
        margin: 0; padding: 0;
}

body[data-page="stedfast"] .keyfacts__list li {
  display: flex;
        align-items: center;
        gap: 0.55rem;
        padding: 0.75rem 0.9rem;
        border-radius: 14px;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        font-size: 0.88rem;
}

body[data-page="stedfast"] .keyfacts__list li i {
  color: rgb(var(--primary-rgb)); flex-shrink: 0;
}

@media (max-width: 575px) {
body[data-page="stedfast"] .keyfacts__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Checklist ──────────────────────────────────────── */

body[data-page="stedfast"] .check-list {
  list-style: none; padding: 0; margin: 0;
}

body[data-page="stedfast"] .check-list li {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        padding: 0.38rem 0;
        font-size: 0.9rem;
        border-bottom: 1px solid var(--surface-border);
}

body[data-page="stedfast"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="stedfast"] .check-list li i {
  color: rgb(var(--primary-rgb)); margin-top: 0.15rem; flex-shrink: 0;
}

/* ── Note pills ─────────────────────────────────────── */

body[data-page="stedfast"] .note-pill {
  display: flex;
        gap: 0.6rem;
        align-items: flex-start;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        padding: 0.65rem 0.9rem;
        font-size: 0.83rem;
        color: var(--muted);
}

body[data-page="stedfast"] .note-pill i {
  color: rgb(var(--primary-rgb)); margin-top: 0.1rem; flex-shrink: 0;
}

/* ── Stay-type switcher ─────────────────────────────── */

body[data-page="stedfast"] .centenary-switcher {
  display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem;
}

body[data-page="stedfast"] .centenary-switcher .btn.btn-glass.centenary-tab.is-active {
  background: var(--hub-accent) !important;
        color: #fff !important;
        border-color: var(--hub-accent) !important;
}

body[data-page="stedfast"] .centenary-switcher .btn.btn-glass.centenary-tab.is-active:hover, body[data-page="stedfast"] .centenary-switcher .btn.btn-glass.centenary-tab.is-active:focus {
  background: var(--hub-accent) !important;
        color: #fff !important;
}

/* ── Quick-card highlights (JS-rendered) ────────────── */

body[data-page="stedfast"] .quick-card {
  padding: 0.9rem;
        border-radius: 0.85rem;
        background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body[data-page="stedfast"] .quick-card:hover {
  transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.12);
}

body[data-page="stedfast"] .quick-num {
  font-weight: 700; font-size: 0.92rem; color: var(--text-color);
}

body[data-page="stedfast"] .quick-label {
  font-size: 0.8rem;
  color: rgb(var(--primary-rgb)) !important;
  font-weight: 600;
  margin-top: 0.1rem;
}

body[data-page="stedfast"] .quick-card .small-muted {
  font-size: 0.75rem; margin-top: 0.25rem;
}

/* ── Runline (day flow) ─────────────────────────────── */

body[data-page="stedfast"] .runline {
  display: grid; gap: .9rem;
}

body[data-page="stedfast"] .runline-step {
  padding: 1rem;
        border-radius: 14px;
        background: color-mix(in srgb, var(--panel-bg), transparent 18%);
        border: 1px solid rgba(255,255,255,.10);
}

body[data-page="stedfast"] .runline-step .top {
  display: flex;
        justify-content: space-between;
        align-items: center;
        gap: .75rem;
        margin-bottom: .35rem;
        flex-wrap: wrap;
}

body[data-page="stedfast"] .runline-step .tag {
  padding: .2rem .55rem;
        border-radius: 999px;
        font-size: .78rem;
        border: 1px solid rgba(var(--primary-rgb)/.22);
        background: rgba(var(--primary-rgb)/.10);
}

body[data-page="stedfast"] .runline-step p {
  margin: 0; opacity: .86;
}

/* ── Gallery ────────────────────────────────────────── */

body[data-page="stedfast"] .bb-gallery__main {
  display: block;
        border-radius: 1rem;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.15);
}

body[data-page="stedfast"] .bb-gallery__main img {
  width: 100%;
        height: 240px;
        object-fit: cover;
        display: block;
        transition: transform .35s ease;
}

body[data-page="stedfast"] .bb-gallery__main:hover img {
  transform: scale(1.03);
}

body[data-page="stedfast"] .bb-gallery__thumbs {
  display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.6rem;
}

body[data-page="stedfast"] .bb-thumb {
  width: 60px; height: 46px;
        border-radius: 0.5rem;
        overflow: hidden;
        border: 2px solid transparent;
        padding: 0; background: none; cursor: pointer;
        transition: border-color .2s ease;
}

body[data-page="stedfast"] .bb-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}

body[data-page="stedfast"] .bb-thumb.is-active {
  border-color: rgb(var(--primary-rgb));
}

/* ── Testimonial ────────────────────────────────────── */

body[data-page="stedfast"] .testimonial-card p {
  font-size: 0.95rem; font-style: italic;
}

/* ── Enquiry box ────────────────────────────────────── */

body[data-page="stedfast"] .enquiry-box {
  background: var(--surface-bg);
        border: 1px solid var(--surface-border);
        border-radius: 0.75rem;
        font-size: 0.88rem;
}

/* ── Callout banner ─────────────────────────────────── */

body[data-page="stedfast"] .callout-primary,
body[data-page="bedding-list-stedfast"] .callout-primary,
body[data-page="stedPlan"] .callout-primary {
  background: rgb(var(--primary-rgb));
  color: #fff;
  border-radius: 1rem;
  padding: 1.5rem 1.75rem;
  position: relative;
  overflow: hidden;
}

body[data-page="stedfast"] .callout-primary::after,
body[data-page="bedding-list-stedfast"] .callout-primary::after,
body[data-page="stedPlan"] .callout-primary::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -5%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .06);
  pointer-events: none;
}

body[data-page="stedfast"] .callout-primary h2,
body[data-page="bedding-list-stedfast"] .callout-primary h2,
body[data-page="stedPlan"] .callout-primary h2 {
  color: #fff;
}

body[data-page="stedfast"] .callout-primary p,
body[data-page="bedding-list-stedfast"] .callout-primary p,
body[data-page="stedPlan"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
  margin: 0;
}

body[data-page="stedfast"] .callout-primary .btn-glass,
body[data-page="bedding-list-stedfast"] .callout-primary .btn-glass,
body[data-page="stedPlan"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, .55) !important;
  color: #fff !important;
}

/* ── Rotator ────────────────────────────────────────── */

body[data-page="stedfast"] .centenary-rotator {
  position: relative; display: inline;
}

body[data-page="stedfast"] .rotator-word {
  display: none;
}

body[data-page="stedfast"] .rotator-word.is-on {
  display: inline;
}

/* ── Swap animation ─────────────────────────────────── */

body[data-page="stedfast"] .is-swapping {
  opacity: 0; transition: opacity 140ms ease;
}

/* ── Sticky CTA ─────────────────────────────────────── */

body[data-page="stedfast"] .sticky-cta {
  position: fixed;
        bottom: 0; left: 0; right: 0;
        z-index: 120;
        padding: 0.75rem 1rem;
        transform: translateY(100%);
        transition: transform 0.3s ease;
        pointer-events: none;
}

body[data-page="stedfast"] .sticky-cta.is-on {
  transform: translateY(0); pointer-events: auto;
}

body[data-page="stedfast"] .sticky-cta__inner {
  max-width: 800px;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        flex-wrap: wrap;
        padding: 0.75rem 1.25rem;
        border-radius: 1rem;
}

body[data-page="stedfast"] .sticky-cta__text {
  min-width: 0;
}

body[data-page="stedfast"] .sticky-cta__title {
  margin: 0; font-weight: 700; font-size: 0.95rem;
}

body[data-page="stedfast"] .sticky-cta__sub {
  margin: 0; font-size: 0.8rem; opacity: 0.78;
}

body[data-page="stedfast"] .sticky-cta__actions {
  display: flex; gap: 0.5rem; flex-wrap: wrap;
}

/* ── Reveal ─────────────────────────────────────────── */



/* ===== who-we-are ===== */
/* Page-scoped polish */

body[data-page="who-we-are"] .hero-wrap {
  position: relative;
        border-radius: 1.25rem;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, .18);
        background:
          radial-gradient(900px 420px at 18% 15%, rgba(255, 255, 255, .16), transparent 55%),
          radial-gradient(760px 380px at 85% 10%, rgba(255, 255, 255, .12), transparent 58%),
          color-mix(in srgb, var(--panel-bg), transparent 14%);
}

body[data-page="who-we-are"] .hero-grid {
  position: absolute;
        inset: 0;
        background-image:
          linear-gradient(to right, rgba(255, 255, 255, .06) 1px, transparent 1px),
          linear-gradient(to bottom, rgba(255, 255, 255, .06) 1px, transparent 1px);
        background-size: 56px 56px;
        mask-image: radial-gradient(60% 60% at 25% 30%, #000 55%, transparent 100%);
        pointer-events: none;
        opacity: .7;
}

body[data-page="who-we-are"] .chip-row {
  display: flex;
        flex-wrap: wrap;
        gap: .5rem;
}

body[data-page="who-we-are"] .chip {
  display: inline-flex;
        align-items: center;
        gap: .45rem;
        padding: .35rem .65rem;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, .18);
        background: color-mix(in srgb, var(--panel-bg), transparent 35%);
        font-size: .92rem;
}

body[data-page="who-we-are"] .pill-link {
  display: inline-flex;
        align-items: center;
        gap: .5rem;
        padding: .55rem .85rem;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, .18);
        background: color-mix(in srgb, var(--panel-bg), transparent 22%);
        text-decoration: none;
}

body[data-page="who-we-are"] .pill-link:hover {
  filter: brightness(1.05);
}

body[data-page="who-we-are"] .stat-card {
  padding: 1rem;
        border-radius: 1rem;
        border: 1px solid rgba(255, 255, 255, .18);
        background: color-mix(in srgb, var(--panel-bg), transparent 20%);
        height: 100%;
}

body[data-page="who-we-are"] .icon-badge {
  width: 40px;
        height: 40px;
        border-radius: 14px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, .18);
        background: rgba(255, 255, 255, .08);
        flex: 0 0 auto;
}

body[data-page="who-we-are"] .step-card {
  padding: 1rem;
        border-radius: 1rem;
        border: 1px solid rgba(255, 255, 255, .18);
        background: color-mix(in srgb, var(--panel-bg), transparent 20%);
        height: 100%;
}

body[data-page="who-we-are"] .video-shell {
  border-radius: 1.25rem;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, .18);
        background: color-mix(in srgb, var(--panel-bg), transparent 10%);
        position: relative;
}

body[data-page="who-we-are"] .video-placeholder {
  width: 100%;
        height: 100%;
        display: grid;
        place-items: center;
        padding: 1rem;
        text-align: center;
        background:
          radial-gradient(900px 420px at 20% 30%, rgba(255, 255, 255, .12), transparent 60%),
          linear-gradient(135deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, 0));
}

body[data-page="who-we-are"] .play-ring {
  width: 72px;
        height: 72px;
        border-radius: 999px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, .22);
        background: rgba(255, 255, 255, .08);
        margin: .25rem auto .85rem;
}

body[data-page="who-we-are"] .gallery-grid {
  display: grid;
        grid-template-columns: 1.3fr .9fr;
        gap: .75rem;
}

body[data-page="who-we-are"] .shot {
  border-radius: 1rem;
        border: 1px solid rgba(255, 255, 255, .18);
        background: color-mix(in srgb, var(--panel-bg), transparent 18%);
        overflow: hidden;
        position: relative;
        min-height: 160px;
}

body[data-page="who-we-are"] .shot .ph {
  height: 100%;
        display: grid;
        place-items: center;
        background:
          radial-gradient(900px 420px at 18% 15%, rgba(255, 255, 255, .12), transparent 60%),
          linear-gradient(135deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, 0));
        color: var(--muted);
        text-align: center;
        padding: 1rem;
}

body[data-page="who-we-are"] .shot.small {
  min-height: 120px;
}

body[data-page="who-we-are"] .shot .tag {
  position: absolute;
        left: .75rem;
        bottom: .75rem;
        padding: .25rem .55rem;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, .22);
        background: rgba(0, 0, 0, .18);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        font-size: .85rem;
}

@media (max-width: 991px) {
body[data-page="who-we-are"] .gallery-grid {
    grid-template-columns: 1fr;
  }
}

body[data-page="who-we-are"] .partner-logo-large {
  max-height: 180px !important; /* increase from 90 */
}

body[data-page="who-we-are"] .partner-media {
  height: 200px !important;
    width: 85%;
}
/* ── Runline (day flow) ─────────────────────────────── */

body[data-page="camp"] .runline {
  display: grid;
  gap: .9rem;
}

body[data-page="camp"] .runline-step {
  padding: 1rem;
  border-radius: 14px;
  background: color-mix(in srgb, var(--panel-bg), transparent 18%);
  border: 1px solid rgba(255, 255, 255, .10);
}

body[data-page="camp"] .runline-step .top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: .35rem;
  flex-wrap: wrap;
}

body[data-page="camp"] .runline-step .tag {
  padding: .2rem .55rem;
  border-radius: 999px;
  font-size: .78rem;
  border: 1px solid rgba(var(--primary-rgb)/.22);
  background: rgba(var(--primary-rgb)/.10);
}

body[data-page="camp"] .runline-step p {
  margin: 0;
  opacity: .86;
}
/* ════════════════════════════════════════════
   LOCATION PAGE — CTA + ACCENT ALIGNMENT
════════════════════════════════════════════ */

/* ── Final CTA banner (callout-primary) ── */
body[data-page="location"] .callout-primary {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  padding: 1.25rem;
  background:
    linear-gradient(135deg, rgba(11, 61, 145, 0.92), rgba(30, 90, 160, 0.88)),
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
}

body[data-page="location"] .callout-primary::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at top right, rgba(212, 175, 55, 0.22), transparent 36%),
    linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.06) 45%, transparent 100%);
}

body[data-page="location"] .callout-primary>* {
  position: relative;
  z-index: 1;
}

body[data-page="location"] .callout-primary h2,
body[data-page="location"] .callout-primary h4,
body[data-page="location"] .callout-primary p,
body[data-page="location"] .callout-primary .eyebrow {
  color: #fff !important;
}

body[data-page="location"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, 0.22);
}


/* ── Hero + planner accent lift ── */
body[data-page="location"] .loc-hero,
body[data-page="location"] .loc-planner-shell {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(212, 175, 55, 0.18);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.10);
}

body[data-page="location"] .loc-hero::before,
body[data-page="location"] .loc-planner-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at top right, rgba(212, 175, 55, 0.10), transparent 32%);
}


/* ── Section heading accent lines ── */
body[data-page="location"] .loc-card-title::after,
body[data-page="location"] .loc-planner-title::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-top: .55rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent-color), transparent);
}


/* ── Chips + stat subtle alignment ── */
body[data-page="location"] .loc-card-chip {
  border: 1px solid rgba(212, 175, 55, 0.28);
  background: rgba(212, 175, 55, 0.12);
}

body[data-page="location"] .loc-stat {
  border-color: rgba(212, 175, 55, 0.16);
}

body[data-page="location"] .loc-route-pill {
  border: 1px solid rgba(212, 175, 55, 0.22);
  background: rgba(212, 175, 55, 0.10);
}

body[data-page="location"] .loc-empty-chips .loc-chip {
  border: 1px solid rgba(212, 175, 55, 0.24);
  background: rgba(212, 175, 55, 0.10);
}
/* LOCATION page match to CENTENARY styling */

body[data-page="location"] .loc-hero,
body[data-page="location"] article.glass-panel.soft-card,
body[data-page="location"] .glass-panel.soft-card.p-3.p-lg-4.h-100,
body[data-page="location"] .glass-panel.soft-card.p-3.p-lg-4,
body[data-page="location"] .loc-planner-shell {
  position: relative;
  overflow: hidden;
}

body[data-page="location"] .loc-hero::before,
body[data-page="location"] article.glass-panel.soft-card::before,
body[data-page="location"] .glass-panel.soft-card.p-3.p-lg-4.h-100::before,
body[data-page="location"] .glass-panel.soft-card.p-3.p-lg-4::before,
body[data-page="location"] .loc-planner-shell::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgb(var(--primary-rgb)) 0%, rgba(var(--primary-rgb)/.45) 100%);
  border-radius: 6px 6px 0 0;
}

body[data-page="location"] .eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(var(--primary-rgb));
}

body[data-page="location"] .callout-primary {
  background: rgb(var(--primary-rgb));
  color: #fff;
  border-radius: 1rem;
  padding: 1.5rem 1.75rem;
  position: relative;
  overflow: hidden;
}

body[data-page="location"] .callout-primary::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -5%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

body[data-page="location"] .callout-primary h2,
body[data-page="location"] .callout-primary h4 {
  color: #fff;
}

body[data-page="location"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
  margin: 0;
}

body[data-page="location"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, 0.55) !important;
  color: #fff !important;
}

body[data-page="location"] .callout-primary .btn-glass i {
  color: inherit !important;
}

body[data-page="location"] .loc-card-chip {
  border: 1px solid rgba(var(--primary-rgb)/.18);
  background: rgba(var(--primary-rgb)/.08);
  color: rgb(var(--primary-rgb));
}

body[data-page="location"] .loc-card-title,
body[data-page="location"] .loc-planner-title {
  color: var(--text-color);
}
/* LOCATION: make At a glance match Centenary keyfacts */

body[data-page="location"] .keyfacts__list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: visible;
  /* kills scroll behaviour */
}

body[data-page="location"] .keyfacts__list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.6rem;
  border: 1px solid rgba(var(--primary-rgb)/0.12);
  background: rgba(var(--primary-rgb)/0.05);
  transition: background 0.2s ease, border-color 0.2s ease;
}

body[data-page="location"] .keyfacts__list li:hover {
  background: rgba(var(--primary-rgb)/0.08);
  border-color: rgba(var(--primary-rgb)/0.22);
}

body[data-page="location"] .keyfacts__list li i {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb)/0.12);
  color: rgb(var(--primary-rgb));
  font-size: 0.8rem;
  flex-shrink: 0;
}

body[data-page="location"] .keyfacts__list li strong {
  display: block;
  font-weight: 600;
  color: var(--text-color);
}

body[data-page="location"] .keyfacts__list .small-muted {
  font-size: 0.78rem;
  opacity: 0.8;
}
/*clock css*/
body[data-page="contact"] .contact-time-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb)/0.14);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03)),
    rgba(255, 255, 255, 0.02);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10);
}

body[data-page="contact"] .contact-time-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(circle at top right, rgba(var(--primary-rgb)/0.12), transparent 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.05), transparent 45%);
}

body[data-page="contact"] .contact-time-card>* {
  position: relative;
  z-index: 1;
}

body[data-page="contact"] .contact-time-display {
  font-family: "Merriweather", serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1;
  font-weight: 700;
  color: rgb(var(--primary-rgb));
}

body[data-page="contact"] .contact-time-status {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--primary-rgb)/0.14);
  background: rgba(var(--primary-rgb)/0.06);
  font-size: 0.92rem;
  font-weight: 600;
}

body[data-page="contact"] .contact-time-dot {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #f0ad4e;
}

body[data-page="contact"] .contact-time-status.is-open .contact-time-dot {
  background: #3cb371;
  
}

body[data-page="contact"] .contact-time-status.is-closed .contact-time-dot {
  background: #d9534f;
}
body[data-page="contact"] .callout-primary {
  background: rgb(var(--primary-rgb));
  color: #fff;
  border-radius: 1rem;
  padding: 1.5rem 1.75rem;
  position: relative;
  overflow: hidden;
}

body[data-page="contact"] .callout-primary::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -5%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

body[data-page="contact"] .callout-primary h2,
body[data-page="contact"] .callout-primary h4 {
  color: #fff;
}

body[data-page="contact"] .callout-primary p {
  color: rgba(255, 255, 255, .88);
  margin: 0;
}

body[data-page="contact"] .callout-primary .btn-glass {
  border-color: rgba(255, 255, 255, 0.55) !important;
  color: #fff !important;
}

body[data-page="contact"] .callout-primary .btn-glass i {
  color: inherit !important;
}
/*policies css*/
/* ==========================================================================
   SAFETY & POLICIES — FULL PAGE STYLES
   ========================================================================== */

/* ── Eyebrow / utilities ────────────────────────────── */

body[data-page="policies"] .eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

body[data-page="policies"] .kicker {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
  opacity: 0.9;
}

body[data-page="policies"] .small-muted {
  font-size: 0.85rem;
  color: var(--muted);
}

body[data-page="policies"] .section-gap {
  margin-bottom: 1.75rem;
}

/* ── Chips ──────────────────────────────────────────── */

body[data-page="policies"] .chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

body[data-page="policies"] .chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: color-mix(in srgb, var(--panel-bg), transparent 35%);
  font-size: 0.92rem;
}

/* ── Check-list ─────────────────────────────────────── */

body[data-page="policies"] .check-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

body[data-page="policies"] .check-list li {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  padding: 0.38rem 0;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--surface-border);
}

body[data-page="policies"] .check-list li:last-child {
  border-bottom: none;
}

body[data-page="policies"] .check-list li i {
  color: var(--text-color);
  margin-top: 0.15rem;
  flex-shrink: 0;
}

/* ── Note pill ──────────────────────────────────────── */

body[data-page="policies"] .note-pill {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  background: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: 0.75rem;
  padding: 0.65rem 0.9rem;
  font-size: 0.83rem;
  color: var(--text-color);
}

body[data-page="policies"] .note-pill i {
  color: var(--text-color);
  margin-top: 0.1rem;
  flex-shrink: 0;
}

/* ── Policy panel cards ─────────────────────────────── */

body[data-page="policies"] .policy-card {
  padding: 1.1rem 1.25rem;
}

body[data-page="policies"] .policy-panel {
  animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Policy download list ───────────────────────────── */

body[data-page="policies"] .policy-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

body[data-page="policies"] .policy-list li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--surface-border);
}

body[data-page="policies"] .policy-list li:last-child {
  border-bottom: none;
}

body[data-page="policies"] .policy-list li i {
  color: var(--accent);
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
}

body[data-page="policies"] .policy-list li a {
  color: var(--text-color);
  text-decoration: none;
}

body[data-page="policies"] .policy-list li a:hover {
  color: var(--accent);
  text-decoration: underline;
}

/* --- Policy hub layout --- */

body[data-page="policies"] .policy-switch {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

body[data-page="policies"] .policy-link-item {
  padding: .9rem 0;
  border-top: 1px solid rgba(11, 27, 74, .08);
}

body[data-page="policies"] .policy-links .policy-link-item:first-child {
  padding-top: 0;
  border-top: 0;
}


/* --- Accent strip (brings pages in line with Centenary style) --- */

body[data-page="policies"] .hub-hero,
body[data-page="accessibility"] .hub-hero,
body[data-page="anti-bullying-behaviour"] .hub-hero,
body[data-page="cctv-doorbell-cameras"] .hub-hero,
body[data-page="code-of-conduct"] .hub-hero,
body[data-page="complaints"] .hub-hero,
body[data-page="equality"] .hub-hero,
body[data-page="health-safety"] .hub-hero,
body[data-page="heights-climbing"] .hub-hero,
body[data-page="insurance"] .hub-hero,
body[data-page="photography-filming"] .hub-hero,
body[data-page="safeguarding"] .hub-hero,
body[data-page="smoking-alcohol-substances"] .hub-hero,
body[data-page="terms"] .hub-hero {
  border-top: 6px solid var(--hub-accent);
}


/* --- Accordion spacing fix --- */

body[data-page="accessibility"] .terms-accordion,
body[data-page="anti-bullying-behaviour"] .terms-accordion,
body[data-page="cctv-doorbell-cameras"] .terms-accordion,
body[data-page="code-of-conduct"] .terms-accordion,
body[data-page="complaints"] .terms-accordion,
body[data-page="equality"] .terms-accordion,
body[data-page="health-safety"] .terms-accordion,
body[data-page="heights-climbing"] .terms-accordion,
body[data-page="insurance"] .terms-accordion,
body[data-page="photography-filming"] .terms-accordion,
body[data-page="safeguarding"] .terms-accordion,
body[data-page="smoking-alcohol-substances"] .terms-accordion,
body[data-page="terms"] .terms-accordion {
  display: grid;
  gap: 1rem;
}

body[data-page="accessibility"] .terms-item,
body[data-page="anti-bullying-behaviour"] .terms-item,
body[data-page="cctv-doorbell-cameras"] .terms-item,
body[data-page="code-of-conduct"] .terms-item,
body[data-page="complaints"] .terms-item,
body[data-page="equality"] .terms-item,
body[data-page="health-safety"] .terms-item,
body[data-page="heights-climbing"] .terms-item,
body[data-page="insurance"] .terms-item,
body[data-page="photography-filming"] .terms-item,
body[data-page="safeguarding"] .terms-item,
body[data-page="smoking-alcohol-substances"] .terms-item,
body[data-page="terms"] .terms-item {
  margin-top: 0;
  padding-top: 0;
}


/* --- Strong callout (replaces weak compliance footer feel) --- */

.callout-primary {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: linear-gradient(135deg, rgba(15, 47, 79, .96), rgba(34, 75, 142, .92));
  box-shadow: 0 24px 60px rgba(8, 20, 48, .28);
  padding: 1.25rem;
}

.callout-primary::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(640px 240px at 10% 0%, rgba(255, 255, 255, .16), transparent 60%),
    radial-gradient(520px 220px at 100% 100%, rgba(255, 255, 255, .10), transparent 55%);
  pointer-events: none;
}

.callout-primary>* {
  position: relative;
  z-index: 1;
}

.callout-primary h2,
.callout-primary p,
.callout-primary .eyebrow {
  color: #fff !important;
}


/* --- Mobile fix for policy switch --- */

@media (max-width: 991.98px) {
  body[data-page="policies"] .policy-switch .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   POLICY PAGES — BOTTOM-FIXED STICKY BAR (matches bedding-listCH pattern)
   ========================================================================== */

body[data-page="accessibility"],
body[data-page="anti-bullying-behaviour"],
body[data-page="cctv-doorbell-cameras"],
body[data-page="code-of-conduct"],
body[data-page="complaints"],
body[data-page="equality"],
body[data-page="health-safety"],
body[data-page="heights-climbing"],
body[data-page="insurance"],
body[data-page="photography-filming"],
body[data-page="privacy"],
body[data-page="railway"],
body[data-page="safeguarding"],
body[data-page="security"],
body[data-page="smoking-alcohol-substances"],
body[data-page="terms"] {
  padding-bottom: 4rem; /* prevent content hidden behind sticky bar */
}

body[data-page="accessibility"] .sticky-bar,
body[data-page="anti-bullying-behaviour"] .sticky-bar,
body[data-page="cctv-doorbell-cameras"] .sticky-bar,
body[data-page="code-of-conduct"] .sticky-bar,
body[data-page="complaints"] .sticky-bar,
body[data-page="equality"] .sticky-bar,
body[data-page="health-safety"] .sticky-bar,
body[data-page="heights-climbing"] .sticky-bar,
body[data-page="insurance"] .sticky-bar,
body[data-page="photography-filming"] .sticky-bar,
body[data-page="privacy"] .sticky-bar,
body[data-page="railway"] .sticky-bar,
body[data-page="safeguarding"] .sticky-bar,
body[data-page="security"] .sticky-bar,
body[data-page="smoking-alcohol-substances"] .sticky-bar,
body[data-page="terms"] .sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 120;
  padding: 0.6rem 1rem;
  pointer-events: none;
}

body[data-page="accessibility"] .sticky-bar .inner,
body[data-page="anti-bullying-behaviour"] .sticky-bar .inner,
body[data-page="cctv-doorbell-cameras"] .sticky-bar .inner,
body[data-page="code-of-conduct"] .sticky-bar .inner,
body[data-page="complaints"] .sticky-bar .inner,
body[data-page="equality"] .sticky-bar .inner,
body[data-page="health-safety"] .sticky-bar .inner,
body[data-page="heights-climbing"] .sticky-bar .inner,
body[data-page="insurance"] .sticky-bar .inner,
body[data-page="photography-filming"] .sticky-bar .inner,
body[data-page="privacy"] .sticky-bar .inner,
body[data-page="railway"] .sticky-bar .inner,
body[data-page="safeguarding"] .sticky-bar .inner,
body[data-page="security"] .sticky-bar .inner,
body[data-page="smoking-alcohol-substances"] .sticky-bar .inner,
body[data-page="terms"] .sticky-bar .inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.6rem 1.1rem;
  border-radius: 1rem;
  pointer-events: auto;
  border-top: 3px solid var(--primary);
}

body[data-page="accessibility"] .sticky-jump-chips,
body[data-page="anti-bullying-behaviour"] .sticky-jump-chips,
body[data-page="cctv-doorbell-cameras"] .sticky-jump-chips,
body[data-page="code-of-conduct"] .sticky-jump-chips,
body[data-page="complaints"] .sticky-jump-chips,
body[data-page="equality"] .sticky-jump-chips,
body[data-page="health-safety"] .sticky-jump-chips,
body[data-page="heights-climbing"] .sticky-jump-chips,
body[data-page="insurance"] .sticky-jump-chips,
body[data-page="photography-filming"] .sticky-jump-chips,
body[data-page="privacy"] .sticky-jump-chips,
body[data-page="railway"] .sticky-jump-chips,
body[data-page="safeguarding"] .sticky-jump-chips,
body[data-page="security"] .sticky-jump-chips,
body[data-page="smoking-alcohol-substances"] .sticky-jump-chips,
body[data-page="terms"] .sticky-jump-chips {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  gap: 0.5rem;
  align-items: center;
  min-width: 0;
  padding-bottom: 0.1rem;
}

body[data-page="accessibility"] .sticky-actions,
body[data-page="anti-bullying-behaviour"] .sticky-actions,
body[data-page="cctv-doorbell-cameras"] .sticky-actions,
body[data-page="code-of-conduct"] .sticky-actions,
body[data-page="complaints"] .sticky-actions,
body[data-page="equality"] .sticky-actions,
body[data-page="health-safety"] .sticky-actions,
body[data-page="heights-climbing"] .sticky-actions,
body[data-page="insurance"] .sticky-actions,
body[data-page="photography-filming"] .sticky-actions,
body[data-page="privacy"] .sticky-actions,
body[data-page="railway"] .sticky-actions,
body[data-page="safeguarding"] .sticky-actions,
body[data-page="security"] .sticky-actions,
body[data-page="smoking-alcohol-substances"] .sticky-actions,
body[data-page="terms"] .sticky-actions {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}

@media (max-width: 767px) {
  body[data-page="accessibility"] .sticky-bar .inner,
  body[data-page="anti-bullying-behaviour"] .sticky-bar .inner,
  body[data-page="cctv-doorbell-cameras"] .sticky-bar .inner,
  body[data-page="code-of-conduct"] .sticky-bar .inner,
  body[data-page="complaints"] .sticky-bar .inner,
  body[data-page="equality"] .sticky-bar .inner,
  body[data-page="health-safety"] .sticky-bar .inner,
  body[data-page="heights-climbing"] .sticky-bar .inner,
  body[data-page="insurance"] .sticky-bar .inner,
  body[data-page="photography-filming"] .sticky-bar .inner,
  body[data-page="privacy"] .sticky-bar .inner,
  body[data-page="railway"] .sticky-bar .inner,
  body[data-page="safeguarding"] .sticky-bar .inner,
  body[data-page="security"] .sticky-bar .inner,
  body[data-page="smoking-alcohol-substances"] .sticky-bar .inner,
  body[data-page="terms"] .sticky-bar .inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  body[data-page="accessibility"] .sticky-jump-chips,
  body[data-page="anti-bullying-behaviour"] .sticky-jump-chips,
  body[data-page="cctv-doorbell-cameras"] .sticky-jump-chips,
  body[data-page="code-of-conduct"] .sticky-jump-chips,
  body[data-page="complaints"] .sticky-jump-chips,
  body[data-page="equality"] .sticky-jump-chips,
  body[data-page="health-safety"] .sticky-jump-chips,
  body[data-page="heights-climbing"] .sticky-jump-chips,
  body[data-page="insurance"] .sticky-jump-chips,
  body[data-page="photography-filming"] .sticky-jump-chips,
  body[data-page="privacy"] .sticky-jump-chips,
  body[data-page="railway"] .sticky-jump-chips,
  body[data-page="safeguarding"] .sticky-jump-chips,
  body[data-page="security"] .sticky-jump-chips,
  body[data-page="smoking-alcohol-substances"] .sticky-jump-chips,
  body[data-page="terms"] .sticky-jump-chips {
    width: 100%;
  }
}

/* Hide in print */
@media print {
  body[data-page="accessibility"] .sticky-bar,
  body[data-page="anti-bullying-behaviour"] .sticky-bar,
  body[data-page="cctv-doorbell-cameras"] .sticky-bar,
  body[data-page="code-of-conduct"] .sticky-bar,
  body[data-page="complaints"] .sticky-bar,
  body[data-page="equality"] .sticky-bar,
  body[data-page="health-safety"] .sticky-bar,
  body[data-page="heights-climbing"] .sticky-bar,
  body[data-page="insurance"] .sticky-bar,
  body[data-page="photography-filming"] .sticky-bar,
  body[data-page="privacy"] .sticky-bar,
  body[data-page="railway"] .sticky-bar,
  body[data-page="safeguarding"] .sticky-bar,
  body[data-page="security"] .sticky-bar,
  body[data-page="smoking-alcohol-substances"] .sticky-bar,
  body[data-page="terms"] .sticky-bar {
    display: none !important;
  }
}


/* ==========================================================================
   TERMS PAGE — grid sticky nav tab styles
   (.terms-nav-tab replaces the old scroll-strip .terms-chip on terms.html)
   ========================================================================== */

body[data-page="terms"] .terms-nav-tab.is-active {
  background: rgba(34, 75, 142, 0.18) !important;
  border-color: rgba(34, 75, 142, 0.40) !important;
}

body[data-page="terms"] .terms-nav-tab.is-active .step-badge {
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary) !important;
  box-shadow: 0 6px 14px rgba(34, 75, 142, 0.28) !important;
}

body[data-page="terms"] .terms-nav-tab.is-active .terms-nav-label {
  color: #fff !important;
}
#weather-widget .weather-shell {
  margin-bottom: 1.5rem;
}

#weather-widget .weather-now-temp {
  font-size: 2rem;
  line-height: 1;
}

#weather-widget .weather-mini-card {
  border-radius: 12px;
}

#weather-widget .weather-forecast-card {
  border-radius: 14px;
  min-height: 120px;
}

#weather-widget .weather-tide-icon {
  opacity: 0.7;
}

/* desktop + tablet */
#weather-widget .weather-forecast-scroll {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

#weather-widget .weather-forecast-item {
  min-width: 0;
}

/* mobile only */
@media (max-width: 767.98px) {
  #weather-widget .weather-forecast-scroll {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
  }

  #weather-widget .weather-forecast-item {
    flex: 0 0 140px;
  }
}
.hub-hero--feature {
  min-width: 100% !important;
  position: relative;
  padding: clamp(2rem, 4vw, 3.5rem) !important;
  border-bottom-right-radius: 1.5rem !important;
  border-bottom-left-radius: 1.5rem !important;
  overflow: hidden;
  isolation: isolate;
  transform: translateY(-4px);

  background:
    linear-gradient(180deg,
      rgba(255, 255, 255, 0.14) 0%,
      rgba(255, 255, 255, 0.05) 34%,
      rgba(8, 24, 48, 0.10) 100%),
    linear-gradient(135deg,
      rgba(255, 255, 255, 0.05) 0%,
      rgba(255, 255, 255, 0) 38%,
      rgba(255, 255, 255, 0.07) 100%),
    var(--hero-bg) !important;

  border: 1px solid color-mix(in srgb, var(--hero-pill-border) 82%, transparent) !important;

  box-shadow:
    var(--hero-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08) !important;

  backdrop-filter: blur(16px) saturate(145%);
  -webkit-backdrop-filter: blur(16px) saturate(145%);

  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    border-color 0.22s ease;
}

.hub-hero--feature::before {
  content: "";
  position: absolute;
  inset: 0;

  background:
    linear-gradient(180deg,
      rgba(255, 255, 255, 0.28) 0%,
      rgba(255, 255, 255, 0.12) 18%,
      rgba(255, 255, 255, 0.04) 38%,
      rgba(255, 255, 255, 0) 60%),
    radial-gradient(900px 320px at 100% 0%, rgba(255, 255, 255, 0.22), transparent 55%),
    radial-gradient(700px 280px at 0% 100%, rgba(255, 255, 255, 0.12), transparent 60%);

  pointer-events: none;
  z-index: 0;
}
.hub-hero--feature [data-hero-side] img {
  border-radius: 1rem;

  border: 1px solid rgba(255, 255, 255, 0.35);

  box-shadow:
    0 22px 48px rgba(10, 24, 48, 0.28),
    inset 0 0 0 1px rgba(255, 255, 255, 0.10);

  backdrop-filter: blur(2px);
}

.hub-hero--feature::after {
  content: "";
  position: absolute;
  inset: -20% -35%;
  background: linear-gradient(115deg,
      rgba(255, 255, 255, 0) 30%,
      rgba(255, 255, 255, 0.10) 42%,
      rgba(255, 255, 255, 0.22) 50%,
      rgba(255, 255, 255, 0.10) 58%,
      rgba(255, 255, 255, 0) 70%);
  transform: translateX(-60%) translateY(-8%) rotate(8deg);
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  will-change: transform, opacity;
  animation: heroLightSweepLoop 6s ease-in-out infinite;
}

@keyframes heroLightSweepLoop {
  0% {
    transform: translateX(-60%) translateY(-8%) rotate(8deg);
    opacity: 0;
  }

  8% {
    opacity: 0.35;
  }

  18% {
    opacity: 0.7;
  }

  35% {
    transform: translateX(60%) translateY(-8%) rotate(8deg);
    opacity: 0;
  }

  100% {
    transform: translateX(60%) translateY(-8%) rotate(8deg);
    opacity: 0;
  }
}


.hub-hero--feature>* {
  position: relative;
  z-index: 1;
}

.hub-hero--feature:hover {
  transform: translateY(-6px);
  box-shadow:
    0 28px 66px rgba(12, 34, 68, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important;
}

.hub-hero--feature,
.hub-hero--feature h1,
.hub-hero--feature h2,
.hub-hero--feature h3,
.hub-hero--feature h4,
.hub-hero--feature span,
.hub-hero--feature .kicker,
.hub-hero--feature i,
.hub-hero--feature .fa-solid,
.hub-hero--feature .fa-regular,
.hub-hero--feature .fa-light,
.hub-hero--feature .fa-brands {
  color: var(--hero-text) !important;
}

.hub-hero--feature p,
.hub-hero--feature .lead,
.hub-hero--feature .small-muted,
.hub-hero--feature small,
.hub-hero--feature [data-hero-eyebrow],
.hub-hero--feature [data-hero-intro],
.hub-hero--feature [data-hero-meta] {
  color: var(--hero-muted) !important;
}

.hub-hero--feature h1,
.hub-hero--feature [data-hero-title] {
  color: var(--hero-text) !important;
  text-shadow: 0 3px 18px rgba(10, 24, 48, 0.20);
}
.hub-hero--feature [data-hero-side] img {
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow:
    0 18px 40px rgba(10, 24, 48, 0.20),
    0 0 0 1px rgba(255, 255, 255, 0.08) inset;
}

.hub-hero--feature [data-hero-grid] img {
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 10px 22px rgba(10, 24, 48, 0.16);
}
.hub-hero--feature {
  border: 1px solid rgba(255, 255, 255, 0.28) !important;

  box-shadow:
    0 30px 70px rgba(10, 24, 48, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08) !important;
}
[data-global-hero] {
  border-radius: 0 0 1.1rem 1.1rem !important;
  border-top: 20px solid var(--hero-accent) !important;
}

[data-global-hero] [data-hero-grid] {
  align-items: stretch;
}

[data-global-hero] [data-hero-grid]>* {
  display: flex;
}

[data-global-hero] [data-hero-grid]>*>* {
  width: 100%;
  height: 100%;
}

[data-global-hero] [data-hero-grid] .glass-panel,
[data-global-hero] [data-hero-grid] .soft-card,
[data-global-hero] [data-hero-grid] .hub-card {
  padding: 0 !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid var(--hero-thumb-border) !important;
  box-shadow: none !important;
  overflow: hidden;
  border-radius: 1rem;
}

[data-global-hero] [data-hero-grid] img {
  display: block;
  width: 100%;
  height: 110px;
  object-fit: cover;
  border-radius: 0;
}

[data-global-hero] .hero-not-primary {
  background: var(--hero-btn-secondary-bg) !important;
  color: var(--hero-btn-secondary-text) !important;
  border: 1px solid var(--hero-btn-secondary-border) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

[data-global-hero] .hero-not-primary:hover,
[data-global-hero] .hero-not-primary:focus-visible {
  background: color-mix(in srgb, var(--hero-btn-secondary-bg) 82%, white) !important;
  border-color: color-mix(in srgb, var(--hero-btn-secondary-border) 88%, white) !important;
  color: var(--hero-btn-secondary-text) !important;
  transform: translateY(-1px);
}

html[data-theme="dyspraxia"] [data-global-hero] .btn-glass--primary {
  background: var(--hero-accent) !important;
  color: #201d16 !important;
  border: 1px solid rgba(120, 112, 92, 0.34) !important;
  box-shadow: 0 4px 12px rgba(58, 43, 26, 0.18) !important;
}

html[data-theme="dyspraxia"] [data-global-hero] .btn-glass--primary:hover,
html[data-theme="dyspraxia"] [data-global-hero] .btn-glass--primary:focus-visible {
  background: color-mix(in srgb, var(--hero-accent) 86%, white) !important;
  color: #201d16 !important;
}

html[data-theme="dyspraxia"] [data-global-hero] .hero-not-primary,
html[data-theme="dyspraxia"] [data-global-hero] .btn:not(.btn-glass--primary) {
  background: rgba(255, 250, 242, 0.12) !important;
  color: var(--hero-text) !important;
  border: 1px solid rgba(255, 250, 242, 0.28) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

html[data-theme="dyspraxia"] [data-global-hero] .hero-not-primary:hover,
html[data-theme="dyspraxia"] [data-global-hero] .btn:not(.btn-glass--primary):hover,
html[data-theme="dyspraxia"] [data-global-hero] .hero-not-primary:focus-visible,
html[data-theme="dyspraxia"] [data-global-hero] .btn:not(.btn-glass--primary):focus-visible {
  background: rgba(255, 250, 242, 0.22) !important;
  border-color: rgba(255, 250, 242, 0.40) !important;
  color: var(--hero-text) !important;
  transform: translateY(-1px);
}
@media (max-width: 767.98px) {
  body.policy-page [data-global-hero] [data-hero-side] {
    display: none !important;
  }

  body.policy-page [data-global-hero] [data-hero-content] {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media (max-width: 767.98px) {

  /* Reset the toggle button */
  .navbar-toggler,
  .menu-toggle,
  .nav-toggle {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0.5rem !important;
  }

  /* Force proper hamburger icon */
  .navbar-toggler-icon,
  .menu-toggle::before,
  .menu-toggle::after {
    width: 24px;
    height: 2px;
    background: currentColor;
    display: block;
    position: relative;
  }

  /* If using pseudo-lines */
  .menu-toggle {
    position: relative;
  }

  .menu-toggle::before,
  .menu-toggle::after {
    content: "";
    position: absolute;
    left: 0;
  }

  .menu-toggle::before {
    top: -6px;
  }

  .menu-toggle::after {
    top: 6px;
  }
}
@media (max-width: 767.98px) {
  body.policy-page main.container {
    padding-top: 0.5rem !important;
  }
}
@media (max-width: 767px) {
  [data-hero-grid] {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .hub-hero .col-lg-4 {
    width: 100%;
  }

  .hub-hero img {
    width: 100%;
    height: auto;
  }
}
[data-hero-grid] img {
  content-visibility: auto;
}
.contact-date-badge {
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact-date-badge .date-day {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.contact-date-badge .date-meta {
  display: flex;
  flex-direction: column;
  font-size: 0.85rem;
  opacity: 0.8;
}