/* Shared brand tokens and reusable components for the marketing site and booking app. */
html:root{--brand-purple:#6530bd;--brand-blue:#173878;--brand-pink:#b72b69;--brand-yellow:#ffdc65;--purple:var(--brand-purple);--control-radius:10px;--space-s:8px;--space-m:16px;--space-l:24px}
header nav[aria-label="Main navigation"] a{font-family:'Fredoka','Arial Rounded MT Bold','Trebuchet MS',sans-serif;font-size:18px;font-weight:700;letter-spacing:.15px;line-height:1.6;color:var(--brand-purple);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
header nav[aria-label="Main navigation"] a:visited{color:var(--brand-purple)}header nav[aria-label="Main navigation"] a:hover{color:#4b218f;text-decoration-thickness:3px}
.button.purple,.booking-layout .btn,.dashboard .btn{background:var(--brand-purple);color:#fff;font-weight:800;border-radius:var(--control-radius);min-height:46px}.button.purple:hover,.booking-layout .btn:hover,.dashboard .btn:hover{background:#4b218f}
.home-availability{border:2px solid #d7c5f2;background:#fff;border-radius:16px;padding:20px;margin:20px 0}.home-availability h2{font:700 21px/1.3 Fredoka,'Trebuchet MS',sans-serif;color:var(--brand-purple);letter-spacing:0;margin:0 0 16px}.home-date-fields{display:flex;flex-wrap:wrap;gap:12px}.home-date-fields label{font-size:12px;font-weight:700;display:flex;flex:1 1 150px;flex-direction:column;gap:7px}.home-date-fields input,.home-date-fields select{font:inherit;min-height:44px;border:1px solid #cbbfdd;border-radius:8px;padding:10px;width:100%;min-width:0;background:#fff;color:#282041}.home-date-fields label[hidden]{display:none}.home-date-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.home-date-actions button{cursor:pointer}.home-reset{border:0;background:none;color:var(--brand-purple);font-weight:700;text-decoration:underline;min-height:44px}.home-availability .fine{font-size:12px;line-height:1.5;margin:12px 0}.home-availability .fine a{text-decoration:underline;color:var(--brand-purple)}#home-availability-message{font-size:13px;font-weight:700;margin:10px 0 0}#home-availability-message:empty{display:none}.hero{padding-top:28px;padding-bottom:20px}.hero h1{font-size:clamp(30px,3.1vw,45px);margin:14px 0}.hero .party-feature{align-self:center}.hero .hero-notes{line-height:1.6}.catalogue .card .price small,.seo-page .card .price small{display:block;font-size:11px;font-weight:400;line-height:1.5;color:#625a74}.customer-trust{max-width:1160px;margin:30px auto;padding:26px;background:#fff;border:2px solid #d8c6f1;border-radius:18px;text-align:center}.customer-trust h2{font-size:28px;color:var(--brand-purple)}.customer-trust p{font-size:14px}.customer-trust .fine{font-size:12px}.customer-trust a{text-decoration:underline;color:var(--brand-purple)}.review-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.review-cards figure{margin:0;padding:20px;background:#f7f3fd;border-radius:12px;border:1px solid #e1d5f0}.review-cards figure>div{color:#926000;letter-spacing:2px}.review-cards blockquote{font-size:15px;line-height:1.6;margin:12px 0;color:#30274b}.review-cards figcaption{font-size:12px;font-weight:700;color:#65577b}.trust-facts{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:20px}.trust-facts span{background:#eaf6ef;padding:10px 14px;border-radius:20px;font-size:12px;font-weight:700;color:#245d3f}.booking-draft-status{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:12px;color:#696078;margin:12px 0}.booking-draft-status button{font-size:12px}.access-question{border:1px solid #d9cdef;border-radius:10px;padding:14px;margin:12px 0;background:#f8f5fc}.access-question legend{font-size:13px;font-weight:700;padding:0 5px}.access-question label{display:inline-flex;flex-direction:row;align-items:center;margin:8px 22px 8px 0;gap:8px;font-size:14px}.access-question input{width:18px;height:18px;accent-color:var(--brand-purple)}.access-question p{font-size:12px;line-height:1.6;margin:5px 0}.manual-whatsapp{display:block;margin:15px auto;padding:13px;background:#e1f5e6;color:#176633;border:1px solid #a8d5b4;border-radius:10px;text-decoration:none;font-weight:700}.resource-picker{padding:14px;border:1px solid #d9cdef;border-radius:10px;margin:15px 0}.resource-picker legend{font-weight:800;font-size:14px}.resource-options{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;max-height:270px;overflow:auto}.resource-options label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:500}.resource-options input{width:17px;height:17px}.daily-runs{display:grid;grid-template-columns:1fr 1fr;gap:20px}.daily-run-job{padding:12px 0;border-bottom:1px solid #e8e3ef}.daily-run-job p{margin:5px 0;font-size:13px}.notification-warning{border-left:4px solid #b95416;padding:12px 16px;background:#fff4df;line-height:1.6}.notification-warning a{font-weight:700;text-decoration:underline}@media(max-width:760px){.home-date-fields{gap:10px}.home-date-fields label{flex-basis:100%}.hero .party-feature{display:none}.hero{padding-top:20px;gap:14px}.hero-copy>p{font-size:14px}.home-availability{padding:15px}.customer-trust{margin:22px 4%;padding:18px}.review-cards,.daily-runs{grid-template-columns:1fr}.review-cards{gap:12px}.customer-trust h2{font-size:25px}.resource-options{grid-template-columns:1fr}.booking-draft-status{align-items:flex-start;flex-wrap:wrap}header nav[aria-label="Main navigation"] a{font-size:16px}.home-date-actions .button{width:100%}}

.review-cards .review-summary{font-size:15px;line-height:1.6;margin:12px 0;color:#30274b}

/* Colourful public navigation, matching the party artwork below. */
header:has(> nav[aria-label="Main navigation"]){
 background:
  radial-gradient(circle at 3% 20%,#ffffffa6 0 3px,transparent 4px),
  radial-gradient(circle at 96% 78%,#ffffffa6 0 5px,transparent 6px),
  radial-gradient(circle at 38% 12%,#ffffff8c 0 3px,transparent 4px),
  linear-gradient(110deg,#9edfff 0%,#c9c0ff 37%,#ffc1dd 70%,#ffe78a 100%);
 border-bottom:4px solid #9560d6;
 box-shadow:0 5px 18px #6530bd1a;
}
header:has(> nav[aria-label="Main navigation"]) .brand-name{text-shadow:0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff}
header nav[aria-label="Main navigation"]{background:#ffffffc9;border:1px solid #ffffffed;border-radius:16px;padding:9px 16px;box-shadow:0 3px 10px #6530bd0c}
header:has(> nav[aria-label="Main navigation"]) .header-whatsapp{background:#d6fac7;border:1px solid #fff;color:#214d28;box-shadow:0 3px 0 #53984726}
@media(max-width:650px){header nav[aria-label="Main navigation"]{padding:9px 10px;border-radius:12px}}

/* One-tap contact options shared by every public page header. */
header .header-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px;flex-shrink:0}
header .header-actions .button{min-height:46px;padding:9px 12px;border-radius:9px;gap:3px;font-size:12px;text-align:center;line-height:1.3}
header .header-call{display:flex;flex-direction:column;background:#fff9d7;border:1px solid #fff;color:#4b267c;box-shadow:0 3px 0 #7846ab26}
header .header-call span{font-size:11px;font-weight:700}
header .header-call strong{font-size:12px;white-space:nowrap}
header .header-call:hover{background:#fff1a8;color:#3b1b69}
@media(max-width:1700px){header:has(> nav[aria-label="Main navigation"]){flex-wrap:wrap}header nav[aria-label="Main navigation"]{order:3;width:100%;justify-content:center;flex-wrap:wrap}}
@media(max-width:650px){header .header-actions{width:100%;gap:6px}header .header-actions .button{min-width:0;padding:8px 4px;font-size:11px;white-space:normal}header .header-call strong{font-size:11px}}

header .header-actions .header-book{background:#6530bd;border:1px solid #fff;color:#fff;font-weight:800;box-shadow:0 3px 0 #4b218f30;white-space:nowrap}
header .header-actions .header-book:hover{background:#4b218f}
@media(max-width:650px){header .header-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Compact header and timings; the surface warning keeps its existing styling. */
header:has(> nav[aria-label="Main navigation"]){display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"brand actions ." "navigation navigation navigation";align-items:center;padding-top:10px;padding-bottom:10px;gap:8px 18px;border-bottom-width:3px}
header:has(> nav[aria-label="Main navigation"]) .brand{grid-area:brand;gap:7px}
header:has(> nav[aria-label="Main navigation"]) .brand-landmark{width:58px;height:44px}
header:has(> nav[aria-label="Main navigation"]) .brand-name{font-size:22px}
header:has(> nav[aria-label="Main navigation"]) .brand-name small{font-size:12px;margin-top:4px}
header:has(> nav[aria-label="Main navigation"]) .header-actions{grid-area:actions;justify-self:center;gap:6px}
header .header-actions .button{min-height:38px;padding:5px 9px;border-radius:7px;font-size:11px;line-height:1.2;gap:1px}
header .header-call span{font-size:10px}
header .header-call strong{font-size:11px}
header nav[aria-label="Main navigation"]{grid-area:navigation;justify-self:center;width:fit-content;max-width:100%;padding:5px 12px;gap:7px 20px;border-radius:10px}
header nav[aria-label="Main navigation"] a{font-size:16px;line-height:1.35;text-underline-offset:4px}
.banner-notices .delivery.outdoor-timings{justify-self:center;width:min(100%,850px);padding:5px 12px;gap:2px 12px;line-height:1.35}
@media(max-width:1100px){header:has(> nav[aria-label="Main navigation"]){grid-template-columns:1fr;grid-template-areas:"brand" "actions" "navigation"}header:has(> nav[aria-label="Main navigation"]) .brand{justify-self:center}}
@media(max-width:650px){
 header:has(> nav[aria-label="Main navigation"]){grid-template-columns:1fr;grid-template-areas:"brand" "actions" "navigation";gap:8px;padding-top:8px;padding-bottom:8px}
 header:has(> nav[aria-label="Main navigation"]) .brand{justify-self:center}
 header:has(> nav[aria-label="Main navigation"]) .brand-landmark{width:47px;height:36px}
 header:has(> nav[aria-label="Main navigation"]) .brand-name{font-size:20px}
 header:has(> nav[aria-label="Main navigation"]) .brand-name small{font-size:11px;margin-top:3px}
 header:has(> nav[aria-label="Main navigation"]) .header-actions{width:100%;gap:5px}
 header .header-actions .button{min-height:40px;padding:5px 7px}
 header nav[aria-label="Main navigation"]{padding:5px 9px;gap:6px 15px}
 header nav[aria-label="Main navigation"] a{font-size:15px;line-height:1.4}
}
@media(max-width:480px){.banner-notices .delivery.outdoor-timings{grid-template-columns:1fr;gap:2px;padding:5px 9px}.banner-notices .outdoor-timings .outdoor-title,.banner-notices .outdoor-timings .outdoor-details{grid-column:1}.banner-notices .outdoor-timings .outdoor-details a{margin-left:0}}

/* Matching delivery and collection columns, including on narrow screens. */
.banner-notices .delivery.outdoor-timings{grid-template-columns:repeat(2,minmax(0,240px));column-gap:12px}
.banner-notices .outdoor-timings .outdoor-title,.banner-notices .outdoor-timings .outdoor-details{grid-column:1/-1}
.banner-notices .delivery.outdoor-timings>div,.banner-notices .delivery.outdoor-timings>div:first-child{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;justify-items:center;align-content:center;gap:1px;width:100%;min-width:0;text-align:center}
.banner-notices .delivery.outdoor-timings>div>span{color:#6530bd;font-weight:600;font-size:14px;line-height:1.35}
.banner-notices .delivery.outdoor-timings>div>strong{color:#282041;font-weight:800;font-size:14px;line-height:1.35;white-space:nowrap}
@media(max-width:480px){.banner-notices .delivery.outdoor-timings{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px}.banner-notices .delivery.outdoor-timings>div>span,.banner-notices .delivery.outdoor-timings>div>strong{font-size:12px;line-height:1.4}}

/* A softer sky-and-riverside palette drawn from the banner, with compact contact buttons. */
header:has(> nav[aria-label="Main navigation"]){
 background-color:#eaf8ff;
 background-image:
  radial-gradient(ellipse at 12% 12%,#ffffffd9 0%,#ffffff00 40%),
  radial-gradient(ellipse at 84% 4%,#ffffffc7 0%,#ffffff00 35%),
  radial-gradient(ellipse at 4% 110%,#79cf9b33 0%,#79cf9b00 38%),
  radial-gradient(ellipse at 97% 100%,#ffe36140 0%,#ffe36100 31%),
  linear-gradient(110deg,#69d0f54d 0%,#b7eaff66 40%,#d9efff80 72%,#8ed6f345 100%);
 border-bottom-color:#8dcce6;
 box-shadow:0 3px 12px #17659c12;
}
header:has(> nav[aria-label="Main navigation"]) .header-actions{width:430px;max-width:100%;gap:5px}
header .header-actions .button{min-height:33px;padding:4px 7px;border-radius:7px;font-size:11px;line-height:1.2;box-shadow:0 2px 0 #33558218}
header .header-actions .header-call span{font-size:9px}
header .header-actions .header-call strong{font-size:11px}
header nav[aria-label="Main navigation"]{background:#ffffffb8;border-color:#ffffffdc}
@media(max-width:650px){
 header:has(> nav[aria-label="Main navigation"]) .header-actions{width:340px;max-width:100%;gap:5px}
 header .header-actions .button{min-height:34px;padding:4px 7px;font-size:11px}
}

/* Consistent, readable setup checks beneath each castle's details. */
ul.castle-suitability{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;list-style:none;padding:0;margin:13px 0 16px;text-align:left;font:600 12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:0}.castle-suitability li{display:flex;align-items:flex-start;gap:8px;margin:0;padding:0;background:none;border:0}.castle-suitability li>span:last-child{min-width:0;overflow-wrap:anywhere}.castle-suitability .suitability-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:18px;border-radius:50%;font-size:13px;font-weight:800;line-height:1}.castle-suitability .suitable{color:#245f38}.castle-suitability .unsuitable{color:#a52b37}.castle-suitability .suitable .suitability-mark{background:#e2f4e6;color:#17672e}.castle-suitability .unsuitable .suitability-mark{background:#ffe7e9;color:#ae2535}ul.castle-suitability[hidden]{display:none}

/* Softer contact controls and dimensional lettering, kept light against the sky header. */
header:has(> nav[aria-label="Main navigation"]) .header-actions{gap:8px;width:450px;max-width:100%}
header .header-actions .button{border-radius:999px;min-height:36px;padding:5px 12px;border:1px solid #ffffffb3;box-shadow:0 3px 12px #214c7710;font-weight:700;transition:background-color .18s ease,box-shadow .18s ease;}
header:has(> nav[aria-label="Main navigation"]) .header-actions .header-whatsapp{background:#e7f5e9b8;color:#246043;border-color:#d7eaddb3;box-shadow:0 3px 12px #255d4010}
header .header-actions .header-call{background:#ffffff94;color:#23517d;border-color:#ffffffc2;box-shadow:0 3px 12px #214c770d}
header .header-actions .header-call span{font-weight:500;color:#526b80}
header .header-actions .header-book{background:#eee6ffb3;color:#57328d;border-color:#e0d3f5b3;box-shadow:0 3px 12px #6530bd10;font-weight:700}
header:has(> nav[aria-label="Main navigation"]) .header-actions .header-whatsapp:hover{background:#d9f0df;color:#1b5135}
header .header-actions .header-call:hover{background:#ffffffdc;color:#153d65}
header .header-actions .header-book:hover{background:#e2d5fa;color:#462574}
header nav[aria-label="Main navigation"]{border-radius:999px;padding:6px 16px;background:#ffffff8c;border:1px solid #ffffffb3;box-shadow:0 3px 14px #24568608}
header nav[aria-label="Main navigation"] a,header nav[aria-label="Main navigation"] a:visited{color:#164f86;text-shadow:0 1px 0 #ffffff,0 2px 0 #b6d4e9,0 3px 5px #1b507a21;text-decoration-color:#3980b599;text-decoration-thickness:1.5px;text-underline-offset:5px}
header nav[aria-label="Main navigation"] a:hover{color:#103d69;text-decoration-color:#164f86;text-decoration-thickness:2px}
.banner-notices .delivery.outdoor-timings>div>span{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
@media(max-width:650px){
 header:has(> nav[aria-label="Main navigation"]) .header-actions{width:340px;max-width:100%;gap:7px}
 header .header-actions .button{padding:5px 12px;min-height:36px}
 header nav[aria-label="Main navigation"]{border-radius:22px;padding:7px 13px;gap:7px 15px}
}
