/* Bobbio / REV04 — scoped styles. No Bootstrap or remote font dependency. */
.bb-preview { margin: 0; background: #fff; }
.bb-app { --bb-ink:#050505; --bb-paper:#fff; --bb-focus:#075fc0; container-type:inline-size; color:var(--bb-ink); background:var(--bb-paper); font-family:Arial,Helvetica,sans-serif; font-size:1rem; font-weight:400; line-height:1.25; isolation:isolate; }
.bb-app *, .bb-app *::before, .bb-app *::after { box-sizing:border-box; }
.bb-app [hidden] { display:none !important; }
.bb-app :where(h1,h2,h3,p,ul,ol,figure,dl,dd,fieldset) { margin:0; padding:0; }
.bb-app :where(h1,h2,h3) { color:inherit; font-family:inherit; line-height:1.1; font-weight:900; letter-spacing:-.025em; text-transform:none; }
.bb-app :where(h1,h2) { font-size:max(1.6rem,2.3cqw); }
.bb-app a { color:inherit; text-decoration:none; }
.bb-app a:hover { text-decoration:underline; text-underline-offset:.2em; }
.bb-app button,.bb-app input,.bb-app summary { font:inherit; }
.bb-app button { cursor:pointer; border:0; }
.bb-app button,.bb-app input { border-radius:0; }
.bb-app :where(a,button,input,summary,[tabindex]):focus-visible { outline:3px solid var(--bb-focus); outline-offset:4px; box-shadow:0 0 0 7px #fff; }
.bb-app img { display:block; max-width:100%; height:auto; }
.bb-app svg { width:100%; height:100%; display:block; }
.bb-app .bb-sr { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.bb-app .bb-skip { position:absolute; z-index:100; top:8px; left:8px; background:#fff; padding:12px 18px; transform:translateY(-200%); }
.bb-app .bb-skip:focus { transform:none; }
.bb-app .bb-canvas { position:relative; min-height:48cqw; background-repeat:no-repeat; background-size:100% auto; }
.bb-app .bb-header { position:relative; z-index:20; height:9.8cqw; display:grid; grid-template-columns:14.5% 1fr 23%; align-items:center; gap:2.4%; padding:1.6cqw 2.1cqw 0; }
.bb-app .bb-brand { display:block; width:10.3cqw; }
.bb-app .bb-brand img { width:100%; mix-blend-mode:multiply; }
.bb-app .bb-nav { align-self:stretch; padding-top:2.5cqw; }
.bb-app .bb-nav ul { display:flex; justify-content:space-between; align-items:flex-start; gap:1cqw; list-style:none; }
.bb-app .bb-nav li { position:relative; }
.bb-app .bb-nav :where(a,summary,.bb-nav-service) { display:block; min-height:44px; padding:4px; font-size:max(.95rem,1.2cqw); font-weight:900; color:#000; }
.bb-app .bb-nav-service { background:none; }
.bb-app .bb-dropdown summary { list-style:none; cursor:pointer; text-align:center; }
.bb-app .bb-dropdown summary::-webkit-details-marker { display:none; }
.bb-app .bb-dropdown summary::after { content:''; width:.8rem; height:.8rem; display:block; border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); margin:.15rem auto .5rem; }
.bb-app .bb-dropdown-panel { position:absolute; top:3.25cqw; left:-.2rem; min-width:10.5cqw; max-width:16rem; background:rgba(5,18,26,.92); color:#fff; padding:.5rem; box-shadow:0 5px 16px #0002; }
.bb-app .bb-menu-item { display:block; width:100%; color:inherit; background:none; text-align:left; padding:.55rem .35rem; min-height:44px; font-size:max(.875rem,.8cqw); }
.bb-app .bb-menu-item:hover { background:#ffffff20; }
.bb-app .bb-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:1cqw; }
.bb-app .bb-chat { background:#000; color:#fff; font-size:max(.875rem,1cqw); padding:.6em .85em; border-radius:.5rem; white-space:nowrap; }
.bb-app .bb-icon { display:flex; width:3.4cqw; height:3.4cqw; min-width:44px; min-height:44px; padding:.45cqw; align-items:center; justify-content:center; background:#000; color:#fff; border-radius:.55rem; }
.bb-app .bb-whatsapp { border-radius:50%; width:2.6cqw; height:2.6cqw; min-width:38px; min-height:38px; background:#191919; }
.bb-app .bb-cart { width:2.5cqw; height:2.5cqw; min-width:38px; min-height:38px; padding:3px; }
.bb-app .bb-rail { position:absolute; z-index:15; right:2.2cqw; bottom:2.2cqw; display:grid; gap:1.35cqw; }
.bb-app .bb-info { border-radius:50%; }
.bb-app .bb-content { display:flow-root; position:relative; min-height:38.2cqw; font-size:max(.875rem,.93cqw); }
.bb-app .bb-content:focus { outline:none; }
.bb-app .bb-pill { display:inline-flex; justify-content:center; align-items:center; min-height:34px; min-width:12.3cqw; padding:.4em 1.2em; background:linear-gradient(#515151,#000 90%); color:#fff; border-radius:2rem; font-weight:400; font-size:max(.875rem,1.1cqw); line-height:1.25; text-align:center; }
.bb-app .bb-pill:hover { background:#171717; }
.bb-app .bb-plain { background:transparent; color:inherit; min-height:44px; padding:0; }
.bb-app.bb-p01 .bb-canvas,.bb-app.bb-p02 .bb-canvas { background-image:url('../images/hero.webp'); background-size:cover; background-position:center; }
.bb-app .bb-quick { display:flex; position:absolute; left:29.3%; top:27.7cqw; width:41.5%; justify-content:space-around; align-items:center; background:#000; color:#fff; border-radius:2rem; box-shadow:0 4px 4px #0004; padding:.15rem .8rem; }
.bb-app .bb-quick :where(a,button) { background:none; color:#fff; flex:1; padding:.45rem .7rem; min-height:34px; font-size:max(.875rem,1cqw); white-space:nowrap; }
.bb-app .bb-quick :where(a,button)+:where(a,button) { border-left:1px solid #fff; }
.bb-app:is(.bb-p03,.bb-p04,.bb-p05,.bb-p06,.bb-p12) .bb-canvas { background-image:url('../images/mountains-bottom.webp'); background-position:center bottom; }
.bb-app .bb-mosaic { width:80%; margin-left:8.1%; height:34.4cqw; display:grid; grid-template-columns:22.7% 40% 29.4%; grid-template-rows:41.5% 51.5%; column-gap:4%; row-gap:7%; }
.bb-app .bb-service { position:relative; min-width:0; display:flex; flex-direction:column; padding:3.6cqw 2.4cqw 2.5cqw; }
.bb-app .bb-service::before { content:''; position:absolute; inset:0; z-index:0; background:linear-gradient(0deg,#000d,#343434ed 55%,#000); clip-path:polygon(0 0,97% 4%,100% 100%,0 100%); }
.bb-app .bb-service>* { position:relative; z-index:1; }
.bb-app .bb-service--text { color:white; }
.bb-app .bb-service h2 { font-size:max(1.25rem,1.9cqw); }
.bb-app .bb-service p { margin-top:auto; padding-top:1.6rem; font-size:max(.875rem,.93cqw); line-height:1.2; }
.bb-app .bb-service--skipass { grid-row:1/3; grid-column:1; }
.bb-app .bb-service--bus { grid-row:1; grid-column:2; padding-top:2cqw; padding-left:3.1cqw; }
.bb-app .bb-service--evai { grid-row:2; grid-column:2; margin-left:.7cqw; }
.bb-app .bb-service--rent { grid-row:1; grid-column:3; padding-top:2.8cqw; }
.bb-app .bb-service--school { grid-row:2; grid-column:3; margin-top:1.6cqw; padding-top:7cqw; }
.bb-app .bb-service--picture { padding:0; }
.bb-app .bb-service--picture::before { display:none; }
.bb-app .bb-service--picture img { position:absolute; width:100%; height:100%; object-fit:fill; }
.bb-app .bb-service--picture .bb-pill { position:absolute; bottom:1.5cqw; left:50%; transform:translateX(-50%); min-width:12.3cqw; font-size:max(.875rem,.95cqw); }
.bb-app .bb-service--picture:is(.bb-service--bus,.bb-service--evai,.bb-service--rent) .bb-pill { bottom:auto; top:1.3cqw; left:1.7cqw; transform:none; }
.bb-app .bb-five-services { padding-top:2.5cqw; margin:0 6% 0 4.9%; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1.7cqw; text-align:center; }
.bb-app .bb-service-card { position:relative; padding:3.1cqw 1.3cqw 1.6cqw; color:white; background:linear-gradient(#000,#333); clip-path:polygon(0 0,97% 4%,100% 100%,0 100%); }
.bb-app .bb-service-card h2 { font-size:max(.875rem,1.1cqw); margin-bottom:2cqw; letter-spacing:0; }
.bb-app .bb-service-card img { width:100%; aspect-ratio:1; object-fit:cover; }
.bb-app .bb-five-services .bb-pill { margin-top:1.5cqw; }
.bb-app .bb-side-title { position:absolute; left:14%; top:3.1cqw; width:27%; text-align:center; }
.bb-app .bb-side-title span { font-size:.7em; font-weight:400; line-height:1.4; }
.bb-app .bb-side-title::before { position:absolute; content:''; top:50%; width:11cqw; border-top:1px solid #000; right:calc(100% + 3cqw); }
.bb-app .bb-side-title::after { position:absolute; content:''; width:.85cqw; height:.85cqw; min-width:8px; min-height:8px; border-radius:50%; background:#000; top:calc(50% - .425cqw); right:calc(100% + 3cqw); }
.bb-app.bb-p07 .bb-canvas { background-image:url('../images/ski-slopes.webp'); background-position:left bottom; background-size:38% 100%; }
.bb-app .bb-lifts { display:grid; grid-template-columns:1fr 1fr; margin-left:40%; width:47%; padding-top:3.3cqw; }
.bb-app .bb-lifts section { padding:0 3cqw; }
.bb-app .bb-lifts section+section { border-left:1px solid #000; }
.bb-app .bb-lifts h2 { text-align:center; font-size:2.7cqw; }
.bb-app .bb-lifts p { font-size:max(1rem,1.3cqw); text-align:center; white-space:nowrap; }
.bb-app .bb-lifts ul { list-style-type:'· '; padding-left:.4rem; line-height:1.39; }
.bb-app .bb-arrow { display:block; text-align:center; font-size:2.7cqw; color:#666; margin:.9cqw 0; }
.bb-app .bb-season-note { font-size:.75rem; margin:.8rem 12% .5rem 42%; }
.bb-app .bb-weather { display:grid; grid-template-columns:29% 1fr; gap:6.5%; margin:0 20% 0 21%; padding-top:.6cqw; }
.bb-app .bb-current { text-align:center; }
.bb-app .bb-current img { width:16cqw; height:16cqw; object-fit:contain; margin-bottom:.3cqw; }
.bb-app .bb-current strong { font-size:1.5rem; }
.bb-app .bb-forecast h1 { margin:1.7cqw 0 3.9cqw; white-space:nowrap; }
.bb-app .bb-forecast h1 span { font-weight:400; font-size:.73em; }
.bb-app .bb-forecast ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.7cqw; list-style:none; }
.bb-app .bb-forecast li { text-align:center; }
.bb-app .bb-forecast img { width:6.6cqw; max-width:none; margin-bottom:1cqw; opacity:.4; }
.bb-app .bb-forecast li span { font-size:max(.8rem,1cqw); }
.bb-app .bb-weather-banner { margin-top:2.5cqw; position:relative; width:91.3%; min-height:14.3cqw; padding:2.4cqw 2.5cqw; display:flex; align-items:flex-start; gap:4.8cqw; background:url('../images/weather-panorama.webp') center/100% 100%; }
.bb-app .bb-station { font-size:max(.75rem,.8cqw); }
.bb-app .bb-data-label { font-size:.75rem; color:#242424; background:#fffe; display:inline-block; padding:2px 4px; margin-top:4px; }
.bb-app .bb-weather-banner dl { display:flex; gap:2cqw; margin-left:auto; padding:1.4cqw 2cqw; border-radius:5px; background:linear-gradient(#163441ed,#000); color:white; }
.bb-app .bb-weather-banner dl div { display:flex; flex-direction:column-reverse; text-align:center; gap:.7cqw; }
.bb-app .bb-weather-banner dd { font-size:max(1.3rem,2cqw); font-weight:900; white-space:nowrap; }
.bb-app .bb-weather-banner small { font-size:.6em; }
.bb-app.bb-p09 .bb-canvas { background-image:url('../images/mountains-soft.webp'); background-position:center bottom; }
.bb-app .bb-resorts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:2.3cqw; margin:0 2.5%; }
.bb-app .bb-resorts img { width:100%; aspect-ratio:1.04; object-fit:fill; }
.bb-app .bb-resorts figcaption { text-align:center; margin-top:1.6cqw; }
.bb-app.bb-p10 .bb-canvas { background-image:url('../images/resort-panorama.webp'); background-position:top center; }
.bb-app .bb-stats { padding:19.5cqw 15% 0; display:flex; justify-content:space-between; text-align:center; gap:4cqw; }
.bb-app .bb-stats p { position:relative; }
.bb-app .bb-stats p:nth-child(2) { transform:translateY(-5.5cqw); }
.bb-app .bb-stats strong { font-size:2.3cqw; font-weight:900; }
.bb-app .bb-stats p::after { content:''; display:block; width:1px; height:5.6cqw; background:#555; margin:1.5cqw auto 0; }
.bb-app .bb-stats p::before { position:absolute; content:''; bottom:5.4cqw; left:calc(50% - 4px); width:8px; height:8px; border-radius:50%; background:#000; }
.bb-app .bb-news-photo { position:absolute; left:0; top:0; width:40%; height:38.2cqw; object-fit:fill; }
.bb-app .bb-newsletter { margin-left:48.8%; width:28.3%; padding-top:2.5cqw; }
.bb-app .bb-news-heading { display:flex; justify-content:space-between; gap:3rem; }
.bb-app .bb-news-heading h1 { font-size:2cqw; }
.bb-app .bb-news-heading p { font-size:max(.875rem,.9cqw); }
.bb-app .bb-news-form { padding-top:3.6cqw; }
.bb-app .bb-field { margin-bottom:1cqw; }
.bb-app .bb-field label { display:block; font-style:italic; color:#555; font-size:max(.875rem,.95cqw); }
.bb-app .bb-field input { display:block; width:100%; min-height:32px; border:0; border-bottom:1px solid #222; background:transparent; color:#000; }
.bb-app .bb-date input { width:15rem; max-width:100%; border:1px solid #767676; border-radius:6px; margin-top:.6rem; }
.bb-app .bb-form-notice { font-size:.75rem; margin:.7rem 0; color:#444; }
.bb-app .bb-form-status { margin:.75rem 0; }
.bb-app .bb-app-promo { display:flex; align-items:center; gap:4cqw; padding:3.5cqw 0 0 36.3%; }
.bb-app .bb-app-promo>img { width:9.8cqw; }
.bb-app .bb-stores { display:flex; margin-top:3.3cqw; width:14.6cqw; height:3cqw; min-height:44px; background:url('../images/store-badges.webp') center/contain no-repeat; }
.bb-app .bb-store { width:50%; background:transparent; }
.bb-app .bb-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4cqw; }
.bb-app .bb-three>div { padding:0 2cqw; line-height:1.25; }
.bb-app .bb-three>div+div { border-left:1px solid #000; }
.bb-app .bb-app-features { margin:6.8cqw 8.5% 0; }
.bb-app .bb-social-heading { text-align:center; margin:.5cqw auto 2.6cqw; }
.bb-app .bb-social-heading img { margin:0 auto .7rem; width:4.4cqw; }
.bb-app .bb-social-heading h1 { font-size:1rem; font-weight:400; }
.bb-app .bb-social-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.9cqw; margin:0 4.2%; }
.bb-app .bb-social-grid img { width:100%; aspect-ratio:1.04; object-fit:fill; }
.bb-app .bb-social-pages { text-align:center; color:#555; margin:1cqw 0; }
.bb-app .bb-social-follow { text-align:center; }
.bb-app .bb-social-follow .bb-pill { min-width:16.3cqw; }
.bb-app.bb-p14 .bb-canvas { background-image:url('../images/footer-panorama.webp'); background-position:top center; }
.bb-app .bb-contact { padding-top:17.1cqw; margin:0 auto; width:50.5%; }
.bb-app .bb-contact-grid { display:grid; grid-template-columns:1.4fr 1.4fr .5fr; gap:4.2cqw; }
.bb-app address { font-style:normal; line-height:1.4; }
.bb-app .bb-contact p { margin-top:.6rem; }
.bb-app .bb-footer-links { margin-top:3.3cqw; padding-top:.35cqw; border-top:1px solid #000; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.bb-app .bb-footer-links :where(a,button) { font-size:max(.8rem,.9cqw); }
.bb-app .bb-partner { display:flex; justify-content:center; align-items:center; gap:.8rem; margin-top:2.2cqw; }
.bb-app .bb-partner img { width:6.9cqw; }
.bb-app .bb-partner strong { font-size:max(1rem,1.25cqw); }
.bb-app .bb-shop-banner { position:relative; min-height:19.1cqw; margin:2.6cqw 12.85% 0; background:url('../images/shop-panorama.webp') center/100% 100%; padding:2.9cqw 4.7cqw; text-align:right; }
.bb-app .bb-shop-banner p { font-size:1.35cqw; }
.bb-app .bb-shop-banner .bb-pill { position:absolute; bottom:2.8cqw; right:4.7cqw; }
.bb-app .bb-shop-notes { margin:3.4cqw 11% 0; }
.bb-app.bb-p16 .bb-canvas { background-image:url('../images/price-background.webp'); background-size:60.5% 100%; background-position:right top; }
.bb-app.bb-p16 .bb-side-title { top:3.4cqw; }
.bb-app .bb-prices-left { margin-left:11.3%; padding-top:12.4cqw; width:30.6%; }
.bb-app .bb-prices-left p { font-size:max(.75rem,.8cqw); margin-top:2.8cqw; }
.bb-app .bb-prices-left p+p { margin-top:1rem; }
.bb-app .bb-prices-right { position:absolute; top:1.6cqw; left:46.9%; width:42.6%; }
.bb-app .bb-table-wrap { overflow:auto; }
.bb-app table { width:100%; table-layout:fixed; border-collapse:collapse; background:#ffffff65; font-size:max(.75rem,.8cqw); }
.bb-app :where(td,th) { border:1px solid #000; padding:.35cqw .4cqw; font-weight:400; text-align:center; vertical-align:middle; }
.bb-app th:first-child { width:38%; }
.bb-app thead th { font-size:max(.8rem,1cqw); }
.bb-app small { font-size:.85em; }
.bb-app .bb-price-group { margin-top:1.15cqw; }
.bb-app .bb-price-group h2 { font-size:max(.85rem,.97cqw); display:inline-block; background:#ddd; border:1px solid #000; padding:.6cqw 1.4cqw; font-weight:400; letter-spacing:0; }
.bb-app .bb-compact thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.bb-app .bb-compact th:first-child { width:27.7%; }
.bb-app.bb-p17 .bb-canvas { background-image:url('../images/insurance-background.webp'); background-position:left top; background-size:69.5% auto; }
.bb-app.bb-p17 .bb-side-title { top:8.4cqw; }
.bb-app .bb-insurance { position:relative; margin:5cqw 16% 0 56.8%; padding:3.6cqw 3.1cqw; color:#fff; }
.bb-app .bb-insurance::before { content:''; position:absolute; inset:0; background:linear-gradient(#000,#696969 80%); clip-path:polygon(0 0,97% 6%,100% 100%,0 100%); }
.bb-app .bb-insurance>* { position:relative; }
.bb-app .bb-insurance h2 { font-size:max(1rem,1.2cqw); font-weight:400; line-height:1.3; letter-spacing:0; }
.bb-app .bb-insurance em { font-weight:400; }
.bb-app .bb-insurance p { font-size:3cqw; font-weight:900; margin-top:1.6cqw; }
.bb-app .bb-insurance-notes { grid-template-columns:1fr 1fr; margin:5cqw 16% 0; gap:8cqw; }
.bb-app .bb-activities { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3.9cqw; margin:10.2cqw 9.4% 0 9.8%; }
.bb-app:is(.bb-p18,.bb-p19) .bb-side-title { top:3.1cqw; }
.bb-app .bb-activities img { width:100%; aspect-ratio:1.04; object-fit:fill; }
.bb-app .bb-activities figcaption { text-align:center; margin-top:1.3cqw; }
.bb-app .bb-pagination { display:flex; justify-content:center; align-items:center; margin-top:1.7cqw; }
.bb-app .bb-page-dot { color:#767676; display:flex; width:30px; height:30px; align-items:center; justify-content:center; }
.bb-app .bb-current-dot { color:#222; }
.bb-app .bb-dialog { color:#000; background:#fff; border:1px solid #444; border-radius:12px; padding:0; max-width:min(92vw,34rem); max-height:85vh; }
.bb-app .bb-dialog::backdrop { background:#0009; }
.bb-app .bb-dialog-inner { padding:2rem; }
.bb-app .bb-dialog h2 { font-size:1.6rem; margin-bottom:1rem; }
.bb-app .bb-dialog p { margin:1rem 0; }
.bb-app .bb-dialog p a { text-decoration:underline; }
/* At narrower widths the PDF composition becomes a normal-flow reading layout. */
@container (max-width: 1100px) {
 .bb-app .bb-canvas { min-height:0; }
 .bb-app .bb-header { min-height:92px; height:auto; display:flex; flex-wrap:wrap; gap:1rem; padding:1rem; background:#fffffff0; }
 .bb-app .bb-brand { width:140px; }
 .bb-app .bb-nav-toggle { display:flex; gap:.6rem; align-items:center; margin-left:auto; min-height:44px; padding:.4rem .7rem; background:#000; color:#fff; border-radius:6px; }
 .bb-app .bb-header-actions { margin-left:auto; gap:.5rem; }
 .bb-app .bb-header-actions .bb-chat { font-size:.8rem; white-space:normal; }
 .bb-app .bb-nav { width:100%; order:4; padding:0; }
 .bb-app .bb-nav ul { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:.6rem 1rem; }
 .bb-app .bb-nav :where(a,summary,.bb-nav-service) { font-size:1rem; }
 .bb-app .bb-dropdown-panel { position:static; min-width:0; max-width:20rem; }
 .bb-app .bb-menu-item { font-size:.95rem; }
 .bb-app .bb-content { min-height:0; padding:2rem 1.25rem; }
 .bb-app .bb-rail { position:relative; inset:auto; display:flex; justify-content:flex-end; gap:.75rem; padding:1rem; }
 .bb-app .bb-icon { width:44px; height:44px; padding:7px; }
 .bb-app .bb-content :where(h1,h2) { font-size:1.7rem; }
 .bb-app .bb-content :where(p,li,figcaption) { font-size:1rem; }
 .bb-app .bb-pill { font-size:1rem; min-height:44px; min-width:10rem; }
 .bb-app:is(.bb-p01,.bb-p02) .bb-content { min-height:65vh; display:flex; align-items:flex-end; padding-bottom:2rem; }
 .bb-app .bb-quick { position:static; width:100%; max-width:660px; margin:0 auto; flex-wrap:wrap; border-radius:16px; }
 .bb-app .bb-quick :where(a,button) { min-height:44px; font-size:1rem; }
 .bb-app .bb-mosaic { margin:0; width:100%; height:auto; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; gap:1.25rem; }
 .bb-app .bb-service { grid-area:auto; margin:0; padding:2rem; min-height:260px; }
 .bb-app .bb-service--skipass { grid-row:span 2; }
 .bb-app .bb-service h2 { font-size:1.65rem; }
 .bb-app .bb-service p { font-size:1rem; }
 .bb-app .bb-service--picture { padding:0; }
 .bb-app .bb-service--picture .bb-pill { bottom:1rem; top:auto!important; left:50%!important; transform:translateX(-50%)!important; }
 .bb-app .bb-five-services { padding:0; margin:0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
 .bb-app .bb-service-card { padding:2rem 1rem 1rem; }
 .bb-app .bb-service-card h2 { font-size:1rem; min-height:2.4rem; margin-bottom:1rem; }
 .bb-app .bb-side-title { position:static; width:auto; margin:0 0 2rem; text-align:left; }
 .bb-app .bb-side-title::before,.bb-app .bb-side-title::after { display:none; }
 .bb-app .bb-lifts { margin:0; width:auto; padding:0; gap:1rem; }
 .bb-app .bb-lifts section { padding:0 1rem; background:#fffe; }
 .bb-app .bb-lifts h2 { font-size:2.5rem; }
 .bb-app .bb-lifts p { white-space:normal; }
 .bb-app .bb-arrow { font-size:2rem; }
 .bb-app .bb-season-note { margin:1rem 0 0; font-size:.85rem!important; }
 .bb-app .bb-weather { margin:0; gap:2rem; grid-template-columns:1fr 2fr; padding:0; }
 .bb-app .bb-current img { width:100%; height:auto; }
 .bb-app .bb-forecast h1 { margin:0 0 2rem; white-space:normal; }
 .bb-app .bb-forecast ul { gap:1rem; }
 .bb-app .bb-forecast img { width:100%; max-width:100%; }
 .bb-app .bb-forecast li span { font-size:.75rem; }
 .bb-app .bb-weather-banner { width:100%; min-height:220px; margin-top:2rem; padding:1.5rem; flex-wrap:wrap; gap:1rem; background-size:cover; }
 .bb-app .bb-station { background:#fffe; padding:.5rem; }
 .bb-app .bb-weather-banner dl { margin:0; gap:1.5rem; padding:1rem; }
 .bb-app .bb-weather-banner dd { font-size:1.5rem; }
 .bb-app .bb-resorts { margin:0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem 1rem; }
 .bb-app .bb-resorts figcaption { margin-top:1rem; }
 .bb-app .bb-stats { padding:22cqw 0 0; gap:1rem; }
 .bb-app .bb-stats strong { font-size:1.8rem; }
 .bb-app .bb-news-photo { position:static; width:100%; height:40cqw; object-fit:cover; object-position:center 60%; margin-bottom:2rem; }
 .bb-app .bb-newsletter { margin:0 auto; width:100%; max-width:560px; padding:0; }
 .bb-app .bb-news-heading { gap:1.5rem; }
 .bb-app .bb-news-form { padding-top:2rem; }
 .bb-app .bb-field { margin-bottom:1rem; }
 .bb-app .bb-field input { min-height:44px; }
 .bb-app .bb-field label { font-size:.95rem; }
 .bb-app .bb-news-form .bb-form-notice { font-size:.8rem; }
 .bb-app .bb-app-promo { padding:1rem 0 0; justify-content:center; gap:2rem; }
 .bb-app .bb-app-promo>img { width:120px; }
 .bb-app .bb-stores { width:220px; height:48px; margin-top:1rem; }
 .bb-app .bb-three { gap:1.25rem; }
 .bb-app .bb-three>div { padding:0 1rem; }
 .bb-app .bb-app-features { margin:3rem 0 6rem; }
 .bb-app .bb-social-heading { margin:0 auto 2rem; }
 .bb-app .bb-social-heading img { width:66px; }
 .bb-app .bb-social-heading h1 { font-size:1rem; }
 .bb-app .bb-social-grid { margin:0; gap:1rem; }
 .bb-app .bb-social-pages { margin:1rem; }
 .bb-app .bb-contact { padding:20cqw 0 0; width:auto; }
 .bb-app .bb-contact-grid { gap:1.5rem; }
 .bb-app .bb-footer-links { margin-top:2rem; flex-wrap:wrap; }
 .bb-app .bb-partner { margin-top:2rem; }
 .bb-app .bb-partner img { width:90px; }
 .bb-app .bb-shop-banner { margin:0; min-height:250px; padding:2rem; }
 .bb-app .bb-shop-banner p { font-size:1.2rem; }
 .bb-app .bb-shop-banner .bb-pill { bottom:1.5rem; right:2rem; }
 .bb-app .bb-shop-notes { margin:2rem 0; }
 .bb-app .bb-prices-left,.bb-app .bb-prices-right { position:static; margin:0; padding:0; width:auto; }
 .bb-app .bb-prices-right { margin-top:2rem; }
 .bb-app table { font-size:.875rem; }
 .bb-app :where(th,td) { padding:.6rem .35rem; }
 .bb-app thead th { font-size:.875rem; }
 .bb-app .bb-price-group { margin-top:1rem; }
 .bb-app .bb-price-group h2 { font-size:1rem; padding:.6rem; }
 .bb-app .bb-prices-left p { margin-top:1rem; font-size:.875rem; }
 .bb-app .bb-insurance { margin:0 auto; padding:2rem; max-width:500px; }
 .bb-app .bb-insurance h2 { font-size:1.1rem; }
 .bb-app .bb-insurance p { font-size:2.5rem; margin-top:1rem; }
 .bb-app .bb-insurance-notes { margin:2rem 0 0; gap:2rem; }
 .bb-app .bb-activities { margin:0; gap:1.5rem; }
 .bb-app .bb-pagination { margin-top:1.5rem; }
}
@container (max-width: 600px) {
 .bb-app .bb-header-actions { width:100%; justify-content:flex-end; }
 .bb-app .bb-header-actions .bb-chat { margin-right:auto; }
 .bb-app .bb-nav ul { display:block; }
 .bb-app .bb-nav :where(a,summary,.bb-nav-service) { width:100%; text-align:left; }
 .bb-app .bb-dropdown summary::after { display:inline-block; margin-left:1rem; }
 .bb-app .bb-dropdown-panel { max-width:none; }
 .bb-app .bb-mosaic,.bb-app .bb-five-services,.bb-app .bb-lifts,.bb-app .bb-weather,.bb-app .bb-resorts,.bb-app .bb-three,.bb-app .bb-contact-grid { display:grid; grid-template-columns:minmax(0,1fr); }
 .bb-app .bb-service--skipass { grid-row:auto; }
 .bb-app .bb-service--picture { min-height:290px; }
 .bb-app .bb-service--picture.bb-service--skipass { min-height:460px; }
 .bb-app .bb-service p { padding-top:2rem; }
 .bb-app .bb-five-services { gap:2rem; }
 .bb-app .bb-service-card { max-width:350px; margin:0 auto; }
 .bb-app .bb-lifts section { padding:1rem; }
 .bb-app .bb-lifts section+section { border-left:0; border-top:1px solid #000; padding-top:1.5rem; }
 .bb-app .bb-weather { gap:2rem; }
 .bb-app .bb-current img { width:150px; margin:0 auto; }
 .bb-app .bb-forecast ul { gap:.5rem; }
 .bb-app .bb-forecast li span { font-size:.7rem; }
 .bb-app .bb-weather-banner { padding:1rem; }
 .bb-app .bb-weather-banner dl { width:100%; justify-content:space-between; gap:.5rem; padding:.8rem; }
 .bb-app .bb-weather-banner dd { font-size:1.1rem; }
 .bb-app .bb-weather-banner dt { font-size:.75rem; }
 .bb-app .bb-stats { flex-direction:column; padding:12cqw 0 0; }
 .bb-app .bb-stats p { background:#fffe; padding:1rem; }
 .bb-app .bb-stats p:nth-child(2) { transform:none; }
 .bb-app .bb-stats p::before,.bb-app .bb-stats p::after { display:none; }
 .bb-app .bb-app-promo { flex-wrap:wrap; text-align:center; }
 .bb-app .bb-three>div { padding:1rem 0; }
 .bb-app .bb-three>div+div { border-left:0; border-top:1px solid #000; }
 .bb-app .bb-social-grid,.bb-app .bb-activities { grid-template-columns:1fr; }
 .bb-app .bb-social-grid img { max-width:450px; margin:0 auto; }
 .bb-app .bb-resorts { padding-bottom:3rem; }
 .bb-app .bb-resorts img { max-width:440px; margin:0 auto; }
 .bb-app .bb-activities figcaption { margin:.8rem 0 1.2rem; }
 .bb-app .bb-quick :where(a,button) { flex:0 0 50%; white-space:normal; }
 .bb-app .bb-quick :where(a,button):nth-child(3) { border-left:0; }
 .bb-app .bb-footer-links { display:block; }
 .bb-app .bb-footer-links>* { display:block; min-height:44px; }
 .bb-app .bb-partner { flex-wrap:wrap; }
 .bb-app .bb-shop-banner { background-size:cover; }
 .bb-app .bb-shop-banner>div { display:inline-block; padding:.5rem; background:#ffffffde; }
 .bb-app .bb-table-wrap table { min-width:440px; }
 .bb-app .bb-prices-right> .bb-data-label { font-size:.75rem; }
}
@media (prefers-reduced-motion:reduce) { .bb-app *, .bb-app *::before,.bb-app *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
@media (forced-colors:active) { .bb-app :where(button,a,summary,input) { border:1px solid ButtonText; } .bb-app .bb-service--text,.bb-app .bb-service-card,.bb-app .bb-insurance { color:CanvasText; } }
@media print { .bb-app .bb-header,.bb-app .bb-rail,.bb-app .bb-dialog,.bb-app .bb-skip { display:none!important; } .bb-app .bb-canvas,.bb-app .bb-content { min-height:0; } }
/* Finishing details from the PDF: photographic fades and oblique crops. */
.bb-app .bb-contact-grid p a { display:inline-flex; align-items:center; min-height:28px; }
.bb-app .bb-table-wrap { width:100%; max-width:100%; min-width:0; }
.bb-app .bb-prices-right,.bb-app .bb-prices-left,.bb-app .bb-price-group { min-width:0; max-width:100%; }
.bb-app:is(.bb-p03,.bb-p04,.bb-p05,.bb-p06) .bb-canvas { background-image:linear-gradient(#fff 49.5%,transparent 66%),url('../images/mountains-bottom.webp'); background-size:100% 100%,100% auto; }
.bb-app.bb-p07 .bb-canvas { background-image:linear-gradient(#fff 51%,#ffffffe0 63%,transparent 86%),url('../images/ski-slopes.webp'); background-size:100% 100%,38% 100%; background-position:center,left bottom; }
.bb-app.bb-p09 .bb-canvas { background-image:linear-gradient(#fff 75%,transparent 100%),url('../images/mountains-soft.webp'); background-size:100% 100%,100% auto; }
.bb-app.bb-p10 .bb-canvas { background-image:linear-gradient(#ffffffec,transparent 45%),url('../images/resort-panorama.webp'); background-size:100% 100%,100% auto; }
.bb-app.bb-p12 .bb-canvas { background-image:linear-gradient(#fff 69%,transparent 81%),url('../images/mountains-bottom.webp'); background-size:100% 100%,100% auto; }
.bb-app.bb-p14 .bb-canvas { background-image:linear-gradient(#ffffffe6,transparent 25%),url('../images/footer-panorama.webp'); background-size:100% 100%,100% auto; }
.bb-app.bb-p16 .bb-canvas { background-image:linear-gradient(150deg,#fff 44%,#fffffff0 59%,#ffffff30),url('../images/price-background.webp'); background-size:100% 100%,60.5% 100%; }
.bb-app.bb-p17 .bb-canvas { background-image:linear-gradient(110deg,#ffffffcf,#fff 64%),url('../images/insurance-background.webp'); background-size:100% 100%,69.5% auto; }
.bb-app :is(.bb-resorts,.bb-social-grid,.bb-activities) img { clip-path:polygon(0 0,94% 5%,100% 100%,0 98%); }
.bb-app :is(.bb-resorts,.bb-activities) figure:nth-child(even) img,.bb-app .bb-social-grid img:nth-child(even) { clip-path:polygon(0 0,100% 2%,100% 100%,7% 95%); }
.bb-app .bb-news-photo { clip-path:polygon(0 0,92% 6%,100% 100%,0 100%); }
.bb-app .bb-weather-banner { background:none; isolation:isolate; }
.bb-app .bb-weather-banner::before { content:''; position:absolute; inset:0; z-index:-1; background:url('../images/weather-panorama.webp') center/100% 100%; clip-path:polygon(0 0,97% 5%,100% 100%,0 100%); }
.bb-app .bb-shop-banner { background:none; isolation:isolate; }
.bb-app .bb-shop-banner::before { content:''; position:absolute; inset:0; z-index:-1; background:url('../images/shop-panorama.webp') center/100% 100%; clip-path:polygon(0 0,97% 5%,100% 100%,0 100%); }
@container (min-width:1101px) {
 .bb-app .bb-mosaic { grid-template-columns:22.7% 2.8% 40% 5.3% 29.2%; column-gap:0; grid-template-rows:12.7cqw 19.2cqw; row-gap:2.4cqw; }
 .bb-app .bb-service--bus,.bb-app .bb-service--evai { grid-column:3; }
 .bb-app .bb-service--rent,.bb-app .bb-service--school { grid-column:5; }
 .bb-app .bb-service--rent { min-height:14.2cqw; }
 .bb-app .bb-lifts { width:48.8%; margin-left:39.5%; grid-template-columns:47.2% 52.8%; }
 .bb-app .bb-lifts section { padding:0 2.3cqw; }
 .bb-app .bb-lifts li { line-height:1.3; }
 .bb-app .bb-lifts p { font-size:1.2cqw; }
}
@container (max-width:1100px) { .bb-app.bb-p16 .bb-canvas { background-image:linear-gradient(#ffffffdd,#ffffffee),url('../images/price-background.webp'); } }
@container (max-width:600px) { .bb-app .bb-table-wrap { display:block; overflow-x:auto; } .bb-app .bb-prices-right,.bb-app .bb-prices-left { width:100%; } .bb-app .bb-shop-banner::before { background-size:cover; } }
.bb-app .bb-table-wrap { position:relative; }
.bb-app .bb-hour-prices th:first-child { width:auto; }
.bb-app .bb-hour-prices col { width:22.5%; }
.bb-app .bb-hour-prices col:first-child,.bb-app .bb-hour-prices col:last-child { width:27.5%; }
.bb-app .bb-prices-left table th:first-child { width:44%; }
@container (min-width:1101px) {
 .bb-app .bb-stats { width:78%; margin-left:8%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:25.7cqw 0 0; }
 .bb-app .bb-stats p { font-size:1.3cqw; }
 .bb-app .bb-stats p:nth-child(3) { padding-top:1.7cqw; }
 .bb-app .bb-stats p::after { position:absolute; top:calc(100% + 1.6cqw); left:50%; margin:0; }
 .bb-app .bb-stats p::before { top:calc(100% + 1.6cqw - 4px); bottom:auto; }
 .bb-app .bb-stats p:nth-child(2)::after { height:11.1cqw; }
}
