/* Refinements scoped to the activity page; checkout integration is unchanged. */
.product-page { --paper:#f7f5ee; --ink:#203d32; --muted:#68736a; --line:#dcded3; --terracotta:#b3502c; --serif:'Fraunces',Georgia,serif; background:var(--paper); color:var(--ink); font-family:'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.product-page > nav { background:var(--paper); border-bottom:1px solid var(--line); box-shadow:none; color:var(--ink); padding-block:22px; }
.product-page > nav > div { max-width:1180px; }
.product-page > nav a { color:var(--ink); font-family:var(--serif); font-size:23px; font-weight:400; letter-spacing:-.7px; }
.product-page > nav span { color:var(--muted); font-size:11px; }
.product-page > main { max-width:1212px; padding-top:32px; }
.product-heading { padding-bottom:15px; }
.product-heading h1 { font-family:var(--serif); font-size:clamp(30px,3.4vw,47px); font-weight:400; letter-spacing:-1.6px; line-height:1.12; max-width:860px; text-wrap:balance; }
.product-page .product-grid { grid-template-columns:minmax(0,1.6fr) minmax(330px,1fr); gap:38px; align-items:start; }
.product-page .product-grid > .lg\:col-span-2 { grid-column:auto; min-width:0; }
.product-page .product-gallery { border-radius:8px; border:0; box-shadow:none; }
.product-page .product-gallery #carousel-track-wrap { aspect-ratio:4/3; }
.product-page .product-gallery #carousel-track-wrap > div { height:100%; }
.product-page .product-facts > span { border-radius:4px; font-weight:500; background:#eeefe7; color:var(--ink); border-color:var(--line); line-height:1.7; }
.product-page .product-description { background:transparent; box-shadow:none; border:0; border-top:1px solid var(--line); border-radius:0; padding:24px 0; }
.product-page .product-description > h2 { font-family:var(--serif); font-size:26px; letter-spacing:-.6px; font-weight:400; color:var(--ink); text-transform:none; }
.product-page .product-description > div { color:var(--muted); line-height:1.95; font-size:14px; }
.illustration-note { font-size:11px; color:var(--muted); padding:0 2px; line-height:1.8; }
.product-page .booking-card { border:1px solid var(--line); border-radius:8px; box-shadow:0 10px 35px #203d3209; }
.product-page .booking-price { background:#234638; padding:23px 25px; border-top:3px solid var(--terracotta); }
.product-page .booking-price > p:first-child { color:#dae5d6; font-size:11px; }
.product-page .booking-price > p:last-child { font-family:var(--serif); font-size:34px; font-weight:400; letter-spacing:-.8px; }
.product-page .booking-card > .p-5 { padding:23px; }
.booking-progress { display:flex; gap:12px; justify-content:space-between; padding:0; margin:0; list-style:none; font-size:9px; color:var(--muted); }
.booking-progress li[aria-current] { font-weight:600; color:var(--ink); }
.booking-reassurance { color:var(--muted); font-size:11px; }
.product-page .booking-card label { color:#526257; font-size:11px; letter-spacing:.015em; text-transform:none; font-weight:500; }
.product-page .booking-card input, .product-page .booking-card select { border-radius:5px; border-color:var(--line); min-height:44px; }
.product-page .booking-card input[type=number] { min-width:0; width:100%; }
.product-page .booking-card #booking-submit { background:#234638; border-radius:5px; }
.product-page .booking-card #booking-submit:hover { background:#163629; }
.product-page .booking-card #booking-submit:disabled { opacity:.5; cursor:not-allowed; }
.product-page .booking-card .customer-label { display:block; margin-bottom:6px; }
.field-help { font-size:10px; color:var(--muted); margin-top:6px; }
.availability-status { font-size:11px; color:var(--muted); line-height:1.75; }
.availability-retry { display:block; border:1px solid var(--line); border-radius:5px; color:var(--ink); background:var(--paper); padding:11px 14px; font-size:12px; }
.availability-retry[hidden], .mobile-booking-cta[hidden] { display:none !important; }
.native-date-select { width:100%; min-height:46px; background:var(--paper); border:1px solid var(--line); padding:10px; border-radius:5px; color:var(--ink); }
.product-page :focus-visible { outline:3px solid #8c6b25; outline-offset:3px; }
.product-page #booking-section { scroll-margin-top:24px; }
.product-page .mobile-booking-cta { padding-bottom:env(safe-area-inset-bottom); }
.product-page footer { border-color:var(--line); }
@media(min-width:1024px) { .product-page #booking-section { position:sticky; top:24px; } }
@media(max-width:1023px) { .product-page .product-grid { grid-template-columns:1fr; gap:28px; } .product-page > main { max-width:760px; } }
@media(max-width:560px) {
    .product-page > nav { padding-block:17px; }
    .product-page > nav a { font-size:21px; }
    .product-page > main { padding-top:24px; }
    .product-heading h1 { font-size:33px; letter-spacing:-1px; }
    .product-page .booking-card > .p-5 { padding:20px; }
    .product-page .booking-card input, .product-page .booking-card select { font-size:16px; }
    .product-page .booking-card label { font-size:12px; }
    .booking-progress { font-size:10px; }
    .field-help { font-size:11px; }
    .product-page .product-description > div { font-size:14px; }
    .mobile-booking-cta a { white-space:nowrap; }
}
@media(prefers-reduced-motion:no-preference) { .product-page { scroll-behavior:smooth; } }
@media(prefers-reduced-motion:reduce) { .product-page *, .product-page *::before, .product-page *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
