/* Offre pas encore commandable (VPS, sites web) */
.game-plan-action:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.6)}

/* Configurateur des fiches de jeux, au style « Lanceur ».
   Remplace l'ancien habillage de styles.css : même HTML, mêmes attributs data-* lus par app.js. */
[hidden]{display:none!important}
.fiche-configurateur{padding:90px 32px 0;scroll-margin-top:68px}
.offer-config{margin:0}
.offer-config input[type="radio"]{accent-color:var(--c)}

/* Titre */
.game-config-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
.game-config-intro-copy span{display:inline-flex;align-items:center;gap:8px;color:var(--c);font:700 14px var(--titre);letter-spacing:2px;text-transform:uppercase}
.game-config-intro-copy span i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}
.game-config-intro h2{margin:6px 0 0;font:700 clamp(32px,3.6vw,46px)/1 var(--titre);text-transform:uppercase}
.game-config-intro h2 em{font-style:normal;color:var(--c)}
.game-config-intro p{max-width:520px;margin:10px 0 0;color:var(--doux)}
.game-config-intro-marker{display:none}

/* Étapes */
.game-config-main{display:grid;gap:18px}
.game-config-step{padding:26px;border:1px solid var(--ligne);border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01)),var(--fond-2)}
.game-step-heading{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.game-step-heading>span{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c);font:700 22px var(--titre)}
.game-step-heading b{display:block;font:700 24px/1.05 var(--titre);text-transform:uppercase}
.game-step-heading small{display:block;margin-top:3px;color:var(--doux);font-size:14px}

/* Champs simples */
.offer-config-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.offer-config-fields>.installation-picker{grid-column:1 / -1}
.installation-picker~.offer-field{max-width:340px;margin-top:6px}
.offer-field{display:grid;gap:7px}
.offer-field>span{color:var(--doux);font-size:13px;font-weight:600}
.offer-field select{width:100%;height:50px;padding:0 42px 0 16px;border:1px solid var(--ligne);border-radius:14px;background:#070910 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%2398a0b8' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center/16px no-repeat;color:var(--texte);font:500 15px var(--corps);appearance:none;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.offer-field select:hover{border-color:rgba(255,255,255,.2)}
.offer-field select:focus{outline:0;border-color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 18%,transparent)}
.offer-field select option{background:#0c0f19}

/* Joueurs en même temps (curseur à paliers, conseil.js) */
.joueurs-bloc{display:grid;gap:14px;margin-top:22px;padding:22px;border:1px solid color-mix(in srgb,var(--c) 40%,transparent);border-radius:20px;background:radial-gradient(90% 140% at 0% 0%,color-mix(in srgb,var(--c) 14%,transparent),transparent 60%),rgba(0,0,0,.25)}
.joueurs-tete{display:flex;align-items:center;gap:14px}
.joueurs-ico{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--c) 18%,transparent)}
.joueurs-ico svg{width:24px;height:24px;fill:none;stroke:var(--c);stroke-width:1.8;stroke-linecap:round}
.joueurs-tete b{display:block;font:700 22px/1.05 var(--titre);text-transform:uppercase}
.joueurs-tete small{display:block;margin-top:3px;color:var(--doux);font-size:13px}
.joueurs-valeur{margin-left:auto;white-space:nowrap;color:var(--c);font:700 clamp(30px,3.4vw,42px)/1 var(--titre)}
.joueurs-valeur::after{content:" joueurs";color:var(--doux);font-size:16px;font-weight:600}
.joueurs-bloc input[type="range"]{--range-progress:0%;width:100%;height:10px;margin:8px 0 0;border-radius:99px;background:linear-gradient(90deg,var(--c) var(--range-progress),rgba(255,255,255,.1) var(--range-progress));appearance:none;cursor:pointer}
.joueurs-bloc input[type="range"]::-webkit-slider-thumb{width:28px;height:28px;border:4px solid #071014;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--c),0 0 18px var(--c);appearance:none}
.joueurs-bloc input[type="range"]::-moz-range-thumb{width:20px;height:20px;border:4px solid #071014;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--c)}
.joueurs-bloc input[type="range"]:focus-visible{outline:2px solid var(--c);outline-offset:6px}
.joueurs-graduation{position:relative;height:16px;margin:0 14px;color:var(--faible);font:600 12px var(--mono)}
.joueurs-graduation span{position:absolute;left:var(--p);transform:translateX(-50%)}
.joueurs-conseil{margin:4px 0 0;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.04);color:var(--doux);font-size:14px}
.joueurs-conseil b{color:var(--c);font-weight:700}
.joueurs-conseil.alerte{background:color-mix(in srgb,var(--c) 14%,transparent);color:#fff}
.joueurs-conseil a{color:var(--c);font-weight:700}
.joueurs-conseil:empty{display:none}

/* Recherches */
.installation-search,.version-search{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border:1px solid var(--ligne);border-radius:12px;background:#070910;color:var(--doux);transition:border-color .2s,box-shadow .2s}
.installation-search:focus-within,.version-search:focus-within{border-color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 18%,transparent)}
.installation-search input,.version-search input{width:200px;min-width:0;border:0;background:none;color:var(--texte);font:500 14px var(--corps);outline:0}

/* Types d'installation */
.installation-picker-head,.version-picker-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.installation-picker-head>b,.version-picker-head b{font:700 18px var(--titre);letter-spacing:.4px;text-transform:uppercase}
.version-picker-head small{display:block;margin-top:2px;color:var(--doux);font-size:13px}
.installation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.install-tile{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--ligne);border-radius:16px;background:rgba(255,255,255,.03);cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.install-tile:hover{border-color:rgba(255,255,255,.2);transform:translateY(-2px)}
.install-tile input{position:absolute;opacity:0;pointer-events:none}
.install-tile:has(input:checked){border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);box-shadow:0 0 0 1px var(--c),0 12px 30px color-mix(in srgb,var(--c) 18%,transparent)}
.game-plan-card.is-locked{opacity:.45;filter:grayscale(.6)}
.game-plan-card.is-locked .game-plan-action{cursor:not-allowed}
.game-plan-minimum{display:block;margin-top:6px;color:#ffb547;font-weight:600}
.install-tile:has(input:disabled){opacity:.5;cursor:not-allowed;transform:none}
.install-tile:has(input:focus-visible){outline:2px solid var(--c);outline-offset:3px}
.install-tile-icon{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(0,0,0,.35);overflow:hidden}
.install-tile-icon img{width:30px;height:30px;object-fit:contain;image-rendering:auto}
.install-tile-copy{min-width:0}
.install-tile-copy b{display:block;font:700 17px/1.1 var(--titre);text-transform:uppercase}
.install-tile-copy small{display:block;margin-top:2px;color:var(--doux);font-size:12px;line-height:1.35}
.install-tile em{position:absolute;top:-9px;right:12px;padding:2px 9px;border-radius:99px;background:var(--c);color:#071014;font:700 11px var(--titre);font-style:normal;letter-spacing:1px}

/* Versions */
.version-picker{margin-top:22px;padding:18px;border:1px solid var(--ligne);border-radius:18px;background:rgba(0,0,0,.25)}
.version-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.version-card{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--ligne);border-radius:12px;background:rgba(255,255,255,.03);color:var(--texte);text-align:left;cursor:pointer;transition:border-color .2s,background .2s}
.version-card:hover{border-color:rgba(255,255,255,.22)}
.version-card[aria-pressed="true"]{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);box-shadow:0 0 0 1px var(--c)}
.version-card img,.version-card-icon{flex:none;width:28px;height:28px;border-radius:8px;object-fit:cover}
.version-card-icon{display:grid;place-items:center;background:color-mix(in srgb,var(--c) 20%,transparent);color:var(--c);font:700 10px var(--corps)}
.version-card-copy{min-width:0}
.version-card-copy b{display:block;overflow:hidden;font:600 14px/1.2 var(--corps);white-space:nowrap;text-overflow:ellipsis}
.version-card-copy small{display:block;color:var(--faible);font-size:11px}
.version-more{display:flex;align-items:center;gap:8px;margin:14px auto 0;padding:9px 18px;border:1px solid var(--ligne);border-radius:99px;background:rgba(255,255,255,.04);color:var(--texte);font:600 13px var(--corps);cursor:pointer}
.version-more:hover{border-color:var(--c);color:var(--c)}
.version-source-link{color:var(--c);font-weight:600}

/* Formule conseillée ou ressources au choix */
.game-power-mode{display:inline-flex;gap:4px;margin-bottom:22px;padding:4px;border:1px solid var(--ligne);border-radius:14px;background:#070910}
.game-power-mode label{position:relative;padding:10px 18px;border-radius:10px;color:var(--doux);font:700 16px var(--titre);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.game-power-mode input{position:absolute;opacity:0;pointer-events:none}
.game-power-mode label:has(input:checked){background:var(--c);color:#071014}
.game-power-mode label:has(input:focus-visible){outline:2px solid var(--c);outline-offset:2px}

/* Cartes de formules */
.game-plan-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:12px}
.game-plan-card{position:relative;display:flex;flex-direction:column;padding:24px 22px 22px;border:1px solid var(--ligne);border-radius:20px;background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.01));cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}
.game-plan-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 50%,transparent)}
.game-plan-card:has(.game-plan-recommended){border-color:color-mix(in srgb,var(--c) 60%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 14%,transparent),rgba(255,255,255,.01))}
.game-plan-card:has(input[name="formule-jeu"]:checked){border-color:var(--c);box-shadow:0 0 0 1px var(--c),0 20px 60px color-mix(in srgb,var(--c) 18%,transparent)}
.game-plan-card>input{position:absolute;opacity:0;pointer-events:none}
.game-plan-radio,.game-plan-emblem{display:none}
.game-plan-recommended{position:absolute;top:-12px;left:20px;padding:3px 12px;border-radius:99px;background:var(--c);color:#071014;font:700 12px var(--titre);letter-spacing:1px;white-space:nowrap}
.game-plan-copy{display:flex;flex-direction:column}
.game-plan-copy::before{content:attr(data-tier-label);margin-bottom:8px;color:var(--c);font:700 12px var(--titre);letter-spacing:1.4px}
.game-plan-copy>b{font:700 26px/1 var(--titre);text-transform:uppercase}
.game-plan-copy>small{margin-top:6px;color:#c7cde0;font-size:13px}
.game-plan-detail{margin-top:4px;color:var(--doux);font-size:13px}
.game-plan-audience{align-self:flex-start;margin-top:12px;padding:4px 10px;border-radius:8px;background:rgba(255,255,255,.06);color:#dfe4f2;font-size:12px;font-weight:600}
.game-plan-specs{display:grid;gap:10px;margin:18px 0;padding:16px 0;border-block:1px solid var(--ligne)}
.game-plan-spec{display:flex;align-items:flex-start;gap:10px}
.game-plan-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--c) 15%,transparent)}
.game-plan-icon svg{width:18px;height:18px;fill:none;stroke:var(--c);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.game-plan-spec>span:last-child{display:grid;min-width:0}
.game-plan-spec small{color:var(--doux);font-size:12px}
.game-plan-spec b{font:700 17px/1.15 var(--titre)}
.game-plan-spec i{color:var(--faible);font-size:11px;font-style:normal;line-height:1.35}

/* Durée, prix, achat */
.game-plan-durations{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;border:1px solid var(--ligne);border-radius:12px;background:#070910}
.game-plan-durations button{padding:8px 4px;border:0;border-radius:9px;background:none;color:var(--doux);font:600 13px var(--corps);cursor:pointer;transition:background .2s,color .2s}
.game-plan-durations button:hover{color:#fff}
.game-plan-durations button[aria-pressed="true"]{background:color-mix(in srgb,var(--c) 22%,transparent);color:#fff}
.game-plan-price{display:grid;margin:16px 0}
.game-plan-price small{color:var(--doux);font-size:12px}
.game-plan-price b{font:700 44px/1 var(--titre)}
.game-plan-price i{margin-top:4px;color:var(--doux);font-size:12px;font-style:normal;line-height:1.5}
.game-plan-price .prix-mois{font:600 16px/1 var(--corps);color:var(--doux)}
.game-plan-price i s{color:var(--faible)}
.game-plan-price i em{margin-left:4px;padding:1px 6px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c);font-style:normal;font-weight:700}
.game-plan-action{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin-top:auto;border:0;border-radius:12px;background:rgba(255,255,255,.08);color:var(--texte);font:700 18px var(--titre);letter-spacing:.8px;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,transform .15s}
.game-plan-action>span{display:none}
.game-plan-action:hover,.game-plan-card:has(.game-plan-recommended) .game-plan-action,.game-custom-card .game-plan-action{background:var(--c);color:#071014}
.game-plan-action:hover{transform:translateY(-1px)}

/* Configuration personnalisée */
.game-custom-card{display:grid;grid-template-columns:1.3fr 1fr;gap:12px 28px;padding:26px;border-color:var(--c);cursor:default;box-shadow:0 20px 60px var(--custom-glow,color-mix(in srgb,var(--c) 14%,transparent))}
.game-custom-card:hover{transform:none}
.game-custom-card>.game-plan-copy{grid-column:1 / -1}
.game-custom-controls{grid-column:1;grid-row:2 / span 3;display:grid;gap:14px;align-content:start}
.game-custom-card>.game-plan-durations,.game-custom-hardware,.game-custom-card>.game-plan-price,.game-custom-card>.game-plan-action{grid-column:2}
.game-custom-card>.game-plan-price{margin:4px 0}
.game-custom-control{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--ligne);border-radius:16px;background:rgba(0,0,0,.25)}
.game-custom-control-heading{display:flex;align-items:center;gap:10px;font-weight:600}
.game-custom-control-heading output{margin-left:auto;font:700 22px var(--titre);color:var(--c)}
.game-custom-control-heading output.is-updating{animation:pulse-valeur .45s ease-out}
@keyframes pulse-valeur{40%{transform:scale(1.12)}}
.game-custom-control small{color:var(--faible);font-size:12px}
.game-custom-control input[type="range"]{--range-progress:0%;width:100%;height:8px;margin:6px 0 0;border-radius:99px;background:linear-gradient(90deg,var(--c) var(--range-progress),rgba(255,255,255,.1) var(--range-progress));appearance:none;cursor:pointer}
.game-custom-control input[type="range"]::-webkit-slider-thumb{width:22px;height:22px;border:3px solid #071014;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--c),0 0 14px var(--c);appearance:none}
.game-custom-control input[type="range"]::-moz-range-thumb{width:16px;height:16px;border:3px solid #071014;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--c)}
.game-range-scale{display:flex;justify-content:space-between;color:var(--faible);font-size:11px}
.game-custom-hardware{display:grid;gap:10px;padding:16px;border:1px solid var(--ligne);border-radius:16px;background:rgba(0,0,0,.25)}
.game-hardware-heading{color:var(--c);font:700 12px var(--titre);letter-spacing:1.4px}
.game-hardware-line{display:flex;align-items:flex-start;gap:10px}
.game-hardware-line svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--c);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.game-hardware-line b{display:grid;font-weight:400}
.game-hardware-line strong{font:700 15px var(--titre)}
.game-hardware-line small{color:var(--faible);font-size:11px}

.offer-disclaimer{margin:16px 0 0;color:var(--faible);font-size:13px}
.toast{position:fixed;left:50%;bottom:24px;z-index:80;padding:12px 18px;border:1px solid var(--ligne);border-radius:14px;background:#0c0f19;color:var(--texte);box-shadow:0 20px 60px rgba(0,0,0,.6);transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}

@media (max-width:1100px){
  .game-plan-list{grid-template-columns:1fr 1fr}
  .game-plan-list>.game-plan-card:last-child{grid-column:1 / -1}
  .game-custom-card{grid-template-columns:1fr}
  .game-custom-controls,.game-custom-card>.game-plan-durations,.game-custom-hardware,.game-custom-card>.game-plan-price,.game-custom-card>.game-plan-action{grid-column:1;grid-row:auto}
}
@media (max-width:720px){
  .fiche-configurateur{padding:64px 18px 0}
  .game-config-intro{display:block}
  .game-config-step{padding:20px 16px}
  .game-plan-list{grid-template-columns:1fr}
  .game-plan-list>.game-plan-card:last-child{grid-column:auto}
  .game-power-mode{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .game-power-mode label{padding:10px 8px;font-size:14px;text-align:center}
  .installation-search,.version-search{width:100%}
  .installation-search input,.version-search input{width:100%}
  .installation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .install-tile{padding:10px}
  .install-tile-icon{width:34px;height:34px}
  .version-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .version-card{min-width:0}
  .installation-picker~.offer-field{max-width:none}
  .game-custom-card{padding:20px 16px}
  .joueurs-bloc{padding:18px 16px}
  .joueurs-tete{flex-wrap:wrap}
  .joueurs-tete>div{flex:1;min-width:0}
  .joueurs-valeur{width:100%;margin:4px 0 0}
  .joueurs-graduation span:nth-child(even){display:none}
}
