  /* ==========================================================================
     Aquaclean77 — page /estimation (« Estimer mon prix »).

     Chargée APRÈS style.css et pages.css, elle ne redéfinit aucune de leurs
     règles : mêmes variables, mêmes polices, mêmes rayons, mêmes champs
     (.field) que le formulaire de rappel. Écrite téléphone d'abord (390 px),
     la seconde colonne n'apparaît qu'au-delà de 1000 px.
     Aucun style en ligne sur ce site (CSP style-src 'self') : tout est ici.
     ========================================================================== */

  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }

  /* ---------- en-tête ---------- */
  .est-hero{padding-bottom:22px;}
  .est-sous-titre{
    margin-top:6px; font-family:var(--display); font-weight:500;
    font-size:clamp(18px, 2.6vw, 22px); color:var(--water-dark);
  }
  .est-ref{
    display:inline-block; font-family:var(--body); font-weight:800; font-size:0.55em;
    letter-spacing:0.02em; color:var(--rust-dark); vertical-align:middle;
    background:#fff; border:1px solid var(--line); border-radius:999px; padding:4px 12px;
  }

  /* ---------- formulaire ---------- */
  .est-form{position:relative; padding-bottom:40px;}
  /* Bouton par défaut (Entrée = Calculer) : présent pour le navigateur,
     jamais vu ni atteint au clavier. */
  .est-entree{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

  .est-grille{display:grid; grid-template-columns:minmax(0,1fr); gap:28px; align-items:start;}
  @media (min-width:1000px){
    .est-grille{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:40px;}
    .est-resultat{position:sticky; top:96px;}
  }
  .est-h2{font-size:clamp(22px, 3vw, 28px); margin:0 0 8px;}
  .est-h3{font-family:var(--display); font-weight:600; font-size:19px; margin:0 0 12px; padding:0;}
  .est-intro{color:var(--ink-soft); font-size:15px; margin-bottom:16px;}

  .est-lignes{display:grid; gap:16px;}
  .est-lignes:focus{outline:none;}
  .est-ligne{
    margin:0; min-width:0;
    background:#fff; border:1px solid var(--line); border-radius:var(--radius);
    padding:18px 16px 16px; box-shadow:var(--shadow);
  }
  @media (min-width:600px){ .est-ligne{padding:22px 24px 20px;} }
  .est-ligne-titre{
    float:left; width:100%; padding:0; margin:0 0 12px;
    font-family:var(--display); font-weight:600; font-size:18px; color:var(--water-dark);
  }
  .est-ligne-titre + *{clear:both;}
  .est-ligne .field{margin-bottom:14px;}
  .est-ligne .field input{max-width:100%;}
  .est-quantite input, .est-dimensions input, .est-surface input{max-width:220px;}

  .est-desc{color:var(--ink-soft); font-size:14.5px; margin:-4px 0 14px;}

  /* boutons à l'allure de lien (afficher les options, retirer) */
  .est-lien-bouton{
    background:none; border:0; padding:10px 0; min-height:44px;
    font:inherit; font-size:14.5px; font-weight:700; color:var(--water-dark);
    text-decoration:underline; text-underline-offset:3px; cursor:pointer;
  }
  .est-lien-bouton:hover{color:var(--ink);}
  .est-retirer{color:#8E3229;}
  .est-js .est-afficher{display:none;}

  /* niveaux */
  .est-niveaux, .est-mesures, .est-majorations{margin:0 0 14px; padding:0; border:0; min-width:0;}
  .est-niveaux legend, .est-mesures legend{font-size:13px; font-weight:700; letter-spacing:0.02em; padding:0; margin-bottom:8px;}
  .est-niveau{
    display:grid; grid-template-columns:auto 1fr; column-gap:10px; align-items:center;
    border:1.5px solid var(--line); border-radius:10px; padding:8px 12px; margin-bottom:8px; background:var(--paper);
  }
  .est-niveau:has(input:checked){border-color:var(--water); background:rgba(31,90,168,0.06);}
  .est-niveau input, .est-radio input, .est-case input{width:24px; height:24px; flex:none; accent-color:var(--water-dark); margin:0;}
  .est-niveau label{font-weight:700; font-size:15.5px; min-height:32px; display:flex; align-items:center; cursor:pointer;}
  .est-inclus{grid-column:2; font-size:14px; color:var(--ink-soft); padding-bottom:4px;}
  .est-inclus p{font-weight:600;}
  .est-inclus ul{margin:4px 0 0; padding-left:18px;}

  /* dimensions */
  .est-choix-mesure{display:flex; flex-wrap:wrap; gap:4px 18px; align-items:center; margin-bottom:10px; font-size:14.5px;}
  .est-choix-titre{font-weight:600;}
  .est-radio, .est-case{display:flex; align-items:center; gap:10px; min-height:44px;}
  .est-radio label, .est-case label{cursor:pointer; font-size:15px;}
  .est-dimensions{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px;}
  .est-dimensions[hidden], .est-surface[hidden]{display:none;}

  .est-aide{font-size:13.5px; color:var(--ink-soft); margin-top:2px;}
  .est-aide-inline{font-size:13.5px; color:var(--ink-soft); font-weight:400;}
  .est-erreur{
    color:#8E3229; font-size:14px; font-weight:700; margin:6px 0 0;
    padding-left:22px; position:relative;
  }
  .est-erreur::before{
    content:"!"; position:absolute; left:0; top:1px; width:16px; height:16px; border-radius:50%;
    background:#B4453A; color:#fff; font-size:11px; line-height:16px; text-align:center; font-weight:800;
  }
  .est-ligne [aria-invalid="true"], .est-bloc [aria-invalid="true"]{border-color:#B4453A;}

  .est-forfait{font-size:14.5px; color:var(--ink-soft); margin:0 0 12px;}
  .est-eligible{
    font-size:14px; line-height:1.5; background:rgba(242,208,64,0.18);
    border-left:4px solid var(--spark); border-radius:6px; padding:8px 12px; margin:0 0 12px;
  }
  .est-eligible strong{display:block; color:var(--ink);}
  .est-eligible a{color:var(--water-dark); font-weight:700;}
  .est-sous-total{
    display:flex; justify-content:space-between; gap:10px; align-items:baseline;
    border-top:1px dashed var(--line); padding-top:10px; margin-top:4px; font-size:15px;
  }
  .est-sous-total strong{font-size:17px; white-space:nowrap;}

  .est-ajouter{margin-top:16px; width:100%; justify-content:center;}
  @media (min-width:600px){ .est-ajouter{width:auto;} }
  .est-ajouter[hidden]{display:none;}

  .est-bloc{
    margin-top:22px; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
    padding:18px 16px 8px;
  }
  @media (min-width:600px){ .est-bloc{padding:20px 24px 10px;} }
  .est-majorations legend{float:left; width:100%;}
  .est-majorations legend + *{clear:both;}
  .est-calculer{margin-top:22px; width:100%; justify-content:center;}

  /* résumé d'erreurs */
  .est-resume{
    background:rgba(180,69,58,0.08); border:1px solid rgba(180,69,58,0.35);
    border-radius:12px; padding:14px 16px; margin:0 0 22px; color:#8E3229;
  }
  .est-resume ul{margin:8px 0 0; padding-left:20px;}
  .est-resume li{margin-bottom:4px; font-size:14.5px;}
  .est-resume a{color:#8E3229; font-weight:700;}

  /* ---------- panneau « Votre estimation » ---------- */
  .est-resultat{
    background:#fff; border:1px solid var(--line); border-radius:var(--radius);
    padding:20px 16px; box-shadow:var(--shadow); min-width:0;
  }
  @media (min-width:600px){ .est-resultat{padding:24px;} }
  .est-resultat .est-h2:focus{outline:none;}
  .est-r-vide{color:var(--ink-soft); font-size:15px; margin:4px 0 16px;}
  .est-r-lignes{list-style:none; margin:0; padding:0;}
  .est-r-ligne{padding:12px 0; border-bottom:1px solid var(--line);}
  .est-r-tete{display:flex; justify-content:space-between; gap:12px; align-items:baseline;}
  .est-r-nom{font-weight:700; font-size:15.5px; min-width:0;}
  .est-r-montant{font-weight:800; font-size:16px; white-space:nowrap;}
  .est-r-ligne--sv .est-r-montant{color:var(--rust-dark);}
  .est-r-detail{font-size:13.5px; color:var(--ink-soft); margin-top:3px; overflow-wrap:anywhere;}
  .est-r-raison{font-size:13.5px; color:var(--rust-dark); margin-top:4px;}
  .est-r-eligible{font-size:13.5px; margin-top:6px; background:rgba(242,208,64,0.18); border-radius:6px; padding:6px 10px;}
  .est-r-eligible strong{display:block;}
  .est-r-totaux{margin:12px 0 0;}
  .est-r-t{display:flex; justify-content:space-between; gap:12px; align-items:baseline; padding:6px 0;}
  .est-r-t dt{font-size:14.5px; min-width:0;}
  .est-r-t dd{margin:0; font-weight:700; white-space:nowrap;}
  .est-r-t--info{color:var(--ink-soft);}
  .est-r-t--info dd{font-weight:600; text-decoration:line-through; text-decoration-thickness:1px;}
  .est-r-info{font-size:13px;}
  .est-r-t-raison{display:block; font-size:13px; color:var(--rust-dark);}
  .est-r-t--fort{border-top:2px solid var(--ink); margin-top:6px; padding-top:10px;}
  .est-r-t--fort dt{font-weight:800; font-size:16px;}
  .est-r-t--fort dd{font-size:22px; font-weight:800; font-family:var(--display);}
  .est-r-note, .est-r-mention{font-size:13.5px; color:var(--ink-soft); margin-top:8px;}
  /* selon la façon de payer (02/10/2026) */
  .est-r-paiement{margin-top:18px; padding-top:14px; border-top:1px solid var(--line);}
  .est-r-p-titre{font-family:var(--display); font-size:18px; font-weight:600; margin:0 0 10px;}
  .est-r-p-mode{border-left:3px solid var(--foam); padding:8px 0 8px 12px; margin-top:8px;}
  .est-r-p-mode--avance{border-left-color:var(--spark); background:rgba(242,208,64,0.18); border-radius:0 6px 6px 0; padding-right:10px;}
  .est-r-p-nom{font-weight:800; font-size:15px; margin:0; color:var(--water-dark);}
  .est-r-p-lignes{margin:4px 0 0;}
  .est-r-p-l{display:flex; justify-content:space-between; gap:12px; align-items:baseline; padding:2px 0;}
  .est-r-p-l dt{font-size:14px; min-width:0;}
  .est-r-p-l dd{margin:0; font-weight:700; white-space:nowrap;}
  .est-r-p-l--fort dt{font-weight:800;}
  .est-r-p-l--fort dd{font-size:18px; font-weight:800; font-family:var(--display);}
  .est-r-p-texte{font-size:13.5px; color:var(--ink-soft); margin:4px 0 0;}
  .est-r-p-note{font-size:13.5px; color:var(--ink-soft); margin-top:8px;}

  /* l'avertissement de non-valeur contractuelle : on ne peut pas le rater */
  .est-avert{
    margin:18px 0 0; padding:14px 16px; border-radius:12px;
    background:var(--foam); border:2px solid var(--water); color:var(--ink);
    font-size:14px; line-height:1.55;
  }
  .est-avert-titre{font-family:var(--display); font-weight:600; font-size:17px; color:var(--water-dark); margin-bottom:6px;}
  .est-resultat--enregistree .est-avert{margin:0 0 16px;}

  .est-actions{display:grid; gap:12px; margin-top:18px;}
  .est-actions .btn{justify-content:center; text-align:center;}
  .est-actions .est-aide{margin-top:-4px;}

  .est-grille--enregistree{padding-bottom:30px;}
  .est-actions--enregistree{margin:8px 0 18px;}
  .est-lien-secret{display:flex; flex-direction:column; gap:6px; margin-top:10px;}
  .est-lien-secret label{font-size:13px; font-weight:700;}
  .est-lien-secret input{
    font-family:var(--body); font-size:14px; padding:10px 12px; border-radius:9px;
    border:1.5px solid var(--line); background:var(--paper); color:var(--ink); width:100%; min-width:0;
  }
  .est-bloc p + p{margin-top:8px;}
  .est-bloc > p{font-size:15px; color:var(--ink-soft); margin-bottom:10px;}

  .est-maillage{padding-top:10px; padding-bottom:50px;}

  /* ---------- retrouver une estimation par son numéro ---------- */
  .est-recherche{padding-bottom:10px;}
  .est-recherche .est-bloc{margin-top:0; padding-bottom:18px;}
  .est-recherche-form{display:flex; flex-wrap:wrap; gap:12px 16px; align-items:flex-start;}
  .est-recherche-form .field{flex:1 1 240px; margin-bottom:0;}
  .est-recherche-form input{max-width:260px; text-transform:uppercase; letter-spacing:0.04em;}
  .est-recherche-form input::placeholder{text-transform:none;}
  .est-recherche-form .btn{margin-top:25px;}
  @media (max-width:599px){ .est-recherche-form .btn{margin-top:0; width:100%; justify-content:center;} }
  .est-lien-retrouver{margin-top:8px; font-size:15px;}
  .est-lien-retrouver a{color:var(--water-dark); font-weight:700;}


  /* ---------- prestation à capacités : lignes « nombre × capacité » (chantier 03) ---------- */
  .est-caps{margin:0 0 14px; padding:0; border:0; min-width:0;}
  .est-caps legend{font-size:13px; font-weight:700; letter-spacing:0.02em; padding:0; margin-bottom:4px;}
  .est-caps > .est-aide{margin:0 0 10px;}
  .est-cap{
    border:1.5px solid var(--line); border-radius:10px; padding:12px 12px 2px;
    margin-bottom:10px; background:var(--paper);
  }
  .est-cap-ligne{
    display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr);
    column-gap:10px; align-items:end;
  }
  .est-cap-x{font-weight:800; font-size:20px; line-height:1; color:var(--ink-soft); padding-bottom:26px;}
  .est-cap .field{margin-bottom:10px; min-width:0;}
  .est-cap .field input, .est-cap .field select{width:100%; max-width:none;}
  .est-retirer-cap{color:#8E3229; padding:4px 0; min-height:44px;}
  .est-ajouter-cap{padding:6px 0;}
  @media (max-width:359px){
    .est-cap-ligne{grid-template-columns:minmax(0,1fr);}
    .est-cap-x{display:none;}
  }
