/* Public offers (catalog.offers): commercial catalogue of the official tools.
   Only Design System tokens from brand.css, so the light and dark themes both follow. The offers are
   blue; the football green stays inside [data-vertical="football"] (end of this file). */
.offers-page{padding-bottom:36px}
.offers-kicker{margin:0;font-size:11px;font-weight:750;letter-spacing:.14em;color:var(--ks-primary-text,var(--ks-primary))}
/* §45: the heading of an offers page is a surface aligned on the blocks below it. */
.offers-hero,.offer-hero,.offers-assurance{box-sizing:border-box;width:calc(min(100%,1200px) - 10vw);margin:20px auto 8px;padding:var(--ks-spacing-section);border:1px solid var(--ks-border);border-radius:var(--ks-radius-section);background:var(--ks-surface);box-shadow:var(--ks-shadow-card)}
.offers-hero h1{max-width:920px;margin:18px 0;font-size:clamp(34px,4.6vw,60px);line-height:1.06;letter-spacing:-.03em}
.offers-lead{max-width:720px;margin:0;font-size:17px;line-height:1.65;color:var(--ks-muted)}
.offers-distinction{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:920px;margin-top:32px}
.offers-distinction>div{padding:16px 18px;border:1px solid var(--ks-border);border-radius:var(--ks-radius-inner);background:var(--ks-background)}
.offers-distinction p{margin:9px 0 0;font-size:13px;line-height:1.55;color:var(--ks-muted)}
.offers-distinction a{font-weight:650;color:var(--ks-primary-text,var(--ks-primary));white-space:nowrap}
.offers-tag{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--ks-primary);color:#fff;font-size:11px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.offers-tag.muted{background:var(--ks-primary-soft);color:var(--ks-primary-text,var(--ks-primary))}

.offers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;max-width:1300px;margin:auto;padding:22px 5vw 44px}
.offer-card,.plan-card,.offer-price-panel,.offer-body>div{border:1px solid var(--ks-border);border-radius:var(--ks-radius-card);background:var(--ks-surface);box-shadow:var(--ks-shadow-card)}
.offer-card{position:relative;display:flex;flex-direction:column;padding:var(--ks-spacing-card)}
.offer-card.owned{border-color:color-mix(in srgb,var(--ks-primary) 45%,var(--ks-border))}
/* Only the « already open » chip: no tool has an official logo, never an invented monogram. */
.offer-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.offer-chip{padding:5px 10px;border-radius:999px;background:var(--ks-primary-soft);color:var(--ks-primary-text,var(--ks-primary));font-size:11px;font-weight:750}
.offer-card h2{margin:0 0 10px;font-size:21px;letter-spacing:-.01em}
.offer-card h2 a{color:inherit;text-decoration:none}
.offer-card h2 a:hover,.offer-card h2 a:focus-visible{color:var(--ks-primary-text,var(--ks-primary))}
.offer-promise{margin:0 0 12px;font-size:15px;line-height:1.55;color:var(--ks-text)}
.offer-checks{display:grid;gap:9px;margin:0 0 20px;padding:0;list-style:none}
.offer-checks li{position:relative;padding-left:27px;font-size:14px;line-height:1.45}
.offer-checks li::before,.offer-checks li::after{content:"";position:absolute;left:0;top:1px;width:18px;height:18px}
.offer-checks li::before{border-radius:50%;background:var(--ks-primary-soft)}
.offer-checks li::after{background:var(--ks-primary);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.4l2.6 2.6L13 6.6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.4l2.6 2.6L13 6.6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.offer-card-foot{display:grid;gap:16px;margin-top:auto;padding-top:18px;border-top:1px solid var(--ks-border)}
.offer-price span,.offer-price-panel span{display:block;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--ks-muted)}
.offer-price strong{font-size:28px;letter-spacing:-.02em}
.offer-price small,.offer-price-panel small{font-size:13px;color:var(--ks-muted)}
.offer-card-actions,.offer-actions{display:flex;flex-wrap:wrap;gap:10px}
.offer-card-actions .button{flex:1 1 auto;justify-content:center;text-align:center;margin:0}
.offers-empty{grid-column:1/-1;align-items:center;text-align:center}
.offers-legal.offers-legal-index{max-width:1300px;margin:-22px auto 30px;padding:0 5vw}

.offers-assurance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-block:8px 28px;padding:var(--ks-spacing-card)}
.offers-assurance>div{padding:4px 0 4px 16px;border-left:3px solid var(--ks-primary)}
.offers-assurance p{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--ks-muted)}

/* Offer detail */
.offers-crumbs{display:flex;gap:8px;max-width:1200px;margin:auto;padding:28px 5vw 0;font-size:13px;color:var(--ks-muted)}
.offers-crumbs a{color:var(--ks-primary-text,var(--ks-primary))}
.offer-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:40px;align-items:center}
.offer-hero .offer-price-panel{background:var(--ks-background);box-shadow:none}
.offer-hero h1{margin:14px 0 16px;font-size:clamp(34px,4.4vw,56px);line-height:1.06;letter-spacing:-.03em}
.offer-hero .offer-promise{font-size:19px;line-height:1.55}
.offer-actions{align-items:center;margin-top:24px}
.offer-actions .button{margin:0}
.offer-compare{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:650;color:var(--ks-primary-text,var(--ks-primary))}
.offer-access{font-size:13px;font-weight:650;color:var(--ks-primary-text,var(--ks-primary))}
.offer-price-panel{display:grid;gap:6px;padding:var(--ks-spacing-card)}
.offer-price-panel strong{font-size:44px;line-height:1.05;letter-spacing:-.03em}
.offer-visual{display:block;width:calc(100% - 10vw);max-width:1200px;margin:0 auto 20px;border:1px solid var(--ks-border);border-radius:var(--ks-radius-card)}
.offer-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:22px;max-width:1200px;margin:auto;padding:16px 5vw}
.offer-body>div{padding:var(--ks-spacing-card)}
.offer-body h2,.offer-plans>h2{margin:0 0 16px;font-size:22px;letter-spacing:-.01em}
.offer-description p{margin:0;font-size:15px;line-height:1.7;color:var(--ks-muted)}
.offer-body .offer-checks{margin:0}
.offer-plans{max-width:1200px;margin:auto;padding:30px 5vw 10px;scroll-margin-top:16px}
/* Three tiers side by side from 960px (never 2 + 1), one column below. */
.plans-grid{display:grid;grid-template-columns:1fr;gap:22px;padding-top:12px}
.plan-card{position:relative;display:flex;flex-direction:column;padding:var(--ks-spacing-card)}
.plan-card.highlighted{border:2px solid var(--ks-primary)}
.plan-badge{position:absolute;top:-12px;left:24px;padding:4px 11px;border-radius:999px;background:var(--ks-primary);color:#fff;font-size:11px;font-weight:750}
.plan-tier{margin:0 0 4px;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--ks-muted)}
.plan-card h3{margin:0 0 6px;font-size:19px}
.plan-summary,.plan-note{margin:0;font-size:13px;line-height:1.5;color:var(--ks-muted)}
.plan-price{margin:18px 0 4px}
.plan-price strong{font-size:36px;letter-spacing:-.03em}
.plan-price span{font-size:14px;color:var(--ks-muted)}
.plan-card .offer-checks{margin:18px 0 22px}
.plan-card .button{margin-top:auto;justify-content:center}
.offers-legal{max-width:760px;margin:20px 0 0;font-size:12px;line-height:1.6;color:var(--ks-muted)}
.offers-back{max-width:1200px;margin:auto;padding:14px 5vw 30px}
.offers-back a{color:var(--ks-primary-text,var(--ks-primary));font-weight:650}

@media (min-width:960px){.plans-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1080px){.offers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
 .offers-hero,.offer-hero,.offers-assurance{width:calc(100% - 32px);margin-top:14px}
 .offers-lead{font-size:16px}
 .offers-distinction,.offers-assurance{grid-template-columns:1fr}
 .offers-grid{grid-template-columns:1fr;gap:16px;padding:14px 16px 30px}
 .offers-legal.offers-legal-index{margin:-16px auto 24px;padding:0 16px}
 .offers-crumbs{padding:18px 16px 0}
 .offer-hero{grid-template-columns:1fr;gap:22px}
 .offer-visual{width:calc(100% - 32px)}
 .offer-body{padding:10px 16px}
 .offer-plans{padding:22px 16px 6px}
 .offers-back{padding:12px 16px 24px}
}

/* Offers in the catalogue (21 October 2026): provisional prices, the « Présentation détaillée » of
   each formula, the /offres/ hub and KS Network Premium (transversal, attached to no sport). */
.price-provisional{display:inline-block;width:fit-content;margin-top:6px;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--ks-primary) 10%,var(--ks-surface));color:var(--ks-primary-text,var(--ks-primary));font-size:11px;font-weight:750;letter-spacing:.04em;text-transform:none}
.offer-price-panel .price-provisional{font-size:11px;letter-spacing:.04em}
/* The main button and « Présentation détaillée » side by side, stacked when the card is narrow. */
.plan-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.plan-actions .button{flex:1 1 150px;min-height:44px;margin:0;text-align:center}
.plan-detail{font-size:14px}
.formula-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:22px;max-width:1200px;margin:auto;padding:16px 5vw}
.formula-block{padding:var(--ks-spacing-card);border:1px solid var(--ks-border);border-radius:var(--ks-radius-card);background:var(--ks-surface);box-shadow:var(--ks-shadow-card)}
.formula-block.formula-wide{grid-column:1/-1}
.formula-block h2,.formula-faq h2{margin:0 0 14px;font-size:20px;letter-spacing:-.01em}
.formula-block>p{margin:0;font-size:15px;line-height:1.7;color:var(--ks-muted)}
.formula-block ul:not(.offer-checks):not(.offer-crosses){display:grid;gap:8px;margin:0;padding-left:20px;font-size:14px;line-height:1.5}
.offer-crosses{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.offer-crosses li{position:relative;padding-left:27px;font-size:14px;line-height:1.45;color:var(--ks-muted)}
.offer-crosses li::before{content:"–";position:absolute;left:5px;top:0;font-weight:750}
.formula-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;margin:0}
.formula-facts div{padding:14px 16px;border-radius:var(--ks-radius-inner);background:var(--ks-background)}
.formula-facts dt{font-size:12px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--ks-muted)}
.formula-facts dd{margin:6px 0 0;font-size:14px;line-height:1.5}
.formula-faq{max-width:1200px;margin:auto;padding:16px 5vw}
.formula-faq details{margin-bottom:10px;padding:16px 20px;border:1px solid var(--ks-border);border-radius:var(--ks-radius-inner);background:var(--ks-surface)}
.formula-faq summary{color:var(--ks-text);font-size:15px;font-weight:650;padding:0}
.formula-faq details p{margin:10px 0 0;font-size:14px;line-height:1.65;color:var(--ks-muted)}
.formula-siblings{display:flex;flex-wrap:wrap;gap:10px;max-width:1200px;margin:auto;padding:10px 5vw}
.formula-siblings a,.formula-siblings span[aria-current]{padding:8px 14px;border:1px solid var(--ks-border);border-radius:999px;background:var(--ks-surface);font-size:13px;font-weight:650}
.formula-siblings span[aria-current]{border-color:var(--ks-primary);color:var(--ks-primary-text,var(--ks-primary))}
.formula-page .offers-legal,.network-premium .offers-legal{max-width:1200px;margin:10px auto;padding:0 5vw}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:22px;max-width:1200px;margin:auto;padding:22px 5vw 44px}
.hub-card{display:flex;flex-direction:column;gap:12px;padding:var(--ks-spacing-card);border:1px solid var(--ks-border);border-radius:var(--ks-radius-card);background:var(--ks-surface);box-shadow:var(--ks-shadow-card)}
.hub-card h2{margin:0;font-size:26px;letter-spacing:-.02em}
.hub-card h2 a{color:inherit;text-decoration:none}
.hub-card p:not(.offers-kicker){margin:0;font-size:15px;line-height:1.6;color:var(--ks-muted)}
.hub-card .button{align-self:flex-start;margin-top:auto}
.network-description{max-width:720px;margin:16px 0 0;font-size:15px;line-height:1.65;color:var(--ks-muted)}
.network-features{display:grid;gap:22px;max-width:1200px;margin:auto;padding:22px 5vw}
.network-feature{padding:var(--ks-spacing-card);border:1px solid var(--ks-border);border-radius:var(--ks-radius-card);background:var(--ks-surface);box-shadow:var(--ks-shadow-card)}
.network-feature h3{margin:12px 0 10px;font-size:26px;letter-spacing:-.02em}
.network-feature>p{max-width:760px;margin:0 0 18px;font-size:16px;line-height:1.6}
.network-feature .offer-checks{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.network-feature .premium-badge{display:inline-block;padding:4px 10px;border-radius:var(--ks-radius-pill);background:var(--ks-primary);color:#fff;font-size:11px;font-weight:750;letter-spacing:.08em}
.offer-note{margin:0;font-size:14px;color:var(--ks-muted)}
.network-included{max-width:1200px;margin:auto;padding:10px 5vw 24px}
.network-included h2{font-size:20px;margin:0 0 12px}
.network-included-list{display:grid;gap:10px;margin:0;padding:var(--ks-spacing-card);border:1px solid var(--ks-border);border-radius:var(--ks-radius-card);background:var(--ks-surface);list-style:none;font-size:14px;line-height:1.55}
.network-included-list a{color:var(--ks-primary-text,var(--ks-primary));font-weight:650}
@media (max-width:700px){.formula-hero{grid-template-columns:1fr}.network-feature h3,.hub-card h2{font-size:22px}}
/* Football owns its green, on its own pages only: the hub, KS Network Premium and any other sport stay blue. */
[data-vertical="football"] .offers-kicker,[data-vertical="football"] .offer-access{color:var(--ks-football)}
[data-vertical="football"] .offer-card.owned{border-color:color-mix(in srgb,var(--ks-football) 45%,var(--ks-border))}
[data-vertical="football"] .offer-chip{background:var(--ks-football-soft);color:var(--ks-football)}
