/* site.css — port overrides (DESIGNER_PASS). Each rule has a reason. */
/* Real GYG widget replaces the designer's striped placeholder: keep min-height frame, drop the stripes and mono label */
.gyg-widget[data-gyg-widget]{background:none;display:block;font-family:inherit;font-size:inherit;padding:0;text-align:left}
/* designer hook classes kept for state/JS; restate the default so every class has a rule */
.tour-link,.ext-link{text-underline-offset:3px}
.road-sled--small,.review-quote--list{--variant:1}
.gyg-widget__fallback{display:inline-block;padding:16px 0;font-weight:600}
/* skip link (a11y) */
.skip-link{position:absolute;top:8px;left:8px;z-index:100;background:#121C26;color:#fff;padding:8px 12px;border-radius:8px;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.skip-link:focus{clip-path:none;width:auto;height:auto}
/* responsive fixes for defects that are also in the designer's export (320–430 px) */
.book-if__alt{white-space:normal}
.book-if__col{grid-template-columns:minmax(0,1fr)}
.book-if__h{flex-wrap:wrap}
.book-if__h *{white-space:normal;min-width:0}
.book-if .btn{white-space:normal;max-width:100%}
.service-page__title{overflow-wrap:anywhere}
/* contrast AA fixes (contrast.js, 08.10) */
.chip--evening{background:#0B7A59}
.route-scale--light .route-scale__ticks{color:var(--muted)}
.compare-2__na{color:var(--muted)}
.season-strip__sale--off{color:var(--muted)}
.final-widget-band .gyg-widget__fallback{color:#fff}
/* consent banner (fixed overlay: no layout shift) */
.consent{position:fixed;left:12px;right:12px;bottom:12px;z-index:80;display:flex;justify-content:center;pointer-events:none}
.consent__in{pointer-events:auto;max-width:560px;width:100%;background:var(--surface);color:var(--ink);border-radius:16px;padding:16px 18px;box-shadow:inset 0 0 0 1px var(--line),0 24px 48px -16px rgba(18,28,38,.45);display:grid;gap:8px}
.consent__t{margin:0;font-weight:800;font-size:15px}
.consent__b{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2)}
.consent__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.consent__link{margin-left:auto;font-size:13.5px;color:var(--ink-2)}
.sticky-book-bar__name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* width/height attrs (CLS) set a fixed CSS height; let aspect-ratio rules win -> no stretched portrait photos */
img{height:auto}
/* FAQ: the designer's 2-column rule queries .faq from inside itself, so it never fires,
   while the sticky intro does -> the heading floated over the questions. Keep one column, no sticky. */
.faq__intro{position:static}
/* home 08 "Before you book" (owner: 3 narrow columns unusable) */
.gtk{grid-template-columns:repeat(2,minmax(0,1fr))}
.gtk__kids,.gtk__tromso{grid-column:1/-1}
.gtk__kids .info-card__media img{height:100%;min-height:240px;aspect-ratio:auto}
@media (min-width:720px){.gtk__kids{grid-template-rows:none;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}}
@media (max-width:999px){.gtk{grid-template-columns:minmax(0,1fr)}}
@media (max-width:719px){.gtk{grid-template-columns:minmax(0,1fr)}.gtk__kids .info-card__media img{aspect-ratio:3/2;min-height:0}}
.gtk .info-card__body{align-content:start}
.gtk .link,.gtk .chip{justify-self:start}
.wear__list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wear__row{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.07)}
.wear__name{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;font-weight:700;font-size:15px}
.wear__name em{font-style:normal;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--attention)}
.wear__text{font-size:15px;line-height:1.5;color:#E3E8ED}
.wear__note{margin:0;font-size:14px;line-height:1.5;color:var(--on-dark-2)}
.gtk__worth{align-content:start}
.gtk__worth .verdict__num{flex-wrap:nowrap;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--surface-2)}
.gtk__worth .verdict__num-v{font-size:30px;flex:none}
.gtk__worth .verdict__badge{justify-self:start}
/* home 03: photo dropped so the route card and the text end together */
#where .section__split{align-items:stretch}
/* home 09: featured + one quote on the left, ratings on the right; last card absorbs the difference */
#reviews .section__split{align-items:stretch}
.reviews__left{display:grid;grid-template-rows:1fr auto;gap:var(--s-4);min-width:0}
.reviews__left .review-quote--featured{align-content:space-between}
.reviews__left .review-quote--featured .review-quote__text{font-size:clamp(26px,7cqi,40px)}
/* tour cards in one row share a height: the shorter card keeps price + button at its bottom edge, not floating mid-card */
.tour-card--standard .tour-card__body{align-content:space-between}
/* cards side by side share a row height: buttons line up at the bottom instead of floating */
.section__grid>.price-card{display:flex;flex-direction:column}
.tour-card--featured .tour-card__buy{align-self:stretch;align-content:space-between}
.section__grid>.price-card>.btn{margin-top:auto}
.gtk__wear .info-card__body{grid-template-rows:auto 1fr auto auto;align-content:stretch}
.gtk__wear .wear{display:grid;grid-template-rows:1fr auto;gap:12px}
.gtk__wear .wear__list{grid-auto-rows:1fr}
/* home 06 season: polish + tours bookable in the chosen month */
.season-strip__snow--building{background:#DCE7F2;color:var(--ink)}
.season-strip__detail{grid-template-columns:minmax(0,1fr);gap:14px;align-items:center}
.season-strip__info{display:grid;gap:4px;min-width:0}
.season-strip__act{display:grid;gap:8px}
.season-strip__act .btn{white-space:normal;text-align:left;justify-content:space-between}
.season-strip__soon{font-size:13px;color:var(--muted);text-align:center}
.season-strip__alt{font-size:14px;justify-self:start}
@container season (min-width:700px){
  .season-strip__month{display:flex;flex-direction:column}
  .season-strip__snow{margin-top:auto;align-self:stretch}
  .season-strip__detail{grid-template-columns:minmax(0,1fr) auto;padding:18px 20px}
  .season-strip__act{width:320px}
}

/* language switcher (header) — <details>, works without JS */
.lang{position:relative;flex:none;margin-left:auto}
.lang__btn{list-style:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px 0 9px;border-radius:10px;cursor:pointer;color:inherit;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 26%,transparent);transition:background .2s,box-shadow .2s;user-select:none}
.lang__btn::-webkit-details-marker{display:none}
.lang__btn:hover{background:var(--surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 45%,transparent)}
.site-header--over .lang__btn:hover{background:rgba(255,255,255,.14)}
.lang__btn:focus-visible{outline:2px solid var(--attention);outline-offset:2px}
.lang__icon{width:16px;height:16px;opacity:.85}
.lang__chev{width:12px;height:12px;opacity:.7;transition:transform .3s var(--ease-snap)}
.lang[open] .lang__chev{transform:rotate(180deg)}
.lang[open] .lang__btn{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.lang:not([open]) .lang__menu{display:none}
.lang__menu{position:absolute;right:0;top:calc(100% + 8px);min-width:208px;padding:6px;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line),0 22px 44px -18px rgba(18,28,38,.45);display:grid;gap:2px;z-index:60;transform-origin:top right;animation:lang-in .22s var(--ease-out)}
@keyframes lang-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lang__menu{animation:none}}
.lang__title{padding:8px 12px 6px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lang__opt{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:600;transition:background .15s}
.lang__opt:hover{background:var(--surface-2);color:var(--ink)}
.lang__opt[aria-current="true"]{background:var(--surface-2)}
.lang__code{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted);font-weight:500}
.lang__check{grid-column:3;width:16px;height:16px;color:var(--action)}
@container header (max-width:519px){.lang__cur{display:none}.lang__btn{padding:0 8px;gap:4px}}
/* language row in the footer */
.site-footer__langs{display:flex;gap:14px;align-items:center}
.site-footer__lang{color:inherit;text-decoration:none}
.site-footer__lang:hover{text-decoration:underline}
.site-footer__lang[aria-current="true"]{color:var(--ink);font-weight:700}
/* German is longer: let long compounds break instead of overflowing (non-EN only) */
html[lang="de"] :is(h1,h2,h3,.chip,.season-strip__snow,.season-strip__sale,.segmented__btn,.tour-card__title,.road-sled__seg){overflow-wrap:anywhere;hyphens:auto;-webkit-hyphens:auto}
html[lang="de"] .segmented__btn{white-space:normal;line-height:1.15;text-align:center;padding:4px 10px}
html[lang="de"] .hero-review__title{font-size:clamp(34px,4.6vw,84px)}
@media (max-width:399px){html[lang="de"] .section-rail__label{display:none}}
