/* ==========================================================================
   style-tarifs.css — pages Tarifs (hub, particuliers, professionnels) — v2
   Chargé uniquement sur ces 3 pages (cf. js/_init.php, $is_tarifs).
   Principe : hero violet qui déborde sur les cartes de prix, sections calmes
   (blanc / lilas très clair), une formule mise en avant, pas de biseaux.
   Peut être fusionné dans styles.min.css lors du prochain build.
   ========================================================================== */

.tarifs-page{
	--tp-lilas:#f6f2fc;
	--tp-ligne:#e6def4;
	--tp-ombre:0 22px 44px -24px rgba(62,38,120,.5);
	overflow-x:clip;
}
.tarifs-page .sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* --- Hero : titre + réponse directe (bloc cité par les moteurs / IA) ------ */
.tarifs-page #cta-top{padding:3.5rem 0 10rem;background:var(--violet)}
.tarifs-page #cta-top .texte{max-width:1200px;padding:0 1.5rem}
.tarifs-page #cta-top h1.titre{margin:0;padding:0 0 1.5rem;font-size:46px;line-height:1.12;font-weight:700;letter-spacing:-.025em;color:#fff;text-align:center;text-wrap:balance}
.tarifs-page .reponse-directe{max-width:100%;margin:0 auto;padding:0;background:none;border:0;font-size:18px;line-height:1.65;color:rgba(255,255,255,.92);text-align:center}
.tarifs-page .reponse-directe strong{font-weight:600;color:#fff}
.tarifs-page .reponse-directe details.rd summary{display:block;list-style:none;margin-bottom:.45rem;font-size:20px;pointer-events:none;cursor:default}
.tarifs-page .reponse-directe details.rd summary::-webkit-details-marker{display:none}
.tarifs-page .reponse-directe details.rd summary::before,.tarifs-page .reponse-directe details.rd summary::after{content:none!important}

/* --- Bloc qui chevauche le hero (cartes de prix / choix du hub) ----------- */
.tarifs-page .tp-formules{position:relative;z-index:11;margin-top:-6rem;padding:0;background:transparent}
.tarifs-page .tp-formules>.texte{max-width:1460px;padding:0 1.5rem 4rem}

/* --- Sections courantes --------------------------------------------------- */
.tarifs-page .tp-section{padding:5.5rem 0}
.tarifs-page .tp-section>.texte{max-width:1460px;padding:0 1.5rem}
.tarifs-page .tp-lilas{background:var(--tp-lilas)}
.tarifs-page .tp-section h2.titre{margin:0;padding:0 0 1rem;font-size:38px;line-height:1.18;font-weight:700;letter-spacing:-.02em;color:var(--violet-black);text-align:center;text-wrap:balance}
.tarifs-page .tp-intro{max-width:700px;margin:0 auto 3rem;font-size:17px;line-height:1.65;text-align:center}
.tarifs-page .tp-note{max-width:700px;margin:2rem auto 0;font-size:14px;line-height:1.55;font-style:italic;color:var(--noir-txt-70);text-align:center}

/* --- Listes à coches (sans image) ----------------------------------------- */
.tarifs-page .offre ul,.tarifs-page .choix-carte ul{margin:0;padding:0;list-style:none}
.tarifs-page .offre ul li,.tarifs-page .choix-carte ul li{position:relative;margin:0 0 .7rem;padding:0 0 0 1.7rem;background:none;font-size:15px;line-height:1.5}
.tarifs-page .offre ul li::before,.tarifs-page .choix-carte ul li::before{content:"";position:absolute;left:.1rem;top:.38em;width:.7em;height:.36em;border-left:2px solid var(--violet);border-bottom:2px solid var(--violet);transform:rotate(-45deg)}

/* --- Cartes formules (partials _formules-tarifs-*.html) ------------------- */
.tarifs-page #offres{display:flex;flex-wrap:nowrap;gap:24px;align-items:stretch;justify-content:center;overflow:visible;padding:0;margin:0}
.tarifs-page .offre{position:relative;display:flex;flex-direction:column;flex:1 1 0;min-width:0;max-width:none;padding:2.25rem 2rem 2rem;background:#fff;border:1px solid var(--tp-ligne);border-radius:16px;box-shadow:0 18px 36px -24px rgba(62,38,120,.38);text-align:left;transition:transform .25s}
.tarifs-page .offre .titre-offre{margin:0 0 1.5rem;padding:0 0 1.25rem;border-bottom:1px solid var(--tp-ligne);font-size:26px;line-height:1.2}
.tarifs-page .offre .titre-offre span{margin-top:.3rem;font-size:15px}
.tarifs-page .offre .prix{margin:0;padding:0;font-family:Inter,arial,sans-serif;font-size:56px;font-weight:700;line-height:1;letter-spacing:-.035em;color:var(--violet-black)}
.tarifs-page .offre .prix span{display:inline;margin:0 0 0 .4rem;font-size:16px;font-weight:500;letter-spacing:0;color:var(--noir-txt-70)}
.tarifs-page .offre .prix-equiv{margin:.5rem 0 0;font-size:14px;color:var(--noir-txt-70)}
.tarifs-page .offre .specs{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:1.5rem 0;overflow:hidden;background:var(--tp-ligne);border-radius:10px}
.tarifs-page .offre .specs div{padding:.8rem 1rem;background:var(--tp-lilas)}
.tarifs-page .offre .specs strong{display:block;font-family:Inter,arial,sans-serif;font-size:22px;font-weight:700;line-height:1.2;color:var(--violet-black)}
.tarifs-page .offre .specs span{display:block;font-size:13px;line-height:1.3;color:var(--noir-txt-70)}
.tarifs-page .offre ul{flex:1;margin:0 0 1.75rem}
.tarifs-page .offre .btn{display:block;width:100%;box-sizing:border-box;margin:0;padding:16px 20px;white-space:normal;border-radius:8px;font-size:16px}
.tarifs-page .offre:not(.offre-star) .btn{background:#fff;color:var(--violet);box-shadow:inset 0 0 0 2px var(--violet)}
.tarifs-page .offre .opt{display:block;margin-top:1rem;font-size:12px;font-style:italic;line-height:1.4;color:var(--noir-txt-70)}

/* Formule mise en avant */
.tarifs-page .offre-star{padding-top:2.75rem;border:2px solid var(--violet);box-shadow:0 28px 50px -26px rgba(62,38,120,.55)}
.tarifs-page .offre-star .badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:.4rem 1.1rem;background:var(--violet-black);border-radius:999px;font-family:Inter,arial,sans-serif;font-size:13px;font-weight:600;line-height:1.3;color:#fff;white-space:nowrap}
@media (min-width:901px){
	.tarifs-page .offre-star, .tarifs-page .offre:hover, .choix .choix-carte:hover {transform:translateY(-14px)}
}

/* --- Options supplémentaires ---------------------------------------------- */
.tarifs-page .options-tarifs{color:var(--noir-txt,#2b2b2b);display:grid;grid-template-columns:220px 1fr;gap:1rem 2.5rem;align-items:start;margin:3.5rem 0 0;padding:1.75rem 2.25rem;background:var(--tp-lilas);border-radius:16px;text-align:left}
.tarifs-page .options-tarifs h3{margin:0;font-family:Inter,arial,sans-serif;font-size:18px;font-weight:600;line-height:1.35;color:var(--violet-black)}
.tarifs-page .options-tarifs ul{display:grid;grid-template-columns:1fr 1fr;gap:0 2.5rem;margin:0;padding:0;list-style:none}
.tarifs-page .options-tarifs li{display:flex;justify-content:space-between;gap:1rem;margin:0;padding:.7rem 0;background:none;border-bottom:1px dashed var(--tp-ligne);font-size:15px;line-height:1.45}
.tarifs-page .options-tarifs li span{color:var(--noir-txt,#2b2b2b)}
.tarifs-page .options-tarifs li strong{flex:none;font-weight:600;color:var(--violet-black);text-align:right}
.tarifs-page .info-tarifs{margin:1.25rem 0 0;font-size:14px;font-style:italic;color:var(--noir-txt-70);text-align:center}

/* --- Hub : choix particuliers / professionnels ---------------------------- */
.tarifs-page .choix{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.tarifs-page .choix-carte{display:flex;flex-direction:column;box-sizing:border-box;width:auto;margin:0;padding:2.5rem;background:#fff;border:1px solid var(--tp-ligne);border-radius:16px;box-shadow:var(--tp-ombre);text-align:left;transition:transform .25s}
.tarifs-page .choix-carte h2,.tarifs-page .choix-carte h3{margin:0 0 .5rem;font-family:Sarabun,arial,sans-serif;font-size:30px;font-weight:700;line-height:1.15;color:var(--violet-black)}
.tarifs-page .choix-carte .cible{min-height:3.1em;margin:0;font-size:16px;line-height:1.55;color:var(--noir-txt-70)}
.tarifs-page .choix-carte .depuis{margin:1.75rem 0 .25rem;font-size:14px;color:var(--noir-txt-70)}
.tarifs-page .choix-carte .prix{margin:0;font-family:Inter,arial,sans-serif;font-size:60px;font-weight:700;line-height:1;letter-spacing:-.035em;color:var(--violet-black)}
.tarifs-page .choix-carte .prix small{margin-left:.45rem;font-size:18px;font-weight:500;letter-spacing:0;color:inherit;opacity:.7}
.tarifs-page .choix-carte .duree{margin:.6rem 0 1.5rem;font-size:15px;color:var(--noir-txt-70)}
.tarifs-page .choix-carte ul{flex:1;margin:0 0 2rem;padding-top:1.5rem;border-top:1px solid var(--tp-ligne)}
.tarifs-page .choix-carte .btn{display:block;box-sizing:border-box;width:100%;padding:16px 20px;white-space:normal;border-radius:8px;font-size:16px}
.tarifs-page .choix-pro{background:var(--violet-black);border-color:var(--violet-black);color:#fff}
.tarifs-page .choix-pro h2,.tarifs-page .choix-pro h3,.tarifs-page .choix-pro .prix{color:#fff}
.tarifs-page .choix-pro .cible,.tarifs-page .choix-pro .depuis,.tarifs-page .choix-pro .duree{color:rgba(255,255,255,.78)}
.tarifs-page .choix-pro ul{border-top-color:rgba(255,255,255,.22)}
.tarifs-page .choix-pro ul li strong{color:#fff}
.tarifs-page .choix-pro ul li::before{border-color:#fff}
.tarifs-page .choix-pro .btn{background:#fff;color:var(--violet-black)}
.tarifs-page .choix-pro .btn:before{background-color:var(--violet)}
.tarifs-page .choix-pro .btn:hover{color:#fff}

/* --- Tableau comparatif ---------------------------------------------------- */
.tarifs-page .table-scroll{margin-top:2.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--tp-ligne);border-radius:16px}
.tarifs-page table.tarif-table{width:100%;min-width:680px;border-collapse:collapse;color:var(--noir-txt);font-size:16px;text-align:left}
.tarifs-page table.tarif-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.tarifs-page table.tarif-table th,.tarifs-page table.tarif-table td{padding:1rem 1.25rem;border-bottom:1px solid var(--tp-ligne);line-height:1.55;vertical-align:top}
.tarifs-page table.tarif-table thead th{background:var(--violet-black);border-bottom:0;font-family:Inter,arial,sans-serif;font-weight:600;color:#fff}
.tarifs-page table.tarif-table tbody th{width:24%;background:var(--tp-lilas);font-weight:600;color:var(--violet-black)}
.tarifs-page table.tarif-table tbody tr:last-child th,.tarifs-page table.tarif-table tbody tr:last-child td{border-bottom:0}

/* --- « Ce qui est inclus » (icônes) --------------------------------------- */
.tarifs-page .inclus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 3rem;text-align:left}
.tarifs-page .inclus-item{display:grid;grid-template-columns:52px 1fr;gap:0 1.1rem;align-items:start}
.tarifs-page .inclus-item .ico{display:grid;place-items:center;width:52px;height:52px;background:var(--tp-lilas);border-radius:50%;color:var(--violet)}
.tarifs-page .tp-lilas .inclus-item .ico{background:#fff}
.tarifs-page .inclus-item .ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tarifs-page .inclus-item h3{margin:.15rem 0 .35rem;font-family:Inter,arial,sans-serif;font-size:17px;font-weight:600;line-height:1.3;color:var(--violet-black)}
.tarifs-page .inclus-item p{margin:0;font-size:15px;line-height:1.6}

/* --- Cas d'usage (page pro) ------------------------------------------------ */
.tarifs-page .usage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.25rem 3rem;text-align:left}
.tarifs-page .usage-item{padding-left:1.1rem;border-left:3px solid var(--violet)}
.tarifs-page .usage-item h3{margin:0 0 .35rem;font-family:Inter,arial,sans-serif;font-size:17px;font-weight:600;line-height:1.3;color:var(--violet-black)}
.tarifs-page .usage-item p{margin:0;font-size:15px;line-height:1.6}

/* --- Accueil : teaser des formules (bloc #formules de l'accueil) ----------- */
#formules .formules-intro{max-width:760px;margin:0 auto;font-size:18px;line-height:1.6;color:rgba(255,255,255,.92)}
#formules .tarifs-page{width:100%;max-width:none;margin:3rem 0 0;text-align:left}
#formules .choix-pro{border-color:rgba(255,255,255,.35)}
#formules .info-tarifs{margin:1.5rem 0 0;text-align:center;color:rgba(255,255,255,.85)}
#formules .formules-lien{margin:2rem 0 0;text-align:center}
#formules .formules-lien .btn{display:inline-block;box-sizing:border-box;max-width:100%;padding:16px 28px;white-space:normal;border:2px solid #fff;border-radius:8px;background:transparent;color:#fff;font-size:16px;font-weight:600;text-decoration:none}
#formules .formules-lien .btn:before{background-color:#fff}
#formules .formules-lien .btn:hover,#formules .formules-lien .btn:focus-visible{color:var(--violet-black)}

/* --- Exemples de budget / choix de la formule ------------------------------ */
.tarifs-page .budget-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:left}
.tarifs-page .budget-card{display:flex;flex-direction:column;padding:2rem 1.9rem;background:#fff;border:1px solid var(--tp-ligne);border-radius:16px;color:var(--noir-txt)}
.tarifs-page .budget-card .budget-type{margin:0 0 .25rem;font-size:15px;font-weight:600;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--violet)}
.tarifs-page .budget-card h3{margin:0 0 1rem;font-family:Sarabun,arial,sans-serif;font-size:24px;font-weight:700;line-height:1.2;color:var(--noir-txt)}
.tarifs-page .budget-card .budget-prix{margin:0 0 1rem;font-family:Inter,arial,sans-serif;font-size:42px;font-weight:700;line-height:1;letter-spacing:-.03em;color:var(--violet-black)}
.tarifs-page .budget-card .budget-prix span{margin-left:.35rem;font-size:16px;font-weight:500;letter-spacing:0;color:var(--noir-txt-70)}
.tarifs-page .budget-card p{margin:0 0 .9rem;font-size:15px;line-height:1.6}
.tarifs-page .budget-card .budget-detail{margin:auto 0 0;padding-top:1rem;border-top:1px solid var(--tp-ligne);font-size:14px;color:var(--noir-txt-70)}

/* --- Bloc en deux colonnes (réservation / zone) ----------------------------- */
.tarifs-page .tp-duo{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:start;text-align:left}
.tarifs-page .tp-duo h2.titre{font-size:32px;text-align:left}
.tarifs-page .tp-duo p{margin:0 0 1rem;font-size:17px;line-height:1.65}
.tarifs-page .etapes{margin:1.75rem 0 2rem;padding:0;list-style:none;counter-reset:etape}
.tarifs-page .etapes li{position:relative;margin:0;padding:0 0 1.6rem 3.6rem;background:none;counter-increment:etape;font-size:16px;line-height:1.6}
.tarifs-page .etapes li::before{content:counter(etape);position:absolute;left:0;top:0;width:2.5rem;height:2.5rem;background:var(--violet);border-radius:50%;font-family:Inter,arial,sans-serif;font-size:16px;font-weight:700;line-height:2.5rem;color:#fff;text-align:center}
.tarifs-page .etapes li:last-child{padding-bottom:0}
.tarifs-page .etapes li:not(:last-child)::after{content:"";position:absolute;left:1.2rem;top:2.9rem;bottom:.4rem;width:2px;background:var(--tp-ligne)}
.tarifs-page .etapes li strong{display:block;font-family:Inter,arial,sans-serif;font-size:18px;font-weight:600;color:var(--violet-black)}
.tarifs-page .etapes+.btn{padding:16px 32px;border-radius:8px;font-size:16px}
.tarifs-page .zone-carte{padding:2rem;background:#fff;border:1px solid var(--tp-ligne);border-radius:16px}
.tarifs-page .tp-lilas .zone-carte{background:#fff}
.tarifs-page .zone-carte h3{margin:0 0 .75rem;font-family:Inter,arial,sans-serif;font-size:20px;font-weight:600;line-height:1.35;color:var(--violet-black)}
.tarifs-page .zone-carte .zone-villes{margin:0 0 1.5rem;font-size:16px;line-height:1.85}
.tarifs-page .zone-villes a,.tarifs-page .nb{white-space:nowrap}
.tarifs-page .liens-utiles{display:flex;flex-wrap:wrap;gap:.75rem}
.tarifs-page .liens-utiles a.btn{margin:0;padding:12px 20px;background:#fff;border-radius:8px;box-shadow:inset 0 0 0 2px var(--violet);font-size:14px;color:var(--violet)}

/* Survol / focus clavier des boutons contour */
.tarifs-page .offre .btn:hover,.tarifs-page .offre .btn:focus-visible,.tarifs-page .liens-utiles a.btn:hover,.tarifs-page .liens-utiles a.btn:focus-visible{color:#fff}
.tarifs-page .btn:focus-visible{outline:3px solid #b9a4e6;outline-offset:2px}

/* --- Avis, FAQ -------------------------------------------------------------- */
.tarifs-page #faq{display:block}
.tarifs-page #faq .tp-intro{margin-bottom:0}
.tarifs-page #faq .accordeon{margin:2.5rem auto 0}

/* --- Responsive -------------------------------------------------------------- */
@media (max-width:1100px){
	.tarifs-page .inclus-grid,.tarifs-page .usage-grid{grid-template-columns:repeat(2,1fr)}
	.tarifs-page .budget-grid{grid-template-columns:1fr}
	.tarifs-page .tp-duo{gap:2.5rem}
}
@media (max-width:900px){
	.tarifs-page #cta-top{padding:2rem 0 7.5rem}
	.tarifs-page #cta-top h1.titre{font-size:30px}
	.tarifs-page .reponse-directe{font-size:16px}
	.tarifs-page .reponse-directe>strong:first-child{font-size:18px}
	.tarifs-page .tp-formules{margin-top:-5.5rem}
	.tarifs-page .tp-formules>.texte{padding-bottom:2.5rem}
	.tarifs-page #offres{flex-direction:column;gap:2rem}
	.tarifs-page .offre{flex:none;width:100%;box-sizing:border-box;padding:2rem 1.5rem 1.75rem}
	.tarifs-page .offre-star{padding-top:2.5rem}
	.tarifs-page .options-tarifs{grid-template-columns:1fr;padding:1.5rem}
	.tarifs-page .options-tarifs ul{grid-template-columns:1fr}
	.tarifs-page .choix,.tarifs-page .tp-duo{grid-template-columns:1fr}
	.tarifs-page .choix-carte{padding:2rem 1.5rem}
	.tarifs-page .choix-carte .cible{min-height:0}
	.tarifs-page .tp-section{padding:3.5rem 0}
	.tarifs-page .tp-section h2.titre{font-size:28px}
	.tarifs-page .tp-intro{margin-bottom:2.25rem;font-size:16px}
	.tarifs-page .inclus-grid,.tarifs-page .usage-grid{grid-template-columns:1fr;gap:2rem}
	.tarifs-page .budget-card .budget-prix{font-size:38px}
	.tarifs-page .zone-carte{padding:1.5rem}
}
@media (max-width:700px){
	/* Réponse directe : dépliable discret (le texte reste dans le HTML, ouvert par défaut sans JS) */
	.tarifs-page #cta-top{padding-bottom:6.5rem}
	.tarifs-page .reponse-directe details.rd{max-width:420px;margin:0 auto}
	.tarifs-page .reponse-directe details.rd summary{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:0;padding:.4rem .9rem;border:1px solid rgba(255,255,255,.4);border-radius:999px;font-size:12px;font-weight:500;line-height:1.35;pointer-events:auto;cursor:pointer;text-align:left}
	.tarifs-page .reponse-directe details.rd summary strong{font-weight:500}
	.tarifs-page .reponse-directe details.rd summary::before{content:none!important}
	.tarifs-page .reponse-directe details.rd summary::after{content:""!important;position:static!important;flex:none;order:2;width:6px;height:6px;margin:0 .1rem 3px 0;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;background:none!important;transform:rotate(45deg);transition:transform .2s}
	.tarifs-page .reponse-directe details.rd[open] summary::after{transform:rotate(-135deg);margin-bottom:-2px}
	.tarifs-page .reponse-directe .rd-texte{margin-top:.9rem;font-size:15px;line-height:1.6}
	/* Tableau comparatif : chaque ligne devient un bloc lisible sans défilement horizontal */
	.tarifs-page .table-scroll{overflow:visible}
	.tarifs-page table.tarif-table,.tarifs-page table.tarif-table tbody,.tarifs-page table.tarif-table tr,.tarifs-page table.tarif-table th,.tarifs-page table.tarif-table td{display:block;min-width:0;width:auto}
	.tarifs-page table.tarif-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
	.tarifs-page table.tarif-table tbody tr{padding:1rem 1.25rem;border-bottom:1px solid var(--tp-ligne)}
	.tarifs-page table.tarif-table tbody tr:last-child{border-bottom:0}
	.tarifs-page table.tarif-table tbody th{width:auto;padding:0 0 .5rem;background:none;border:0;font-size:17px}
	.tarifs-page table.tarif-table td{padding:.2rem 0;border:0;font-size:15px}
	.tarifs-page table.tarif-table td[data-label]::before{content:attr(data-label) " : ";font-weight:600;color:var(--violet-black)}
}
