/* Compatibility for retained content and working widgets absent from the HTML.
   Loaded BEFORE the exact original site.css/reference.css; no source-layout reskin. */
:root {
  --font-display:var(--serif); --font-body:var(--sans); --night-900:var(--navy); --navy-700:var(--navy);
  --blue-600:var(--blue); --sea-500:var(--blue); --sky-100:var(--pale); --sky-200:#b9d6fa;
  --ice-50:var(--bg); --white:#fff; --ink:var(--navy); --ink-muted:var(--muted); --line-strong:#8091ab;
  --whatsapp:#198754; --danger:#b42318; --on-dark:#fff; --on-dark-muted:#e3f1fd;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-18:72px;
  --radius-sm:6px; --radius-md:8px; --radius-lg:10px; --radius-pill:9px;
  --shadow-card:var(--shadow); --shadow-raised:var(--shadow); --header-h:77px; --gutter:17px;
}
/* Bootstrap remains only for existing private-service carousel/grid functionality. */
.container { padding:0; max-width:none; }
.btn:disabled { opacity:.55; cursor:not-allowed; }
.visually-hidden { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:absolute; left:16px; top:-70px; z-index:1000; background:#fff; color:var(--navy); padding:12px 20px; }
.skip-link:focus { top:12px; }
/* Blazor's programmatic navigation heading is not an interactive focus target. */
h1[tabindex="-1"]:focus { outline:none; }
.t-muted { color:var(--muted); } .t-small { font-size:13px; } .t-lead,.lead-17 { font-size:17px; line-height:1.65; }
.section-head__titles { min-width:0; } .section-head__aside { max-width:420px; }
.section--ice { background:var(--bg); }
.book-card-section { min-width:0; padding:0; scroll-margin-top:24px; }
.book-card-section .book-card { display:flex; flex-direction:column; gap:18px; }
.book-card__head { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.book-card__head h2 { font-size:25px; margin:0; } .book-card__head>span { font-size:12px; color:var(--muted); }
.book-card .field { font-size:12px; font-weight:700; color:var(--muted); }
.opt-row { display:flex; align-items:center; gap:10px; width:100%; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; text-align:left; }
.opt-row[aria-checked="true"] { background:var(--pale); border-color:var(--blue); }
.opt-row__radio { width:18px; height:18px; flex-shrink:0; border:2px solid var(--blue); border-radius:50%; display:grid; place-items:center; }
.opt-row[aria-checked="true"] .opt-row__radio:after { content:""; width:8px; height:8px; border-radius:50%; background:var(--blue); }
.opt-row__text { flex:1; display:flex; flex-direction:column; min-width:0; } .opt-row__name { font-size:13px; font-weight:700; }
.opt-row__desc { font-size:12px; color:var(--muted); } .opt-row__price { font-size:19px; font-weight:700; color:var(--blue); }
.stepper-row,.stepper { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.stepper-row__name { font-size:14px; font-weight:700; } .stepper-row__unit { font-size:12px; color:var(--muted); }
.stepper button { width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--blue); font-size:20px; }
.stepper output { min-width:20px; text-align:center; font-weight:700; }
.book-card__total { border-top:1px solid var(--line); padding-top:18px; display:flex; justify-content:space-between; align-items:center; }
.book-card__total output { font-size:28px; font-weight:700; color:var(--blue); } .book-card>.btn { width:100%; }
.reassure { list-style:none; margin:0; padding:0; color:var(--muted); font-size:12px; }
.form-message { padding:12px; border:1px solid; border-radius:6px; font-size:13px; }
.form-message--error { color:#9a1725; background:#fff1f1; } .form-message--success { color:#0f5132; background:#e7f6ec; }
.form-message ul { margin:0; padding-left:18px; }
.product-main { min-width:0; } .product-main .block { margin-bottom:40px; } .block__head { margin-bottom:18px; }
.product-main .t-h2-content { font-size:31px; } .product-main .t-h4 { font-size:22px; }
.product-main .checklist svg { display:none; }
.quick-facts .icon { width:16px; height:16px; vertical-align:middle; fill:none; stroke:currentColor; stroke-width:2; }
.highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-block:24px; }
.highlight { padding:18px; background:var(--bg); border:1px solid var(--line); border-radius:8px; }
.highlight__value { font-size:22px; font-weight:700; } .highlight__text { color:var(--muted); font-size:13px; }
.options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.option { border:1px solid var(--line); border-radius:10px; overflow:hidden; } .option img,.option__empty { width:100%; height:130px; object-fit:cover; }
.option__body { padding:12px; } .option__title { font-size:14px; font-weight:700; } .option__sub { color:var(--muted); font-size:12px; }
.panel-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 24px; margin:20px 0 0; padding:24px; list-style:none; background:var(--bg); border-radius:10px; font-size:14px; }
.timeline-wrap { display:grid; grid-template-columns:minmax(0,40%) minmax(0,1fr); gap:24px; }
.timeline-wrap>img { width:100%; height:100%; min-height:280px; object-fit:cover; border-radius:10px; }
.timeline { margin:0; padding-left:20px; border-left:1px solid var(--line); list-style:none; }
.timeline li { padding:8px 0; font-size:14px; } .timeline__num { color:var(--blue); font-weight:700; margin-right:8px; }
.info-panel { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:24px; border:1px solid var(--line); border-radius:10px; }
.faq__item { border-bottom:1px solid var(--line); } .faq__q { width:100%; padding:18px 0; display:flex; justify-content:space-between; border:0; background:none; color:var(--navy); font-size:15px; font-weight:700; text-align:left; }
.faq__q:after { content:"+"; font-size:23px; color:var(--blue); } .faq__q[aria-expanded="true"]:after { content:"−"; }
.faq__a { color:var(--muted); font-size:14px; padding-bottom:18px; }
.gallery:has(.gallery__tile) { position:relative; }
.editorial-product-gallery { margin-block:28px 36px; }
.product-gallery { min-width:0; }
.product-gallery .gallery__tile { display:block; cursor:zoom-in; }
.product-gallery .gallery__all { color:var(--navy); text-decoration:none; font-weight:700; cursor:zoom-in; min-height:44px; }
.gallery__fallback { margin-top:12px; font-size:13px; }
.gallery__fallback summary { cursor:pointer; padding:8px 0; }
.gallery__fallback li { margin-block:8px; }
.product-gallery a:focus-visible,.product-gallery button:focus-visible,.gallery__fallback summary:focus-visible { outline:3px solid #3274d3; outline-offset:3px; }
.product-gallery .lightbox__status { min-height:1.5em; margin:0; text-align:center; font-size:13px; color:inherit; }
.lightbox__recovery { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.lightbox__recovery[hidden] { display:none; }
.lightbox__recovery a { color:white; text-decoration:underline; }
.lightbox__recovery button { min-height:44px; padding:8px 16px; border:1px solid white; border-radius:6px; background:transparent; color:white; }
.lightbox__figure { overflow:auto; }
.lightbox__figure img:not([src]) { display:none; }
.product-gallery .lightbox__count { white-space:nowrap; }
body.is-locked { overflow:hidden; }
.gallery .gallery__tile { padding:0; border:0; background:var(--navy); overflow:hidden; min-width:0; }
.gallery .gallery__tile img[src] { width:100%; height:100%; object-fit:cover; border-radius:0; }
.gallery .gallery__tile:first-child { grid-row:span 2; border-radius:13px 0 0 13px; }
.gallery .gallery__tile:nth-child(3) { border-radius:0 13px 0 0; } .gallery .gallery__tile:nth-child(5) { border-radius:0 0 13px 0; }
.gallery__all { position:absolute; right:16px; bottom:16px; background:#fff; border:0; border-radius:8px; padding:12px 18px; font-size:13px; }
.gallery__all svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; vertical-align:middle; }
.lightbox { position:fixed; inset:0; z-index:100; } .lightbox[hidden] { display:none; }
.lightbox__backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(7,26,54,.75); }
.lightbox__dialog { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:min(1100px,calc(100vw - 48px)); height:min(760px,calc(100vh - 48px)); display:flex; flex-direction:column; background:var(--navy); color:#fff; border-radius:14px; overflow:hidden; }
.lightbox__bar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 24px; }
.lightbox__title { font-size:20px; } .lightbox__count { margin-left:14px; font-size:13px; } .lightbox__actions { display:flex; align-items:center; gap:12px; }
.lightbox__close,.lightbox__nav { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; border:1px solid #8fa2c4; background:transparent; border-radius:50%; }
.lightbox__close svg,.lightbox__nav svg { width:22px; height:22px; fill:none; stroke:#fff; stroke-width:2; }
.lightbox__stage { display:flex; flex:1; min-height:0; gap:16px; align-items:center; padding:20px; }
.lightbox__figure { flex:1; min-width:0; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; margin:0; }
.lightbox__figure img { max-height:calc(100% - 45px); width:auto; max-width:100%; object-fit:contain; }
.lightbox__figure figcaption { text-align:center; font-size:13px; }
.lightbox__thumbs { display:flex; justify-content:center; gap:10px; overflow:auto; padding:14px 20px 20px; }
.lightbox__thumb { width:96px; height:64px; flex-shrink:0; padding:0; border:3px solid transparent; background:none; opacity:.6; }
.lightbox__thumb img { width:100%; height:100%; object-fit:cover; } .lightbox__thumb[aria-current="true"] { border-color:#fff; opacity:1; }
.tour-card__media>a { display:block; height:100%; } .tour-card__list { padding-left:18px; font-size:13px; color:var(--muted); }
.booking { margin-top:28px; } .booking__panel { align-items:end; } .booking__panel .field>.btn { margin-top:8px; }
.trust { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding-block:28px; }
.trust__item { display:flex; gap:12px; align-items:center; font-size:13px; } .trust__item svg { width:28px; height:28px; flex-shrink:0; fill:none; stroke:var(--blue); stroke-width:2; }
.trust__title { font-weight:700; } .trust__text { color:var(--muted); font-size:12px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center; } .split__media img { width:100%; height:360px; object-fit:cover; border-radius:10px; }
.split__content>* { margin-bottom:20px; } .stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.stat { border:1px solid var(--line); border-radius:8px; padding:16px; } .stat__value { font-size:22px; font-weight:700; } .stat__label { color:var(--muted); font-size:12px; }
.steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; } .step { border:1px solid var(--line); border-radius:10px; padding:24px; }
.step__num { font-size:22px; color:var(--blue); margin-bottom:14px; }
.menu-preview,.extras-list { padding:18px; background:var(--bg); border-radius:8px; }
.menu-preview__list { padding:0; list-style:none; } .menu-preview__item,.extras-row { display:flex; justify-content:space-between; gap:20px; padding-block:12px; border-bottom:1px solid var(--line); }
.extras-row__qty select { min-height:44px; border:1px solid var(--line); border-radius:8px; }
.retained-guide { margin-top:50px; } .retained-guide .guide-toc__group { padding-inline:17px; }
.retained-guide .guide-basics__grid { grid-template-columns:minmax(0,1fr) minmax(0,42%); gap:36px; }
.retained-guide .guide-faq__grid { grid-template-columns:minmax(0,30%) minmax(0,1fr); gap:36px; }
.retained-guide .guide-route__grid { grid-template-columns:1fr 1fr; gap:36px; }
.site-footer .footer__col>span { display:block; font-size:12px; margin-bottom:10px; }
@media(max-width:1060px) { .retained-guide .guide-route__grid { grid-template-columns:1fr; } }
@media(max-width:860px) {
  .trust,.split,.steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .retained-guide .guide-basics__grid,.retained-guide .guide-faq__grid { grid-template-columns:1fr; }
  .book-card-section .book-card { position:relative; top:auto; }
  .mobile-book-bar { padding-bottom:max(10px,env(safe-area-inset-bottom)); }
  body:has(.mobile-book-bar) .site-footer { padding-bottom:95px; }
  .options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:580px) {
  .gallery .gallery__tile:first-child { grid-column:span 2; grid-row:span 1; border-radius:11px 11px 0 0; }
  .gallery .gallery__tile:nth-child(4),.gallery .gallery__tile:nth-child(5) { display:none; }
  .gallery .gallery__tile:nth-child(3) { border-radius:0 0 10px 0; }
  .gallery__all { right:10px; bottom:10px; font-size:11px; padding:10px; }
  .lightbox__dialog { width:100vw; height:100dvh; border-radius:0; } .lightbox__actions .btn,.lightbox__thumbs { display:none; }
  .product-gallery .lightbox__title { display:block; max-width:calc(100vw - 95px); }
  .product-gallery .lightbox__count { margin-left:0; }
  .lightbox__bar { padding:15px; } .lightbox__title { font-size:16px; } .lightbox__stage { gap:8px; padding:10px; }
  .highlights,.timeline-wrap,.panel-list,.info-panel,.trust,.split,.steps { grid-template-columns:1fr; }
  .timeline-wrap>img { height:280px; min-height:0; }
}
