/* A quieter frame for vivid adventures. Shared across all application routes. */
:root{--bg:#101215;--surface:#191c21;--surface-2:#23272e;--line:#343940;--muted:#aeb5bf;--orange:#ff853e;--adventure:#ffad78;--gutter:18px;--radius:18px}
html{color-scheme:dark;scroll-padding-bottom:110px}
body{background:var(--bg);color:#f5f6f7;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}
button,input,textarea,select{font-family:inherit}
input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select{font-size:max(16px,1rem);min-width:0;max-width:100%;box-sizing:border-box}
h1,h2,h3,p,button,a,strong{overflow-wrap:break-word}
h1,h2,h3{font-weight:750;letter-spacing:-.025em;line-height:1.22}
.topbar{padding-inline:var(--gutter);height:auto;min-height:76px;gap:12px;background:var(--bg);border-bottom:1px solid #ffffff09;flex-wrap:wrap}
.brand{min-width:0}.brand-logo{display:block;width:172px;max-width:100%;height:42px;object-fit:contain;object-position:left center}
.profile-button{width:44px;height:44px;flex:0 0 44px;background:#27221f;border:1px solid #6b4936;box-shadow:none;color:#ffbb91}
.profile-button svg{width:24px;height:24px}
#adminShortcut{font-size:13px;margin:0;padding:8px 0;max-width:100%}
.page-inner,.mp,.bp{padding-inline:var(--gutter);max-width:1160px;margin-inline:auto;min-width:0;width:100%}
.home-page{gap:28px;padding-top:6px;padding-bottom:34px}
.home-page .rail{padding-bottom:0}
.home-page .hero-search-first{padding-top:4px}
.hero-search-first .search-box{background:#f5f6f7!important;border:1px solid #dadde2;border-radius:17px;box-shadow:none;color:#171b20;color-scheme:light}
.hero-search-first .search-box:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px #ff853e26}
.home-page .hero-search-first .search-box:focus-within{border-color:#dadde2;box-shadow:none}.home-page .hero-search-first .search-box input:focus,.home-page .hero-search-first .search-box input:focus-visible{outline:none!important;box-shadow:none!important}
.home-page .hero-search-first .search-box{height:58px;padding:6px 7px 6px 15px;gap:10px}
.hero-search-first .search-box input{font-size:16px;font-weight:500;color:#171b20!important}
.hero-search-first .search-box input::placeholder{color:#646b74;opacity:1}
.hero-search-first .search-box>svg{width:21px;height:21px;flex:0 0 21px;color:#626970}
.home-page .hero-search-first .search-location-button{width:42px;height:42px;min-height:42px;flex-basis:42px;background:var(--orange)!important;border-radius:12px;box-shadow:none!important;color:#17120f!important}
.home-page .search-location-button svg{width:20px;height:20px;color:#17120f!important}
.category-card,.theme-card{box-shadow:none;border-color:#ffffff24;border-radius:16px}
.category-card{min-height:116px;padding:12px;background-size:cover;background-position:center}
.category-card .cat-icon,.theme-card .theme-icon{transform:none;box-shadow:none;border:1px solid #ffffff24;border-radius:10px;background:#171b20df}
.category-card .cat-icon{width:28px;height:28px;top:10px;left:12px}
.category-card strong,.theme-card strong{font-size:14px;font-weight:700;line-height:1.3;letter-spacing:0}
.theme-card{min-height:106px;padding:12px}
.section-head{gap:14px;align-items:center}
.section-head>div{min-width:0}.section-head h2{font-size:22px;line-height:1.25;margin:0;gap:9px}
.section-head button{flex-shrink:0;max-width:35%;font-size:14px;font-weight:600;padding:8px 0}
.section-emblem{transform:none;width:30px;height:30px;border-radius:10px}
.section-emblem .icon{width:18px;height:18px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.11em;line-height:1.5}
.experience-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:none;min-width:0}
.experience-card:hover{box-shadow:0 10px 28px #0003;transform:translateY(-2px)}
.card-cover{height:190px;background-color:#191c21}
.card-cover img{display:block}
.card-body{padding:15px}
.card-body h3{font-size:17px;line-height:1.35;font-weight:700;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:7px}
.card-discovery-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}.card-discovery-meta span{min-width:0;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #3d444d;border-radius:999px;background:#22262c;color:#c9ced5;font-size:11px;line-height:1.25}.card-discovery-meta span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-discovery-meta svg{width:14px;height:14px;flex:none;color:#ffad78}
.card-facts{border-top:1px solid var(--line);gap:7px}
.card-facts span{font-size:13px;background:transparent;padding:3px 0}
.card-facts .card-price{font-size:14px;background:transparent;color:#ffd091!important}
.cover-top .pill{max-width:calc(100% - 50px);font-weight:600;white-space:normal;line-height:1.3;padding:6px 9px;min-height:28px}
.fav-button{width:36px;height:36px;flex:none;background:#171b20dd;box-shadow:none}
.fav-button svg{width:20px;height:20px}
.experience-card .cover-top{overflow:visible}
.experience-card .fav-button{width:36px;height:36px;min-width:36px;max-width:36px;min-height:36px;max-height:36px;padding:0;box-sizing:border-box;overflow:hidden;contain:layout paint;transform:none}
.experience-card .fav-button:focus,.experience-card .fav-button:focus-visible{outline:none!important;box-shadow:inset 0 0 0 2px #ffad78!important}
.experience-card .fav-button:active{transform:scale(.96)}
.btn,.mp .btn{border-radius:12px;min-height:46px;height:auto;padding:11px 15px;line-height:1.35;font-size:14px;font-weight:650;white-space:normal;text-decoration:none;max-width:100%;gap:8px;box-sizing:border-box;justify-content:center}
.btn svg{width:19px;height:19px;flex-shrink:0}
.btn.primary{background:#ff853e;color:#1b120e;border:1px solid #ff853e;box-shadow:none}
.btn.primary svg{color:currentColor}
.btn.ghost{background:#24282e;border-color:#444b55;color:#eef0f2;box-shadow:none}
.btn:active{transform:scale(.99);box-shadow:none}
.btn[aria-disabled=true]{background:#292d33;border-color:#444b55;color:var(--muted);cursor:default}
.bottom-nav{background:rgba(25,28,33,.96);border:1px solid #41464e;box-shadow:0 8px 32px #0005;backdrop-filter:blur(18px);border-radius:20px}
.bottom-nav button small{font-weight:600;font-size:12px}.bottom-nav .nav-main>span{box-shadow:none;background:var(--orange)}
.bottom-nav{height:calc(64px + env(safe-area-inset-bottom,0px));padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
.explore-header{margin-bottom:20px}.page-inner>.explore-header:has(+.explore-tools){margin-bottom:0;padding-bottom:3px}.explore-header h1,.news-page h1,.bp-hero h1{font-size:clamp(26px,4vw,36px);line-height:1.2}
.explore-header p{font-size:16px;line-height:1.5}
.explore-tools{gap:10px;padding-top:4px;padding-bottom:10px;background:transparent}
.explore-search,.explore-suggestions,.search-suggestions{background:#22262ded;border-color:#454d57;box-shadow:0 8px 24px #0002}
.explore-search{border-radius:14px;min-width:0}.filter-button{border-radius:14px}
.explore-search input:focus,.explore-search input:focus-visible{outline:none!important;box-shadow:none!important}
.suggestion-copy{min-width:0}.suggestion-copy strong{font-size:15px;font-weight:650}.suggestion-copy small{font-size:13px}
.results-grid{gap:16px}.results-more{text-align:center;margin-top:24px}.results-progress{font-size:14px;color:var(--muted)}
.content-card,.mp-panel,.bp-card,.venue-section,.admin-tile,.news-card{background:var(--surface);border:1px solid var(--line);box-shadow:none;border-radius:var(--radius);min-width:0}
.content-card{padding:20px}.content-card h2,.mp-panel h2,.bp-card h2{font-size:20px;line-height:1.3}
.content-card p,.story-card p{font-size:16px;line-height:1.65}
.detail-2026 .detail-title h1{font-size:clamp(28px,4vw,42px);line-height:1.15}
.detail-venue-button{min-width:0;width:100%;gap:10px}.detail-venue-button>span{min-width:0}.detail-venue-button strong{font-size:16px;white-space:normal}.detail-venue-button small{font-size:13px;line-height:1.5}
.detail-state-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 12px}.detail-state-actions button{min-width:0;min-height:64px;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #3b414a;border-radius:15px;background:#1d2127;color:#c8cdd5;text-align:left}.detail-state-actions button>svg{width:21px;flex:none}.detail-state-actions button>span{min-width:0;display:grid;gap:2px}.detail-state-actions strong,.detail-state-actions small{overflow:hidden;text-overflow:ellipsis}.detail-state-actions strong{color:#f6f7f8;font-size:12px;white-space:nowrap}.detail-state-actions small{color:#969da8;font-size:10px;white-space:nowrap}.detail-state-actions button.active{border-color:#ff8952;background:#39271f;color:#ff9d69}.detail-state-actions button.active strong{color:#ffb087}.detail-community-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 18px}.detail-community-metric{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border:1px solid #343a43;border-radius:15px;background:#181c22;color:#dce0e6}.detail-community-metric>.icon{width:22px;height:22px;flex:none;color:#63d8c6}.detail-community-metric.fear>.icon{color:#b988ff}.detail-community-metric span{min-width:0;display:grid;gap:2px}.detail-community-metric strong{font-size:13px;color:#f6f7f8}.detail-community-metric small{font-size:10px;color:#969da8}.detail-community-metrics.single{grid-template-columns:1fr}
.facts-grid{gap:10px}.fact{padding:14px 10px;min-height:94px;border-radius:14px;background:var(--surface);border-color:var(--line)}
.fact strong{font-size:16px;line-height:1.3;white-space:normal}.fact small{font-size:13px}
.spec-row{grid-template-columns:30px minmax(75px,.8fr) minmax(0,1.2fr);gap:10px}.spec-row strong{overflow-wrap:anywhere;font-size:14px}
.detail-cta{background:#191c21f5;border-color:#40464e;box-shadow:0 -5px 25px #0003;padding:10px;gap:10px}
.detail-cta .btn{font-size:14px;flex:1 1 0;min-width:0;min-height:48px;padding:10px 8px}
.detail-cta .btn span{min-width:0}
.community-score{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}
/* Keep fixed actions outside .page's transform animation. */
@media(max-width:999px){#app>.detail-cta{position:fixed;left:var(--gutter);right:var(--gutter);bottom:calc(100px + var(--safe-bottom));max-width:none;margin:0;border-radius:16px}}
.venue-name-modern{font-size:28px;line-height:1.2}.venue-hero-actions,.venue-contact-actions{display:flex;flex-wrap:wrap;gap:10px}
.venue-identity>div{min-width:0}.venue-identity h1{font-size:clamp(26px,4vw,36px);line-height:1.2}.venue-identity p{font-size:14px;line-height:1.5}
.venue-hero-actions .btn,.venue-contact-actions .btn{flex:1 1 145px;min-width:0}
.venue-actions{display:flex;flex-wrap:wrap;gap:10px}.venue-actions .btn{flex:1 1 145px;min-width:0}
.venue-map-card{overflow:hidden}.venue-map-info{padding:18px}.venue-map-title{align-items:center;gap:12px}.venue-map-title h2{font-size:20px;line-height:1.3}.venue-map-copy{min-width:0}
.venue-contact-lines a{font-size:14px;line-height:1.55;min-height:32px}.venue-contact-lines span{min-width:0;overflow-wrap:anywhere}
.venue-contact-lines address{font-style:normal}.venue-contact-actions{margin-top:16px}
.mp-hero,.bp-hero{background:var(--surface);border-color:var(--line);border-radius:20px;padding:22px;box-shadow:none}
.mp-hero:after,.mp-stat:after{display:none}.mp-person h1{font-size:clamp(23px,3vw,30px);line-height:1.2}
.mp-avatar{width:64px;height:64px;border-radius:20px;box-shadow:none}.mp-person{gap:15px}
.mp-hero .mp-actions{gap:10px}.mp-stat{background:var(--surface);border-color:var(--line);padding:18px 14px;border-radius:16px}.mp-stat strong{font-size:28px;font-weight:750}.mp-stat span{font-size:14px;line-height:1.4}
.mp-journey{background:#1d2425;border:1px solid #36504b;box-shadow:none;border-radius:18px}.mp-level-icon{background:#2b4842;color:var(--mint);box-shadow:none}.mp-level-track{background:#303b3b}.mp-level-track span{background:var(--mint);box-shadow:none}
.mp-level strong{font-size:16px}.mp-quest-hint{color:#b0c4be}.mp-top-panel{background:var(--surface);border-color:var(--line)}
.mp-top-number,.mp-top-card:first-child .mp-top-number{background:#ff853e;color:#17120f;box-shadow:none}
.mp-panel-head{flex-wrap:wrap}.mp-panel-head h2{flex:1;min-width:0}.mp-level>div{min-width:0}.mp-copy strong,.bp-copy strong{overflow-wrap:anywhere}
.mp-form label,.bp-form label,.member-form label{font-size:14px;min-width:0}
.mp-form input,.mp-form select,.mp-form textarea,.bp-form input,.bp-form select,.bp-form textarea,.member-form input,.member-form select{font-size:max(16px,1rem);background:#24282f;border-color:#464e58;border-radius:12px;width:100%;box-sizing:border-box}
.mp-switch,.bp-actions,.bp-head{flex-wrap:wrap}.mp-switch button{white-space:normal;line-height:1.3}
.player-badge{background:var(--surface);border-color:var(--line);border-radius:18px}.player-badge.unlocked{background:#24251d;border-color:#6b6440}.player-badge h3{font-size:17px}
.admin-tile{padding:20px}.admin-tile h2{font-size:19px}.admin-tile p{font-size:15px}.bp-admin{background:#24251e;border-color:#625a3b}
.news-card h2{font-size:20px;line-height:1.3}.news-card p{font-size:16px}.news-article h1{font-size:clamp(28px,4vw,38px);line-height:1.2}.news-article .news-intro{font-size:18px;line-height:1.6}.news-body{font-size:16px;line-height:1.8}.news-body h2{font-size:25px}
.promo-banner{background:#252820;border-color:#555a43;border-radius:18px;box-shadow:none}.promo-banner h3{font-size:20px}.promo-banner p{font-size:14px}.promo-code{transform:none;background:#181d17;color:#e0e9b5;border-color:#859265}
.empty-icon{background:#242c33;box-shadow:none;border-color:#455564;transform:none}
.member-modal,.directions-dialog,#filterSheet{background:var(--surface);border-color:#454b54;border-radius:20px}.member-modal h2{font-size:27px;line-height:1.2}.member-modal .modal-intro{font-size:16px;line-height:1.6}.directions-heading h2{font-size:22px}
.filter-section-title{font-size:18px;font-weight:650}.filter-choice,.choice-grid button,.filter-grid button{font-size:14px;line-height:1.35;white-space:normal;border-radius:12px;min-height:44px;padding:9px 10px}
.filter-grid.players button{font-size:16px}.filter-section{padding-block:18px}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid #ffad78;outline-offset:3px}
@media(min-width:700px){:root{--gutter:28px}.home-page{gap:32px}.home-page .category-grid{gap:14px}.category-card{min-height:146px}.theme-card{min-height:130px}.card-cover{height:210px}.home-page .rail{grid-auto-columns:300px}.topbar{padding-inline:28px}.content-card{padding:24px}}
@media(max-width:380px){:root{--gutter:14px}.brand-logo{width:144px}.section-head h2{font-size:20px}.section-head button{font-size:13px}.mp-hero,.bp-hero{padding:17px}.mp-person{gap:10px}.mp-person h1{font-size:23px}.mp-avatar{width:52px;height:52px;flex-basis:52px}.mp-form .mp-row{flex-wrap:wrap}.mp-form .mp-row>label{flex-basis:100%}.spec-row{grid-template-columns:26px minmax(62px,.8fr) minmax(0,1.2fr)}.bp-room-actions{padding-left:0}.category-card strong{font-size:14px}}

/* Home: one consistent gap before the footer, without the former app spacer. */
.home-page .best-rated-section .eyebrow{display:none}
body[data-page="home"] #app{padding-bottom:0;min-height:0}
body[data-page="home"] #app>.home-page{padding-bottom:0}
body[data-page="home"] .site-footer{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
@media(min-width:1000px){body[data-page="home"] .site-footer{padding-bottom:24px}}

/* Shared spacing rhythm: one gap per group, never a grid gap plus card margins. */
:root{--panel-gap:16px;--section-gap:28px}
.home-page{gap:var(--section-gap)}
.home-page>section{margin-block:0}
.home-page>.outings-promo{margin-block:0}
.home-page .section-head{margin-bottom:16px}
.home-page .rail{padding-block:0}
.home-page>*{margin-block:0!important}
.home-page>.top10-section,.home-page>.theme-section,.home-page>.best-rated-section,.home-page>.cities-section{display:grid;row-gap:16px}
.home-page>.top10-section>.section-head,.home-page>.theme-section>.section-head,.home-page>.best-rated-section>.section-head,.home-page>.cities-section>.section-head{margin-bottom:0}
.home-page>.top10-section>.rail,.home-page>.best-rated-section>.rail{padding-block:0!important}

/* Home carousels show one complete card on mobile: no clipped next-card badge. */
.home-page .top10-section,.home-page .best-rated-section{min-width:0;max-width:100%;overflow:hidden}
@media(max-width:699px){
  .home-page .top10-section .rail,.home-page :is(.best-rated-section,.top10-section) .rail{display:flex;width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;margin-inline:0;padding:4px 0 10px;gap:12px;scroll-padding-inline:0;overscroll-behavior-inline:contain}
  .home-page .top10-section .experience-card,.home-page .best-rated-section .experience-card{flex:0 0 100%;width:100%;min-width:100%;max-width:100%;box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always}
}
@media(hover:none),(pointer:coarse){
  .home-page .top10-section .experience-card:hover,
  .home-page .top10-section .experience-card:active,
  .home-page .best-rated-section .experience-card:hover,
  .home-page .best-rated-section .experience-card:active{transform:none;box-shadow:none}
}
.mp .mp-columns,.bp .bp-grid,.admin-grid,.news-grid,.results-grid{gap:var(--panel-gap)}
.bp-grid>.bp-card{margin-block:0}
.bp .bp-grid{margin-bottom:var(--panel-gap)}
.mp .mp-panel,.bp .bp-card{margin-bottom:var(--panel-gap)}
.bp .bp-grid>.bp-card{margin-bottom:0}
.mp .mp-columns>.mp-panel,
.mp .mp-columns>div>.mp-panel:last-child,
.bp .bp-grid>div>.bp-card:last-child{margin-bottom:0}
.mp .mp-hero,.bp .bp-hero{margin-bottom:var(--panel-gap)}
.mp .mp-stats,.mp .mp-journey{margin-block:var(--panel-gap)}
.mp .mp-tabs{margin-block:var(--panel-gap)}
.detail-page .content-card{margin-block:var(--panel-gap)}
.venue-page .venue-section{margin-top:var(--section-gap)}
.admin-grid{margin-bottom:var(--panel-gap)}
.mp-panel-head,.bp-head{gap:12px;align-items:center}
.mp-panel-head>h2,.bp-head>h2{margin:0;min-width:0}
.section-emblem,.btn>svg,.venue-contact-lines svg{flex-shrink:0}
#app>.page>:last-child,#app>.mp>:last-child,#app>.bp>:last-child{margin-bottom:0}
@media(min-width:700px){:root{--section-gap:32px}}

/* Member invitation uses the same gutters and spacing as the home sections. */
.join-adventure{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(260px,1fr) auto;align-items:center;gap:16px;padding:16px;border:1px solid #795336;border-radius:20px;background:linear-gradient(135deg,#302219 0%,#1b1e24 65%);min-width:0}
.join-heading{display:flex;align-items:center;gap:12px}
.join-emblem{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:13px;background:#ff853e;color:#19140f}
.join-emblem .icon{width:22px;height:22px}
.join-heading>div{min-width:0}
.join-heading h2{margin:0 0 4px;font-size:20px;line-height:1.2}
.join-heading p{margin:0;color:#d0c7c1;font-size:13px;line-height:1.4;max-width:50ch}
.join-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;list-style:none;padding:0;margin:0;border:0}
.join-benefits li{display:flex;align-items:center;gap:7px;min-width:0;padding:7px;border-radius:11px;background:#ffffff09}
.join-benefit-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:9px;background:#ffad7817;color:#ffad78}
.join-benefit-icon .icon{width:16px;height:16px}
.join-benefits li:nth-child(3n+2) .join-benefit-icon{color:#c4a0ff;background:#c4a0ff17}
.join-benefits li:nth-child(3n) .join-benefit-icon{color:#70dccc;background:#70dccc17}
.join-benefits h3{margin:0;font-size:12px;line-height:1.25;white-space:nowrap}
.join-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.join-actions .btn{min-height:40px;justify-content:center;font-size:12px;padding:9px 12px}
@media(max-width:900px){.join-adventure{grid-template-columns:1fr}.join-actions .btn{flex:1}}
@media(max-width:440px){.join-adventure{padding:14px;gap:12px}.join-heading p{font-size:12px}.join-actions .btn{flex:1 1 100%;width:100%}}

/* Promotions administrées et conteneurs anti-débordement. */
html,body,#app,.page,.page-inner,.mp,.bp,.admin-page,.detail-layout,.detail-main,.detail-media{min-width:0;max-width:100%}
body{overflow-x:clip}

/* Keep the mobile navigation at a stable size during iOS rubber-band scrolling. */
@media(max-width:999px){
 .bottom-nav{position:fixed!important;left:max(8px,env(safe-area-inset-left))!important;right:max(8px,env(safe-area-inset-right))!important;bottom:max(8px,env(safe-area-inset-bottom))!important;width:auto!important;height:72px!important;min-height:72px!important;max-height:72px!important;box-sizing:border-box!important;padding:6px!important;align-items:stretch!important;overflow:visible!important;transform:translateZ(0);contain:layout style}
 .bottom-nav button{min-height:0!important;height:58px!important;max-height:58px!important;padding-block:3px!important}
 .bottom-nav .nav-main span{flex:0 0 45px!important}
}
img,video,iframe{max-width:100%}
.home-promotions-banner{position:relative;width:100%;min-width:0;display:grid;grid-template-columns:minmax(118px,30%) minmax(0,1fr);align-items:stretch;gap:0;padding:0;overflow:hidden;border:1px solid #a95cff70;border-radius:24px;background:radial-gradient(circle at 82% 12%,#ff9c432b,transparent 35%),linear-gradient(135deg,#241728,#1f2030 58%,#172a31);color:#fff;text-align:left;box-shadow:0 18px 44px #0005,0 0 32px #8f4bd114;transition:transform .2s ease,border-color .2s ease}
.home-promotions-banner:hover{transform:translateY(-2px);border-color:#ff9f5fa3}.home-promotions-art{position:relative;min-height:164px;overflow:hidden;background:#17131d}.home-promotions-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,#231c2aea)}.home-promotions-art img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04)}
.home-promotions-copy{display:grid;align-content:center;justify-items:start;min-width:0;gap:5px;padding:22px 24px}.home-promotions-banner small{color:#ffad78;font-size:11px;font-weight:900;letter-spacing:.14em}.home-promotions-banner strong{max-width:430px;font-size:clamp(21px,3vw,30px);line-height:1.08}.home-promotions-banner em{color:#c9c5d0;font-size:14px;font-style:normal}.home-promotions-cta{display:inline-flex;align-items:center;gap:7px;margin-top:8px;padding:9px 12px;border-radius:12px;background:#ff7b3d;color:#17110e;font-size:13px;font-weight:900}.home-promotions-cta .icon{width:16px;height:16px}.promotions-hero-icon{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#ff9c4f,#f25d22);color:#17110d;transform:rotate(-5deg)}.promotions-hero-icon .icon{width:25px;height:25px}
.outings-promo{position:relative;width:100%;min-width:0;display:grid;grid-template-columns:minmax(118px,30%) minmax(0,1fr);align-items:stretch;gap:0;padding:0;overflow:hidden;border:1px solid #6fbcaf70;border-radius:24px;background:radial-gradient(circle at 82% 12%,#6fe0ca22,transparent 36%),linear-gradient(135deg,#17282b,#242034 58%,#2c1c25);color:#fff;text-align:left;box-shadow:0 18px 44px #0005,0 0 32px #56cfbb12;transition:transform .2s ease,border-color .2s ease}.outings-promo:hover{transform:translateY(-2px);border-color:#70dec9a3}.outings-promo-art{position:relative;min-height:164px;overflow:hidden;background:#111a21}.outings-promo-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 54%,#20252dec)}.outings-promo-art img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04)}
.outings-promo-copy{display:grid;align-content:center;justify-items:start;min-width:0;gap:5px;padding:20px 24px}.outings-promo .eyebrow{color:#70dec9;font-size:11px;font-weight:900;letter-spacing:.14em}.outings-promo-copy>strong{max-width:440px;font-size:clamp(21px,3vw,30px);line-height:1.08}.outings-promo-copy>em{color:#cbc8d2;font-size:14px;font-style:normal}.outings-promo-benefits{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}.outings-promo-benefits span{display:inline-flex;align-items:center;gap:5px;color:#e4e0e8;font-size:11px}.outings-promo-benefits svg{width:14px;height:14px;color:#ffad78}.outings-promo-link{display:inline-flex;align-items:center;gap:8px;margin-top:7px;padding:9px 12px;border-radius:12px;background:#ff7b3d;color:#17110e;font-size:13px;font-weight:900}.outings-promo-link b{font-size:17px}
.toggle-row-featured{border-color:#ff9f5f66;background:linear-gradient(135deg,#ff7b3d12,#8e55cf12)}.toggle-row-featured>span{display:grid;gap:2px}.toggle-row-featured strong{font-size:14px}.toggle-row-featured small{color:var(--muted);font-size:12px;line-height:1.35}
.filter-suggest-field{position:relative;display:block}.filter-search-suggestions{position:absolute;z-index:80;top:100%;left:0;right:0;max-height:300px;overflow:auto;margin-top:6px;border-radius:15px}.filter-section.filter-suggest-field>.filter-search-suggestions{top:calc(100% + 2px)}
.promotions-page{padding-top:22px}.promotions-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;margin-bottom:24px;padding:22px;border:1px solid #664633;border-radius:24px;background:linear-gradient(135deg,#30231d,#20242d)}.promotions-hero>.text-link{grid-column:1/-1;justify-self:start}.promotions-hero h1{margin:4px 0;font-size:clamp(30px,6vw,48px)}.promotions-hero p{max-width:700px;margin:0;color:#b8bdc6}.promotions-grid{align-items:stretch}
.venue-feature{min-width:0}.venue-feature .icon{flex:none}.venue-feature-list{max-width:100%}
.admin-page,.admin-page .bp-card,.admin-page .bp-room,.admin-page .bp-copy,.admin-page .news-actions{min-width:0;max-width:100%}.admin-page .bp-copy{overflow:hidden}.admin-page .bp-copy strong,.admin-page .bp-copy small{overflow-wrap:anywhere}.admin-page .mp-order{margin-left:auto;max-width:100%}
.admin-visit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.admin-visit-summary article{display:grid;gap:5px;padding:19px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.admin-visit-summary strong{font-size:28px;color:var(--orange-2)}.admin-visit-summary span{color:var(--muted);font-size:13px}.admin-visit-table-wrap{max-width:100%;overflow-x:auto;margin-top:18px;border:1px solid var(--line);border-radius:16px}.admin-visit-table{width:100%;min-width:900px;border-collapse:collapse;background:var(--surface-2)}.admin-visit-table th,.admin-visit-table td{padding:14px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.admin-visit-table th{position:sticky;top:0;background:#202329;color:#bfc3cb;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.admin-visit-table td{font-size:14px}.admin-visit-table td small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.admin-visit-table code{display:block;max-width:260px;overflow:hidden;color:#ffb083;font-family:inherit;white-space:nowrap;text-overflow:ellipsis}.admin-visit-table tbody tr:last-child td{border-bottom:0}.admin-visit-empty{padding:34px!important;text-align:center!important;color:var(--muted)}
@media(max-width:700px){.admin-visit-summary{grid-template-columns:1fr}.admin-visit-summary article{grid-template-columns:auto 1fr;align-items:baseline}.admin-visit-summary strong{font-size:24px}}
@media(max-width:560px){.home-promotions-banner,.outings-promo{grid-template-columns:106px minmax(0,1fr);border-radius:20px}.home-promotions-art,.outings-promo-art{min-height:154px}.home-promotions-copy,.outings-promo-copy{padding:16px 14px 16px 10px}.home-promotions-banner small,.outings-promo .eyebrow{font-size:9px}.home-promotions-banner strong,.outings-promo-copy>strong{font-size:18px}.home-promotions-banner em,.outings-promo-copy>em{font-size:12px}.home-promotions-cta,.outings-promo-link{padding:8px 10px;font-size:11px}.outings-promo-benefits{gap:6px}.outings-promo-benefits span{font-size:10px}.promotions-hero{padding:17px}.promotions-hero-icon{width:44px;height:44px}.admin-page .bp-room{display:grid;grid-template-columns:auto minmax(0,1fr)}.admin-page .bp-room>.btn,.admin-page .bp-room>.mp-order{grid-column:1/-1;width:100%;margin:0;justify-content:flex-end}.admin-page .bp-room>.btn{justify-content:center}}

/* Home feature banners use one-line copy and a stable compact grid. */
.home-promotions-copy>small,.home-promotions-copy>strong,.home-promotions-copy>em,.home-promotions-cta,.outings-promo-copy>.eyebrow,.outings-promo-copy>strong,.outings-promo-copy>em,.outings-promo-link{max-width:100%;white-space:nowrap}
.home-promotions-cta,.outings-promo-link{width:min(100%,580px);box-sizing:border-box;justify-content:space-between}
.home-promotions-copy>strong,.home-promotions-copy>em,.outings-promo-copy>strong,.outings-promo-copy>em{overflow:hidden;text-overflow:ellipsis}
@media(max-width:560px){
 .home-promotions-banner,.outings-promo{grid-template-columns:82px minmax(0,1fr)}
 .home-promotions-art,.outings-promo-art{min-height:150px}
 .home-promotions-copy,.outings-promo-copy{gap:4px;padding:14px 11px 14px 9px}
 .home-promotions-banner small,.outings-promo .eyebrow{font-size:8px;letter-spacing:.09em}
 .home-promotions-banner strong,.outings-promo-copy>strong{font-size:clamp(14px,4vw,17px);letter-spacing:-.02em}
 .home-promotions-banner em,.outings-promo-copy>em{font-size:clamp(9px,2.55vw,11px);letter-spacing:-.015em}
 .home-promotions-cta,.outings-promo-link{font-size:10px;padding:7px 9px}
 .outings-promo-benefits{width:100%;flex-wrap:nowrap;gap:5px;overflow:hidden}
 .outings-promo-benefits span{min-width:0;font-size:9px;white-space:nowrap}
 .outings-promo-benefits svg{width:12px;height:12px}
}

/* Call-to-action visuel partagé sur toutes les fiches d'expérience. */
.detail-propose-outing{position:relative;min-height:220px;margin-block:var(--panel-gap);overflow:hidden;border:1px solid #ff8a4c70;border-radius:24px;background:#20242b;box-shadow:0 15px 34px #0004}
.detail-propose-art{position:absolute;inset:0}.detail-propose-art:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,#11141ae8 0,#11141a80 48%,#11141a20 100%),linear-gradient(0deg,#11141a88,transparent 60%)}
.detail-propose-art img{position:relative;z-index:1;width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.01)}.detail-propose-art .fallback-glyph{position:absolute;inset:0;width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 25% 25%,#ff7b3d55,transparent 34%),linear-gradient(135deg,#2d1e29,#172c31);color:#ffb17f}.detail-propose-art img+.fallback-glyph{display:none}.detail-propose-art .fallback-glyph .icon{width:52px;height:52px}
.detail-propose-button{position:absolute;z-index:3;left:22px;bottom:20px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;width:min(390px,calc(100% - 44px));min-height:72px;padding:12px 16px;border:1px solid #ff9b63aa;border-radius:18px;background:#171a20e8;color:#fff;text-align:left;box-shadow:0 14px 30px #0009;backdrop-filter:blur(10px)}.detail-propose-button>svg:first-child{width:28px;height:28px;color:#ff8a4c}.detail-propose-button>svg:last-child{width:18px;color:#ffb184}.detail-propose-button>span{display:grid;gap:2px}.detail-propose-button small{color:#ff9f69;font-size:10px;font-weight:900;letter-spacing:.14em}.detail-propose-button strong{font-size:18px}.detail-propose-button:active{transform:translateY(1px)}
@media(max-width:760px){.detail-propose-outing{min-height:190px;border-radius:19px}.detail-propose-button{left:12px;bottom:12px;width:calc(100% - 24px);min-height:64px;padding:10px 14px}.detail-propose-button strong{font-size:16px}}
@media(max-width:360px){.detail-state-actions{gap:6px}.detail-state-actions button{min-height:72px;display:grid;justify-items:center;gap:5px;padding:8px 4px;text-align:center}.detail-state-actions strong{font-size:11px}.detail-state-actions small{font-size:9px}.detail-cta .btn{font-size:12px}}

/* Desktop canvas: keep the application aligned with the header instead of
   stretching every section across ultra-wide screens. */
@media(min-width:1000px){
 #app>.page-inner{width:100%;max-width:1240px;margin-inline:auto;padding-inline:24px}
 .home-page{padding-top:18px}
 .home-page .hero-search-first{margin:0;padding:4px 0 0}
 .home-page .hero-search-first .hero-content{width:100%;max-width:900px;margin-inline:auto}
 .home-page .escape-assistant{max-width:100%}
 .desktop-nav button{font-size:14px;padding-inline:16px}
 .home-promotions-banner,.outings-promo{height:230px;min-height:230px;grid-template-columns:minmax(320px,38%) minmax(0,1fr)}
 .home-promotions-art,.outings-promo-art{height:230px;min-height:0}
 .home-promotions-copy,.outings-promo-copy{padding:28px 34px}
 .home-promotions-cta,.outings-promo-link{width:min(100%,520px)}
}

/* Homepage mobile rails: actual ranked cards and nearby cards share complete slides. */
@media(max-width:767px){
  .home-page .ranked-rail,.home-page .home-nearby-section .rail,.home-page :is(.best-rated-section,.top10-section) .rail{display:flex;width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin-inline:0;padding:0 0 10px;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-inline:contain}
  .home-page .ranked-rail>.ranked-card,.home-page .home-nearby-section .rail>.experience-card,.home-page :is(.best-rated-section,.top10-section) .rail>.experience-card{flex:0 0 100%;width:100%;min-width:0;max-width:100%;box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always}
  .home-page .home-reference-section{min-width:0;max-width:100%}
  .home-page .ranked-cover{height:auto;aspect-ratio:4/3}
  .home-page .ranked-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .home-page .ranked-number{left:12px;bottom:12px;font-size:40px;line-height:1.1;letter-spacing:normal;-webkit-text-stroke:0;text-shadow:0 2px 8px #000;background:#111318dd;border-radius:12px;padding:4px 12px}
  .home-page .ranked-copy{padding:12px 2px 0}
  .home-page .ranked-copy h3,.home-page .card-body h3{display:block;overflow:visible;white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:unset}
  .home-page .home-nearby-section .card-cover,.home-page :is(.best-rated-section,.top10-section) .card-cover{height:auto;aspect-ratio:16/10}
  .home-page .section-head{flex-wrap:wrap;gap:8px 12px}
  .home-page .section-head button{min-height:44px;max-width:none}
  .home-page .card-facts{flex-wrap:wrap;row-gap:10px}
  .home-page .experience-card:hover,.home-page .experience-card:active{transform:none}
}

/* One vertical rhythm across every homepage section and carousel. */
.home-page{--home-section-gap:28px;--home-heading-gap:16px;gap:var(--home-section-gap)}
.home-page>.top10-section,.home-page>.theme-section,.home-page>.best-rated-section,.home-page>.cities-section,.home-page>.faq-section{display:grid;row-gap:var(--home-heading-gap);padding-block:0}
.home-page>section>.section-head{margin-block:0}
.home-page .ranked-rail,.home-page .rail{padding-block:0}
.home-page .hero-search-first{padding-block:0;min-height:0}
.home-page .home-discovery{padding-bottom:0}
.home-page .home-category-chips{padding-bottom:0}
@media(min-width:768px){.home-page{--home-section-gap:32px}}
.explore-proximity{display:flex;align-items:flex-start;gap:12px;margin:16px 0;padding:16px;border:1px solid #ffffff18;border-radius:16px;background:#1b1d23}.explore-proximity>svg{flex-shrink:0;width:22px;height:22px;color:#ffaf7d}.explore-proximity>div{min-width:0}.explore-proximity strong,.explore-proximity small{display:block;line-height:1.5}.explore-proximity small{color:#b9bdc7;margin-top:4px}.explore-proximity button{margin-top:12px}.nearby-fallback{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.nearby-fallback small{flex-basis:100%;line-height:1.5;color:#b9bdc7}
