/* Redesign 2026-10-25: denser, higher-contrast "ski pass" layer over site.css.
   Navy header and hero, white cards with tinted shadows, compact rhythm, reviews always open. */
:root{--ease-spring:cubic-bezier(.32,.72,0,1);--paper:#f2f5f9;--ink:#0f2747;--muted:#56677c;--line:#dbe3ec;--tint:#e9f0f8;--accent:#f26b1d;--accent-hover:#f57a33;--night:#0b1f3a;--night-2:#163359;--shadow:0 1px 2px #0f27470d,0 10px 28px -14px #0f274740;--shadow-hover:0 2px 4px #0f274712,0 18px 40px -18px #0f274759;--radius:16px;--surface:#fcfdff;--on-dark:#f7faff;--focus:#225db1;--focus-on-dark:#ffb27a}
body{font-feature-settings:"tnum" 1;line-height:1.55}
h1,h2,h3{font-weight:720;letter-spacing:-.03em}
h2{font-size:clamp(26px,2.5vw,34px)}
.section{padding-block:40px 44px}
.section-heading{margin-block-end:18px;gap:20px}
.section-heading p{margin-block-start:6px;color:var(--muted);font-size:16px}
.section-note{margin-block-end:14px}
.section-tinted{background:#e8eef6}

/* Header: navy bar, orange underline for the current section. */
.site-header{background:var(--night);border-block-end:0;color:var(--on-dark)}
.site-header.is-scrolled{box-shadow:0 8px 24px #0b1f3a40}
.header-inner{min-height:64px}
.brand-mark{background:var(--accent);color:var(--night);width:36px;height:36px;font-size:20px;font-weight:750}
.brand{font-size:24px}
@media(min-width:801px){.primary-nav{gap:26px;font-size:14px}}
.primary-nav a{color:#c9d6e6;transition:color .2s}
.primary-nav a:hover,.primary-nav a[aria-current]{color:var(--on-dark)}
.language-menu summary{color:#c9d6e6}
.language-menu ul{color:var(--ink)}
html{scroll-padding-block-start:130px}
.detail-nav-wrap{inset-block-start:var(--header-height,64px)}

/* Buttons */
.button{border-radius:10px;font-weight:650;transition:background-color .2s,box-shadow .2s,transform .15s,border-color .2s}
.button:active{transform:translateY(1px)}
.button-primary{background:var(--accent);color:var(--night)}
.button-primary:hover{background:var(--accent-hover);color:var(--night)}
.button-outline{background:var(--surface);border-color:var(--line)}
.button-outline:hover{border-color:var(--ink)}

.picks-grid{gap:12px}
.pick{border:0;border-radius:16px;padding:16px 24px;box-shadow:var(--shadow);color:var(--ink);transition:transform .5s var(--ease-spring),box-shadow .2s}
.pick:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.pick h3{font-size:14px;color:var(--muted);font-weight:600;letter-spacing:0}
.pick-start{display:none}
.pick-title{font-size:20px;margin-block-start:6px}
.pick-why,.pick-alt{font-size:14px}
.pick-alt{color:var(--muted)}
.pick-all{margin-block-start:8px;font-size:12px}

/* Cards */
.catalog-card{border:0;box-shadow:var(--shadow);transition:transform .5s var(--ease-spring),box-shadow .2s}
.catalog-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.card-content{padding:16px 24px 24px}
.catalog-card h3{font-size:20px;margin-block-end:10px}
.card-school h3{min-height:0}
.card-location{font-size:12px;color:var(--muted);margin-block-end:4px}
.small-facts>div,.offer-facts>div,.offer-inclusions>div{padding-block:6px}
.card-actions{padding-block-start:14px}
.card-actions .button{width:100%;justify-content:space-between}
.schools-grid,.resorts-grid,.trainers-grid{gap:16px}
.price-preview strong{font-size:24px;letter-spacing:-.02em}

/* At-a-glance table */
.glance-wrap{border:0;box-shadow:var(--shadow)}
.glance th,.glance td{padding:11px 14px}
.glance thead th{background:#f7f9fc;font-size:13px}
.glance tbody tr+tr{border-block-start:1px solid #edf1f6}
.glance tbody th a{text-decoration:none}
.glance tbody th a:hover{color:var(--accent)}
.glance .is-unknown{color:#a3b0bf}

.home-tours-link{background:var(--night);padding:32px 40px;margin-block:8px 40px;border-radius:16px}
.site-footer{background:var(--night);color:#c3d2e4;margin-block-start:0;padding-block:36px 100px}
.site-footer a{color:var(--on-dark)}
.footer-brand{color:var(--on-dark)}

/* Resort / school page */
.detail-cover:not(.detail-ski-map):not(.detail-trainer-cover)>img{border-radius:20px;max-height:420px;width:100%;object-fit:cover}
.detail-masthead{padding-block:24px;gap:32px}
.detail-masthead .page-intro h1{font-size:clamp(34px,4vw,54px);letter-spacing:-.04em}
.hero-lead{font-size:18px;max-width:60ch}
.fact-panel{background:var(--surface);box-shadow:var(--shadow);padding:24px}
.rating-chip{border:0;background:var(--surface);box-shadow:var(--shadow);border-radius:12px}
.detail-nav-wrap{background:#ffffffeb;backdrop-filter:blur(8px);border-block:1px solid var(--line)}
.detail-nav{min-height:50px;gap:6px}
.detail-nav a{padding:6px 12px;border-radius:999px;text-decoration:none}
.detail-nav a:hover{background:var(--tint)}
.provider-pricing{padding-block:36px 8px}
.pricing-group{margin-block-start:22px}
.pricing-table-wrap{background:var(--surface);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.pricing-table th,.pricing-table td{padding:10px 16px}
.pricing-table td:nth-child(2){white-space:normal}
.pricing-amount{display:inline-block;margin-inline-end:8px}
.pricing-table thead th{background:#f7f9fc;font-size:13px}
.pricing-table tbody tr:last-child>*{border-block-end:0}
.pricing-amount{font-size:18px}
.pricing-unit{font-size:12px}
.detail-content{padding-block:36px}

/* Reviews: the score and every theme are visible at once, no "read more". */
.visitor-reviews{border:0;padding-block:36px 24px}
.visitor-reviews .section-heading{margin-block-end:4px}
.review-intro{margin-block-end:16px}
.review-board{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.review-score{position:sticky;top:130px;display:grid;gap:16px;padding:24px;border-radius:16px;background:var(--night);color:var(--on-dark)}
.review-score .rating-score strong{font-size:60px;line-height:1;letter-spacing:-.04em}
.review-score .rating-score small{color:#c3d2e4}
.review-score .rating-list h3{color:var(--on-dark);font-size:14px}
.review-score .rating-list li{color:#e1e9f3;font-size:14px}
.review-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.review-column{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:16px 24px 8px}
.review-column h3::before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;background:#2f9e62;margin-inline-end:8px}
.review-column--con h3::before{background:#e0533a}
.review-column h3{font-size:18px;margin-block-end:6px}
.review-findings{list-style:none;margin:0;padding:0}
.review-findings>li{padding-block:12px;border-block-start:1px solid #edf1f6}
.review-findings>li:first-child{border:0}
.review-findings strong{display:block;font-size:16px;line-height:1.35}
.review-bar{display:block;height:4px;margin-block:6px 8px;border-radius:4px;background:#edf1f6;position:relative;overflow:hidden}
.review-bar::after{content:'';position:absolute;inset-block:0;inset-inline-start:0;width:max(var(--share),4%);background:#2f9e62;border-radius:4px}
.review-column--con .review-bar::after{background:#e0533a}
.review-findings p{font-size:14px;color:#33465e;line-height:1.55;margin:0}
.review-findings .review-meta{margin-block-start:6px;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px}
.review-meta,.review-meta a{color:var(--muted)}
.review-meta>span{font-weight:600}
.review-method{margin-block-start:12px;font-size:14px;color:var(--muted)}
.visitor-block{border:0;box-shadow:var(--shadow);margin-block:16px 0}

@media(max-width:1100px){.review-board{grid-template-columns:1fr}.review-score{position:static;grid-template-columns:auto 1fr 1fr;align-items:start}}
@media(max-width:800px){
 .header-inner{min-height:56px}
 .section{padding-block:28px 30px}
 .pick{padding:14px 16px}
 .review-columns{grid-template-columns:1fr}
 .review-score{grid-template-columns:1fr;padding:18px}
 .review-score .rating-score strong{font-size:48px}
 .detail-masthead .page-intro h1{font-size:32px}
 .detail-cover:not(.detail-ski-map):not(.detail-trainer-cover)>img{max-height:220px;border-radius:14px}
 .home-tours-link{padding:24px}
}
@media(prefers-reduced-motion:reduce){.pick,.catalog-card,.button,.resort-tiles li{transition:none}.resort-tiles li:hover{transform:none}.pick:hover,.catalog-card:hover{transform:none}}
body p,.section-note,.pick-why{text-wrap:pretty}
.pick:active,.catalog-card:active{transform:scale(.98)}

/* Round 3: real layouts, not just colours. Bento picks, school rows, photo band, photo-led resort header. */

/* Picks: bento, two photo tiles take the large cells. */
.picks{padding-block:48px 24px}
.picks-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense}
.pick{padding:0;overflow:hidden;display:flex;flex-direction:column}
.pick-body{display:flex;flex-direction:column;gap:4px;padding:16px 24px 16px;flex:1}
.pick-all{margin-block-start:auto;padding-block-start:8px}
.pick-photo{width:100%;aspect-ratio:16/9;object-fit:cover}
.pick-first,.pick-evening{grid-column:span 2;grid-row:span 2}
.pick-first .pick-title,.pick-evening .pick-title{font-size:24px}
.pick-rental{background:var(--night);color:var(--on-dark)}
.pick-rental h3,.pick-rental .pick-why,.pick-rental .pick-all{color:#c3d2e4}
.pick-tours{background:#ffe9db}

/* Schools as rows: name, facts and price on one line instead of three tall cards. */
.schools-rows{grid-template-columns:1fr;gap:12px}
.schools-rows .catalog-card .card-content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1fr) 200px;align-items:center;gap:8px 32px;padding:16px 24px}
.schools-rows .card-location{grid-column:1;grid-row:1;margin:0;align-self:end}
.schools-rows h3{grid-column:1;grid-row:2;margin:0;align-self:start}
.schools-rows .small-facts,.schools-rows .decision-facts{grid-column:2;grid-row:1/3}
.schools-rows .price-preview{grid-column:3;grid-row:1/3;margin:0;padding:0;border:0}
.schools-rows .card-details{display:none}
.schools-rows .card-actions{grid-column:4;grid-row:1/3;padding:0}

/* Tours: a photo band instead of a flat navy box. */
.home-tours-link{position:relative;isolation:isolate;overflow:hidden;min-height:240px;align-content:end}
.tours-band-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.home-tours-link::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0b1f3ae6,#0b1f3a40)}
.home-tours-link h2{font-size:36px}

/* Guides: a plain three-column list, no boxes. */
.card-guide{box-shadow:none;background:transparent;border-block-start:2px solid var(--ink);border-radius:0}
.card-guide:hover{transform:none;box-shadow:none}
.card-guide .card-content{padding:16px 0 0}
.card-guide .card-actions .button{width:auto;border:0;background:none;padding:0;min-height:32px}

/* FAQ in two columns. */
.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.faq-list details{background:var(--surface);border:0;border-radius:16px;box-shadow:var(--shadow);padding:4px 24px}

/* Resort listing: no fake mountain placeholder; real maps and photos get a wide crop. */
.card-cover-blank{display:none}
.card-ski-map img,.card-photo img{aspect-ratio:2/1}
.resorts-grid{align-items:start}

/* Resort header: navy band, or the resort photo full-bleed behind the title. */
.detail-hero{position:relative;isolation:isolate;background:var(--night);color:var(--on-dark);overflow:hidden}
.detail-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.detail-hero.has-photo::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b1f3ae6 0,#0b1f3a99 50%,#0b1f3a4d 100%)}
.detail-hero.has-photo{min-height:440px;display:grid;align-items:end}
.detail-hero .photo-credit{position:absolute;inset-block-end:8px;inset-inline-end:16px;font-size:12px;color:#ffffffb3;z-index:1}
.detail-hero .photo-credit a{color:inherit}
.detail-hero .detail-masthead{padding-block:40px}
.detail-hero h1,.detail-hero .back-link,.detail-hero .detail-location,.detail-hero .source-line{color:var(--on-dark)}
.detail-hero .hero-lead{color:#d5e1ee}
.detail-hero .source-line,.detail-hero .detail-location{opacity:.8}
.detail-hero .button-outline{background:#ffffff1f;color:var(--on-dark);border-color:#ffffff66}
.detail-hero .text-button{color:var(--on-dark)}
.detail-hero .rating-chip{color:var(--ink)}
.detail-hero .fact-panel{color:var(--ink)}

@media(max-width:1000px){
 .picks-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .schools-rows .catalog-card .card-content{grid-template-columns:1fr 1fr}
 .schools-rows .small-facts,.schools-rows .decision-facts{grid-column:1/-1;grid-row:auto}
 .schools-rows .price-preview{grid-column:1;grid-row:auto}
 .schools-rows .card-actions{grid-column:2;grid-row:auto}
}
@media(max-width:640px){
 .picks-grid{grid-template-columns:1fr}
 .pick-first,.pick-evening{grid-column:auto;grid-row:auto}
 .schools-rows .catalog-card .card-content{grid-template-columns:1fr}
 .schools-rows .price-preview,.schools-rows .card-actions{grid-column:1}
 .faq-list{grid-template-columns:1fr}
 .detail-hero.has-photo{min-height:0}
 .detail-hero .detail-masthead{padding-block:24px}
 .home-tours-link h2{font-size:24px}
}
/* Resort cards differ in height (photo, map or text only): masonry columns avoid empty holes. */
.resorts-grid{display:block;columns:3 300px;column-gap:16px}
.resorts-grid>.catalog-card{break-inside:avoid;margin-block-end:16px}

/* Home first screen: navy band with search, then every slope as a tile (desktop) or a tap-to-open list (phone). */
.hero-dense{position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:var(--on-dark);padding-block:32px 40px}
/* the owner's home picture (admin setting) stays as a dim backdrop behind the band */
.hero-dense-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-dense::after{content:'';position:absolute;inset:0;z-index:-1;background:#0b1f3ad9}
.hero-dense-top{display:flex;align-items:end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.hero-dense h1{font-size:36px;color:var(--on-dark);max-width:none}
.hero-search{display:flex;gap:8px;flex:1 1 420px;max-width:560px}
.hero-search input{flex:1;min-height:52px;padding:0 16px;border-radius:10px;border:0;font:inherit;font-size:16px}
.hero-search .button{min-height:52px}
.hero-dense-routes{display:flex;gap:8px;flex-wrap:wrap;margin-block:24px}
.hero-dense-routes a{padding:8px 16px;border-radius:999px;background:#ffffff1a;color:var(--on-dark);text-decoration:none;font-weight:600;font-size:14px}
.hero-dense-routes a:hover{background:#ffffff33}
.hero-dense .glance-wrap{color:var(--ink)}
.resort-tiles{display:none;list-style:none;margin:0;padding:0}
.resort-tiles li{position:relative;background:var(--surface);color:var(--ink);border-radius:16px;padding:16px 20px;box-shadow:var(--shadow);transition:transform .5s var(--ease-spring)}
.resort-tiles li:hover{transform:translateY(-2px)}
.resort-tile-title{font-size:18px;font-weight:700;letter-spacing:-.02em;text-decoration:none}
.resort-tile-title::after{content:'';position:absolute;inset:0;border-radius:inherit}
.resort-tile-where{margin:2px 0 0;font-size:14px;color:var(--muted)}
.resort-tiles dl{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px 20px}
.resort-tiles dt{font-size:12px;color:var(--muted)}
.resort-tiles dd{margin:0;font-size:16px;font-weight:650}
.resort-tiles .badge{display:inline-block;margin-inline-start:6px;font-size:12px;font-weight:550;vertical-align:middle}
@media(max-width:800px){.hero-dense h1{font-size:28px}}
@media(min-width:801px){
 .hero-dense .glance-wrap{display:none}
 .resort-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
}
.resort-tiles dt,.resort-tiles dd{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.resort-tiles dl>div{display:grid;gap:0;min-width:max-content}

/* Hallmark floor 2026-10-26: no sideways scroll, visible focus on navy, honest disabled state, pressed feedback. */
html,body{overflow-x:clip}
h1,h2,h3{overflow-wrap:break-word;min-width:0;text-wrap:balance}
:where(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.site-header :focus-visible,.hero-dense :focus-visible,.detail-hero :focus-visible,.site-footer :focus-visible,.review-score :focus-visible{outline-color:var(--focus-on-dark)}
.button:active,.button-primary:active,.hero-dense-routes a:active,.resort-tiles a:active{transform:translateY(1px)}
button:disabled,.button[aria-disabled=true]{opacity:1;background:var(--tint);color:var(--muted);border-color:var(--line);cursor:not-allowed}
.review-method li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 16px;padding-block:6px;border-block-end:1px solid var(--line)}
@media(prefers-reduced-motion:reduce){.button:active,.button-primary:active,.hero-dense-routes a:active,.resort-tiles a:active{transform:none}}

/* Editorial layer 2026-10-28 (owner approved the photo-and-type home): condensed display caps, warm paper,
   ink instead of navy, hairline rules instead of shadowed cards. Applies to every page; home extras live in alpine.css. */
@font-face{font-family:"Fira XC";src:url(fonts/fira-xc-800-cyrillic.woff2) format("woff2");font-weight:800;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Fira XC";src:url(fonts/fira-xc-800-latin.woff2) format("woff2");font-weight:800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212}
:root{--al-ink:#0e1114;--al-paper:#f4f2ed;--al-line:#0e111429;--al-snow:#fbfaf7;--paper:var(--al-paper);--ink:var(--al-ink);--night:#0e1114;--surface:var(--al-snow);--line:#0e111421;--tint:#ebe8e1;--muted:#5b5f66;--radius:2px}
body{background:var(--al-paper);color:var(--al-ink)}
.main-content h1,.main-content h2,.main-content h3{color:var(--al-ink)}
.site-header{background:var(--al-ink)}
.main-content h1,.main-content>.section h2,.main-content .section-heading h2,.faq h2{font-family:"Fira XC","Onest",system-ui,sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:.9}
.main-content h1{font-size:clamp(44px,5.5vw,88px)}
.main-content>.section h2,.main-content .section-heading h2,.faq h2{font-size:clamp(40px,4.5vw,72px)}
:is(:lang(ar),:lang(zh)) .main-content :is(h1,h2){line-height:1.2;letter-spacing:0}
.section-tinted{background:var(--tint)}
.catalog-card,.fact-panel,.review-column,.pricing-table-wrap,.visitor-block,.faq-list details,.glance-wrap,.offer-card{box-shadow:none;border:0;border-radius:0;background:transparent}
.catalog-card,.review-column,.visitor-block,.glance-wrap,.pricing-table-wrap{border-block-start:2px solid var(--al-ink)}
.catalog-card:hover{box-shadow:none;transform:none}
.catalog-card .card-content{padding-inline:0}
.catalog-card figure img,.card-photo img,.card-ski-map img{border-radius:0}
.review-score{background:var(--al-ink);border-radius:0}
.review-column,.visitor-block{padding-inline:0}
.faq-list details{border-block-end:1px solid var(--al-line)}
.faq-list details:first-child{border-block-start:2px solid var(--al-ink)}
.faq-list summary{font-size:19px;font-weight:650;padding-block:20px}
.glance thead th,.pricing-table thead th{background:transparent;color:var(--muted)}
.button,.button-primary,.button-outline,.rating-chip,.filter-chips a,.view-switch button,.badge{border-radius:2px}
.button-outline{background:transparent;border-color:var(--al-ink);color:var(--al-ink)}
.link-arrow{color:var(--al-ink);font-weight:700;border-block-end:2px solid var(--accent);text-decoration:none}
.site-footer{background:var(--al-ink)}
.detail-hero{background:var(--al-ink)}
.detail-hero.has-photo{min-height:min(78svh,760px);display:flex;align-items:flex-end}
.detail-hero.has-photo::after{background:linear-gradient(180deg,#0e111426 0%,#0e1114d9 70%)}
.detail-hero h1{color:var(--al-snow);font-size:clamp(56px,8vw,128px)}
.detail-hero .fact-panel{background:var(--al-snow);border-radius:2px}
.detail-hero .button-outline{border-color:var(--al-snow);color:var(--al-snow)}
.detail-hero .detail-masthead .page-intro h1{font-size:clamp(56px,8vw,128px);max-width:none}
.provider-pricing>h2,#provider-pricing-heading{font-family:"Fira XC","Onest",system-ui,sans-serif;font-weight:800;text-transform:uppercase;line-height:.9;font-size:clamp(40px,4.5vw,72px)}
@media(max-width:800px){.main-content h1,.detail-hero .detail-masthead .page-intro h1{font-size:clamp(44px,13vw,72px)}}
