/* ============================================================
   BETTER CLEANER — raffinements mobile (chargé après tout le reste)
   ============================================================ */

/* bandeau prix mobile des comparatifs : masqué sur desktop */
.bcc-mprices{display:none;}

/* Compte : la barre latérale devient une rangée d'onglets défilante */
@media(max-width:900px){
.acct-layout{grid-template-columns:1fr;}
.acct-nav{position:static;flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px;gap:4px;scrollbar-width:none;}
.acct-nav::-webkit-scrollbar{display:none;}
.acct-nav a{white-space:nowrap;flex:none;}
}

@media(max-width:700px){
body{overflow-x:hidden;}
}

/* ============================================================
   ≤640px : tableaux de tarifs → cartes empilées
   ============================================================ */
@media(max-width:640px){

/* ---- grille tarifaire (Polissage & optiques, tarifs à niveaux) ---- */
.tarif-card{overflow:visible;}
.tarif-table{min-width:0;display:block;}
.tarif-table thead{display:none;}
.tarif-table tbody{display:block;}
.tarif-table tbody tr{display:flex;flex-wrap:wrap;gap:0;padding:16px 16px 13px;border-bottom:1px solid rgba(255,255,255,.09);}
.tarif-table tbody tr:last-child{border-bottom:none;}
.tarif-table td{display:block;border:none !important;padding:0;}
.tarif-table td.tt-presta{flex:1 1 100%;margin-bottom:9px;}
.tarif-table td.tt-presta b{font-size:15px;}
.tarif-table td.tt-price{flex:1 1 100%;display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;font-weight:650;border-bottom:1px dashed rgba(255,255,255,.09) !important;}
.tarif-table td.tt-price:last-child{border-bottom:none !important;}
.tarif-table td.tt-price::before{content:attr(data-l);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:650;color:rgba(255,255,255,.5);}
.pol-light .tarif-table tbody tr{border-bottom-color:rgba(0,0,0,.09);}
.pol-light .tarif-table td.tt-price{border-bottom-color:rgba(0,0,0,.08) !important;}
.pol-light .tarif-table td.tt-price::before{color:#86868b;}
/* table 2 colonnes (catégorie / tarif) : simple ligne */
.tarif-table--2 tbody tr{flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;}
.tarif-table--2 td{flex:none;}
.tarif-table--2 td:first-child{flex:1;}
.tarif-table--2 td.tt-price{flex:none;display:block;padding:0;border:none !important;}
.tarif-table--2 td.tt-price::before{display:none;}

/* ---- comparatifs catalogue (bccmp) : matrice → cartes ---- */
.bcc-card{overflow:visible;}
.bcc-mprices{display:flex;gap:8px;padding:13px 14px;border-bottom:1px solid #efeae1;background:#faf8f4;border-radius:20px 20px 0 0;}
.bcc-mp{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:#8a8a90;text-transform:uppercase;letter-spacing:.05em;font-weight:650;text-align:center;}
.bcc-mp b{font-size:15px;color:#16181d;letter-spacing:-.01em;text-transform:none;font-weight:730;white-space:nowrap;}
.bcc-mp.hi{position:relative;}
.bcc-mp.hi b{color:#a8813a;}
.bccmp{min-width:0;display:block;}
.bccmp thead{display:none;}
.bccmp tbody{display:block;}
.bccmp tbody tr{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-bottom:1px solid #efeae1;}
.bccmp tbody tr:last-child{border-bottom:none;}
.bccmp td{border:none !important;padding:0;}
.bccmp td.bcc-presta{flex:1 1 100%;font-weight:600;font-size:13.5px;padding-bottom:3px;width:auto;}
.bccmp td.y,.bccmp td.n,.bccmp td.lvl{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;background:#faf8f4;border-radius:10px;padding:7px 3px 6px;font-size:12px;}
.bccmp td.y::before,.bccmp td.n::before,.bccmp td.lvl::before{content:attr(data-l);font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:#8a8a90;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.bccmp td.bcc-top{background:#f5efe3;}

/* ---- options / à l'unité (bcopt) : lignes empilées ---- */
.bcopt{min-width:0;display:block;}
.bcopt thead{display:none;}
.bcopt tbody{display:block;}
.bcopt tbody tr{display:block;padding:14px 16px;border-bottom:1px solid #efeae1;}
.bcopt tbody tr:last-child{border-bottom:none;}
.bcopt td{display:block;border:none !important;padding:0;width:auto;}
.bcopt .bco-n{font-weight:650;font-size:14.5px;}
.bcopt .bco-p{margin:3px 0 5px;font-weight:730;color:#a8813a;}
.bcopt .bco-d{font-size:13px;line-height:1.5;color:#6f6f76;}

/* ---- typographie ---- */
h1{font-size:clamp(30px,9.4vw,40px) !important;letter-spacing:-.03em;}
.hp-h1{font-size:clamp(33px,10.6vw,43px) !important;}
h2{font-size:clamp(22px,6.9vw,29px) !important;}
.lk-hero h1{font-size:clamp(29px,8.8vw,36px) !important;}
.hp-lede,.lead{font-size:15px;}
.hp-hero-in{padding-top:114px;padding-bottom:72px;}
.hp-sub{font-size:15.5px;}
.hp-ctas{gap:10px;}
.hp-ctas .btn{flex:1 1 auto;justify-content:center;}

/* ---- confort tactile ---- */
input,select,textarea{font-size:16px !important;} /* évite le zoom automatique iOS */
.btn{min-height:44px;}
.pay-wbtn .wm{font-size:14px;}
.pay-wbtn .wm-sam{font-size:10px;}
.cal-grid{gap:5px;}
.cal-cell{min-height:56px;border-radius:10px;}
.cc-dow{font-size:9.5px;}
}

@media(max-width:480px){
.wrap,.wrap-wide{padding:0 16px;}
.footer-grid{grid-template-columns:1fr;gap:28px;}
.footer-base{flex-wrap:wrap;gap:10px;}
.hp-reel{gap:10px;}
.rcpt{max-width:100%;}
.pay-wallets{grid-template-columns:1fr 1fr;}
.pay-wallets .pay-wbtn[data-wallet="spay"]{grid-column:1/-1;}
.ba-grid{grid-template-columns:1fr;}
.hp-quote{padding:20px;}
/* formulaire contact : la carte doit pouvoir rétrécir sous sa largeur mini */
.ct2-grid{grid-template-columns:minmax(0,1fr);}
.ct2-grid>*{min-width:0;}
.ct2-form{padding:22px 18px;}
}

/* ============================================================
   ≤430px : très petits téléphones (iPhone SE, Androids compacts)
   ============================================================ */
@media(max-width:430px){
/* CTA à libellé long : autoriser le retour à la ligne plutôt qu'un débordement */
.fidcards-cta .btn,.hp-ctas .btn{white-space:normal;max-width:100%;}
/* en-tête d'espace client : le bouton passe sous le titre si nécessaire */
.acct-top{flex-wrap:wrap;}
.acct-top .btn{white-space:normal;}
}
