:root{--navy:#173763;--ink:#102747;--muted:#687893;--line:#dce5ef;--coral:#ff765d;--paper:#fff;--bg:#f5f7fb}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--bg)}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}.shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:22px 0 72px}.back{display:inline-flex;margin:0 0 16px;color:#51647f;text-decoration:none;font-weight:700;font-size:.9rem}.back:hover{text-decoration:underline}.eyebrow{display:block;color:var(--accent,var(--coral));font-size:.72rem;line-height:1;text-transform:uppercase;letter-spacing:.16em;font-weight:800}.display{font-family:'Playfair Display',serif}.hidden{display:none!important}

/* Shared hero */
.product-hero{position:relative;min-height:410px;border-radius:26px;overflow:hidden;box-shadow:0 20px 52px rgba(20,38,68,.14);background:#162f58}.product-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.product-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,27,52,.88) 0%,rgba(10,27,52,.72) 42%,rgba(10,27,52,.10) 76%)}.product-hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:410px;width:min(610px,64%);padding:46px 48px;color:white}.product-hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,5vw,4.7rem);line-height:.98;margin:12px 0 16px;letter-spacing:-.025em}.product-hero p{margin:0;max-width:560px;color:#edf3fb;font-size:1.05rem;line-height:1.65}.hero-points{display:flex;flex-wrap:wrap;gap:9px;margin-top:23px}.hero-points span{padding:8px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);backdrop-filter:blur(6px);font-size:.82rem;font-weight:700}

/* Shared booking sections */
.booking-section{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px rgba(20,38,68,.06);overflow:hidden}.section-pad{padding:28px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.section-head h2{font-family:'Playfair Display',serif;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.08;margin:7px 0 0}.section-head p{margin:6px 0 0;color:var(--muted);line-height:1.55;max-width:700px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}label{display:grid;gap:7px;font-size:.83rem;font-weight:800;color:#304562}input,select,textarea{width:100%;min-height:50px;border:1px solid #cbd6e5;border-radius:12px;padding:12px 14px;background:#fff;color:#12294a;outline:none}input[type=date]{appearance:auto;-webkit-appearance:auto;cursor:pointer;font-weight:700}input:focus,select:focus,textarea:focus{border-color:var(--accent,var(--coral));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,var(--coral)) 15%,transparent)}textarea{resize:vertical}.primary-btn,.select-btn{border:0;border-radius:11px;background:var(--button,#173763);color:white;padding:13px 17px;font-weight:800;cursor:pointer}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.select-btn.selected{background:var(--accent,var(--coral))}.check{display:flex;align-items:center;gap:9px;margin-top:15px}.check input{width:auto;min-height:auto}.summary{display:grid;gap:5px;margin:18px 0;padding:16px 17px;background:#f3f6fa;border-radius:13px}.summary span{color:#65758e}.error,.notice{padding:13px 14px;border-radius:11px;margin-top:12px}.error{background:#fff0ed;color:#a0392a}.notice{background:#f2f5f8;color:#64748a}.success{text-align:center;padding:48px 28px}.success .tick{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;margin:0 auto 15px;background:#e6f5eb;color:#21744e;font-size:1.9rem}.success h2{font-family:'Playfair Display',serif;font-size:2.2rem;margin:7px 0}.success-details{display:grid;gap:7px;max-width:600px;margin:20px auto;padding:18px;border-radius:14px;background:#f4f7fa}.photo-credit{margin:18px 0 0;color:#8a96a8;font-size:.72rem;text-align:right}

/* Accommodation - OTA/hotel style */
.product-accommodation{--accent:#d98157;--button:#173b68;--bg:#f3f5f7}.product-accommodation .product-hero::after{background:linear-gradient(90deg,rgba(14,36,66,.88),rgba(14,36,66,.70) 44%,rgba(14,36,66,.08) 78%)}.hotel-search{position:relative;z-index:3;margin:-52px 24px 0;padding:18px;background:#fff;border:1px solid #dde4ed;border-radius:18px;box-shadow:0 14px 35px rgba(22,43,73,.14)}.hotel-search-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr .8fr;gap:12px}.hotel-search label{font-size:.76rem}.hotel-search input,.hotel-search select{border-radius:10px;background:#fbfcfe}.hotel-note{display:flex;gap:18px;flex-wrap:wrap;margin-top:13px;color:#60718a;font-size:.82rem}.hotel-note span::before{content:'✓';color:#25835a;font-weight:900;margin-right:6px}.room-list{display:grid;gap:16px}.room-result{display:grid;grid-template-columns:260px minmax(0,1fr) 190px;border:1px solid #d8e1ec;border-radius:17px;overflow:hidden;background:#fff;transition:.18s ease}.room-result:hover{box-shadow:0 10px 28px rgba(26,48,78,.10);transform:translateY(-1px)}.room-result.is-selected{border-color:#d98157;box-shadow:0 0 0 2px rgba(217,129,87,.12)}.room-photo{width:100%;height:100%;min-height:190px;object-fit:cover;background:#e7ebf0}.room-copy{padding:20px}.room-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.room-title-row h3{font-size:1.18rem;margin:0 0 4px}.room-title-row small{color:#72819a}.room-copy p{color:#63748c;line-height:1.5;margin:10px 0 12px}.badges{display:flex;flex-wrap:wrap;gap:7px}.badge{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#f1f5f9;color:#335170;font-size:.75rem;font-weight:800}.badge.good{background:#eaf7f0;color:#277151}.room-rate{padding:20px;border-left:1px solid #e4eaf1;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right}.room-rate .from{color:#75839a;font-size:.78rem}.room-rate strong{font-size:1.6rem;margin:3px 0}.room-rate small{color:#6f7e95}.room-rate .scarcity{color:#b44b38;font-weight:800;font-size:.75rem;margin:10px 0}.room-rate .select-btn{width:100%;margin-top:6px}.hotel-extras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.hotel-extra{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid #dce4ed;border-radius:13px;background:#fff}.hotel-extra input{width:auto;min-height:auto;margin-top:3px}.hotel-extra small{color:#76849a;font-weight:600}

/* Services - Fresha/Treatwell-inspired visual service menu */
.product-services{--accent:#b65d7c;--button:#50364f;--bg:#fbf6f8}.product-services .product-hero{background:#4d3850}.product-services .product-hero::after{background:linear-gradient(90deg,rgba(56,36,58,.92),rgba(67,45,69,.72) 44%,rgba(67,45,69,.10) 78%)}.product-services .product-hero h1{font-size:clamp(2.8rem,5vw,4.45rem)}.service-categories{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.category-chip{border:1px solid #decfd8;background:#fff;color:#553b51;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer}.category-chip.active{background:#50364f;color:#fff;border-color:#50364f}.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.service-card{position:relative;border:1px solid #e2d9df;border-radius:18px;overflow:hidden;background:#fff;text-align:left;padding:0;color:#172844;cursor:pointer;box-shadow:0 5px 18px rgba(67,45,69,.05);transition:.18s ease}.service-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(67,45,69,.12)}.service-card.active{border-color:#b65d7c;box-shadow:0 0 0 2px rgba(182,93,124,.14)}.service-card img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#eee}.service-card-body{display:grid;gap:7px;padding:15px}.service-card-body .category{color:#a25070;font-size:.71rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.service-card-body h3{font-family:'Playfair Display',serif;font-size:1.22rem;margin:0}.service-card-body p{margin:0;color:#6c7080;font-size:.86rem;line-height:1.45}.service-price-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}.service-price-row strong{font-size:1.05rem}.service-price-row span{color:#6d7181;font-size:.82rem}.service-card .selected-mark{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;display:none;place-items:center;background:#50364f;color:#fff;font-weight:900}.service-card.active .selected-mark{display:grid}.service-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.availability-panel{margin-top:20px;padding:20px;border-radius:17px;background:#fff;border:1px solid #e3dce1}.time-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.time-option{display:grid;gap:3px;text-align:center;border:1px solid #dcd5db;border-radius:11px;background:#fbf8fa;color:#24354f;padding:11px 8px;cursor:pointer}.time-option strong{font-size:.94rem}.time-option small{font-size:.7rem;color:#777583}.time-option.active{background:#50364f;color:#fff;border-color:#50364f}.time-option.active small{color:#efe7ed}.service-promise{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.promise{padding:14px;border-radius:13px;background:#fff;border:1px solid #eadfe5}.promise strong{display:block;margin-bottom:4px}.promise span{font-size:.8rem;color:#777082}

/* Events - image-led activity marketplace */
.product-events{--accent:#ff6f58;--button:#142e58;--bg:#f5f7fb}.product-events .product-hero::after{background:linear-gradient(90deg,rgba(10,28,57,.9),rgba(10,28,57,.68) 43%,rgba(10,28,57,.05) 78%)}.product-events .product-hero h1{font-family:'DM Sans',sans-serif;font-weight:800;letter-spacing:-.05em;line-height:.96}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.event-card{border:1px solid #dce4ee;border-radius:19px;overflow:hidden;background:#fff;box-shadow:0 6px 20px rgba(20,38,68,.06);transition:.18s ease}.event-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(20,38,68,.11)}.event-card.is-selected{border-color:#ff765d;box-shadow:0 0 0 2px rgba(255,118,93,.12)}.event-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e8edf4}.event-body{padding:17px}.event-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.event-type{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff0ec;color:#c45540;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.event-date{color:#5e718c;font-weight:800;font-size:.82rem}.event-card h3{font-size:1.18rem;margin:10px 0 6px}.event-card p{margin:0;color:#687991;line-height:1.5;font-size:.88rem}.event-facts{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0;color:#536a88;font-size:.79rem;font-weight:700}.event-bottom{display:flex;align-items:end;justify-content:space-between;gap:14px;border-top:1px solid #edf0f4;padding-top:13px}.event-price small{display:block;color:#73839a}.event-price strong{font-size:1.25rem}.event-bottom .select-btn{min-width:110px}.ticket-box{display:grid;grid-template-columns:1.3fr .7fr;gap:20px;align-items:start}.ticket-note{padding:16px;border-radius:14px;background:#f6f8fb;color:#65748a;line-height:1.55}.event-trust{display:flex;gap:16px;flex-wrap:wrap;margin-top:15px;color:#5c6d85;font-size:.8rem}.event-trust span::before{content:'✓';margin-right:6px;color:#279066;font-weight:900}


/* V11.37 Accommodation hero spacing repair: reserve clear space for the
   multiline headline, descriptive copy and feature pills before the search card. */
.product-accommodation .product-hero{min-height:510px}
.product-accommodation .product-hero-copy{min-height:510px;width:min(660px,66%);padding:46px 48px 82px}
.product-accommodation .product-hero h1{font-size:clamp(2.8rem,4.4vw,4rem);line-height:.98;max-width:570px}
.product-accommodation .product-hero p{max-width:570px}
.product-accommodation .hero-points{margin-top:20px}
.product-accommodation .hotel-search{margin:-30px 24px 0}

@media(max-width:900px){.product-hero-copy{width:74%}.hotel-search-grid{grid-template-columns:1fr 1fr}.room-result{grid-template-columns:220px 1fr}.room-rate{grid-column:1/-1;border-left:0;border-top:1px solid #e4eaf1;align-items:flex-start;text-align:left}.room-rate .select-btn{width:auto}.service-cards{grid-template-columns:1fr 1fr}.time-grid{grid-template-columns:repeat(4,1fr)}.hotel-extras{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.shell{width:min(100% - 20px,1180px);padding-top:10px}.back{margin-left:2px}.product-hero{min-height:430px;border-radius:20px}.product-hero>img{object-position:center}.product-hero::after{background:linear-gradient(0deg,rgba(10,27,52,.92),rgba(10,27,52,.25) 78%)}.product-hero-copy{width:100%;min-height:430px;padding:220px 22px 24px;justify-content:flex-end}.product-hero h1{font-size:2.65rem}.product-hero p{font-size:.94rem}.hero-points{margin-top:15px}.hero-points span{font-size:.74rem}.hotel-search{margin:-18px 10px 0;padding:14px}.hotel-search-grid,.form-grid,.service-details-grid,.ticket-box{grid-template-columns:1fr}.section-pad{padding:20px}.section-head{display:block}.room-result{grid-template-columns:1fr}.room-photo{height:210px;min-height:0}.room-rate{grid-column:auto}.hotel-extras,.service-cards,.event-grid{grid-template-columns:1fr}.service-card img,.event-card img{aspect-ratio:16/9}.time-grid{grid-template-columns:repeat(3,1fr)}.service-promise{grid-template-columns:1fr}.photo-credit{text-align:left}.event-bottom{align-items:center}}

@media(max-width:900px) and (min-width:681px){
  .product-accommodation .product-hero-copy{width:72%;padding-right:32px}
}
@media(max-width:680px){
  .product-accommodation .product-hero{min-height:470px}
  .product-accommodation .product-hero-copy{min-height:470px;width:100%;padding:215px 22px 46px}
  .product-accommodation .product-hero h1{font-size:2.45rem;max-width:none}
  .product-accommodation .hotel-search{margin:14px 0 0}
}
