/* Clubium / Spring Tours — Tour Commerce UI v1
   Scoped to new tour templates. No car/transfer/visa selectors. */

:root{
  --sto-red:#ff0f17;
  --sto-red-dark:#d90910;
  --sto-green:#009900;
  --sto-green-dark:#067706;
  --sto-ink:#121826;
  --sto-muted:#667085;
  --sto-line:#e7eaf0;
  --sto-soft:#f6f8f7;
  --sto-white:#fff;
  --sto-shadow:0 18px 50px rgba(18,24,38,.09);
  --sto-radius:24px;
  --sto-ease:cubic-bezier(.22,1,.36,1);
}

.sto-tour-page,.sto-booking-page{color:var(--sto-ink);background:#fff}
.sto-tour-page *,.sto-booking-page *{box-sizing:border-box}
.sto-tour-page a,.sto-booking-page a{text-decoration:none}

.sto-container{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.sto-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sto-green)}
.sto-kicker:before{content:"";width:24px;height:2px;border-radius:99px;background:var(--sto-red)}

.sto-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 18px;border:0;border-radius:999px;font-weight:800;line-height:1;cursor:pointer;transition:transform 140ms ease-out,background-color 180ms ease-out,box-shadow 180ms ease-out,color 180ms ease-out,border-color 180ms ease-out}
.sto-button:active{transform:scale(.97)}
.sto-button-primary{background:var(--sto-red);color:#fff;box-shadow:0 10px 24px rgba(255,15,23,.18)}
.sto-button-primary:hover,.sto-button-primary:focus{background:var(--sto-red-dark);color:#fff}
.sto-button-green{background:var(--sto-green);color:#fff;box-shadow:0 10px 24px rgba(0,153,0,.16)}
.sto-button-green:hover,.sto-button-green:focus{background:var(--sto-green-dark);color:#fff}
.sto-button-soft{background:#fff;color:var(--sto-ink);border:1px solid var(--sto-line)}
.sto-button-soft:hover,.sto-button-soft:focus{border-color:#cbd1da;color:var(--sto-ink)}
.sto-button[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}

/* Archive */
.sto-archive-hero{padding:10px 0 0}
.sto-archive-hero-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:0;overflow:hidden;border:1px solid #e7ebe7;border-radius:26px;background:#f7f9f7;box-shadow:0 14px 34px rgba(18,24,38,.055)}
.sto-archive-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:24px 30px 23px;min-width:0}
.sto-archive-eyebrow{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;min-height:27px;padding:0 9px;border:1px solid #dfe6df;border-radius:999px;background:#fff;color:var(--sto-green);font-size:.66rem;font-weight:850;letter-spacing:.065em;text-transform:uppercase}
.sto-archive-eyebrow i{font-size:.7rem}
.sto-archive-hero-copy h1{max-width:520px;margin:10px 0 8px;color:var(--sto-ink);font-size:clamp(2.2rem,3.25vw,3.2rem);line-height:.98;font-weight:900;letter-spacing:-.048em;text-wrap:balance}
.sto-archive-hero-copy p{max-width:520px;margin:0;color:#596273;font-size:.88rem;line-height:1.46}
.sto-archive-trust{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sto-archive-trust span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #e2e8e2;border-radius:999px;background:#fff;color:#3f4a46;font-size:.68rem;font-weight:760}
.sto-archive-trust i{color:var(--sto-green);font-size:.72rem}
.sto-archive-hero-visual{position:relative;min-height:310px;overflow:hidden;background:#dce3dd}
.sto-archive-hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,12,18,0) 52%,rgba(7,12,18,.46) 100%);pointer-events:none}
.sto-archive-hero-visual img{width:100%;height:100%;object-fit:cover;display:block}
.sto-archive-visual-caption{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;display:flex;align-items:end;justify-content:space-between;gap:18px;color:#fff}
.sto-archive-visual-caption span{font-size:.72rem;font-weight:750;color:rgba(255,255,255,.82)}
.sto-archive-visual-caption strong{font-size:.94rem;font-weight:850;text-align:right}

.sto-filter-card{margin-top:8px;background:#fff;border:1px solid var(--sto-line);border-radius:16px;padding:8px;box-shadow:0 8px 22px rgba(18,24,38,.045)}
.sto-filter-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.sto-filter-field label{display:block;margin:0 0 6px 3px;color:#596273;font-size:.7rem;font-weight:820;letter-spacing:.02em}
.sto-filter-field select{width:100%;min-height:44px;border:1px solid var(--sto-line);border-radius:11px;padding:0 12px;background:#fff;color:var(--sto-ink);font-weight:720;outline:none;transition:border-color 160ms ease,box-shadow 160ms ease}
.sto-filter-field select:focus{border-color:var(--sto-green);box-shadow:0 0 0 3px rgba(0,153,0,.08)}
.sto-filter-card .sto-button{min-height:44px;padding-inline:20px}

.sto-archive-body{padding:38px 0 72px}
.sto-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.sto-section-copy{max-width:680px}
.sto-section-head h2{margin:6px 0 0;color:var(--sto-ink);font-size:clamp(1.7rem,2.7vw,2.25rem);letter-spacing:-.035em;line-height:1.08}
.sto-section-head p{margin:9px 0 0;color:var(--sto-muted);font-size:.9rem;line-height:1.55}
.sto-result-count{flex:0 0 auto;color:var(--sto-muted);font-weight:700;font-size:.82rem}
.sto-tour-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.sto-tour-card{position:relative;overflow:hidden;border:1px solid var(--sto-line);border-radius:22px;background:#fff;transition:transform 180ms var(--sto-ease),box-shadow 180ms var(--sto-ease),border-color 180ms ease}
@media (hover:hover) and (pointer:fine){.sto-tour-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(18,24,38,.085);border-color:#d7dde5}}
.sto-tour-card-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#eef1f3}
.sto-tour-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 240ms var(--sto-ease)}
@media (hover:hover) and (pointer:fine){.sto-tour-card:hover .sto-tour-card-media img{transform:scale(1.018)}}
.sto-tour-card-badges{position:absolute;inset:13px 13px auto 13px;display:flex;justify-content:space-between;gap:8px;z-index:2}
.sto-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 9px;border-radius:999px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);box-shadow:0 4px 12px rgba(18,24,38,.07);font-size:.69rem;font-weight:840;color:#344054}
.sto-chip-green{background:rgba(0,153,0,.92);color:#fff}
.sto-card-body{padding:18px 18px 16px}
.sto-card-location{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--sto-green);font-size:.73rem;font-weight:800}
.sto-card-title{margin:0;color:var(--sto-ink);font-size:1.08rem;line-height:1.32;font-weight:850;letter-spacing:-.018em}
.sto-card-title a{color:inherit}.sto-card-title a:after{content:"";position:absolute;inset:0}
.sto-card-meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:11px;color:var(--sto-muted);font-size:.77rem;font-weight:650}
.sto-card-meta span{display:inline-flex;align-items:center;gap:6px}
.sto-card-footer{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:14px 18px 18px;border-top:1px solid #f0f2f4}
.sto-price-eyebrow{display:block;margin-bottom:2px;color:var(--sto-muted);font-size:.69rem;font-weight:750}
.sto-price{color:var(--sto-green);font-size:1.12rem;font-weight:900;letter-spacing:-.02em;line-height:1.1}
.sto-price small{font-size:.68rem;color:var(--sto-muted);font-weight:750}
.sto-price-note{display:block;margin-top:4px;color:#7c8593;font-size:.66rem;font-weight:650}
.sto-card-arrow{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:#f7f8fa;color:var(--sto-red);font-size:.9rem;transition:transform 140ms ease-out,background-color 180ms ease-out,color 180ms ease-out}
.sto-tour-card:active .sto-card-arrow{transform:scale(.94)}

/* Single tour */
.sto-single-hero{padding:24px 0 0}
.sto-single-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:18px;color:#8a93a2;font-size:.73rem;font-weight:700}
.sto-single-breadcrumb a{color:#667085}.sto-single-breadcrumb i{font-size:.55rem;color:#b0b7c2}
.sto-single-intro{display:block;margin:0 0 22px}
.sto-single-intro-copy{max-width:860px}
.sto-single-eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;color:var(--sto-green);font-size:.72rem;font-weight:850;letter-spacing:.065em;text-transform:uppercase}
.sto-single-eyebrow:before{content:"";width:20px;height:2px;border-radius:99px;background:var(--sto-red)}
.sto-single-eyebrow i{font-size:.68rem}
.sto-single-intro h1{max-width:850px;margin:0;color:var(--sto-ink);font-size:clamp(2.2rem,4vw,3.65rem);line-height:1.02;font-weight:900;letter-spacing:-.045em;text-wrap:balance}
.sto-single-intro-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;color:#667085;font-size:.78rem;font-weight:690}
.sto-single-intro-meta span{display:inline-flex;align-items:center;gap:6px}.sto-single-intro-meta i{color:var(--sto-green)}
.sto-single-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}
.sto-single-gallery{min-width:0;display:grid;gap:10px}
.sto-single-media{position:relative;overflow:hidden;aspect-ratio:16/9;min-height:0;border-radius:24px;background:#eef1f3;box-shadow:0 14px 38px rgba(18,24,38,.08)}
.sto-single-media img{width:100%;height:100%;object-fit:cover;display:block}
.sto-gallery-count{position:absolute;z-index:3;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(12,18,25,.55);backdrop-filter:blur(8px);color:#fff;font-size:.69rem;font-weight:800;pointer-events:none}
.sto-single-summary{position:sticky;top:92px;border:1px solid var(--sto-line);border-radius:22px;padding:22px;background:#fff;box-shadow:0 12px 34px rgba(18,24,38,.06)}
.sto-summary-price{padding-bottom:18px;border-bottom:1px solid var(--sto-line)}
.sto-summary-price .sto-price{font-size:1.55rem}.sto-summary-price .sto-price small{font-size:.74rem}
.sto-summary-facts{display:grid;gap:12px;padding:18px 0}
.sto-summary-fact{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}
.sto-summary-icon{width:34px;height:34px;border-radius:10px;background:#f2f8f2;color:var(--sto-green);display:grid;place-items:center;font-size:.8rem}
.sto-summary-fact small{display:block;color:var(--sto-muted);font-size:.63rem;font-weight:760;text-transform:uppercase;letter-spacing:.055em}
.sto-summary-fact strong{display:block;margin-top:1px;color:var(--sto-ink);font-size:.84rem;line-height:1.35}
.sto-summary-actions{display:grid;gap:9px}.sto-summary-actions .sto-button{width:100%;min-height:46px;font-size:.82rem}

.sto-single-content{padding:46px 0 82px}
.sto-single-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:38px;align-items:start}
.sto-content-section{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--sto-line)}
.sto-content-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.sto-content-section h2{margin:4px 0 14px;color:var(--sto-ink);font-size:1.38rem;letter-spacing:-.028em;line-height:1.15}
.sto-content-section p{margin:0;color:#4e596a;line-height:1.78;font-size:.92rem}
.sto-highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.sto-highlight{display:flex;gap:9px;padding:11px 12px;border-radius:12px;background:#f7f9f8;color:#344054;font-weight:680;line-height:1.42;font-size:.82rem}
.sto-highlight i{color:var(--sto-green);margin-top:2px}
.sto-inex-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sto-inex{border:1px solid var(--sto-line);border-radius:15px;padding:16px}
.sto-inex h3{margin:0 0 11px;font-size:.94rem}.sto-inex ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.sto-inex li{display:flex;gap:8px;color:#475467;font-size:.81rem;line-height:1.5}.sto-inex .fa-check{color:var(--sto-green)}.sto-inex .fa-xmark{color:var(--sto-red)}
.sto-itinerary{display:grid;gap:14px}.sto-itinerary-item{display:grid;grid-template-columns:36px 1fr;gap:11px}.sto-itinerary-num{width:32px;height:32px;border-radius:10px;background:#f2f8f2;color:var(--sto-green);display:grid;place-items:center;font-size:.76rem;font-weight:900}.sto-itinerary-copy h3{margin:2px 0 5px;font-size:.94rem}.sto-itinerary-copy p{font-size:.84rem;line-height:1.68}

.sto-info-aside{min-width:0}
.sto-info-panel{position:sticky;top:92px;overflow:hidden;border:1px solid var(--sto-line);border-radius:20px;background:#fbfcfb}
.sto-info-panel-head{display:flex;align-items:center;gap:11px;padding:17px 18px;border-bottom:1px solid var(--sto-line);background:#fff}
.sto-info-icon{width:36px;height:36px;border-radius:11px;background:#f2f8f2;color:var(--sto-green);display:grid;place-items:center}
.sto-info-panel-head small{display:block;color:var(--sto-muted);font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sto-info-panel-head h3{margin:2px 0 0;color:var(--sto-ink);font-size:.98rem}
.sto-info-block{padding:16px 18px;border-bottom:1px solid var(--sto-line)}.sto-info-block:last-child{border-bottom:0}
.sto-info-block h4{margin:0 0 8px;color:var(--sto-ink);font-size:.84rem}
.sto-info-block p,.sto-info-block li{color:#667085;font-size:.75rem;line-height:1.62}
.sto-info-block p{margin:0}.sto-info-block ul{margin:0;padding-left:17px;display:grid;gap:5px}

/* Tour detail gallery — preserves the original Splide slider */
.sto-single-media .splide-main,.sto-single-media .splide__track,.sto-single-media .splide__list,.sto-single-media .splide__slide{height:100%}
.sto-single-media .splide__slide{position:relative}
.sto-single-media .splide__slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sto-gallery-lightbox{position:absolute;inset:0;z-index:1}
.sto-tour-gallery-thumbs{position:relative;margin-top:0!important;padding:0 2px;overflow:visible}
.sto-tour-gallery-thumbs .splide__track{border-radius:12px}
.sto-tour-gallery-thumbs .splide__slide{overflow:hidden;border:2px solid transparent!important;border-radius:11px;opacity:.68;cursor:pointer;transition:opacity 160ms ease,border-color 160ms ease,transform 140ms ease-out;box-shadow:none!important}
.sto-tour-gallery-thumbs .splide__slide img{width:100%;height:100%;object-fit:cover;display:block}
.sto-tour-gallery-thumbs .splide__slide.is-active{border-color:var(--sto-green)!important;opacity:1;box-shadow:none!important}
.sto-tour-gallery-thumbs .splide__slide:active{transform:scale(.98)}
.sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow{width:34px;height:34px;border:1px solid #e8ebef;border-radius:999px;background:#fff;color:var(--sto-ink);opacity:1;box-shadow:0 7px 18px rgba(18,24,38,.10);transition:transform 140ms ease-out,background-color 160ms ease,color 160ms ease}
.sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow:active{transform:scale(.95)}
.sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow:disabled{opacity:.35}
.sto-tour-gallery-thumbs .splide__arrow--prev{left:-10px}.sto-tour-gallery-thumbs .splide__arrow--next{right:-10px}

/* Booking */
.sto-booking-head{padding:26px 0 20px;border-bottom:1px solid #f0f2f4}.sto-booking-breadcrumb{display:flex;align-items:center;gap:8px;color:var(--sto-muted);font-size:.78rem;font-weight:700}.sto-booking-breadcrumb a{color:var(--sto-muted)}
.sto-booking-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:12px}.sto-booking-title-row h1{margin:0;font-size:clamp(1.8rem,3.4vw,2.75rem);letter-spacing:-.045em}.sto-booking-title-row p{margin:7px 0 0;color:var(--sto-muted)}
.sto-booking-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.72fr);gap:28px;padding:34px 0 90px;align-items:start}
.sto-booking-card{border:1px solid var(--sto-line);border-radius:22px;background:#fff;padding:24px;margin-bottom:18px}.sto-booking-card h2{font-size:1.08rem;margin:0 0 5px}.sto-booking-card>p{margin:0 0 18px;color:var(--sto-muted);font-size:.85rem;line-height:1.6}
.sto-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sto-field{display:grid;gap:6px}.sto-field label{font-size:.76rem;font-weight:800;color:#475467}.sto-field input,.sto-field select,.sto-field textarea{width:100%;min-height:50px;padding:0 14px;border:1px solid var(--sto-line);border-radius:14px;background:#fff;color:var(--sto-ink);font:inherit;outline:none;transition:border-color 150ms ease,box-shadow 150ms ease}.sto-field textarea{padding-block:12px;min-height:90px}.sto-field input:focus,.sto-field select:focus,.sto-field textarea:focus{border-color:var(--sto-green);box-shadow:0 0 0 3px rgba(0,153,0,.08)}
.sto-guest-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.sto-guest-pill{position:relative}.sto-guest-pill input{position:absolute;opacity:0;pointer-events:none}.sto-guest-pill label{min-height:58px;border:1px solid var(--sto-line);border-radius:15px;display:grid;place-items:center;text-align:center;cursor:pointer;font-weight:850;color:#344054;background:#fff;transition:transform 120ms ease-out,border-color 160ms ease,background-color 160ms ease,color 160ms ease}.sto-guest-pill label small{display:block;font-size:.65rem;color:#98a2b3;margin-top:2px}.sto-guest-pill input:checked+label{border-color:var(--sto-green);background:#f2faf2;color:var(--sto-green);box-shadow:inset 0 0 0 1px var(--sto-green)}.sto-guest-pill label:active{transform:scale(.97)}
.sto-inline-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:#f8faf8;color:#56635a;font-size:.8rem;line-height:1.5;margin-top:12px}.sto-inline-note i{color:var(--sto-green);margin-top:2px}
.sto-group-box{display:none;margin-top:14px}.sto-group-box.is-visible{display:block}
.sto-addon-list{display:grid;gap:9px}.sto-addon{display:flex;align-items:center;gap:11px;border:1px solid var(--sto-line);border-radius:14px;padding:12px 13px}.sto-addon input{width:18px;height:18px;accent-color:var(--sto-green)}.sto-addon-copy{flex:1}.sto-addon-copy strong{font-size:.86rem}.sto-addon-copy small{display:block;color:var(--sto-muted);font-size:.72rem;margin-top:2px}.sto-addon-price{font-size:.82rem;font-weight:850;color:var(--sto-green)}
.sto-booking-summary{position:sticky;top:104px;border:1px solid var(--sto-line);border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 16px 40px rgba(18,24,38,.07)}.sto-summary-media{height:170px;background:#eef1f3}.sto-summary-media img{width:100%;height:100%;object-fit:cover}.sto-summary-body{padding:20px}.sto-summary-body h3{font-size:1.03rem;margin:0}.sto-summary-mini{display:flex;gap:12px;flex-wrap:wrap;color:var(--sto-muted);font-size:.76rem;font-weight:700;margin-top:9px}.sto-summary-line{height:1px;background:var(--sto-line);margin:17px 0}.sto-live-breakdown{display:grid;gap:8px}.sto-breakdown-row{display:flex;justify-content:space-between;gap:16px;color:#667085;font-size:.8rem}.sto-breakdown-row strong{color:#344054}.sto-summary-total{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-top:15px;padding-top:15px;border-top:1px solid var(--sto-line)}.sto-summary-total small{display:block;color:var(--sto-muted);font-size:.7rem;font-weight:700}.sto-summary-total strong{font-size:1.45rem;color:var(--sto-green);letter-spacing:-.03em}.sto-summary-tax{font-size:.69rem;color:#98a2b3;margin-top:4px}
.sto-payment-actions{display:grid;gap:10px;margin-top:18px}.sto-payment-actions .sto-button{width:100%}
.sto-summary-assurance{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;padding:10px 8px;border-radius:12px;background:#f7faf7;color:#5d6b60;font-size:.7rem;font-weight:750;text-align:center}.sto-summary-assurance i{color:var(--sto-green)}
.sto-status{display:none;margin-top:12px;padding:11px 13px;border-radius:12px;font-size:.79rem;font-weight:700}.sto-status.is-visible{display:block}.sto-status-error{background:#fff1f1;color:#a3171d}.sto-status-success{background:#eef9ee;color:#087d08}
.sto-request-banner{display:none;padding:15px;border-radius:15px;background:#fff7ed;border:1px solid #fed7aa;color:#9a4d08;font-size:.82rem;line-height:1.55;margin-top:14px}.sto-request-banner.is-visible{display:block}

@media(max-width:991.98px){
  .sto-archive-hero-card{grid-template-columns:1fr 1fr;min-height:0}
  .sto-archive-hero-copy{padding:24px 24px}
  .sto-archive-hero-visual{min-height:300px}
  .sto-archive-hero-copy h1{font-size:clamp(2.15rem,4.2vw,2.9rem)}
  .sto-tour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sto-single-hero-grid{grid-template-columns:minmax(0,1fr) 300px;gap:18px}
  .sto-single-summary{position:static}
  .sto-single-layout{grid-template-columns:minmax(0,1fr) 280px;gap:28px}
  .sto-booking-layout{grid-template-columns:1fr}
  .sto-booking-summary{position:static}
}
@media(max-width:767.98px){
  .sto-container{width:min(100% - 24px,1180px)}
  .sto-archive-hero{padding-top:8px}
  .sto-archive-hero-card{grid-template-columns:1fr;min-height:0;border-radius:22px}
  .sto-archive-hero-copy{order:2;padding:22px 20px 24px}
  .sto-archive-hero-visual{order:1;min-height:0;aspect-ratio:16/9}
  .sto-archive-visual-caption{left:16px;right:16px;bottom:14px;align-items:flex-start;flex-direction:column;gap:2px}
  .sto-archive-visual-caption strong{text-align:left;font-size:.86rem}
  .sto-archive-hero-copy h1{font-size:clamp(2.15rem,10.8vw,3rem);line-height:.99;margin:12px 0 11px}
  .sto-archive-hero-copy p{font-size:.9rem;line-height:1.55}
  .sto-archive-trust{margin-top:14px;gap:6px}.sto-archive-trust span{font-size:.67rem;padding:6px 8px}
  .sto-filter-card{margin-top:9px;padding:9px;border-radius:16px}.sto-filter-form{grid-template-columns:1fr}.sto-filter-card .sto-button{width:100%}
  .sto-archive-body{padding:38px 0 60px}.sto-section-head{align-items:flex-start;flex-direction:column;margin-bottom:18px;gap:10px}.sto-section-head p{font-size:.84rem}.sto-tour-grid{grid-template-columns:1fr}.sto-tour-card-media{aspect-ratio:16/11}

  .sto-single-hero{padding-top:16px}.sto-single-breadcrumb{margin-bottom:14px}.sto-single-intro{margin-bottom:18px}
  .sto-single-intro h1{font-size:clamp(2rem,9.5vw,3rem);line-height:1.02}.sto-single-intro-meta{margin-top:12px;gap:7px 12px;font-size:.73rem}
  .sto-single-hero-grid{grid-template-columns:1fr;gap:16px}.sto-single-media{border-radius:20px;aspect-ratio:4/3}.sto-gallery-count{right:10px;bottom:10px}.sto-single-summary{border-radius:19px;padding:18px}
  .sto-single-content{padding:38px 0 66px}.sto-single-layout{grid-template-columns:1fr;gap:28px}.sto-highlight-grid,.sto-inex-grid{grid-template-columns:1fr}.sto-info-panel{position:static;border-radius:18px}
  .sto-tour-gallery-thumbs .splide__track{border-radius:10px}.sto-tour-gallery-thumbs .splide__slide{border-radius:9px}.sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow{width:32px;height:32px}

  .sto-booking-title-row{align-items:flex-start;flex-direction:column}.sto-booking-layout{padding-top:22px}.sto-booking-card{padding:19px;border-radius:19px}.sto-field-grid{grid-template-columns:1fr}.sto-guest-options{grid-template-columns:repeat(5,1fr);gap:6px}.sto-guest-pill label{min-height:52px;font-size:.82rem}.sto-booking-summary{border-radius:20px}
}
@media(max-width:430px){
  .sto-guest-options{grid-template-columns:repeat(4,1fr)}.sto-guest-pill:last-child{grid-column:1/-1}
  .sto-card-footer{align-items:center}
  .sto-single-intro-meta span:last-child{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .sto-button,.sto-tour-card,.sto-tour-card-media img,.sto-card-arrow,.sto-guest-pill label,.sto-tour-gallery-thumbs .splide__slide,.sto-tour-gallery-thumbs .splide__arrow{transition-duration:60ms!important;transform:none!important}
  html:focus-within{scroll-behavior:auto}
}

/* v1.4 — Single tour editorial layout: price fully separated from imagery, larger type, less visual density */
.sto-tour-page-v14 .sto-single-hero-v14{padding:28px 0 0}
.sto-tour-page-v14 .sto-single-intro-v14{margin-bottom:24px}
.sto-tour-page-v14 .sto-single-intro-copy{max-width:940px}
.sto-tour-page-v14 .sto-single-intro h1{max-width:940px;font-size:clamp(2.65rem,4.6vw,4.15rem);line-height:.98;letter-spacing:-.052em}
.sto-tour-page-v14 .sto-single-intro-meta{font-size:.88rem;gap:10px 20px;margin-top:16px}
.sto-tour-page-v14 .sto-single-eyebrow{font-size:.78rem;margin-bottom:11px}

.sto-single-gallery-v14{display:grid;gap:12px}
.sto-single-media-v14{aspect-ratio:16/8.5;border-radius:26px;box-shadow:0 18px 46px rgba(18,24,38,.08)}
.sto-tour-gallery-thumbs-v14{margin-top:0!important}
.sto-tour-gallery-thumbs-v14 .splide__slide{border-radius:12px}

.sto-booking-panel-v14{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,1.65fr) minmax(210px,.68fr);gap:22px;align-items:center;margin-top:22px;padding:22px 24px;border:1px solid #e7e9ed;border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(18,24,38,.055)}
.sto-booking-price-v14{padding-right:22px;border-right:1px solid var(--sto-line)}
.sto-booking-price-v14 .sto-price-eyebrow{font-size:.76rem;margin-bottom:5px}
.sto-price-v14{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;color:var(--sto-green);line-height:1}
.sto-price-v14 strong{font-size:2rem;font-weight:900;letter-spacing:-.045em}
.sto-price-v14 span{font-size:.88rem;color:#667085;font-weight:760}
.sto-booking-price-v14 small{display:block;margin-top:7px;color:#7b8492;font-size:.76rem;line-height:1.45;font-weight:650}
.sto-booking-facts-v14{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
.sto-booking-fact-v14{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;min-width:0}
.sto-booking-fact-v14>i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#f2f8f2;color:var(--sto-green);font-size:.86rem}
.sto-booking-fact-v14 span{display:block;color:#8a93a2;font-size:.68rem;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:.055em}
.sto-booking-fact-v14 strong{display:block;margin-top:3px;color:var(--sto-ink);font-size:.9rem;line-height:1.35;font-weight:800}
.sto-booking-actions-v14{display:grid;gap:9px}
.sto-booking-actions-v14 .sto-button{width:100%;min-height:48px;font-size:.84rem}

.sto-single-content-v14{padding:58px 0 88px}
.sto-story-v14{width:min(100%,920px);margin:0 auto}
.sto-content-section-v14{padding:0 0 40px;margin:0 0 40px;border-bottom:1px solid #eceef1}
.sto-content-section-v14:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.sto-content-section-v14 .sto-kicker{font-size:.75rem;letter-spacing:.08em}
.sto-content-section-v14 h2{margin:7px 0 18px;font-size:clamp(1.6rem,2.2vw,2rem);line-height:1.08;letter-spacing:-.035em}
.sto-rich-copy-v14 p,.sto-content-section-v14>p{max-width:780px;color:#465164;font-size:1.02rem;line-height:1.78}
.sto-rich-copy-v14 p+p{margin-top:14px}
.sto-section-lead-v14{margin-top:-6px!important;color:#667085!important;font-size:.98rem!important}

.sto-highlight-grid-v14{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sto-highlight-v14{min-height:54px;align-items:center;padding:14px 15px;border:1px solid #edf0f2;border-radius:14px;background:#fafbfa;color:#344054;font-size:.94rem;line-height:1.45;font-weight:720}
.sto-highlight-v14 i{width:24px;height:24px;flex:0 0 24px;border-radius:999px;background:#eaf7ea;display:grid;place-items:center;margin:0;font-size:.68rem}

.sto-inex-grid-v14{gap:16px}
.sto-inex-v14{padding:20px;border:0;border-radius:17px}
.sto-inex-included{background:#f7fbf7}
.sto-inex-excluded{background:#fff8f8}
.sto-inex-v14 h3{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:1rem}
.sto-inex-v14 h3 i{font-size:.95rem}.sto-inex-included h3 i{color:var(--sto-green)}.sto-inex-excluded h3 i{color:var(--sto-red)}
.sto-inex-v14 ul{gap:10px}
.sto-inex-v14 li{font-size:.93rem;line-height:1.55}

.sto-itinerary-v14{gap:18px}
.sto-itinerary-v14 .sto-itinerary-item{grid-template-columns:42px 1fr;gap:14px}
.sto-itinerary-v14 .sto-itinerary-num{width:38px;height:38px;border-radius:12px;font-size:.82rem}
.sto-itinerary-v14 .sto-itinerary-copy h3{font-size:1rem;margin:2px 0 6px}
.sto-itinerary-v14 .sto-itinerary-copy p{font-size:.94rem;line-height:1.68}

.sto-extras-v14{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:28px;align-items:start}
.sto-extras-v14 h2{margin-bottom:8px}
.sto-extras-copy-v14 p{margin:0;color:#667085;font-size:.94rem}
.sto-extras-list-v14{display:flex;flex-wrap:wrap;gap:10px}
.sto-extras-list-v14 span{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 12px;border-radius:12px;background:#f7f9f8;color:#3f4b43;font-size:.88rem;font-weight:720}
.sto-extras-list-v14 i{color:var(--sto-green);font-size:.72rem}

.sto-plan-v14{border-bottom:0}
.sto-accordion-v14{margin-top:20px;border-top:1px solid var(--sto-line)}
.sto-accordion-item-v14{border-bottom:1px solid var(--sto-line)}
.sto-accordion-item-v14 summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:0 2px;cursor:pointer;color:var(--sto-ink);font-size:1rem;font-weight:820;transition:color 160ms ease}
.sto-accordion-item-v14 summary::-webkit-details-marker{display:none}
.sto-accordion-item-v14 summary i{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#f5f7f5;color:var(--sto-green);font-size:.7rem;transition:transform 180ms cubic-bezier(.23,1,.32,1),background-color 160ms ease}
.sto-accordion-item-v14[open] summary i{transform:rotate(45deg);background:#edf8ed}
.sto-accordion-content-v14{padding:0 46px 20px 2px;color:#596477;font-size:.96rem;line-height:1.72}

@media (hover:hover) and (pointer:fine){
  .sto-accordion-item-v14 summary:hover{color:var(--sto-green)}
  .sto-booking-actions-v14 .sto-button:hover{transform:translateY(-1px)}
}

@media(max-width:991.98px){
  .sto-booking-panel-v14{grid-template-columns:minmax(190px,.8fr) minmax(0,1.35fr);gap:18px}
  .sto-booking-actions-v14{grid-column:1/-1;grid-template-columns:1fr 1fr}
  .sto-booking-price-v14{padding-right:18px}
  .sto-single-media-v14{aspect-ratio:16/9}
}

@media(max-width:767.98px){
  .sto-tour-page-v14 .sto-single-hero-v14{padding-top:17px}
  .sto-tour-page-v14 .sto-single-intro h1{font-size:clamp(2.2rem,10.8vw,3.25rem);line-height:1}
  .sto-tour-page-v14 .sto-single-intro-meta{font-size:.82rem;gap:8px 13px}
  .sto-single-media-v14{aspect-ratio:4/3;border-radius:20px}
  .sto-booking-panel-v14{grid-template-columns:1fr;margin-top:16px;padding:19px;border-radius:19px;gap:17px}
  .sto-booking-price-v14{padding:0 0 17px;border-right:0;border-bottom:1px solid var(--sto-line)}
  .sto-price-v14 strong{font-size:1.8rem}
  .sto-booking-facts-v14{grid-template-columns:1fr 1fr;gap:13px 12px}
  .sto-booking-fact-v14{grid-template-columns:34px 1fr;gap:9px}.sto-booking-fact-v14>i{width:34px;height:34px;border-radius:10px}
  .sto-booking-fact-v14 strong{font-size:.84rem}.sto-booking-fact-v14 span{font-size:.63rem}
  .sto-booking-actions-v14{grid-template-columns:1fr}
  .sto-single-content-v14{padding:46px 0 68px}
  .sto-content-section-v14{padding-bottom:32px;margin-bottom:32px}
  .sto-content-section-v14 h2{font-size:1.55rem;margin-bottom:15px}
  .sto-rich-copy-v14 p,.sto-content-section-v14>p{font-size:1rem;line-height:1.72}
  .sto-highlight-grid-v14,.sto-inex-grid-v14{grid-template-columns:1fr}
  .sto-highlight-v14{font-size:.94rem}
  .sto-inex-v14 li{font-size:.92rem}
  .sto-extras-v14{grid-template-columns:1fr;gap:14px}
  .sto-accordion-item-v14 summary{font-size:.98rem;min-height:60px}
  .sto-accordion-content-v14{padding-right:10px;font-size:.94rem}
}

@media(max-width:430px){
  .sto-booking-facts-v14{grid-template-columns:1fr}
  .sto-booking-fact-v14 strong{font-size:.9rem}
}

@media(prefers-reduced-motion:reduce){
  .sto-accordion-item-v14 summary i,.sto-booking-actions-v14 .sto-button{transition-duration:60ms!important;transform:none!important}
}


/* v1.5 — Dedicated right-hand sticky price sidebar. Price remains visually separate from gallery. */
.sto-single-content-v15{padding-top:44px}
.sto-single-layout-v15{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"story booking";gap:48px;align-items:start}
.sto-story-v15{grid-area:story;width:100%;max-width:none;margin:0;min-width:0}
.sto-booking-sidebar-v15{grid-area:booking;position:sticky;top:94px;z-index:4;display:block;margin:0;padding:0;border:1px solid #e5e8ec;border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(18,24,38,.08);overflow:hidden}
.sto-booking-sidebar-v15 .sto-booking-price-v14{padding:24px 24px 20px;border-right:0;border-bottom:1px solid var(--sto-line)}
.sto-booking-sidebar-v15 .sto-price-eyebrow{font-size:.75rem}
.sto-booking-sidebar-v15 .sto-price-v14{margin-top:6px;gap:7px}
.sto-booking-sidebar-v15 .sto-price-v14 strong{font-size:2.2rem;line-height:.98}
.sto-booking-sidebar-v15 .sto-price-v14 span{font-size:.92rem}
.sto-booking-sidebar-v15 .sto-booking-price-v14 small{font-size:.79rem;line-height:1.5}
.sto-booking-sidebar-v15 .sto-booking-facts-v14{display:grid;grid-template-columns:1fr;padding:18px 24px 6px;gap:0}
.sto-booking-sidebar-v15 .sto-booking-fact-v14{grid-template-columns:36px 1fr;gap:11px;padding:11px 0;border-bottom:1px solid #eef0f2}
.sto-booking-sidebar-v15 .sto-booking-fact-v14:last-child{border-bottom:0}
.sto-booking-sidebar-v15 .sto-booking-fact-v14>i{width:36px;height:36px;border-radius:11px}
.sto-booking-sidebar-v15 .sto-booking-fact-v14 span{font-size:.65rem}
.sto-booking-sidebar-v15 .sto-booking-fact-v14 strong{font-size:.91rem;line-height:1.4}
.sto-booking-sidebar-v15 .sto-booking-actions-v14{display:grid;grid-template-columns:1fr;gap:9px;padding:18px 24px 24px}
.sto-booking-sidebar-v15 .sto-button{min-height:50px;font-size:.86rem}
.sto-booking-sidebar-v15:after{content:"Secure USD checkout · VAT included";display:block;padding:0 24px 20px;color:#8a93a2;font-size:.68rem;line-height:1.4;text-align:center;font-weight:700}

/* Keep long editorial content readable beside the sticky card. */
.sto-single-layout-v15 .sto-content-section-v14{padding-bottom:38px;margin-bottom:38px}
.sto-single-layout-v15 .sto-rich-copy-v14 p,.sto-single-layout-v15 .sto-content-section-v14>p{max-width:760px}

@media(max-width:1199.98px){
  .sto-single-layout-v15{grid-template-columns:minmax(0,1fr) 310px;gap:34px}
  .sto-booking-sidebar-v15 .sto-booking-price-v14,.sto-booking-sidebar-v15 .sto-booking-facts-v14,.sto-booking-sidebar-v15 .sto-booking-actions-v14{padding-left:20px;padding-right:20px}
  .sto-booking-sidebar-v15:after{padding-left:20px;padding-right:20px}
}

@media(max-width:991.98px){
  .sto-single-content-v15{padding-top:30px}
  .sto-single-layout-v15{grid-template-columns:1fr;grid-template-areas:"booking" "story";gap:34px}
  .sto-booking-sidebar-v15{position:relative;top:auto;z-index:auto;display:grid;grid-template-columns:minmax(185px,.78fr) minmax(0,1.3fr);align-items:stretch;box-shadow:0 12px 34px rgba(18,24,38,.06)}
  .sto-booking-sidebar-v15 .sto-booking-price-v14{border-bottom:0;border-right:1px solid var(--sto-line);padding:20px}
  .sto-booking-sidebar-v15 .sto-booking-facts-v14{grid-template-columns:1fr 1fr;padding:10px 20px;gap:0 18px}
  .sto-booking-sidebar-v15 .sto-booking-fact-v14{padding:9px 0}
  .sto-booking-sidebar-v15 .sto-booking-actions-v14{grid-column:1/-1;grid-template-columns:1fr 1fr;padding:16px 20px 20px;border-top:1px solid var(--sto-line)}
  .sto-booking-sidebar-v15:after{grid-column:1/-1;padding:0 20px 18px}
}

@media(max-width:767.98px){
  .sto-single-content-v15{padding-top:24px}
  .sto-single-layout-v15{gap:30px}
  .sto-booking-sidebar-v15{display:block;border-radius:19px}
  .sto-booking-sidebar-v15 .sto-booking-price-v14{border-right:0;border-bottom:1px solid var(--sto-line);padding:19px}
  .sto-booking-sidebar-v15 .sto-price-v14 strong{font-size:1.9rem}
  .sto-booking-sidebar-v15 .sto-booking-facts-v14{grid-template-columns:1fr 1fr;padding:10px 19px 5px;gap:0 12px}
  .sto-booking-sidebar-v15 .sto-booking-fact-v14{grid-template-columns:34px 1fr;padding:10px 0}
  .sto-booking-sidebar-v15 .sto-booking-fact-v14>i{width:34px;height:34px}
  .sto-booking-sidebar-v15 .sto-booking-actions-v14{grid-template-columns:1fr;padding:16px 19px 19px}
  .sto-booking-sidebar-v15:after{padding:0 19px 17px}
}

@media(max-width:430px){
  .sto-booking-sidebar-v15 .sto-booking-facts-v14{grid-template-columns:1fr}
}

/* v1.6 — Apple-inspired craft pass for the single-tour experience.
   Principles: stronger hierarchy, fewer competing surfaces, legible type,
   tactile feedback, restrained materials, and a calm sticky booking control. */

.sto-tour-page-v16{
  --sto-ink:#1d1d1f;
  --sto-muted:#6e6e73;
  --sto-line:rgba(60,60,67,.14);
  --sto-soft:#f5f5f7;
  --sto-ease-out:cubic-bezier(.23,1,.32,1);
  --sto-ease-in-out:cubic-bezier(.77,0,.175,1);
  color:var(--sto-ink);
  font-optical-sizing:auto;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

/* Title + wayfinding */
.sto-tour-page-v16 .sto-single-hero-v16{padding-top:28px}
.sto-tour-page-v16 .sto-single-breadcrumb{margin-bottom:20px;color:#8e8e93;font-size:.76rem;font-weight:650;letter-spacing:.006em}
.sto-tour-page-v16 .sto-single-breadcrumb a{color:#6e6e73;transition:color 160ms ease}
.sto-tour-page-v16 .sto-single-breadcrumb i{color:#c7c7cc;font-size:.5rem}
.sto-tour-page-v16 .sto-single-intro-v14{margin-bottom:24px}
.sto-tour-page-v16 .sto-single-intro-copy{max-width:900px}
.sto-tour-page-v16 .sto-single-eyebrow{margin-bottom:11px;color:var(--sto-green);font-size:.73rem;font-weight:760;letter-spacing:.075em}
.sto-tour-page-v16 .sto-single-eyebrow:before{width:18px;height:2px;background:var(--sto-red)}
.sto-tour-page-v16 .sto-single-intro h1{max-width:920px;font-size:clamp(2.65rem,4.6vw,4.15rem);line-height:.99;font-weight:800;letter-spacing:-.052em;text-wrap:balance}
.sto-tour-page-v16 .sto-single-intro-meta{margin-top:16px;gap:9px 18px;color:#6e6e73;font-size:.86rem;font-weight:620;letter-spacing:0}
.sto-tour-page-v16 .sto-single-intro-meta i{color:#8e8e93;font-size:.88em}

/* Gallery: image first, controls quiet. */
.sto-tour-page-v16 .sto-single-gallery-v14{gap:13px}
.sto-tour-page-v16 .sto-single-media-v14{border-radius:28px;box-shadow:0 8px 28px rgba(0,0,0,.065);background:#f2f2f4}
.sto-tour-page-v16 .sto-gallery-count{right:16px;bottom:16px;min-height:34px;padding:0 11px;border:1px solid rgba(255,255,255,.42);background:rgba(29,29,31,.52);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);font-size:.72rem;font-weight:700;letter-spacing:.01em}
.sto-tour-page-v16 .sto-tour-gallery-thumbs{padding:0 1px}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__track{border-radius:14px}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__slide{border:0!important;border-radius:13px;opacity:.62;box-shadow:inset 0 0 0 1px rgba(60,60,67,.09)!important;transition:opacity 180ms ease,transform 140ms ease-out,box-shadow 180ms ease}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__slide.is-active{opacity:1;box-shadow:inset 0 0 0 2px rgba(0,153,0,.86),0 0 0 2px rgba(0,153,0,.08)!important}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow{width:40px;height:40px;border:1px solid rgba(255,255,255,.68);background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);box-shadow:0 8px 22px rgba(0,0,0,.10);transition:transform 120ms ease-out,background-color 160ms ease,box-shadow 160ms ease}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow--prev{left:-14px}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow--next{right:-14px}
.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow:active{transform:scale(.94)}

/* Editorial layout: calm reading column + a purposeful sticky control. */
.sto-single-content-v16{padding-top:50px;padding-bottom:94px;background:linear-gradient(180deg,#fff 0,#fbfbfd 12rem,#fbfbfd 100%)}
.sto-single-layout-v16{grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"story booking";gap:64px;align-items:start}
.sto-story-v16{max-width:780px}

/* Sticky booking surface — one dominant action, one quiet secondary action. */
.sto-booking-sidebar-v16{top:106px;border:1px solid rgba(60,60,67,.12);border-radius:28px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:0 24px 70px rgba(0,0,0,.10),0 2px 10px rgba(0,0,0,.025);overflow:hidden}
.sto-booking-sidebar-v16 .sto-booking-price-v14{padding:26px 26px 22px;border-bottom:1px solid rgba(60,60,67,.12)}
.sto-booking-sidebar-v16 .sto-price-eyebrow{margin:0 0 7px;color:#8e8e93;font-size:.72rem;font-weight:720;letter-spacing:.05em;text-transform:uppercase}
.sto-booking-sidebar-v16 .sto-price-v14{margin:0;align-items:baseline;gap:8px}
.sto-booking-sidebar-v16 .sto-price-v14 strong{color:var(--sto-green);font-size:2.35rem;line-height:1;font-weight:820;letter-spacing:-.045em}
.sto-booking-sidebar-v16 .sto-price-v14 span{color:#515154;font-size:.94rem;font-weight:680}
.sto-booking-sidebar-v16 .sto-booking-price-v14 small{display:block;margin-top:8px;color:#6e6e73;font-size:.82rem;line-height:1.45;font-weight:620}
.sto-booking-sidebar-v16 .sto-booking-facts-v14{padding:10px 26px 6px}
.sto-booking-sidebar-v16 .sto-booking-fact-v14{grid-template-columns:32px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid rgba(60,60,67,.10)}
.sto-booking-sidebar-v16 .sto-booking-fact-v14>i{width:32px;height:32px;border-radius:10px;background:#f5f5f7;color:#515154;font-size:.78rem}
.sto-booking-sidebar-v16 .sto-booking-fact-v14 span{color:#8e8e93;font-size:.65rem;font-weight:740;letter-spacing:.055em;text-transform:uppercase}
.sto-booking-sidebar-v16 .sto-booking-fact-v14 strong{margin-top:2px;color:#1d1d1f;font-size:.96rem;line-height:1.35;font-weight:720;letter-spacing:-.008em}
.sto-booking-sidebar-v16 .sto-booking-actions-v14{gap:10px;padding:18px 26px 8px}
.sto-booking-sidebar-v16 .sto-button{min-height:52px;border-radius:999px;font-size:.9rem;font-weight:760;letter-spacing:-.005em;transition:transform 120ms ease-out,background-color 180ms ease-out,box-shadow 180ms ease-out,color 180ms ease-out,border-color 180ms ease-out}
.sto-booking-sidebar-v16 .sto-button:active{transform:scale(.97);transition-duration:100ms}
.sto-booking-sidebar-v16 .sto-button-primary{box-shadow:none}
.sto-booking-sidebar-v16 .sto-button-green{min-height:48px;border:1px solid rgba(60,60,67,.12);background:#f5f5f7;color:#087b08;box-shadow:none}
.sto-booking-sidebar-v16 .sto-button-green:hover,.sto-booking-sidebar-v16 .sto-button-green:focus{background:#ececee;color:#066c06}
.sto-booking-sidebar-v16:after{display:none!important;content:none!important}
.sto-booking-assurance-v16{display:flex;align-items:center;justify-content:center;gap:7px;margin:0;padding:8px 26px 22px;color:#8e8e93;font-size:.72rem;line-height:1.4;font-weight:650;text-align:center}
.sto-booking-assurance-v16 i{color:#6e6e73;font-size:.72rem}

/* Reading typography: slightly larger, fewer decorative signals. */
.sto-tour-page-v16 .sto-content-section-v14{padding-bottom:42px;margin-bottom:42px;border-bottom:1px solid rgba(60,60,67,.12)}
.sto-tour-page-v16 .sto-content-section-v14:last-child{border-bottom:0}
.sto-tour-page-v16 .sto-content-section-v14 .sto-kicker{gap:0;color:#6e6e73;font-size:.69rem;font-weight:760;letter-spacing:.09em}
.sto-tour-page-v16 .sto-content-section-v14 .sto-kicker:before{display:none}
.sto-tour-page-v16 .sto-content-section-v14 h2{margin:7px 0 18px;color:#1d1d1f;font-size:clamp(1.75rem,2.3vw,2.15rem);line-height:1.08;font-weight:780;letter-spacing:-.035em;text-wrap:balance}
.sto-tour-page-v16 .sto-rich-copy-v14 p,.sto-tour-page-v16 .sto-content-section-v14>p{max-width:760px;color:#515154;font-size:1.0625rem;line-height:1.72;font-weight:430;letter-spacing:-.006em}
.sto-tour-page-v16 .sto-section-lead-v14{margin-top:-7px!important;color:#6e6e73!important;font-size:.98rem!important;line-height:1.6!important}

/* Highlights: grouped content, not a cloud of badges. */
.sto-tour-page-v16 .sto-highlight-grid-v14{gap:12px}
.sto-tour-page-v16 .sto-highlight-v14{min-height:60px;padding:15px 16px;border:0;border-radius:16px;background:#f5f5f7;color:#343437;font-size:.96rem;line-height:1.42;font-weight:650}
.sto-tour-page-v16 .sto-highlight-v14 i{width:24px;height:24px;flex-basis:24px;background:#fff;color:var(--sto-green);box-shadow:0 1px 4px rgba(0,0,0,.05)}

/* Included / excluded: soft grouping with the icon carrying meaning. */
.sto-tour-page-v16 .sto-inex-grid-v14{gap:14px}
.sto-tour-page-v16 .sto-inex-v14{padding:22px;border-radius:20px}
.sto-tour-page-v16 .sto-inex-included{background:#f4f9f4}
.sto-tour-page-v16 .sto-inex-excluded{background:#fff7f7}
.sto-tour-page-v16 .sto-inex-v14 h3{margin-bottom:15px;font-size:1.02rem;font-weight:760;letter-spacing:-.01em}
.sto-tour-page-v16 .sto-inex-v14 li{color:#515154;font-size:.94rem;line-height:1.55}

/* Optional extras stay secondary. */
.sto-tour-page-v16 .sto-extras-v14{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:30px}
.sto-tour-page-v16 .sto-extras-copy-v14 p{color:#8e8e93;font-size:.9rem}
.sto-tour-page-v16 .sto-extras-list-v14{gap:9px}
.sto-tour-page-v16 .sto-extras-list-v14 span{min-height:44px;padding:10px 13px;border:1px solid rgba(60,60,67,.08);border-radius:14px;background:#f5f5f7;color:#515154;font-size:.88rem;font-weight:640}

/* Disclosure rows: advanced/operational details one level deeper. */
.sto-tour-page-v16 .sto-plan-v14{padding-bottom:0;border-bottom:0}
.sto-tour-page-v16 .sto-accordion-v14{margin-top:22px;border-top:1px solid rgba(60,60,67,.12)}
.sto-tour-page-v16 .sto-accordion-item-v14{border-bottom:1px solid rgba(60,60,67,.12)}
.sto-tour-page-v16 .sto-accordion-item-v14 summary{min-height:66px;padding:0 2px;color:#1d1d1f;font-size:1rem;font-weight:700;letter-spacing:-.008em;transition:color 160ms ease}
.sto-tour-page-v16 .sto-accordion-item-v14 summary i{width:30px;height:30px;border-radius:999px;background:#f5f5f7;color:#6e6e73;font-size:.68rem;transition:transform 220ms var(--sto-ease-out),background-color 160ms ease,color 160ms ease}
.sto-tour-page-v16 .sto-accordion-item-v14[open] summary i{transform:rotate(180deg);background:#ececee;color:#1d1d1f}
.sto-tour-page-v16 .sto-accordion-content-v14{padding:0 48px 22px 2px;color:#6e6e73;font-size:.98rem;line-height:1.72}

/* Keyboard focus is obvious without being loud. */
.sto-tour-page-v16 a:focus-visible,.sto-tour-page-v16 button:focus-visible,.sto-tour-page-v16 summary:focus-visible{outline:3px solid rgba(0,122,255,.34);outline-offset:3px}

@media (hover:hover) and (pointer:fine){
  .sto-tour-page-v16 .sto-single-breadcrumb a:hover{color:#1d1d1f}
  .sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__slide:hover{opacity:.9}
  .sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow:hover{background:rgba(255,255,255,.96);box-shadow:0 10px 26px rgba(0,0,0,.13)}
  .sto-tour-page-v16 .sto-booking-sidebar-v16 .sto-button-primary:hover{transform:translateY(-1px)}
  .sto-tour-page-v16 .sto-accordion-item-v14 summary:hover{color:#000}
}

@media(max-width:1199.98px){
  .sto-single-layout-v16{grid-template-columns:minmax(0,1fr) 330px;gap:44px}
  .sto-booking-sidebar-v16 .sto-booking-price-v14,.sto-booking-sidebar-v16 .sto-booking-facts-v14,.sto-booking-sidebar-v16 .sto-booking-actions-v14{padding-left:22px;padding-right:22px}
  .sto-booking-assurance-v16{padding-left:22px;padding-right:22px}
}

@media(max-width:991.98px){
  .sto-single-content-v16{padding-top:34px;background:#fff}
  .sto-single-layout-v16{grid-template-columns:1fr;grid-template-areas:"booking" "story";gap:42px}
  .sto-story-v16{max-width:none}
  .sto-booking-sidebar-v16{position:relative;top:auto;display:grid;grid-template-columns:minmax(210px,.75fr) minmax(0,1.25fr);border-radius:24px;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 14px 38px rgba(0,0,0,.07)}
  .sto-booking-sidebar-v16 .sto-booking-price-v14{border-right:1px solid rgba(60,60,67,.12);border-bottom:0;padding:22px}
  .sto-booking-sidebar-v16 .sto-booking-facts-v14{grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;padding:12px 22px;gap:0 14px}
  .sto-booking-sidebar-v16 .sto-booking-fact-v14{grid-template-columns:1fr;gap:7px;padding:10px 0;border-bottom:0}
  .sto-booking-sidebar-v16 .sto-booking-fact-v14>i{width:30px;height:30px}
  .sto-booking-sidebar-v16 .sto-booking-actions-v14{grid-column:1/-1;grid-template-columns:1fr 1fr;padding:16px 22px;border-top:1px solid rgba(60,60,67,.12)}
  .sto-booking-assurance-v16{grid-column:1/-1;padding:0 22px 18px}
}

@media(max-width:767.98px){
  .sto-tour-page-v16 .sto-single-hero-v16{padding-top:18px}
  .sto-tour-page-v16 .sto-single-breadcrumb{margin-bottom:15px}
  .sto-tour-page-v16 .sto-single-intro h1{font-size:clamp(2.25rem,10.5vw,3.2rem);line-height:1;letter-spacing:-.045em}
  .sto-tour-page-v16 .sto-single-intro-meta{font-size:.8rem;gap:8px 13px}
  .sto-tour-page-v16 .sto-single-media-v14{border-radius:22px;aspect-ratio:4/3;box-shadow:0 6px 20px rgba(0,0,0,.055)}
  .sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow{width:36px;height:36px}
  .sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow--prev{left:-8px}.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow--next{right:-8px}
  .sto-single-content-v16{padding-top:26px;padding-bottom:72px}
  .sto-single-layout-v16{gap:34px}
  .sto-booking-sidebar-v16{display:block;border-radius:22px}
  .sto-booking-sidebar-v16 .sto-booking-price-v14{border-right:0;border-bottom:1px solid rgba(60,60,67,.12);padding:21px}
  .sto-booking-sidebar-v16 .sto-price-v14 strong{font-size:2.05rem}
  .sto-booking-sidebar-v16 .sto-booking-facts-v14{grid-template-columns:1fr 1fr;padding:8px 21px 5px;gap:0 14px}
  .sto-booking-sidebar-v16 .sto-booking-fact-v14{grid-template-columns:30px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid rgba(60,60,67,.08)}
  .sto-booking-sidebar-v16 .sto-booking-fact-v14:nth-last-child(-n+2){border-bottom:0}
  .sto-booking-sidebar-v16 .sto-booking-actions-v14{grid-template-columns:1fr;padding:16px 21px 8px;border-top:0}
  .sto-booking-assurance-v16{padding:7px 21px 19px}
  .sto-tour-page-v16 .sto-content-section-v14{padding-bottom:34px;margin-bottom:34px}
  .sto-tour-page-v16 .sto-content-section-v14 h2{font-size:1.65rem;margin-bottom:15px}
  .sto-tour-page-v16 .sto-rich-copy-v14 p,.sto-tour-page-v16 .sto-content-section-v14>p{font-size:1rem;line-height:1.7}
  .sto-tour-page-v16 .sto-highlight-grid-v14,.sto-tour-page-v16 .sto-inex-grid-v14{grid-template-columns:1fr}
  .sto-tour-page-v16 .sto-extras-v14{grid-template-columns:1fr;gap:14px}
  .sto-tour-page-v16 .sto-accordion-content-v14{padding-right:8px;font-size:.95rem}
}

@media(max-width:430px){
  .sto-booking-sidebar-v16 .sto-booking-facts-v14{grid-template-columns:1fr}
  .sto-booking-sidebar-v16 .sto-booking-fact-v14{border-bottom:1px solid rgba(60,60,67,.08)!important}
  .sto-booking-sidebar-v16 .sto-booking-fact-v14:last-child{border-bottom:0!important}
}

@media(prefers-reduced-motion:reduce){
  .sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__slide,.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow,.sto-tour-page-v16 .sto-booking-sidebar-v16 .sto-button,.sto-tour-page-v16 .sto-accordion-item-v14 summary i{transition-duration:80ms!important;transform:none!important}
}

@media(prefers-reduced-transparency:reduce){
  .sto-booking-sidebar-v16,.sto-tour-page-v16 .sto-gallery-count,.sto-tour-page-v16 .sto-tour-gallery-thumbs .splide__arrow.sto-gallery-arrow{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
  .sto-tour-page-v16 .sto-gallery-count{background:#1d1d1f}
}

@media(prefers-contrast:more){
  .sto-booking-sidebar-v16{background:#fff;border-color:#6e6e73}
  .sto-tour-page-v16 .sto-highlight-v14,.sto-tour-page-v16 .sto-extras-list-v14 span{border:1px solid #8e8e93}
}

/* v1.7 / theme 1.2.1 — Apple-style booking persistence + clearer optional extras.
   - Desktop: the booking card lives inside a full-height rail so sticky positioning
     remains reliable while the editorial column scrolls.
   - Tablet/mobile: a compact bottom dock keeps price + primary booking action in reach.
   - Optional extras use a clear intro followed by the actual choices underneath. */

.sto-tour-page-v17,
.sto-single-content-v17,
.sto-single-content-v17 > .sto-container,
.sto-single-layout-v17{
  overflow:visible!important;
}

.sto-single-layout-v17{
  grid-template-columns:minmax(0,1fr) 372px;
  grid-template-areas:"story booking";
  gap:68px;
  align-items:stretch;
}

.sto-story-v17{
  grid-area:story;
  min-width:0;
}

.sto-booking-rail-v17{
  grid-area:booking;
  align-self:stretch;
  position:relative;
  min-width:0;
  height:100%;
}

.sto-booking-sidebar-v17{
  grid-area:auto;
  position:sticky!important;
  top:96px!important;
  align-self:start;
  width:100%;
  height:max-content;
  margin:0;
  will-change:auto;
}

/* Personalize your booking: the content first, the options directly underneath. */
.sto-tour-page-v17 .sto-extras-v17{
  display:block;
}

.sto-tour-page-v17 .sto-extras-copy-v17{
  max-width:670px;
  margin-bottom:22px;
}

.sto-tour-page-v17 .sto-extras-copy-v17 h2{
  margin-bottom:10px;
}

.sto-tour-page-v17 .sto-extras-copy-v17 p{
  margin:0;
  color:#6e6e73;
  font-size:1rem;
  line-height:1.65;
  letter-spacing:-.006em;
}

.sto-extras-options-v17{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.sto-extra-option-v17{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  min-height:86px;
  padding:16px 17px;
  border:1px solid rgba(60,60,67,.11);
  border-radius:18px;
  background:rgba(255,255,255,.82);
  box-shadow:0 1px 2px rgba(0,0,0,.018);
  transition:border-color 180ms ease-out,box-shadow 180ms ease-out,transform 120ms ease-out;
}

.sto-extra-icon-v17{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:13px;
  background:#f5f5f7;
  color:var(--sto-green);
  font-size:.78rem;
}

.sto-extra-copy-v17{
  min-width:0;
}

.sto-extra-copy-v17 strong{
  display:block;
  color:#1d1d1f;
  font-size:.98rem;
  line-height:1.3;
  font-weight:740;
  letter-spacing:-.012em;
}

.sto-extra-copy-v17 small{
  display:block;
  margin-top:5px;
  color:#8e8e93;
  font-size:.76rem;
  line-height:1.45;
  font-weight:590;
}

.sto-extra-price-v17{
  text-align:right;
  white-space:nowrap;
}

.sto-extra-price-v17 strong{
  display:block;
  color:var(--sto-green);
  font-size:1rem;
  line-height:1.2;
  font-weight:780;
  letter-spacing:-.015em;
}

.sto-extra-price-v17 span{
  display:block;
  margin-top:4px;
  color:#8e8e93;
  font-size:.68rem;
  font-weight:650;
}

/* Mobile booking dock — calm material, one primary action, safe-area aware. */
.sto-mobile-booking-dock-v17{
  display:none;
}

@media (hover:hover) and (pointer:fine){
  .sto-extra-option-v17:hover{
    border-color:rgba(60,60,67,.18);
    box-shadow:0 8px 24px rgba(0,0,0,.055);
    transform:translateY(-1px);
  }
}

@media(max-width:1199.98px){
  .sto-single-layout-v17{
    grid-template-columns:minmax(0,1fr) 340px;
    gap:46px;
  }
}

@media(max-width:991.98px){
  .sto-single-layout-v17{
    grid-template-columns:1fr;
    grid-template-areas:"booking" "story";
    gap:40px;
    align-items:start;
  }

  .sto-booking-rail-v17{
    height:auto;
  }

  .sto-booking-sidebar-v17{
    position:relative!important;
    top:auto!important;
  }

  .sto-mobile-booking-dock-v17{
    position:fixed;
    left:50%;
    bottom:14px;
    z-index:1042;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(144px,.72fr);
    align-items:center;
    gap:10px;
    width:min(540px,calc(100% - 28px));
    padding:9px 9px 9px 15px;
    border:1px solid rgba(60,60,67,.16);
    border-radius:22px;
    background:rgba(250,250,252,.90);
    -webkit-backdrop-filter:blur(24px) saturate(180%);
    backdrop-filter:blur(24px) saturate(180%);
    box-shadow:0 16px 48px rgba(0,0,0,.17),0 2px 10px rgba(0,0,0,.05);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-50%,calc(100% + 28px));
    transition:transform 320ms var(--sto-ease-out),opacity 220ms ease-out,visibility 0s linear 320ms;
  }

  .sto-mobile-booking-dock-v17.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%,0);
    transition:transform 320ms var(--sto-ease-out),opacity 220ms ease-out,visibility 0s linear 0s;
  }

  .sto-mobile-booking-price-v17{
    min-width:0;
  }

  .sto-mobile-booking-price-v17>span{
    display:block;
    margin-bottom:2px;
    color:#8e8e93;
    font-size:.63rem;
    line-height:1.2;
    font-weight:740;
    letter-spacing:.055em;
    text-transform:uppercase;
  }

  .sto-mobile-booking-price-v17>div{
    display:flex;
    align-items:baseline;
    gap:5px;
    min-width:0;
  }

  .sto-mobile-booking-price-v17 strong{
    overflow:hidden;
    color:var(--sto-green);
    font-size:1.18rem;
    line-height:1.15;
    font-weight:820;
    letter-spacing:-.035em;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .sto-mobile-booking-price-v17 small{
    color:#6e6e73;
    font-size:.72rem;
    line-height:1.2;
    font-weight:650;
    white-space:nowrap;
  }

  .sto-mobile-booking-action-v17{
    min-width:0;
  }

  .sto-mobile-booking-button-v17{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:48px;
    padding:0 16px;
    border:0;
    border-radius:999px;
    background:var(--sto-red);
    color:#fff!important;
    box-shadow:none;
    font:inherit;
    font-size:.88rem;
    font-weight:780;
    letter-spacing:-.006em;
    text-align:center;
    text-decoration:none!important;
    transition:transform 120ms ease-out,background-color 180ms ease-out,box-shadow 180ms ease-out;
    -webkit-tap-highlight-color:transparent;
  }

  .sto-mobile-booking-button-v17:active{
    transform:scale(.97);
    transition-duration:100ms;
  }

  .sto-mobile-booking-button-v17:disabled{
    background:#d1d1d6;
    color:#6e6e73!important;
  }

  .sto-tour-dock-visible .back-top{
    opacity:0!important;
    pointer-events:none!important;
  }

  .sto-single-content-v17{
    padding-bottom:118px;
  }
}

@media(max-width:767.98px){
  .sto-extras-options-v17{
    grid-template-columns:1fr;
  }

  .sto-extra-option-v17{
    min-height:82px;
    padding:15px;
  }

  .sto-tour-page-v17 .sto-extras-copy-v17{
    margin-bottom:18px;
  }

  .sto-tour-page-v17 .sto-extras-copy-v17 p{
    font-size:.98rem;
  }
}

@media(max-width:575.98px){
  .sto-mobile-booking-dock-v17{
    bottom:calc(76px + env(safe-area-inset-bottom));
    grid-template-columns:minmax(0,1fr) minmax(132px,.76fr);
    width:calc(100% - 20px);
    padding:8px 8px 8px 14px;
    border-radius:20px;
  }

  .sto-mobile-booking-button-v17{
    min-height:46px;
    padding-inline:13px;
    font-size:.84rem;
  }

  .sto-mobile-booking-price-v17 strong{
    font-size:1.08rem;
  }

  .sto-single-content-v17{
    padding-bottom:158px;
  }
}

@media(max-width:390px){
  .sto-mobile-booking-dock-v17{
    grid-template-columns:minmax(0,1fr) 124px;
  }

  .sto-mobile-booking-price-v17 small{
    display:none;
  }

  .sto-extra-option-v17{
    grid-template-columns:38px minmax(0,1fr);
  }

  .sto-extra-icon-v17{
    width:38px;
    height:38px;
  }

  .sto-extra-price-v17{
    grid-column:2;
    text-align:left;
  }

  .sto-extra-price-v17 strong,
  .sto-extra-price-v17 span{
    display:inline;
  }

  .sto-extra-price-v17 span{
    margin-left:5px;
  }
}

@media(prefers-reduced-motion:reduce){
  .sto-extra-option-v17,
  .sto-mobile-booking-dock-v17,
  .sto-mobile-booking-button-v17{
    transition:none!important;
  }

  .sto-extra-option-v17:hover,
  .sto-mobile-booking-dock-v17,
  .sto-mobile-booking-dock-v17.is-visible,
  .sto-mobile-booking-button-v17:active{
    transform:none!important;
  }
}

@media(prefers-reduced-transparency:reduce){
  .sto-mobile-booking-dock-v17{
    background:#fff;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}

@media(prefers-contrast:more){
  .sto-extra-option-v17,
  .sto-mobile-booking-dock-v17{
    border-color:#6e6e73;
    background:#fff;
  }
}

/* v1.8 / theme 1.2.2 — Apple-style single-tour refinement.
   Focus: dependable sticky booking, tighter hierarchy, correct responsive gallery height,
   and a single unobstructed mobile booking control. */

@supports (overflow: clip) {
  body.single-clubium_tour {
    overflow-x: clip !important;
  }
}

.sto-tour-page-v18,
.sto-single-content-v18,
.sto-single-content-v18 > .sto-container,
.sto-single-layout-v18,
.sto-booking-rail-v18 {
  overflow: visible !important;
}

/* Typography: one restrained step down from the previous pass. */
.sto-tour-page-v18 .sto-single-intro h1 {
  max-width: 900px;
  font-size: clamp(2.5rem, 4.2vw, 3.95rem);
  line-height: 1;
  font-weight: 790;
  letter-spacing: -.048em;
}

.sto-tour-page-v18 .sto-single-intro-meta {
  margin-top: 14px;
  font-size: .84rem;
}

.sto-tour-page-v18 .sto-content-section-v14 h2 {
  font-size: clamp(1.68rem, 2.12vw, 2.05rem);
  line-height: 1.09;
  letter-spacing: -.032em;
}

.sto-tour-page-v18 .sto-content-section-v14 {
  padding-bottom: 38px;
  margin-bottom: 38px;
}

/* Gallery: force Splide to inherit the media frame height.
   This removes the empty mobile area caused by Splide's older 0.5 heightRatio. */
.sto-tour-page-v18 .sto-single-media-v18 .sto-tour-gallery-main,
.sto-tour-page-v18 .sto-single-media-v18 .sto-tour-gallery-main > .splide__track,
.sto-tour-page-v18 .sto-single-media-v18 .sto-tour-gallery-main .splide__list,
.sto-tour-page-v18 .sto-single-media-v18 .sto-tour-gallery-main .splide__slide {
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
}

.sto-tour-page-v18 .sto-single-media-v18 .sto-tour-gallery-main > .splide__track {
  padding-block: 0 !important;
}

.sto-tour-page-v18 .sto-single-media-v18 {
  background: #f5f5f7;
  box-shadow: 0 8px 26px rgba(0,0,0,.055);
}

.sto-tour-page-v18 .sto-tour-gallery-thumbs .splide__slide {
  transition: opacity 170ms ease, transform 120ms ease-out, box-shadow 170ms ease;
}

/* Desktop reading rail + booking card. Body overflow uses clip above so sticky is not
   trapped inside the theme's global overflow-x:hidden scroll container. */
.sto-single-layout-v18 {
  grid-template-columns: minmax(0,1fr) 350px;
  grid-template-areas: "story booking";
  gap: 56px;
  align-items: stretch;
}

.sto-story-v18 {
  max-width: 800px;
}

.sto-booking-rail-v18 {
  grid-area: booking;
  align-self: stretch;
  position: relative;
  height: auto !important;
  min-width: 0;
}

.sto-booking-sidebar-v18 {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 84px !important;
  z-index: 20;
  align-self: flex-start;
  width: 100%;
  height: max-content;
  border: 1px solid rgba(60,60,67,.12);
  border-radius: 24px;
  background: #fff;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 16px 48px rgba(0,0,0,.085), 0 1px 2px rgba(0,0,0,.025);
}

.sto-booking-sidebar-v18 .sto-booking-price-v14 {
  padding: 23px 24px 19px;
}

.sto-booking-sidebar-v18 .sto-price-v14 strong {
  font-size: 2.04rem;
  font-weight: 800;
  letter-spacing: -.038em;
}

.sto-booking-sidebar-v18 .sto-booking-facts-v14 {
  padding: 13px 24px 6px;
}

.sto-booking-sidebar-v18 .sto-booking-fact-v14 {
  padding: 10px 0;
}

.sto-booking-sidebar-v18 .sto-booking-actions-v14 {
  padding: 16px 24px 11px;
}

.sto-booking-sidebar-v18 .sto-button {
  min-height: 48px;
  border-radius: 999px;
  font-size: .84rem;
  font-weight: 760;
  transition: transform 120ms ease-out, background-color 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.sto-booking-sidebar-v18 .sto-button:active {
  transform: scale(.97);
  transition-duration: 100ms;
}

.sto-booking-sidebar-v18 .sto-button-green {
  background: #f5f5f7;
  border-color: rgba(60,60,67,.1);
  color: #087b08;
}

.sto-booking-sidebar-v18 .sto-booking-assurance-v16 {
  padding: 7px 24px 20px;
  font-size: .69rem;
}

/* Optional extras stay complete, but become a single clear stack as soon as the
   overall page switches to its compact/tablet layout. */
.sto-tour-page-v18 .sto-extra-option-v17 {
  min-height: 82px;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.02);
}

/* Mobile/tablet: price card is static in the flow; persistent price + Book appears
   only after that card has actually scrolled away. */
@media (max-width: 1199.98px) {
  .sto-single-layout-v18 {
    grid-template-columns: minmax(0,1fr) 326px;
    gap: 42px;
  }
}

@media (max-width: 991.98px) {
  .sto-tour-page-v18 .sto-single-hero-v18 {
    padding-bottom: 0;
  }

  .sto-single-content-v18 {
    padding-top: 20px;
    padding-bottom: 92px;
    background: #fff;
  }

  .sto-single-layout-v18 {
    grid-template-columns: 1fr;
    grid-template-areas: "booking" "story";
    gap: 30px;
    align-items: start;
  }

  .sto-booking-rail-v18 {
    height: auto !important;
    min-height: 0;
  }

  .sto-booking-sidebar-v18 {
    position: relative !important;
    top: auto !important;
    z-index: auto;
  }

  .sto-tour-page-v18 .sto-extras-options-v17 {
    grid-template-columns: 1fr;
  }

  /* The tour page already exposes WhatsApp inside the booking card. Once a compact
     booking dock exists, a second floating WhatsApp control competes with it. */
  body.single-clubium_tour .clubium-floating-whatsapp {
    display: none !important;
  }

  .sto-mobile-booking-dock-v18 {
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: min(520px, calc(100% - 20px));
    padding: 8px 8px 8px 14px;
    border-radius: 20px;
    background: rgba(250,250,252,.94);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    backdrop-filter: blur(24px) saturate(180%);
    box-shadow: 0 14px 42px rgba(0,0,0,.16), 0 1px 5px rgba(0,0,0,.05);
    transform: translate(-50%, calc(100% + 24px));
    transition: transform 240ms var(--sto-ease-out), opacity 180ms ease-out, visibility 0s linear 240ms;
  }

  .sto-mobile-booking-dock-v18.is-visible {
    transform: translate(-50%,0);
    transition: transform 240ms var(--sto-ease-out), opacity 180ms ease-out, visibility 0s linear 0s;
  }

  .sto-mobile-booking-button-v18 {
    min-height: 46px;
    font-size: .84rem;
    font-weight: 760;
  }

  .sto-tour-dock-visible .sto-single-content-v18 {
    padding-bottom: 112px;
  }
}

@media (max-width: 767.98px) {
  .sto-tour-page-v18 .sto-single-hero-v18 {
    padding-top: 15px;
  }

  .sto-tour-page-v18 .sto-single-breadcrumb {
    margin-bottom: 12px;
  }

  .sto-tour-page-v18 .sto-single-intro-v18 {
    margin-bottom: 18px;
  }

  .sto-tour-page-v18 .sto-single-intro h1 {
    font-size: clamp(2.05rem, 9.6vw, 2.95rem);
    line-height: 1.01;
    letter-spacing: -.043em;
  }

  .sto-tour-page-v18 .sto-single-intro-meta {
    margin-top: 11px;
    gap: 7px 12px;
    font-size: .78rem;
  }

  .sto-tour-page-v18 .sto-single-gallery-v18 {
    gap: 10px;
  }

  .sto-tour-page-v18 .sto-single-media-v18 {
    aspect-ratio: 4 / 3;
    border-radius: 20px;
    box-shadow: 0 5px 18px rgba(0,0,0,.05);
  }

  .sto-single-content-v18 {
    padding-top: 14px;
  }

  .sto-single-layout-v18 {
    gap: 27px;
  }

  .sto-booking-sidebar-v18 {
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,.065);
  }

  .sto-booking-sidebar-v18 .sto-booking-price-v14 {
    padding: 19px 19px 16px;
  }

  .sto-booking-sidebar-v18 .sto-price-v14 strong {
    font-size: 1.9rem;
  }

  .sto-booking-sidebar-v18 .sto-booking-facts-v14 {
    padding: 7px 19px 4px;
  }

  .sto-booking-sidebar-v18 .sto-booking-actions-v14 {
    padding: 14px 19px 8px;
  }

  .sto-booking-sidebar-v18 .sto-booking-assurance-v16 {
    padding: 6px 19px 17px;
  }

  .sto-tour-page-v18 .sto-content-section-v14 {
    padding-bottom: 30px;
    margin-bottom: 30px;
  }

  .sto-tour-page-v18 .sto-content-section-v14 h2 {
    font-size: 1.56rem;
    margin-bottom: 14px;
  }

  .sto-tour-page-v18 .sto-rich-copy-v14 p,
  .sto-tour-page-v18 .sto-content-section-v14 > p {
    font-size: .99rem;
    line-height: 1.68;
  }

  .sto-tour-page-v18 .sto-highlight-v14 {
    min-height: 54px;
    padding: 13px 14px;
  }

  .sto-tour-page-v18 .sto-inex-v14 {
    padding: 18px;
    border-radius: 18px;
  }

  .sto-tour-page-v18 .sto-extras-copy-v18 {
    margin-bottom: 16px;
  }

  .sto-tour-page-v18 .sto-accordion-item-v14 summary {
    min-height: 60px;
    font-size: .96rem;
  }
}

@media (max-width: 430px) {
  .sto-mobile-booking-dock-v18 {
    grid-template-columns: minmax(0,1fr) 128px;
    width: calc(100% - 16px);
    border-radius: 18px;
  }

  .sto-mobile-booking-price-v18 strong {
    font-size: 1.05rem;
  }

  .sto-mobile-booking-button-v18 {
    padding-inline: 12px;
    font-size: .81rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sto-mobile-booking-dock-v18,
  .sto-mobile-booking-dock-v18.is-visible,
  .sto-booking-sidebar-v18 .sto-button,
  .sto-tour-page-v18 .sto-tour-gallery-thumbs .splide__slide {
    transition-duration: 80ms !important;
  }

  .sto-mobile-booking-dock-v18,
  .sto-mobile-booking-dock-v18.is-visible,
  .sto-booking-sidebar-v18 .sto-button:active {
    transform: none !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .sto-mobile-booking-dock-v18 {
    background: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

@media (prefers-contrast: more) {
  .sto-booking-sidebar-v18,
  .sto-mobile-booking-dock-v18,
  .sto-tour-page-v18 .sto-extra-option-v17 {
    border-color: #6e6e73;
  }
}

/* v1.9 / theme 1.2.3 — gallery proportion + sticky reliability pass.
   Apple principles: reduce visual dominance, keep the primary action available,
   use predictable platform behavior, and remove competing mobile controls. */

/* The legacy header globally assigns overflow-x:hidden to html + body. That creates
   a scrolling ancestor in some browsers and breaks position:sticky. On a single
   tour we use clip instead: it clips accidental horizontal overflow without
   becoming a scroll container. */
html.sto-tour-document,
html.sto-tour-document body.single-clubium_tour {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

html.sto-tour-document body.single-clubium_tour {
  height: auto !important;
  min-height: 100% !important;
}

.sto-tour-page-v19,
.sto-single-hero-v19,
.sto-single-content-v19,
.sto-single-content-v19 > .sto-container,
.sto-single-layout-v19,
.sto-booking-rail-v19 {
  overflow: visible !important;
  contain: none !important;
}

/* A calmer content width gives the gallery breathing room instead of letting it
   become the entire screen. */
@media (min-width: 992px) {
  .sto-tour-page-v19 .sto-single-hero-v19 > .sto-container,
  .sto-tour-page-v19 .sto-single-content-v19 > .sto-container {
    width: min(1040px, calc(100% - 48px));
  }

  .sto-tour-page-v19 .sto-single-intro h1 {
    max-width: 860px;
    font-size: clamp(2.38rem, 3.65vw, 3.55rem);
    line-height: 1.01;
    letter-spacing: -.044em;
  }

  .sto-single-layout-v19 {
    grid-template-columns: minmax(0, 1fr) 318px;
    grid-template-areas: "story booking";
    gap: 44px;
    align-items: stretch;
  }

  .sto-story-v19 {
    min-width: 0;
    max-width: 678px;
  }

  .sto-booking-rail-v19 {
    grid-area: booking;
    position: relative !important;
    align-self: stretch !important;
    min-height: 100% !important;
    height: 100% !important;
  }

  .sto-booking-sidebar-v19 {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 96px !important;
    align-self: flex-start !important;
    z-index: 30;
    max-height: calc(100svh - 116px);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
  }

  .sto-booking-sidebar-v19::-webkit-scrollbar {
    display: none;
  }
}

/* Main gallery: explicit visual height, independent from Splide's historic
   heightRatio. This keeps desktop cinematic without being oversized. */
.sto-tour-page-v19 .sto-single-media-v19 {
  height: clamp(390px, 40vw, 500px) !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  border-radius: 24px;
  background: #f5f5f7;
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.sto-tour-page-v19 .sto-tour-splide-main,
.sto-tour-page-v19 .sto-tour-splide-main > .splide__track,
.sto-tour-page-v19 .sto-tour-splide-main .splide__list,
.sto-tour-page-v19 .sto-tour-splide-main .splide__slide {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}

.sto-tour-page-v19 .sto-tour-splide-main > .splide__track {
  padding: 0 !important;
}

.sto-tour-page-v19 .sto-tour-splide-main .splide__slide {
  position: relative;
  overflow: hidden;
}

.sto-tour-page-v19 .sto-tour-splide-main .splide__slide > img,
.sto-tour-page-v19 .sto-single-media-v19 > img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.sto-tour-page-v19 .sto-single-gallery-v19 {
  gap: 11px;
}

.sto-tour-page-v19 .sto-tour-gallery-thumbs-v19 .splide__track {
  border-radius: 12px;
}

.sto-tour-page-v19 .sto-tour-gallery-thumbs-v19 .splide__slide {
  border-radius: 12px;
}

/* One clear persistent conversion surface on mobile. The separate site-wide
   WhatsApp bubble and Back-to-top control yield while the tour booking dock is active. */
@media (max-width: 991.98px) {
  html.sto-tour-document .clubium-floating-whatsapp {
    display: none !important;
  }

  .sto-single-layout-v19 {
    grid-template-columns: 1fr;
    grid-template-areas: "booking" "story";
    gap: 28px;
  }

  .sto-booking-rail-v19 {
    height: auto !important;
    min-height: 0 !important;
  }

  .sto-booking-sidebar-v19 {
    position: relative !important;
    top: auto !important;
    max-height: none;
    overflow: visible;
  }
}

@media (max-width: 767.98px) {
  .sto-tour-page-v19 .sto-single-hero-v19 > .sto-container,
  .sto-tour-page-v19 .sto-single-content-v19 > .sto-container {
    width: min(100% - 24px, 1040px);
  }

  .sto-tour-page-v19 .sto-single-intro-v19 {
    margin-bottom: 16px;
  }

  .sto-tour-page-v19 .sto-single-intro h1 {
    max-width: 100%;
    font-size: clamp(1.95rem, 8.7vw, 2.55rem);
    line-height: 1.02;
    letter-spacing: -.039em;
  }

  .sto-tour-page-v19 .sto-single-intro-meta {
    margin-top: 10px;
    font-size: .78rem;
    gap: 7px 12px;
  }

  .sto-tour-page-v19 .sto-single-media-v19 {
    height: clamp(250px, 68vw, 310px) !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    border-radius: 18px;
  }

  .sto-tour-page-v19 .sto-single-gallery-v19 {
    gap: 8px;
  }

  .sto-tour-page-v19 .sto-tour-gallery-thumbs-v19 .splide__slide {
    border-radius: 10px;
  }

  .sto-tour-page-v19 .sto-gallery-count {
    right: 11px;
    bottom: 11px;
    min-height: 30px;
    padding-inline: 9px;
    font-size: .68rem;
  }

  .sto-single-content-v19 {
    padding-top: 16px;
  }

  .sto-mobile-booking-dock-v19 {
    bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    width: calc(100% - 18px);
    max-width: 520px;
    min-height: 62px;
    border: 1px solid rgba(60,60,67,.12);
    border-radius: 18px;
    background: rgba(250,250,252,.95);
    box-shadow: 0 12px 34px rgba(0,0,0,.14), 0 1px 4px rgba(0,0,0,.04);
  }

  .sto-mobile-booking-button-v19 {
    min-height: 46px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .sto-mobile-booking-button-v19:active {
    transform: scale(.97);
    transition: transform 100ms ease-out;
  }
}

@media (hover: hover) and (pointer: fine) {
  .sto-tour-page-v19 .sto-tour-gallery-thumbs-v19 .splide__slide:hover {
    opacity: .9;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sto-tour-page-v19 .sto-tour-gallery-thumbs-v19 .splide__slide,
  .sto-mobile-booking-dock-v19,
  .sto-mobile-booking-button-v19 {
    transition-duration: 80ms !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .sto-mobile-booking-dock-v19 {
    background: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* Fallback for engines without overflow:clip. Sticky is more important than
   globally clipping a rare one-pixel horizontal overflow on this page. */
@supports not (overflow: clip) {
  html.sto-tour-document,
  html.sto-tour-document body.single-clubium_tour {
    overflow-x: visible !important;
  }
}

/* v2.0 / theme 1.2.4 — mobile gallery fidelity + deterministic desktop booking pin.
   Design goals: preserve the whole image on phones, keep facts linear and scannable,
   and use a measured fixed/contained booking rail where legacy theme overflow can
   defeat native position:sticky. */

/* The booking rail is the geometry source for the desktop pinning controller. */
@media (min-width: 992px) {
  .sto-single-layout-v20 {
    grid-template-columns: minmax(0, 1fr) 318px;
    grid-template-areas: "story booking";
    gap: 44px;
    align-items: stretch;
  }

  .sto-story-v20 {
    grid-area: story;
    min-width: 0;
  }

  .sto-booking-rail-v20 {
    grid-area: booking;
    position: relative !important;
    align-self: stretch !important;
    min-width: 0;
    min-height: 100%;
    overflow: visible !important;
  }

  .sto-booking-sidebar-v20 {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    margin: 0 !important;
    max-height: none;
    overflow: visible;
  }

  .sto-booking-sidebar-v20.is-fixed-v20 {
    position: fixed !important;
    top: var(--sto-sticky-top-v20, 20px) !important;
    left: var(--sto-sticky-left-v20, auto) !important;
    width: var(--sto-sticky-width-v20, 318px) !important;
    max-height: calc(100dvh - var(--sto-sticky-top-v20, 20px) - 16px);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
  }

  .sto-booking-sidebar-v20.is-fixed-v20::-webkit-scrollbar {
    display: none;
  }

  .sto-booking-sidebar-v20.is-at-end-v20 {
    position: absolute !important;
    top: var(--sto-sticky-end-v20, 0px) !important;
    left: 0 !important;
    width: 100% !important;
  }
}

/* Phone gallery: the media frame is deliberately landscape and the actual photo is
   contained instead of cropped. This prioritizes image fidelity over edge-to-edge fill. */
@media (max-width: 767.98px) {
  .sto-tour-page-v20 .sto-single-media-v20 {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 10 !important;
    border-radius: 18px;
    background: #f5f5f7;
  }

  .sto-tour-page-v20 .sto-single-media-v20 .sto-tour-splide-main,
  .sto-tour-page-v20 .sto-single-media-v20 .sto-tour-splide-main > .splide__track,
  .sto-tour-page-v20 .sto-single-media-v20 .sto-tour-splide-main .splide__list,
  .sto-tour-page-v20 .sto-single-media-v20 .sto-tour-splide-main .splide__slide {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  .sto-tour-page-v20 .sto-single-media-v20 .sto-tour-splide-main .splide__slide {
    background: #f5f5f7;
  }

  .sto-tour-page-v20 .sto-single-media-v20 .sto-tour-splide-main .splide__slide > img,
  .sto-tour-page-v20 .sto-single-media-v20 > img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #f5f5f7;
  }

  /* Duration, Pickup and Booking become three calm, full-width rows. */
  .sto-booking-sidebar-v20 .sto-booking-facts-v14 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 8px 20px 4px !important;
  }

  .sto-booking-sidebar-v20 .sto-booking-fact-v14 {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 11px !important;
    width: 100%;
    min-height: 58px;
    padding: 11px 0 !important;
    border-bottom: 1px solid rgba(60, 60, 67, .09) !important;
  }

  .sto-booking-sidebar-v20 .sto-booking-fact-v14:last-child {
    border-bottom: 0 !important;
  }

  .sto-booking-sidebar-v20 .sto-booking-fact-v14 > i {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .sto-booking-sidebar-v20 .sto-booking-fact-v14 span {
    font-size: .67rem;
    letter-spacing: .045em;
  }

  .sto-booking-sidebar-v20 .sto-booking-fact-v14 strong {
    margin-top: 3px;
    font-size: .91rem;
    line-height: 1.35;
  }

  /* On a tour detail page the persistent booking dock is the only floating
     conversion control. Hide legacy WhatsApp/back-to-top chrome decisively. */
  html.sto-tour-document body.single-clubium_tour a.clubium-floating-whatsapp,
  html.sto-tour-document body.single-clubium_tour .clubium-floating-whatsapp,
  html.sto-tour-document body.single-clubium_tour .back-top {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

@media (max-width: 430px) {
  .sto-tour-page-v20 .sto-single-media-v20 {
    aspect-ratio: 16 / 10 !important;
  }

  .sto-tour-page-v20 .sto-tour-gallery-thumbs-v20 .splide__slide {
    border-radius: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sto-booking-sidebar-v20,
  .sto-tour-page-v20 .sto-tour-gallery-thumbs-v20 .splide__slide {
    transition-duration: 80ms !important;
  }
}

/* v2.1 / theme 1.2.5 — mobile hero-gallery repair + portal-based desktop booking pin.
   Apple design goals: full-bleed spatially stable media, direct swipe behavior,
   predictable persistent booking, and no layout chrome fighting for attention. */

/* Gallery geometry: make every primary Splide slide own exactly one full media frame.
   This neutralizes inline/library widths that previously produced a side gutter on phones. */
.sto-tour-page-v21 .sto-single-media-v21,
.sto-tour-page-v21 .sto-tour-gallery-main,
.sto-tour-page-v21 .sto-tour-gallery-main > .splide__track,
.sto-tour-page-v21 .sto-tour-gallery-main .splide__list,
.sto-tour-page-v21 .sto-tour-gallery-main .splide__slide {
  min-width: 0 !important;
  max-width: 100% !important;
}

.sto-tour-page-v21 .sto-tour-gallery-main,
.sto-tour-page-v21 .sto-tour-gallery-main > .splide__track,
.sto-tour-page-v21 .sto-tour-gallery-main .splide__list {
  width: 100% !important;
  height: 100% !important;
}

.sto-tour-page-v21 .sto-tour-gallery-main > .splide__track {
  overflow: hidden !important;
}

.sto-tour-page-v21 .sto-tour-gallery-main .splide__list {
  align-items: stretch !important;
}

.sto-tour-page-v21 .sto-tour-gallery-main .splide__slide {
  flex: 0 0 100% !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.sto-tour-page-v21 .sto-tour-gallery-main .splide__slide > img,
.sto-tour-page-v21 .sto-single-media-v21 > img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  object-position: center center !important;
}

/* Desktop booking pin. While pinned the card is portaled to <body>, so legacy theme
   overflow/transform ancestors cannot redefine fixed positioning. */
@media (min-width: 992px) {
  .sto-single-layout-v21 {
    grid-template-columns: minmax(0,1fr) 318px;
    grid-template-areas: "story booking";
    gap: 44px;
    align-items: start;
  }

  .sto-story-v21 {
    grid-area: story;
    min-width: 0;
  }

  .sto-booking-rail-v21 {
    grid-area: booking;
    position: relative !important;
    align-self: start !important;
    min-width: 0;
    overflow: visible !important;
  }

  .sto-booking-sidebar-v21 {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    width: 100% !important;
    margin: 0 !important;
    transform: none !important;
  }

  body > .sto-booking-sidebar-v21.is-fixed-v21 {
    position: fixed !important;
    top: var(--sto-sticky-top-v21,20px) !important;
    left: var(--sto-sticky-left-v21,auto) !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--sto-sticky-width-v21,318px) !important;
    z-index: 1000 !important;
    max-height: calc(100dvh - var(--sto-sticky-top-v21,20px) - 16px);
    overflow: auto !important;
    overscroll-behavior: contain;
    scrollbar-width: none;
    box-shadow: 0 18px 54px rgba(0,0,0,.10),0 1px 2px rgba(0,0,0,.025);
  }

  body > .sto-booking-sidebar-v21.is-fixed-v21::-webkit-scrollbar {
    display: none;
  }

  .sto-booking-sidebar-v21.is-at-end-v21 {
    position: absolute !important;
    top: var(--sto-sticky-end-v21,0px) !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
  }
}

/* Phone hero gallery: use a calm landscape frame and fill it edge-to-edge. The full
   uncropped original remains available in the lightbox; the page hero is an editorial
   crop, which avoids the broken side gutter produced by object-fit:contain. */
@media (max-width: 767.98px) {
  .sto-tour-page-v21 .sto-single-media-v21 {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 10 !important;
    border-radius: 18px;
    background: #f5f5f7;
    overflow: hidden !important;
  }

  .sto-tour-page-v21 .sto-tour-gallery-main,
  .sto-tour-page-v21 .sto-tour-gallery-main > .splide__track,
  .sto-tour-page-v21 .sto-tour-gallery-main .splide__list,
  .sto-tour-page-v21 .sto-tour-gallery-main .splide__slide {
    width: 100% !important;
    height: 100% !important;
  }

  .sto-tour-page-v21 .sto-tour-gallery-main .splide__slide > img,
  .sto-tour-page-v21 .sto-single-media-v21 > img {
    object-fit: cover !important;
    object-position: center center !important;
    background: transparent !important;
  }

  .sto-tour-page-v21 .sto-single-gallery-v21 {
    gap: 8px;
  }

  .sto-tour-page-v21 .sto-tour-gallery-thumbs-v21 {
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .sto-tour-page-v21 .sto-tour-gallery-thumbs-v21 .splide__track {
    overflow: visible;
  }

  .sto-tour-page-v21 .sto-tour-gallery-thumbs-v21 .splide__slide {
    border-radius: 10px;
  }
}

@media (max-width: 430px) {
  .sto-tour-page-v21 .sto-single-media-v21 {
    aspect-ratio: 16 / 10 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sto-tour-page-v21 .sto-tour-gallery-main .splide__list,
  .sto-booking-sidebar-v21 {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  body > .sto-booking-sidebar-v21.is-fixed-v21 {
    background: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

@media (prefers-contrast: more) {
  .sto-booking-sidebar-v21 {
    border-color: #6e6e73;
  }
}

/* ==========================================================
   v1.2.6 — Mobile persistent booking dock
   Apple-style hierarchy: price context + one primary action +
   a compact secondary WhatsApp action. The site-wide floating
   WhatsApp bubble remains suppressed on this page to avoid two
   competing fixed controls.
   ========================================================== */
@media (max-width: 991.98px) {
  .sto-mobile-booking-dock-v22 {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: calc(10px + env(safe-area-inset-bottom)) !important;
    z-index: 1065 !important;
    display: grid !important;
    grid-template-columns: minmax(76px,.72fr) minmax(0,1.45fr) !important;
    align-items: center !important;
    gap: 10px !important;
    width: min(560px, calc(100% - 18px)) !important;
    padding: 8px 8px 8px 14px !important;
    border: 1px solid rgba(60,60,67,.16) !important;
    border-radius: 20px !important;
    background: rgba(250,250,252,.94) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 2px 8px rgba(0,0,0,.05) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(-50%, calc(100% + 28px), 0) !important;
    transition: transform 240ms cubic-bezier(.22,1,.36,1), opacity 180ms ease-out, visibility 0s linear 240ms !important;
  }

  .sto-mobile-booking-dock-v22.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(-50%, 0, 0) !important;
    transition: transform 240ms cubic-bezier(.22,1,.36,1), opacity 180ms ease-out, visibility 0s linear 0s !important;
  }

  .sto-mobile-booking-price-v22 {
    min-width: 0;
  }

  .sto-mobile-booking-price-v22 > span {
    display: block;
    margin: 0 0 2px;
    color: #8e8e93;
    font-size: .62rem;
    line-height: 1.15;
    font-weight: 740;
    letter-spacing: .055em;
    text-transform: uppercase;
  }

  .sto-mobile-booking-price-v22 > div {
    display: flex;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
  }

  .sto-mobile-booking-price-v22 strong {
    color: var(--sto-green);
    font-size: 1.02rem;
    line-height: 1.1;
    font-weight: 820;
    letter-spacing: -.025em;
    white-space: nowrap;
  }

  .sto-mobile-booking-price-v22 small {
    color: #6e6e73;
    font-size: .67rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .sto-mobile-booking-action-v22 {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 46px !important;
    align-items: center !important;
    gap: 7px !important;
    min-width: 0;
  }

  .sto-mobile-booking-button-v22 {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #ff0f17 !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: .82rem !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: transform 100ms ease-out, background-color 160ms ease-out !important;
  }

  .sto-mobile-booking-button-v22:active {
    transform: scale(.97) !important;
  }

  .sto-mobile-booking-whatsapp-v22 {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(0,151,0,.18);
    border-radius: 14px;
    background: rgba(0,151,0,.08);
    color: #009700 !important;
    text-decoration: none !important;
    font-size: 1.22rem;
    line-height: 1;
    transition: transform 100ms ease-out, background-color 160ms ease-out;
  }

  .sto-mobile-booking-whatsapp-v22:active {
    transform: scale(.94);
  }

  .sto-tour-dock-visible .sto-single-content-v22 {
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 370px) {
  .sto-mobile-booking-dock-v22 {
    grid-template-columns: minmax(70px,.68fr) minmax(0,1.5fr) !important;
    gap: 7px !important;
    padding-left: 11px !important;
  }

  .sto-mobile-booking-action-v22 {
    grid-template-columns: minmax(0,1fr) 44px !important;
    gap: 6px !important;
  }

  .sto-mobile-booking-button-v22,
  .sto-mobile-booking-whatsapp-v22 {
    min-height: 44px !important;
    height: 44px;
  }

  .sto-mobile-booking-button-v22 {
    padding-inline: 10px !important;
    font-size: .78rem !important;
  }
}

@media (hover:hover) and (pointer:fine) and (max-width:991.98px) {
  .sto-mobile-booking-whatsapp-v22:hover {
    background: rgba(0,151,0,.13);
    color: #007f00 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sto-mobile-booking-dock-v22,
  .sto-mobile-booking-dock-v22.is-visible,
  .sto-mobile-booking-button-v22,
  .sto-mobile-booking-whatsapp-v22 {
    transition: none !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .sto-mobile-booking-dock-v22 {
    background: #fff !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

@media (prefers-contrast: more) {
  .sto-mobile-booking-dock-v22 {
    border-color: #6e6e73 !important;
  }

  .sto-mobile-booking-whatsapp-v22 {
    border-color: #009700;
  }
}

/* ==========================================================
   Theme 1.2.19 — Single Tour gallery containment hotfix
   Scope: media/gallery geometry only. No booking, sticky, content,
   pricing, spacing, or tour-data behavior is changed.
   ---------------------------------------------------------- */

/* Keep every tour hero gallery inside the same content rail, regardless of
   image count or intrinsic image dimensions. This specifically prevents
   long galleries (for example the Nizwa mountain tours) from widening the
   document or pushing the primary media frame outside its container. */
.sto-tour-page-v22 .sto-single-gallery,
.sto-tour-page-v22 .sto-single-media,
.sto-tour-page-v22 .sto-tour-gallery-main,
.sto-tour-page-v22 .sto-tour-gallery-main > .splide__track,
.sto-tour-page-v22 .sto-tour-gallery-main .splide__list,
.sto-tour-page-v22 .sto-tour-gallery-main .splide__slide,
.sto-tour-page-v22 .sto-tour-gallery-thumbs {
  box-sizing: border-box;
  min-width: 0 !important;
  max-width: 100% !important;
}

.sto-tour-page-v22 .sto-single-gallery,
.sto-tour-page-v22 .sto-single-media,
.sto-tour-page-v22 .sto-tour-gallery-main {
  width: 100% !important;
}

.sto-tour-page-v22 .sto-single-media,
.sto-tour-page-v22 .sto-tour-gallery-main > .splide__track {
  overflow: hidden !important;
}

/* Splide lists can become wider than the viewport when a tour has many
   photos. The track, not the document, owns that overflow. */
.sto-tour-page-v22 .sto-tour-gallery-thumbs {
  width: 100% !important;
  overflow: hidden !important;
}

.sto-tour-page-v22 .sto-tour-gallery-thumbs > .splide__track {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

/* The hero itself always consumes one frame only; intrinsic image sizes
   cannot expand the slide or the page. */
.sto-tour-page-v22 .sto-tour-gallery-main .splide__slide {
  width: 100% !important;
  flex: 0 0 100% !important;
  overflow: hidden !important;
}

.sto-tour-page-v22 .sto-tour-gallery-main .splide__slide > img,
.sto-tour-page-v22 .sto-single-media > img {
  max-width: 100% !important;
}

/* v2.3 / theme 1.13 — Single Tour optional extras refinement.
   Apple-inspired principles applied to web: one clear price statement, grouped hierarchy,
   readable type, restrained accent color, and responsive spacing without decorative noise. */
.sto-tour-page-v22 .sto-extras-v23 {
  display: block;
  padding: 28px;
  margin-bottom: 42px;
  border: 1px solid rgba(60,60,67,.10);
  border-radius: 24px;
  background: #f7f7f8;
}

.sto-tour-page-v22 .sto-extras-copy-v23 {
  max-width: 720px;
  margin-bottom: 22px;
}

.sto-tour-page-v22 .sto-extras-copy-v23 h2 {
  margin: 7px 0 10px;
}

.sto-tour-page-v22 .sto-extras-copy-v23 p {
  max-width: 680px;
  margin: 0;
  color: #6e6e73;
  font-size: 1rem;
  line-height: 1.62;
  letter-spacing: -.006em;
}

.sto-tour-page-v22 .sto-extras-options-v23 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.sto-tour-page-v22 .sto-extra-option-v23 {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 96px;
  padding: 19px 20px;
  border: 1px solid rgba(60,60,67,.10);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.025), 0 10px 28px rgba(0,0,0,.035);
}

.sto-tour-page-v22 .sto-extra-icon-v23 {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #eef8ef;
  color: var(--sto-green);
  font-size: .82rem;
}

.sto-tour-page-v22 .sto-extra-copy-v23 {
  min-width: 0;
}

.sto-tour-page-v22 .sto-extra-title-v23 {
  display: block;
  margin: 0;
  color: #1d1d1f;
  font-size: 1.02rem;
  line-height: 1.38;
  font-weight: 760;
  letter-spacing: -.014em;
  text-wrap: balance;
}

.sto-tour-page-v22 .sto-extra-cost-v23 {
  color: var(--sto-green);
  white-space: normal;
}

.sto-tour-page-v22 .sto-extra-copy-v23 small {
  display: block;
  margin-top: 7px;
  color: #6e6e73;
  font-size: .78rem;
  line-height: 1.45;
  font-weight: 590;
  letter-spacing: -.002em;
}

/* The v23 card carries its complete cost in the title, so the previous trailing
   price column is intentionally removed rather than visually duplicated. */
.sto-tour-page-v22 .sto-extra-option-v23 .sto-extra-price-v17 {
  display: none !important;
}

@media (max-width: 767.98px) {
  .sto-tour-page-v22 .sto-extras-v23 {
    padding: 22px;
    margin-bottom: 34px;
    border-radius: 22px;
  }

  .sto-tour-page-v22 .sto-extras-copy-v23 {
    margin-bottom: 18px;
  }

  .sto-tour-page-v22 .sto-extras-options-v23 {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .sto-tour-page-v22 .sto-extra-option-v23 {
    min-height: 88px;
    padding: 16px 17px;
    border-radius: 18px;
  }
}

@media (max-width: 430px) {
  .sto-tour-page-v22 .sto-extras-v23 {
    margin-inline: -2px;
    padding: 19px 16px;
    border-radius: 20px;
  }

  .sto-tour-page-v22 .sto-extras-copy-v23 p {
    font-size: .96rem;
    line-height: 1.58;
  }

  .sto-tour-page-v22 .sto-extra-option-v23 {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    min-height: 84px;
    padding: 15px;
    border-radius: 17px;
  }

  .sto-tour-page-v22 .sto-extra-icon-v23 {
    width: 40px;
    height: 40px;
    border-radius: 13px;
  }

  .sto-tour-page-v22 .sto-extra-title-v23 {
    font-size: .97rem;
    line-height: 1.4;
  }

  .sto-tour-page-v22 .sto-extra-copy-v23 small {
    margin-top: 6px;
    font-size: .75rem;
  }
}

@media (prefers-contrast: more) {
  .sto-tour-page-v22 .sto-extras-v23,
  .sto-tour-page-v22 .sto-extra-option-v23 {
    border-color: #6e6e73;
  }

  .sto-tour-page-v22 .sto-extra-copy-v23 p,
  .sto-tour-page-v22 .sto-extra-copy-v23 small {
    color: #3a3a3c;
  }
}



/* v2.4 / theme 1.14 — Single Tour headline + optional extras cleanup.
   Goals: slightly smaller page title, eliminate add-on price duplication from source labels,
   and give every extra card a cleaner single-column hierarchy that holds long names gracefully. */
.sto-tour-page-v22 .sto-single-intro h1 {
  max-width: 800px;
  font-size: clamp(2.1rem, 3.15vw, 3.08rem);
  line-height: 1.04;
  letter-spacing: -.041em;
}

.sto-tour-page-v22 .sto-extras-options-v23 {
  grid-template-columns: 1fr;
  gap: 12px;
}

.sto-tour-page-v22 .sto-extra-option-v24 {
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 15px;
  align-items: start;
  min-height: 0;
  padding: 18px 19px;
}

.sto-tour-page-v22 .sto-extra-icon-v23 {
  width: 48px;
  height: 48px;
  border-radius: 15px;
}

.sto-tour-page-v22 .sto-extra-copy-v24 {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sto-tour-page-v22 .sto-extra-title-v24 {
  display: block;
  margin: 0;
  color: #1d1d1f;
  font-size: 1.02rem;
  line-height: 1.38;
  font-weight: 760;
  letter-spacing: -.013em;
  text-wrap: pretty;
}

.sto-tour-page-v22 .sto-extra-cost-v24 {
  display: block;
  color: var(--sto-green);
  font-size: .95rem;
  line-height: 1.35;
  font-weight: 760;
  letter-spacing: -.01em;
  white-space: normal;
}

.sto-tour-page-v22 .sto-extra-copy-v24 small {
  margin-top: 2px;
}

@media (max-width: 767.98px) {
  .sto-tour-page-v22 .sto-single-intro h1 {
    max-width: 100%;
    font-size: clamp(1.82rem, 7.8vw, 2.48rem);
    line-height: 1.05;
    letter-spacing: -.036em;
  }

  .sto-tour-page-v22 .sto-extra-option-v24 {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
  }

  .sto-tour-page-v22 .sto-extra-icon-v23 {
    width: 42px;
    height: 42px;
    border-radius: 13px;
  }

  .sto-tour-page-v22 .sto-extra-title-v24 {
    font-size: .97rem;
    line-height: 1.4;
  }

  .sto-tour-page-v22 .sto-extra-cost-v24 {
    font-size: .89rem;
  }
}


/* v2.5 / theme 1.15 — Single Tour heading scale refinement.
   The main tour title should feel calmer, visually lighter, and preferably read as one line on desktop.
   Section H1-level headings are stepped down by one size to reduce visual heaviness. */
.sto-tour-page-v22 .sto-single-intro-copy {
  max-width: 100%;
}

.sto-tour-page-v22 .sto-single-intro h1 {
  max-width: none;
  font-size: clamp(1.96rem, 2.58vw, 2.72rem);
  line-height: 1.06;
  font-weight: 770;
  letter-spacing: -.036em;
  text-wrap: pretty;
}

.sto-tour-page-v22 .sto-content-section-v14 h2 {
  font-size: clamp(1.5rem, 1.88vw, 1.82rem);
  line-height: 1.12;
  letter-spacing: -.026em;
}

@media (min-width: 1200px) {
  .sto-tour-page-v22 .sto-single-intro h1 {
    white-space: nowrap;
  }
}

@media (max-width: 991.98px) {
  .sto-tour-page-v22 .sto-single-intro h1 {
    white-space: normal;
  }
}

@media (max-width: 767.98px) {
  .sto-tour-page-v22 .sto-single-intro h1 {
    max-width: 100%;
    font-size: clamp(1.72rem, 6.9vw, 2.2rem);
    line-height: 1.08;
    letter-spacing: -.03em;
    white-space: normal;
  }

  .sto-tour-page-v22 .sto-content-section-v14 h2 {
    font-size: clamp(1.34rem, 5.2vw, 1.62rem);
    line-height: 1.14;
  }
}


/* v2.6 / theme 1.16 — booking card visual balance + Optional Extras centering.
   Keeps the conversion hierarchy strong while matching the calmer Single Tour type scale. */
.sto-tour-page-v22 .sto-booking-sidebar-v22 {
  border: 1px solid rgba(60,60,67,.11);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(0,0,0,.065), 0 1px 2px rgba(0,0,0,.025);
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-price-v14 {
  padding: 21px 22px 17px;
  border-bottom-color: rgba(60,60,67,.10);
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-eyebrow {
  margin-bottom: 6px;
  color: #8e8e93;
  font-size: .65rem;
  line-height: 1.2;
  font-weight: 760;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 {
  gap: 6px;
  align-items: baseline;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 strong {
  font-size: 1.82rem;
  line-height: 1;
  font-weight: 810;
  letter-spacing: -.036em;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 span {
  color: #515154;
  font-size: .8rem;
  line-height: 1.25;
  font-weight: 690;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-price-v14 small {
  margin-top: 7px;
  color: #6e6e73;
  font-size: .75rem;
  line-height: 1.45;
  font-weight: 610;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-facts-v14 {
  padding: 8px 22px 4px;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-fact-v14 {
  grid-template-columns: 30px minmax(0,1fr);
  gap: 11px;
  padding: 11px 0;
  min-height: 54px;
  border-bottom-color: rgba(60,60,67,.085);
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-fact-v14 > i {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: #f5f5f7;
  color: #515154;
  font-size: .74rem;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-fact-v14 span {
  font-size: .62rem;
  letter-spacing: .052em;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-fact-v14 strong {
  margin-top: 2px;
  font-size: .88rem;
  line-height: 1.34;
  font-weight: 710;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-actions-v14 {
  gap: 9px;
  padding: 15px 22px 8px;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-button {
  min-height: 46px;
  border-radius: 15px;
  font-size: .8rem;
  font-weight: 760;
  box-shadow: none;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-assurance-v16 {
  padding: 7px 22px 18px;
  font-size: .68rem;
}

/* The plus control and its pale-green container sit on the exact visual center
   of each white add-on card, even when the add-on title wraps to several lines. */
.sto-tour-page-v22 .sto-extra-option-v24 {
  align-items: center;
}

.sto-tour-page-v22 .sto-extra-icon-v23 {
  align-self: center;
  justify-self: center;
  flex: 0 0 auto;
}

@media (max-width: 991.98px) {
  .sto-tour-page-v22 .sto-booking-sidebar-v22 {
    box-shadow: 0 8px 24px rgba(0,0,0,.055), 0 1px 2px rgba(0,0,0,.02);
  }
}

@media (max-width: 767.98px) {
  .sto-tour-page-v22 .sto-booking-sidebar-v22 {
    border-radius: 20px;
  }

  .sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-price-v14 {
    padding: 19px 20px 16px;
  }

  .sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 strong {
    font-size: 1.68rem;
  }

  .sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-facts-v14 {
    padding: 7px 20px 3px !important;
  }

  .sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-actions-v14 {
    padding: 14px 20px 7px;
  }

  .sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-booking-assurance-v16 {
    padding: 7px 20px 17px;
  }
}


/* v2.7 / theme 1.17 — Tour Booking reliability pass.
   Fixes the travel-date picker, keeps zero-priced add-ons out of customer-facing UI,
   and makes the desktop booking summary behave like the proven Single Tour sticky price card. */
html.sto-booking-document,
html.sto-booking-document body {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

html.sto-booking-document body {
  height: auto !important;
  min-height: 100% !important;
}

.sto-booking-page-v17,
.sto-booking-page-v17 > .sto-container,
.sto-booking-page-v17 .sto-booking-layout {
  overflow: visible !important;
  contain: none !important;
}

.sto-booking-page-v17 .sto-travel-date-picker,
.sto-booking-page-v17 .sto-travel-date-picker + .flatpickr-mobile,
.sto-booking-page-v17 .sto-field .flatpickr-input {
  cursor: pointer;
}

.sto-booking-page-v17 .sto-field .flatpickr-input[readonly] {
  background: #fff;
  color: var(--sto-ink);
}

@media (min-width: 992px) {
  .sto-booking-page-v17 .sto-booking-layout {
    align-items: stretch;
  }

  .sto-booking-page-v17 .sto-booking-summary {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 96px !important;
    align-self: flex-start !important;
    z-index: 20;
    width: 100%;
    height: max-content;
    max-height: calc(100svh - 116px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
    border: 1px solid rgba(60,60,67,.11);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(0,0,0,.065), 0 1px 2px rgba(0,0,0,.025);
  }

  .sto-booking-page-v17 .sto-booking-summary::-webkit-scrollbar {
    display: none;
  }

  .sto-booking-page-v17 .sto-summary-media {
    height: 156px;
  }

  .sto-booking-page-v17 .sto-summary-body {
    padding: 19px 20px 20px;
  }

  .sto-booking-page-v17 .sto-summary-total strong {
    font-size: 1.38rem;
    font-weight: 810;
    letter-spacing: -.03em;
  }

  .sto-booking-page-v17 .sto-payment-actions .sto-button {
    min-height: 46px;
    border-radius: 15px;
    font-size: .8rem;
    box-shadow: none;
  }
}

@media (max-width: 991.98px) {
  .sto-booking-page-v17 .sto-booking-summary {
    position: static !important;
    top: auto !important;
    max-height: none;
    overflow: hidden;
  }
}


/* v1.18 — Booking assurance cleanup + Tour archive card refinement.
   Goals: cleaner booking reassurance line, stronger archive pricing,
   duration badge on image instead of a USD badge, and equal-height professional cards. */
.sto-booking-page-v17 .sto-summary-assurance {
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(60,60,67,.08);
  border-radius: 14px;
  background: #f7faf7;
  text-align: left;
}

.sto-booking-page-v17 .sto-summary-assurance i {
  flex: 0 0 auto;
  margin-top: 2px;
  font-size: .9rem;
}

.sto-booking-page-v17 .sto-summary-assurance-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.sto-booking-page-v17 .sto-summary-assurance-copy strong {
  color: #1d1d1f;
  font-size: .76rem;
  line-height: 1.35;
  font-weight: 790;
  letter-spacing: -.01em;
}

.sto-booking-page-v17 .sto-summary-assurance-copy span {
  color: #667085;
  font-size: .72rem;
  line-height: 1.45;
  font-weight: 680;
}

.sto-tour-grid {
  align-items: stretch;
}

.sto-tour-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.sto-tour-card-badges {
  align-items: flex-start;
}

.sto-tour-card-badges .sto-chip i {
  font-size: .72rem;
}

.sto-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 132px;
}

.sto-card-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.32em * 2);
}

.sto-card-meta {
  margin-top: auto;
  min-height: 20px;
}

.sto-card-footer {
  margin-top: auto;
  align-items: center;
  padding: 15px 18px 18px;
}

.sto-card-footer > div {
  min-width: 0;
}

.sto-tour-card .sto-price-eyebrow {
  margin-bottom: 4px;
  color: #667085;
  font-size: .68rem;
  font-weight: 760;
  text-transform: none;
}

.sto-tour-card .sto-price {
  color: var(--sto-green);
  font-size: 1.32rem;
  line-height: 1.02;
  font-weight: 920;
  letter-spacing: -.03em;
}

.sto-tour-card .sto-price small {
  font-size: .78rem;
  color: #667085;
  font-weight: 760;
}

.sto-tour-card .sto-price-note {
  display: none !important;
}

@media (max-width: 991.98px) {
  .sto-card-body {
    min-height: 124px;
  }
}

@media (max-width: 767.98px) {
  .sto-card-body {
    min-height: auto;
  }

  .sto-tour-card .sto-price {
    font-size: 1.22rem;
  }

  .sto-booking-page-v17 .sto-summary-assurance {
    padding: 11px 12px;
  }
}


/* v1.20 — Tour Booking heading alignment with Single Tour.
   Removes the redundant intro copy/price and uses the same calm heading scale as Single Tour. */
.sto-booking-page-v17 .sto-booking-title-row-v20 {
  display: block;
  margin-top: 12px;
}

.sto-booking-page-v17 .sto-booking-title-copy-v20 {
  max-width: 100%;
}

.sto-booking-page-v17 .sto-booking-title-row-v20 h1 {
  max-width: none;
  margin: 0;
  color: var(--sto-ink);
  font-size: clamp(1.96rem, 2.58vw, 2.72rem);
  line-height: 1.06;
  font-weight: 770;
  letter-spacing: -.036em;
  text-wrap: pretty;
}

@media (min-width: 1200px) {
  .sto-booking-page-v17 .sto-booking-title-row-v20 h1 {
    white-space: nowrap;
  }
}

@media (max-width: 991.98px) {
  .sto-booking-page-v17 .sto-booking-title-row-v20 h1 {
    white-space: normal;
  }
}

@media (max-width: 767.98px) {
  .sto-booking-page-v17 .sto-booking-title-row-v20 {
    margin-top: 10px;
  }

  .sto-booking-page-v17 .sto-booking-title-row-v20 h1 {
    max-width: 100%;
    font-size: clamp(1.72rem, 6.9vw, 2.2rem);
    line-height: 1.08;
    letter-spacing: -.03em;
    white-space: normal;
  }
}

/* v1.22 — Timed Tour Promotions
   Additive marketing layer: active discount label, expiry countdown, original/sale price,
   and responsive promo surfaces across Tour archive, Single Tour and Tour Booking. */
.sto-tour-promo-badge {
  position: absolute;
  left: 13px;
  bottom: 13px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 9px;
  max-width: calc(100% - 26px);
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 13px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 8px 24px rgba(18,24,38,.12);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  backdrop-filter: blur(14px) saturate(150%);
  color: #1d1d1f;
  pointer-events: none;
}

.sto-tour-promo-badge.is-featured {
  border-color: rgba(255,204,0,.72);
  box-shadow: 0 8px 24px rgba(18,24,38,.12), inset 0 0 0 1px rgba(255,204,0,.14);
}

.sto-tour-promo-label,
.sto-tour-promo-time {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.sto-tour-promo-label {
  color: #b42318;
  font-size: .69rem;
  line-height: 1.2;
  font-weight: 860;
}

.sto-tour-promo-label i { font-size: .66rem; }

.sto-tour-promo-time {
  padding-left: 9px;
  border-left: 1px solid rgba(60,60,67,.13);
  color: #667085;
  font-size: .65rem;
  font-weight: 700;
}

.sto-tour-promo-time strong {
  color: #344054;
  font-weight: 820;
}

.sto-price-original {
  display: block;
  width: max-content;
  margin: 0 0 4px;
  color: #98a2b3;
  font-size: .78rem;
  line-height: 1.1;
  font-weight: 720;
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
}

.sto-price-original-single {
  margin-top: 5px;
  margin-bottom: 5px;
  font-size: .86rem;
}

.sto-promo-panel {
  margin: 0 0 16px;
  padding: 12px 13px;
  border: 1px solid rgba(180,35,24,.13);
  border-radius: 15px;
  background: #fff8f7;
}

.sto-promo-panel.is-featured {
  border-color: rgba(255,204,0,.58);
  background: linear-gradient(180deg,#fffdf3,#fff9f7);
}

.sto-promo-panel-head,
.sto-promo-panel-time {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.sto-promo-panel-head > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: #1d1d1f;
  font-size: .76rem;
  line-height: 1.35;
  font-weight: 800;
}

.sto-promo-panel-head > span i {
  flex: 0 0 auto;
  color: #b42318;
  font-size: .72rem;
}

.sto-promo-panel-head > strong {
  flex: 0 0 auto;
  color: #b42318;
  font-size: .72rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .025em;
}

.sto-promo-panel-time {
  margin-top: 7px;
  color: #667085;
  font-size: .68rem;
  line-height: 1.35;
  font-weight: 680;
}

.sto-promo-panel-time > span,
.sto-promo-panel-time > small {
  min-width: 0;
}

.sto-promo-panel-time strong {
  color: #344054;
  font-weight: 820;
}

.sto-promo-panel-time small {
  color: #8a93a2;
  font-size: .64rem;
  font-weight: 650;
  text-align: right;
}

.sto-promo-panel-booking {
  margin-top: 14px;
  margin-bottom: 0;
}

.sto-promo-panel-legacy {
  margin-bottom: 14px;
}

.sto-promo-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 16px;
  padding: 7px 10px;
  border: 1px solid rgba(180,35,24,.12);
  border-radius: 999px;
  background: #fff8f7;
  color: #b42318;
  font-size: .72rem;
  font-weight: 760;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .sto-tour-promo-badge {
    left: 10px;
    right: 10px;
    bottom: 10px;
    max-width: none;
    justify-content: space-between;
    gap: 7px;
    padding: 8px 9px;
    border-radius: 12px;
  }

  .sto-tour-promo-label { font-size: .66rem; }
  .sto-tour-promo-time { font-size: .62rem; }

  .sto-promo-panel {
    padding: 11px 12px;
    border-radius: 14px;
  }

  .sto-promo-panel-time {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .sto-promo-panel-time small { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .sto-tour-promo-badge,
  .sto-promo-panel { scroll-behavior: auto; }
}


/* v1.26 — Single Tour dynamic price scale fix.
   The currency renderer inserts .clubium-dynamic-price as a nested span inside the
   main price <strong>. Earlier generic descendant styling for .sto-price-v14 span
   unintentionally reduced that value to the small unit size. Keep only the unit
   small and let the converted amount inherit the intended primary price scale. */
.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 strong {
  font-size: 2.08rem;
  line-height: .98;
  font-weight: 840;
  letter-spacing: -.04em;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 strong .clubium-dynamic-price {
  display: inline;
  color: inherit;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  white-space: nowrap;
}

.sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 > span {
  color: #515154;
  font-size: .8rem;
  line-height: 1.25;
  font-weight: 690;
}

@media (max-width: 767.98px) {
  .sto-tour-page-v22 .sto-booking-sidebar-v22 .sto-price-v14 strong {
    font-size: 1.9rem;
  }
}

/* ==========================================================
   Clubium service booking polish — v1.39
   Car Booking + Visa Booking only.
   Visual parity with Tour Booking; form/payment logic unchanged.
   ========================================================== */
.sto-service-booking-page{
  color:var(--sto-ink);
  background:#fff;
}
.sto-service-booking-page *{box-sizing:border-box}
.sto-service-booking-page a{text-decoration:none}

.sto-service-booking-page .container{
  width:min(1180px,calc(100% - 32px));
  max-width:none;
  margin-inline:auto;
}

.sto-service-booking-head{
  padding:26px 0 20px!important;
  border-bottom:1px solid #f0f2f4;
}
.sto-service-booking-head .row{margin-top:0!important}
.sto-service-booking-hero{
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
  padding:0!important;
}
.sto-service-booking-hero .card-body{padding:0!important}
.sto-service-booking-hero .row{--bs-gutter-x:0}
.sto-service-booking-hero .col-sm-9{width:100%;flex:0 0 100%;max-width:100%}
.sto-service-booking-hero .col-sm-3{display:none!important}
.sto-service-booking-hero .breadcrumb{
  margin:0 0 10px!important;
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--sto-muted);
  font-size:.78rem;
  font-weight:700;
}
.sto-service-booking-hero .breadcrumb-item,
.sto-service-booking-hero .breadcrumb-item a{color:var(--sto-muted)!important}
.sto-service-booking-hero .breadcrumb-item.active{color:#8992a3!important}
.sto-service-booking-hero h1{
  margin:0!important;
  color:var(--sto-ink)!important;
  font-size:clamp(1.72rem,3vw,2.35rem)!important;
  line-height:1.08!important;
  font-weight:880!important;
  letter-spacing:-.035em!important;
}

.sto-service-booking-content{padding:0!important}
.sto-service-booking-form > .row{
  --bs-gutter-x:28px;
  --bs-gutter-y:28px;
  padding:34px 0 90px;
  align-items:flex-start;
}
.sto-service-booking-main > .vstack{
  gap:18px!important;
}
.sto-service-booking-main > .vstack > div{
  margin:0!important;
  padding:24px;
  border:1px solid var(--sto-line);
  border-radius:22px;
  background:#fff;
}
.sto-service-booking-main > .vstack > div > h4{
  margin:0 0 17px!important;
  color:var(--sto-ink);
  font-size:1.08rem;
  line-height:1.35;
  font-weight:850;
  letter-spacing:-.015em;
}
.sto-service-booking-main > .vstack > div > h4 + .alert{
  margin-top:-4px;
}
.sto-service-booking-main > .vstack > div > .card{
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.sto-service-booking-main > .vstack > div > .card > .card-body{
  padding:0!important;
}
.sto-service-booking-page .form-label{
  margin-bottom:7px;
  color:#475467;
  font-size:.76rem;
  font-weight:800;
}
.sto-service-booking-page .form-control,
.sto-service-booking-page .form-select,
.sto-service-booking-page input[type="text"],
.sto-service-booking-page input[type="email"],
.sto-service-booking-page input[type="tel"],
.sto-service-booking-page input[type="number"],
.sto-service-booking-page input[type="date"],
.sto-service-booking-page textarea,
.sto-service-booking-page select{
  min-height:48px;
  border:1px solid #d9dee7!important;
  border-radius:13px!important;
  background:#fff!important;
  color:var(--sto-ink)!important;
  box-shadow:none!important;
  font-size:.88rem;
  transition:border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease;
}
.sto-service-booking-page textarea{min-height:112px;padding-top:12px}
.sto-service-booking-page .form-control:focus,
.sto-service-booking-page .form-select:focus,
.sto-service-booking-page input:focus,
.sto-service-booking-page textarea:focus,
.sto-service-booking-page select:focus{
  border-color:var(--sto-green)!important;
  box-shadow:0 0 0 3px rgba(0,153,0,.08)!important;
}
.sto-service-booking-page .form-control-bg-light{background:transparent!important}
.sto-service-booking-page .form-icon-input .form-icon{color:#98a2b3}
.sto-service-booking-page .alert{
  border:1px solid #dce8ef!important;
  border-radius:14px!important;
  background:#f7fbfd!important;
  color:#465467!important;
  font-size:.82rem;
  line-height:1.55;
}
.sto-service-booking-page .text-danger{font-size:.72rem!important}

.sto-service-booking-page .payment-radio-box{
  margin-bottom:10px;
  padding:14px 15px;
  border:1px solid var(--sto-line)!important;
  border-radius:14px!important;
  background:#fff;
  transition:border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease;
}
.sto-service-booking-page .payment-radio-box:hover{
  border-color:#cdd5df!important;
  background:#fbfcfb!important;
}
.sto-service-booking-page .payment-radio-box:has(input:checked){
  border-color:rgba(0,153,0,.42)!important;
  box-shadow:0 0 0 3px rgba(0,153,0,.06);
  background:#f8fbf8!important;
}
.sto-service-booking-page .payment-radio-box input:checked+label{color:var(--sto-ink)!important}

.sto-service-booking-page #btn-paymob,
.sto-service-booking-page #btn-whatsapp{
  min-height:48px;
  border:0!important;
  border-radius:999px!important;
  font-size:.84rem;
  font-weight:820;
  transition:transform 140ms ease-out,box-shadow 180ms ease-out,background-color 180ms ease-out;
}
.sto-service-booking-page #btn-paymob:active,
.sto-service-booking-page #btn-whatsapp:active{transform:scale(.98)}
.sto-service-booking-page #btn-paymob{
  background:var(--sto-red)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(255,15,23,.18)!important;
}
.sto-service-booking-page #btn-paymob:hover{background:var(--sto-red-dark)!important}
.sto-service-booking-page #btn-whatsapp{
  background:var(--sto-green)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(0,153,0,.16)!important;
}
.sto-service-booking-page #btn-whatsapp:hover{background:var(--sto-green-dark)!important}

.sto-service-booking-sidebar .sto-service-summary-stack{
  top:104px!important;
  gap:18px!important;
}
.sto-service-booking-sidebar .card{
  overflow:hidden;
  margin:0!important;
  border:1px solid var(--sto-line)!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:0 16px 40px rgba(18,24,38,.07)!important;
}
.sto-service-booking-sidebar .card > .bg-light{
  height:170px!important;
  padding:18px!important;
  border-radius:0!important;
  background:#f3f5f4!important;
}
.sto-car-booking-page .sto-service-booking-sidebar .card > .bg-light img{
  width:100%;
  height:100%;
  max-height:none!important;
  object-fit:contain!important;
}
.sto-visa-booking-page .sto-service-booking-sidebar .card > .bg-light img{
  max-width:165px;
  max-height:92px!important;
  object-fit:contain;
  border:1px solid #e5e8ec!important;
  border-radius:10px!important;
  box-shadow:0 8px 22px rgba(18,24,38,.08)!important;
}
.sto-service-booking-sidebar .card-body{padding:20px!important}
.sto-service-booking-sidebar .card-title{
  margin:0 0 8px!important;
  color:var(--sto-ink)!important;
  font-size:1.03rem!important;
  line-height:1.35;
  font-weight:850!important;
}
.sto-service-booking-sidebar .badge{
  border-radius:999px!important;
  padding:7px 9px!important;
  font-size:.68rem!important;
  font-weight:760!important;
}
.sto-service-booking-sidebar .nav-divider{
  color:var(--sto-muted);
  font-size:.77rem!important;
  font-weight:700;
}
.sto-service-booking-sidebar .nav-divider i{color:var(--sto-green)!important}
#sidebar-price-card.sto-service-price-summary{display:block!important}
.sto-service-price-summary .card-header{
  padding:18px 20px!important;
  border-bottom:1px solid var(--sto-line)!important;
  background:#fff!important;
}
.sto-service-price-summary .card-header h5{
  margin:0!important;
  font-size:.92rem!important;
  font-weight:840!important;
}
.sto-service-price-summary .card-body{padding:18px 20px!important}
.sto-service-price-summary .list-group-item{
  padding:10px 0!important;
  border-color:#edf0f3!important;
  background:transparent!important;
}
.sto-service-price-summary .list-group-item span:first-child{
  color:var(--sto-muted)!important;
  font-size:.78rem!important;
  font-weight:720!important;
}
.sto-service-price-summary .list-group-item span:last-child{
  color:#344054;
  font-size:.82rem!important;
  font-weight:800;
}
.sto-service-price-summary .card-footer{
  padding:17px 20px!important;
  border-top:1px solid var(--sto-line)!important;
  background:#f8faf8!important;
}
.sto-service-price-summary .card-footer .h5{
  color:var(--sto-muted);
  font-size:.75rem!important;
  font-weight:760!important;
}
.sto-service-price-summary .card-footer .h3{
  color:var(--sto-green)!important;
  font-size:1.45rem!important;
  font-weight:880!important;
  letter-spacing:-.03em;
}
.sto-service-booking-page .desktop-sticky-bottom{display:none!important}

@media (max-width:1199.98px){
  .sto-service-booking-form > .row{padding-top:22px}
  .sto-service-booking-sidebar .sto-service-summary-stack{position:static!important}
}
@media (max-width:767.98px){
  .sto-service-booking-page .container{width:min(100% - 22px,1180px)}
  .sto-service-booking-head{padding:20px 0 16px!important}
  .sto-service-booking-hero h1{font-size:1.65rem!important}
  .sto-service-booking-form > .row{--bs-gutter-x:18px;padding:22px 0 64px}
  .sto-service-booking-main > .vstack > div{padding:19px;border-radius:19px}
  .sto-service-booking-sidebar .card{border-radius:20px!important}
  .sto-service-booking-sidebar .card > .bg-light{height:150px!important}
}



/* ============================================================
   v1.40 — Car & Visa booking exact Tour Booking visual parity
   Layout only. Service-specific pricing, booking and upload logic
   remains owned by each template.
   ============================================================ */
html.sto-booking-document .sto-service-booking-page.sto-booking-page-v17{
  background:#fff;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-content{
  padding:0!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-form.sto-booking-layout{
  display:grid!important;
  grid-template-columns:minmax(0,1.5fr) minmax(300px,.72fr)!important;
  gap:28px!important;
  padding:34px 0 90px!important;
  align-items:start!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-form.sto-booking-layout > .row{
  display:contents!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main,
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-sidebar{
  width:auto!important;
  max-width:none!important;
  flex:none!important;
  padding:0!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main > .vstack{
  gap:18px!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main > .vstack > div{
  border:1px solid var(--sto-line)!important;
  border-radius:22px!important;
  background:#fff!important;
  padding:24px!important;
  margin:0!important;
  box-shadow:none!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main > .vstack > div > h4{
  margin:0 0 5px!important;
  font-size:1.08rem!important;
  line-height:1.35!important;
  color:var(--sto-ink)!important;
  font-weight:800!important;
  letter-spacing:-.015em!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main > .vstack > div > .card{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  margin:14px 0 0!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main > .vstack > div > .card > .card-body{
  padding:0!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main .alert{
  margin:14px 0 0!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-booking-summary{
  position:sticky!important;
  top:104px!important;
  width:100%!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-summary-stack{
  display:block!important;
}
.sto-service-booking-page.sto-booking-page-v17 .sto-service-summary-media{
  height:170px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#eef1f3!important;
}
.sto-car-booking-page .sto-service-summary-media img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  padding:12px!important;
}
.sto-visa-booking-page .sto-visa-summary-media img{
  width:auto!important;
  height:auto!important;
  max-width:70%!important;
  max-height:105px!important;
  object-fit:contain!important;
  border-radius:8px!important;
  box-shadow:0 8px 20px rgba(18,24,38,.10)!important;
}
.sto-service-booking-page .sto-service-live-breakdown .sto-breakdown-row{
  align-items:flex-start;
}
.sto-service-booking-page .sto-service-deposit-row{
  margin-top:3px;
  padding-top:10px;
  border-top:1px solid var(--sto-line);
}
.sto-service-booking-page .sto-service-deposit-row span small{
  display:block;
  margin-top:2px;
  color:#98a2b3;
  font-size:.66rem;
}
.sto-service-booking-page .sto-service-note-row{
  display:block!important;
  padding:10px 12px;
  border-radius:12px;
  background:#fff9ea;
  color:#8a6500!important;
  font-size:.72rem!important;
  line-height:1.5;
}
.sto-service-booking-page .sto-service-payment-methods{
  margin-top:14px;
}
.sto-service-booking-page .sto-service-payment-label{
  display:block;
  margin-bottom:8px;
  color:#667085;
  font-size:.69rem;
  font-weight:800;
  letter-spacing:.025em;
}
.sto-service-booking-page .sto-service-payment-option{
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-height:48px;
  margin:0 0 8px!important;
  padding:11px 12px!important;
  border:1px solid var(--sto-line)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#344054!important;
  font-size:.75rem;
  font-weight:700;
}
.sto-service-booking-page .sto-service-payment-option:has(input:checked){
  border-color:#9ac59a!important;
  background:#f7fbf7!important;
  box-shadow:0 0 0 3px rgba(0,153,0,.06)!important;
}
.sto-service-booking-page .sto-service-payment-option input{
  margin:0!important;
}
.sto-service-booking-page .sto-payment-logos{
  display:flex;
  align-items:center;
  gap:4px;
}
.sto-service-booking-page .sto-payment-logos img{
  width:auto!important;
  height:17px!important;
}
.sto-service-booking-page .sto-service-method-badge{
  padding:4px 6px;
  border-radius:7px;
  background:#f2f4f7;
  color:#667085;
  font-size:.58rem;
  font-weight:800;
}
.sto-service-booking-page .sto-payment-actions{
  margin-top:14px;
}
.sto-service-booking-page .sto-payment-actions .sto-button{
  width:100%;
  min-height:46px;
  font-size:.82rem;
}
.sto-service-booking-page .desktop-sticky-bottom{
  display:none!important;
}
@media (max-width: 991.98px){
  .sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-form.sto-booking-layout{
    grid-template-columns:1fr!important;
  }
  .sto-service-booking-page.sto-booking-page-v17 .sto-booking-summary{
    position:static!important;
  }
}
@media (max-width: 575.98px){
  .sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-form.sto-booking-layout{
    padding-top:22px!important;
  }
  .sto-service-booking-page.sto-booking-page-v17 .sto-service-booking-main > .vstack > div{
    padding:19px!important;
    border-radius:19px!important;
  }
  .sto-service-booking-page.sto-booking-page-v17 .sto-booking-summary{
    border-radius:20px!important;
  }
}
