/* Ninety Members — mobile-first presentation layer (loaded last).
   Posters are never overlaid by text; titles are restrained; actions never overlap. */
:root{--m-gap:clamp(14px,3.5vw,24px);--m-nav:calc(64px + max(10px,env(safe-area-inset-bottom)) + 28px);--m-card:#fffdf7;--m-ink:#032d25;--m-soft:#4d6860;--m-edge:#073f3222}
body{background:#ece7da;font-size:16px;line-height:1.5;color:var(--m-ink)}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.app-shell:not(.public-mode) .view{width:100%;max-width:1180px;margin:0 auto;padding:var(--m-gap) var(--m-gap) calc(var(--m-nav) + 24px)}
@media(min-width:821px){.app-shell:not(.public-mode) .view{padding:36px max(32px,3vw) 72px}}
/* page heads */
.app-head{display:grid;gap:12px;align-items:start;margin-bottom:20px}
.page-title{font-size:clamp(34px,8vw,56px);line-height:.95;letter-spacing:-.01em;overflow-wrap:anywhere}
.app-head p{max-width:60ch;font-size:15px;line-height:1.6;color:var(--m-soft)}
.app-head>div:last-child{display:grid;gap:12px;justify-items:start}
@media(min-width:821px){.app-head{grid-template-columns:1fr minmax(260px,420px);gap:32px;align-items:end}}
.overline{font-size:12px;letter-spacing:.12em}
.status-pill{font-size:12px}
/* text sizes legible */
.content-card p,.offer-card p,.rate-card p{font-size:15px;line-height:1.6}
.offer-card:not(.pass-card):not(.vibe-offer):not(.elite-offer) p,.content-card p,.rate-card p{color:var(--m-soft)}
.metric span,.event-action small,.rate-note,.eyebrow{font-size:12px}
.btn{min-height:48px;font-size:15px;border-radius:14px;justify-content:center;gap:12px;text-align:center}
.btn:hover{transform:none}
.filter{min-height:44px;padding:10px 16px;font-size:14px}
.filter-row,.pg-tabs{display:flex;gap:8px;overflow-x:auto;flex-wrap:nowrap;margin:0 calc(var(--m-gap)*-1) 18px;padding:2px var(--m-gap);scrollbar-width:none}
.filter-row::-webkit-scrollbar,.pg-tabs::-webkit-scrollbar{display:none}
.filter{flex:0 0 auto;white-space:nowrap}
.filter.active{background:var(--green);color:var(--cream)}
.panel,.content-card,.offer-card:not(.pass-card):not(.vibe-offer):not(.elite-offer):not(.shop-offer),.rate-card,.event-row,.news-card{background:var(--m-card);border:1px solid var(--m-edge);border-radius:20px;box-shadow:0 1px 0 #fff inset}
.panel{padding:clamp(16px,4vw,24px)}
.panel-head h2{font-size:clamp(24px,6vw,30px)}
.panel-head a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
/* home */
.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.metric-following{grid-column:1/-1}
@media(min-width:900px){.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-following{grid-column:auto}}
.metric{border-radius:18px}.metric strong{font-size:28px;overflow-wrap:anywhere}
.metric-following-value{font:700 18px/1.3 var(--sans)!important;text-transform:none}
.dashboard-grid{grid-template-columns:1fr;gap:var(--m-gap)}
@media(min-width:960px){.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);align-items:start}}
.home-programming-stack{display:grid;gap:var(--m-gap);min-width:0}
.quick-link{min-height:56px;font-size:15px;background:#f1efe5}
/* events: real <img> poster (natural ratio) -> info -> action. No overlays. */
.event-list{gap:16px}
.event-row{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:12px;align-items:start}
.event-media{display:grid;gap:8px;margin:0;position:static}
.event-poster{display:block;border-radius:14px;overflow:hidden;background:#073f3210;line-height:0}
.event-poster-img{display:block;width:100%;height:auto;max-width:100%;max-height:none;object-fit:contain}
.event-media .partner-event-badge{position:static;justify-self:start;max-width:100%;text-align:left;pointer-events:auto;box-shadow:none;font-size:13px;border-radius:8px}
.event-body{display:grid;gap:8px;min-width:0;padding:0 4px}
.event-when{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;font-weight:700;color:var(--m-soft)}
.event-row .event-date{display:inline-flex;gap:4px;align-items:baseline;height:auto;width:auto;padding:5px 10px;border-radius:8px;background:var(--green);color:var(--cream);text-transform:uppercase}
.event-row .event-date strong{font:800 18px/1 var(--display)}.event-row .event-date span{font-size:12px;letter-spacing:.06em}
.event-row .tag{font-size:12px;letter-spacing:.08em;color:#b03d12}
.event-row h3{font:800 clamp(24px,6.4vw,30px)/1.02 var(--display);text-transform:uppercase;overflow-wrap:anywhere}
.event-row h3 a:hover{color:var(--coral)}
.event-copy{font-size:15px;line-height:1.6;color:var(--m-soft);margin:0}
.event-action{display:grid;gap:8px;text-align:left;padding:0 4px 4px}
.event-action .btn{width:100%}
.event-action small{font-size:13px;color:var(--m-soft);margin:0}
/* The shared partner sheet sets column 2. Reset it so it cannot create an
   implicit second column on phones or inside the single-column home card. */
.event-card-member .event-action{grid-column:auto}
@media(min-width:760px){
 .event-row{grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:8px 22px;padding:16px}
 .event-media{grid-row:1/3}
 .event-action{align-self:end;max-width:320px}
}
@media(min-width:1100px){.event-list{grid-template-columns:1fr 1fr}.event-row{grid-template-columns:1fr}.event-list .event-media{grid-row:auto}}
.home-programming-stack .event-row,.dashboard-grid .event-row{grid-template-columns:1fr!important}
.home-programming-stack .event-media,.dashboard-grid .event-media{grid-row:auto}
/* event detail */
.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;margin-bottom:8px}
.event-detail{display:grid;gap:var(--m-gap);margin-bottom:var(--m-gap);grid-template-columns:minmax(0,1fr)}
.event-detail-media{margin:0;display:grid;gap:10px;align-content:start}
.event-detail-media .event-poster{border:1px solid var(--m-edge);border-radius:18px}
.event-detail-head{display:grid;gap:12px;align-content:start;background:var(--m-card);border:1px solid var(--m-edge);border-radius:20px;padding:clamp(16px,4vw,28px);min-width:0}
.event-detail-head h1{font:900 clamp(30px,7.5vw,44px)/1 var(--display);text-transform:uppercase;overflow-wrap:anywhere}
.event-detail-head .tag{color:#b03d12;font-size:12px;font-weight:700;letter-spacing:.08em}
.event-detail-description p{font-size:16px;line-height:1.7;color:#25443b;white-space:pre-line;overflow-wrap:anywhere;max-width:70ch}
@media(min-width:900px){.event-detail{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);align-items:start}}
.detail-layout{display:grid;grid-template-columns:1fr;gap:var(--m-gap)}
@media(min-width:960px){.detail-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.booking-card{position:sticky;top:96px}}
.detail-facts{display:grid;grid-template-columns:1fr;gap:1px;background:var(--m-edge);border:1px solid var(--m-edge);border-radius:18px;overflow:hidden;margin-bottom:var(--m-gap)}
@media(min-width:560px){.detail-facts{grid-template-columns:1fr 1fr}}
.detail-facts div{background:var(--m-card);padding:14px 16px;display:grid;gap:4px}
.detail-facts span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--m-soft)}
.detail-facts strong{font-size:16px;overflow-wrap:anywhere}
.condition-list{padding-left:20px;display:grid;gap:8px;font-size:15px;line-height:1.6}
.booking-card{background:var(--green);color:var(--cream);border-radius:22px;padding:22px;display:grid;gap:12px}
.booking-card h2{font:800 clamp(28px,7vw,34px)/1 var(--display);text-transform:uppercase}
.booking-card p,.booking-card small{font-size:14px;line-height:1.6;color:#cfe0d9}
.booking-card .eyebrow{color:#f4a07f}
/* news */
.news-grid{display:grid;grid-template-columns:1fr;gap:var(--m-gap)}
@media(min-width:700px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.news-card{display:flex;flex-direction:column;overflow:hidden}
.news-card-link{display:flex;flex-direction:column;flex:1}
.news-media{position:static!important;height:auto!important;aspect-ratio:auto!important}
.news-media img,.news-article-hero>img{position:static!important;width:100%;height:auto!important;max-height:none;object-fit:contain!important;display:block;background:#073f3210}
.news-copy{position:static!important;display:grid;gap:8px;padding:16px;color:var(--m-ink);background:none}
.news-copy h2{font:800 clamp(24px,6vw,30px)/1.02 var(--display);text-transform:uppercase;overflow-wrap:anywhere}
.news-copy p{font-size:15px;line-height:1.6;color:var(--m-soft);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.news-copy b{font-size:14px;color:var(--coral)}
.news-meta{font-size:12px;line-height:1.5;color:var(--m-soft);flex-wrap:wrap;letter-spacing:.04em}
.news-category{font-size:12px;line-height:1.4;background:var(--green);color:var(--cream);letter-spacing:.06em}
.news-card.featured{grid-column:auto}
.news-article-hero{display:grid!important;position:static!important;min-height:0!important;background:var(--m-card)!important;color:var(--m-ink)!important;border:1px solid var(--m-edge);border-radius:22px;overflow:hidden;margin-bottom:var(--m-gap)}
.news-article-hero>div{position:static!important;padding:18px clamp(16px,4vw,28px) 24px;display:grid;gap:10px}
.news-article-hero h1{font:900 clamp(30px,7.5vw,46px)/1 var(--display);text-transform:uppercase;color:var(--m-ink);overflow-wrap:anywhere}
.news-article-hero p{color:#25443b;font-size:16px;line-height:1.7}
.news-article-layout{display:grid;grid-template-columns:1fr;gap:var(--m-gap)}
@media(min-width:960px){.news-article-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}
.news-article-body{display:grid;gap:16px;max-width:70ch;font-size:17px;line-height:1.75}
.news-article-body img,.news-article-body video{width:100%;height:auto;object-fit:contain}
.news-article-body p{font-size:17px;line-height:1.75;white-space:pre-line;overflow-wrap:anywhere}
.news-next{background:var(--green);color:var(--cream);border-radius:20px;padding:20px;display:grid;gap:10px}
.news-next h2{font:800 26px/1 var(--display);text-transform:uppercase}
/* offers, benefits, rates */
.offers-grid,.card-grid{grid-template-columns:1fr;gap:var(--m-gap)}
@media(min-width:700px){.offers-grid,.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.offers-grid,.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.vibe-offer{grid-column:1/-1}
@media(min-width:700px){.vibe-offer{grid-column:span 2}}
.offer-card{min-height:0;padding:20px}
.offer-card h3,.rate-card h3,.content-card h3{font-size:clamp(26px,6.5vw,34px);overflow-wrap:anywhere}
.offer-media,.offer-card img,.offer-card video{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:12px}
.offer-product{grid-template-columns:1fr}
@media(min-width:700px){.offer-product{grid-template-columns:1fr minmax(180px,38%)}}
.offer-card details summary{min-height:44px;display:flex;align-items:center;font-size:14px;font-weight:700;cursor:pointer}
.offer-featured{display:inline-block;align-self:flex-start;font-size:12px;font-weight:700;background:var(--coral);color:var(--deep);padding:6px 10px;border-radius:999px}
.rate-summary{grid-template-columns:1fr}
@media(min-width:960px){.rate-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rate-card{min-height:0;gap:8px}
.locked:after{font-size:15px;padding:16px;text-align:center}
.content-card-image{height:auto;aspect-ratio:16/10;background-size:contain!important}
.content-card .tag,.content-card-footer,.content-card-footer a,.rate-card>span,.rate-card small,.rate-card .text-link{font-size:13px}
.reservation-card>div{min-width:0}
.reservation-card h3{overflow-wrap:anywhere}
.reservation-card p{font-size:15px;line-height:1.5}
.reservation-card small{font-size:13px;line-height:1.5}
.selection-bar{flex-wrap:wrap}
.charter-card{flex-direction:column;align-items:flex-start}
/* card, profile */
.profile-layout{grid-template-columns:1fr}
@media(min-width:900px){.profile-layout{grid-template-columns:320px 1fr}}
.field input,.field select,.field textarea{min-height:48px;font-size:16px}
.field label{font-size:12px}
.check-line{font-size:14px}
.history-table{display:block;overflow-x:auto}
.history-table th,.history-table td{font-size:14px}
/* public + auth + states */
.public-hero{min-height:0;padding:clamp(32px,8vw,70px) clamp(18px,6vw,70px)}
.public-copy .display,.display{font-size:clamp(46px,13vw,96px);line-height:.88}
.public-copy>p:not(.overline){font-size:16px}
.public-actions .btn{flex:1 1 220px}
.auth-page{min-height:0}
.auth-story{min-height:0;padding:clamp(28px,7vw,60px) clamp(18px,6vw,56px);gap:24px}
.auth-story h1{font-size:clamp(38px,10vw,72px);overflow-wrap:anywhere}
.auth-story:after{font-size:160px;opacity:.6}
.auth-form-wrap{padding:clamp(24px,6vw,60px) clamp(18px,6vw,56px)}
.auth-form h2{font-size:clamp(34px,9vw,48px)}
.auth-benefits span{font-size:13px;letter-spacing:.04em}
.auth-status-card{max-width:520px;margin-inline:auto}
.auth-status-card h1,.state-screen h1{font-size:clamp(30px,7.5vw,48px);line-height:1.02;overflow-wrap:anywhere}
.sidebar-cookie-preferences{font-size:13px}
@media(max-width:820px){
 .auth-page,.public-hero{grid-template-columns:1fr}
 .topbar .app-brand span{font-size:14px}
 .bottom-nav{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}
 .bottom-nav .bottom-nav-label,.bottom-nav>.bottom-nav-offers .bottom-nav-label{font-size:11px;line-height:1.1;max-height:14px}
 .bottom-nav.is-compact .bottom-nav-label{max-height:0}
 .toast{bottom:calc(var(--m-nav) + 4px);max-width:calc(100vw - 32px);text-align:center;border-radius:16px}
}
@media(max-width:360px){.page-title{font-size:32px}.btn{padding:12px 14px}.metric-grid{grid-template-columns:1fr}.bottom-nav .bottom-nav-label,.bottom-nav>.bottom-nav-offers .bottom-nav-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* offers contrast */
.offer-card.pass-card{background:var(--green);color:var(--cream);border-color:#ffffff1f}.offer-card.pass-card p{color:#d3e3dc}
.offer-card.vibe-offer,.offer-card.elite-offer{background:var(--deep);color:var(--cream)}.offer-card.vibe-offer p,.offer-card.elite-offer p{color:#cfe0d9}
.offer-card.shop-offer{background:var(--cream);color:var(--m-ink);border:1px solid var(--m-edge)}.offer-card.shop-offer p{color:var(--m-soft)}
.offers-state,.cm-state,.auth-status-card{background:var(--m-card);border:1px solid var(--m-edge);border-radius:20px;padding:24px;display:grid;gap:12px;justify-items:start}
.offers-skeleton span{border-radius:20px}
/* programme sportif (.pg) */
.view .pg-hero{padding:8px 0 20px;margin-bottom:20px}
.view .pg-hero h1,.view .pg-detail-head h1{font-size:clamp(34px,8.5vw,60px);line-height:.95;overflow-wrap:anywhere}
.view .pg-lead,.view .pg-muted,.view .pg-card-sub{font-size:15px;line-height:1.6}
.view .pg-card,.view .pg-panel{border-radius:20px;padding:clamp(14px,4vw,22px)}
.view .pg-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.view .pg-card-title{font-size:clamp(22px,5.5vw,28px);overflow-wrap:anywhere}
.view .pg-chip,.view .pg-btn,.view .pg-filter,.view .pg-seg button,.view .pg-tabs a,.view .pg-tabs button{min-height:44px}
.view .pg-tabs,.view .pg-chips,.view .pg-event-chips{max-width:100%}
.view .pg-detail-cols{grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.view .pg-detail-cols{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr)}}
.view .pg-vs,.view .pg-when{overflow-wrap:anywhere}
.view .pg-form input,.view .pg-form select,.view .pg-field input,.view .pg-field select{min-height:48px;font-size:16px}
/* agenda (.ag) */
.view .ag-head h1,.view .ag-head h2{font-size:clamp(34px,8.5vw,56px);line-height:.95;overflow-wrap:anywhere}
.view .ag-lead,.view .ag-sub,.view .ag-hint{font-size:15px;line-height:1.6}
.view .ag-card{border-radius:20px;padding:clamp(14px,4vw,20px);background:var(--m-card)}
.view .ag-card img,.view .ag-detail img{width:100%;height:auto;object-fit:contain}
.view .ag-grid,.view .ag-overview{grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.view .ag-grid,.view .ag-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.view .ag-btn,.view .ag-actions a,.view .ag-actions button,.view .ag-more{min-height:44px}
.view .ag-map-shell{min-height:280px;border-radius:18px;overflow:hidden}
.view .ag-sheet{padding-bottom:max(16px,env(safe-area-inset-bottom))}
/* community (.cm) */
.view .cm-home{padding-bottom:calc(var(--m-nav) + 8px)}
.view .cm-home-head{display:grid;gap:8px;margin-bottom:16px}
.view .cm-home-head p:last-child{font-size:15px;line-height:1.6;color:var(--m-soft)}
.cm-row{min-height:64px;padding:12px 14px;background:var(--m-card);border-radius:16px}
.cm-row-main strong{font-size:16px}.cm-row-main small{font-size:13px;line-height:1.45;color:var(--m-soft)}
.cm-search input{min-height:48px;font-size:16px}
.cm-prefs{background:var(--m-card);border-radius:16px;padding:14px 16px}
.cm-bar{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
.cm-icon{min-width:44px;min-height:44px}
.cm-bubble p{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.cm-meta,.cm-author,.cm-day span{font-size:12px}
.cm-form textarea{font-size:16px;min-height:44px}
.cm-send{min-width:48px;min-height:48px}
.cm-composer{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom))}
.cm-panel{padding-bottom:max(18px,env(safe-area-inset-bottom))}
