/*
Theme Name: ECB Eau Claire et Pure v1.9
Theme URI: https://ecb-adoucisseur.fr
Author: ECB
Description: Theme vitrine sur mesure pour ECB, specialiste du traitement de l'eau en Auvergne-Rhone-Alpes (adoucisseurs, purificateurs, osmoseurs, fontaines a eau).
Version: 1.9
Text Domain: ecb-eau-claire
*/

  :root{
    --ink:#EAF4F5; --ink-soft:#C3D6D9; --muted:#93B0B5;
    --paper:#112F38; --surface:#17404B; --surface-alt:#143742;
    --primary:#5ADCE9; --primary-dark:#1F8797; --accent:#6FE3EE; --accent-soft:#1D4A56;
    --gold:#E8BC5F; --border:#285662; --ring:#5ADCE9; --on-primary:#0B2A31;
    --shadow: 0 20px 40px -20px rgba(0,0,0,.5);
    color-scheme: dark;
  }

  *{box-sizing:border-box;}
  body{
    background:var(--paper); color:var(--ink);
    font-family:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height:1.6; padding-inline:0;
  }
  h1,h2,h3,h4{
    font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-weight:600; color:var(--ink); text-wrap:balance; margin:0;
  }
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1120px; margin-inline:auto; padding-inline:20px;}
  section{padding-block:clamp(48px,8vw,96px);}
  .eyebrow{
    font-family:"Manrope",sans-serif; font-weight:700; font-size:.76rem;
    letter-spacing:.11em; text-transform:uppercase; color:var(--primary); margin-bottom:10px;
  }
  .h2{font-size:clamp(1.6rem,3.4vw,2.3rem); line-height:1.15;}
  .lede{font-size:1.05rem; color:var(--ink-soft); max-width:62ch;}
  .btn{
    display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:.95rem;
    padding:12px 22px; border-radius:999px; border:1.5px solid transparent; cursor:pointer;
    text-decoration:none; transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
    font-family:"Manrope",sans-serif;
  }
  .btn:focus-visible{outline:3px solid var(--ring); outline-offset:2px;}
  .btn-primary{background:var(--primary); color:var(--on-primary);}
  .btn-primary:hover{transform:translateY(-1px); box-shadow:var(--shadow);}
  .btn-ghost{background:transparent; border-color:var(--border); color:var(--ink);}
  .btn-ghost:hover{border-color:var(--primary); color:var(--primary);}
  .icon{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0;}

  /* header */
  header{
    position:sticky; top:env(safe-area-inset-top,0px); z-index:40;
    /* bandeau blanc, indépendant du thème sombre du reste du site */
    --ink:#1F3B44; --ink-soft:#4E6B72; --muted:#7A969B; --border:#E0ECEC;
    --primary:#1A8196; --on-primary:#fff; --accent-soft:#E0F3F5; --ring:#1A8196;
    background:#fff; color:var(--ink);
    border-bottom:1px solid var(--border); box-shadow:0 2px 14px -8px rgba(0,0,0,.35);
  }
  .nav-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:12px;}
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
  .brand img{height:38px; width:auto;}
  nav.links{display:flex; gap:26px; align-items:center;}
  nav.links a{font-size:.92rem; font-weight:500; color:var(--ink-soft); text-decoration:none;}
  nav.links a:hover{color:var(--primary);}
  .nav-actions{display:flex; align-items:center; gap:14px;}
  .phone-pill{
    display:flex; align-items:center; gap:8px; font-weight:600; font-size:.88rem;
    color:var(--ink-soft); white-space:nowrap;
  }
  .burger{display:none; background:none; border:1px solid var(--border); border-radius:10px; padding:8px; cursor:pointer; color:var(--ink);}
  #mobile-panel[hidden]{display:none;}
  #mobile-panel{
    display:flex; flex-direction:column; gap:4px; padding:10px 20px 18px; border-top:1px solid var(--border);
  }
  #mobile-panel a{padding:10px 4px; text-decoration:none; color:var(--ink-soft); font-weight:500;}

  @media (max-width:860px){
    nav.links, .phone-pill{display:none;}
    .burger{display:inline-flex;}
  }

  /* hero */
  .hero{padding-block:clamp(40px,8vw,72px) clamp(24px,6vw,48px);}
  .hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center;}
  .hero h1{font-size:clamp(2.1rem,4.6vw,3.25rem); line-height:1.08;}
  .hero .lede{margin-top:18px; font-size:1.12rem;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}
  .hero-art{
    aspect-ratio:4/3; border-radius:28px; background:
      radial-gradient(120% 120% at 30% 20%, var(--accent-soft), transparent 60%),
      linear-gradient(160deg, var(--surface-alt), var(--surface));
    border:1px solid var(--border); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
  }
  .hero-art img{width:100%; height:100%; object-fit:cover;}
  .figure{border-radius:20px; overflow:hidden; border:1px solid var(--border); margin-block:28px;}
  .figure img{width:100%; height:auto; display:block;}
  .card-photo{width:100%; height:170px; object-fit:cover; border-radius:14px; margin-bottom:14px;}
  .fleck-photo{width:180px; height:auto; object-fit:contain; flex-shrink:0; border-radius:12px;}
  @media (max-width:560px){.fleck-photo{width:140px;}}
  @media (max-width:860px){ .hero-grid{grid-template-columns:1fr;} .hero-art{max-width:340px; margin-inline:auto;} }

  .stats-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:16px; overflow:hidden; margin-top:44px;}
  .stat{background:var(--surface); padding:20px 16px; text-align:center;}
  .stat b{display:block; font-family:"Manrope",sans-serif; font-size:clamp(1.4rem,2.6vw,1.9rem); font-variant-numeric:tabular-nums; color:var(--primary);}
  .stat span{display:block; margin-top:4px; font-size:.82rem; color:var(--muted);}
  @media (max-width:700px){.stats-strip{grid-template-columns:repeat(2,1fr);}}

  .alt{background:var(--surface-alt);}

  /* about */
  .about-grid{display:grid; grid-template-columns:1.3fr .95fr; gap:40px;}
  @media (max-width:860px){.about-grid{grid-template-columns:1fr;}}
  .chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px;}
  .chip{font-size:.82rem; font-weight:600; padding:6px 13px; border-radius:999px; background:var(--surface); border:1px solid var(--border); color:var(--ink-soft);}
  .card{background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:26px;}
  .hours-row{display:flex; justify-content:flex-start; gap:20px; padding-block:9px; border-bottom:1px dashed var(--border); font-size:.92rem;}
  .hours-row:last-of-type{border-bottom:none;}
  .hours-row b{font-weight:600; flex:0 0 96px;}
  .hours-row span:last-child{color:var(--ink-soft); font-variant-numeric:tabular-nums;}
  .contact-line{display:flex; align-items:center; gap:10px; margin-top:14px; font-size:.92rem;}
  .copy-btn{
    border:none; background:var(--accent-soft); color:var(--primary); border-radius:8px; padding:5px 9px;
    cursor:pointer; font-size:.74rem; font-weight:700;
  }
  .copy-btn:focus-visible{outline:2px solid var(--ring);}

  /* benefit grid */
  .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
  @media (max-width:860px){.grid-3{grid-template-columns:repeat(2,1fr);} .grid-2{grid-template-columns:1fr;}}
  @media (max-width:560px){.grid-3{grid-template-columns:1fr;}}

  .benefit{background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:20px; display:flex; gap:14px; align-items:flex-start;}
  .benefit .icon-wrap{width:42px; height:42px; border-radius:12px; background:var(--accent-soft); color:var(--primary); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .benefit h4{font-size:.98rem; font-family:"Manrope",sans-serif; font-weight:600;}
  .benefit p{font-size:.86rem; color:var(--muted); margin-top:4px;}

  .callout{
    display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center;
    background:linear-gradient(120deg, #136376, #1A8196);
    color:#fff; border-radius:20px; padding:26px 28px; margin-block:36px;
  }
  .callout .icon-wrap{width:52px; height:52px; border-radius:14px; background:rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center;}
  .callout .icon{stroke:#fff;}
  .callout b{font-family:"Manrope",sans-serif; font-size:1.15rem; display:block;}
  .callout p{font-size:.9rem; opacity:.92; margin-top:4px;}
  @media (max-width:560px){.callout{grid-template-columns:1fr; text-align:center;} .callout .icon-wrap{margin-inline:auto;}}

  .solution-card{background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:26px; display:flex; flex-direction:column; gap:12px;}
  .solution-card h3{font-size:1.15rem;}
  .solution-card .tag-row{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
  .tag{font-size:.72rem; font-weight:600; padding:4px 10px; border-radius:999px; background:var(--surface-alt); color:var(--ink-soft);}
  .spec-line{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--muted); font-variant-numeric:tabular-nums;}

  /* reviews */
  .review-card{
    background:var(--surface); border:1.5px dashed var(--border); border-radius:18px; padding:22px;
    display:flex; flex-direction:column; gap:12px;
  }
  .stars{display:flex; gap:3px; color:var(--gold);}
  .stars .icon{width:16px; height:16px; fill:currentColor; stroke:none;}
  .review-card .name{font-weight:700; font-size:.92rem;}
  .review-card .placeholder{font-size:.88rem; color:var(--muted); font-style:italic;}
  .review-card-empty{min-height:150px;}
  .review-note{
    display:flex; gap:10px; align-items:flex-start; background:var(--accent-soft); color:var(--ink);
    border-radius:14px; padding:14px 18px; font-size:.85rem; margin-bottom:24px;
  }

  /* process */
  .steps{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-block:32px;}
  @media (max-width:860px){.steps{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.steps{grid-template-columns:1fr;}}
  .step{position:relative; padding:22px 18px 18px; background:var(--surface); border:1px solid var(--border); border-radius:16px;}
  .step .num{font-family:"Manrope",sans-serif; font-size:1.6rem; color:var(--accent); font-variant-numeric:tabular-nums;}
  .step h4{font-size:.94rem; margin-top:8px; font-family:"Manrope",sans-serif; font-weight:600;}

  .audience-card{background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:24px;}
  .audience-card ul{list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .audience-card li{display:flex; gap:10px; font-size:.9rem; color:var(--ink-soft); align-items:flex-start;}
  .audience-card li .icon{width:18px; height:18px; color:var(--accent); margin-top:2px;}

  /* form */
  .form-card{background:var(--surface); border:1px solid var(--border); border-radius:22px; padding:clamp(22px,4vw,36px);}
  .field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
  .field label{font-size:.82rem; font-weight:600; color:var(--ink-soft);}
  .field input, .field textarea{
    font:inherit; padding:11px 13px; border-radius:10px; border:1.5px solid var(--border); background:var(--paper); color:var(--ink);
  }
  .field input:focus, .field textarea:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--accent-soft);}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:560px){.form-row{grid-template-columns:1fr;}}
  .form-note{font-size:.78rem; color:var(--muted); margin-top:10px;}
  .success{
    display:none; align-items:center; gap:10px; background:var(--accent-soft); color:var(--ink);
    border-radius:12px; padding:14px 16px; font-size:.9rem; font-weight:600; margin-top:16px;
  }

  /* parrainage */
  .refer-flow{display:flex; align-items:stretch; gap:14px; margin-block:30px; flex-wrap:wrap;}
  .refer-node{flex:1; min-width:180px; display:flex; flex-direction:column; justify-content:center; background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:20px; text-align:center;}
  .refer-node .icon-wrap{width:44px; height:44px; border-radius:12px; background:var(--accent-soft); color:var(--primary); display:flex; align-items:center; justify-content:center; margin-inline:auto; margin-bottom:10px;}
  .refer-arrow{color:var(--muted); flex-shrink:0; align-self:center;}
  @media (max-width:700px){.refer-arrow{transform:rotate(90deg);}}

  footer{background:#0A252C; color:#EAF4F5; padding-block:44px 28px;}
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:32px;}
  @media (max-width:760px){.foot-grid{grid-template-columns:1fr; gap:26px;}}
  footer h5{font-family:"Manrope",sans-serif; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color:#9FD3D9; margin-bottom:14px; font-weight:700;}
  footer a{text-decoration:none; color:#EAF4F5; opacity:.9;}
  footer .foot-links{display:flex; flex-direction:column; gap:9px; font-size:.9rem;}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.15); margin-top:32px; padding-top:18px; font-size:.78rem; color:#9FD3D9; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}
  .brand-foot{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
  .brand-foot{background:#fff; display:inline-flex; padding:8px 14px; border-radius:12px;}
  .brand-foot img{height:34px; filter:none;}
  .hero .eyebrow{font-size:1.05rem; letter-spacing:.09em; margin-bottom:14px;}
  .zone{margin-top:30px;}
  .zone p{font-weight:600; color:var(--ink-soft); font-size:.98rem;}
  .zone .chips{margin-top:12px;}
  .legal-link{background:none; border:none; padding:0; font:inherit; color:#9FD3D9; text-decoration:underline; cursor:pointer;}
  .legal-link:focus-visible{outline:2px solid #9FD3D9; outline-offset:3px;}
  dialog#legal{background:var(--surface); color:var(--ink); border:1px solid var(--border); border-radius:20px; padding:0; width:calc(100% - 32px); max-width:680px; max-height:85vh; overflow:auto;}
  dialog#legal::backdrop{background:rgba(4,14,17,.7);}
  .legal-inner{padding:28px clamp(20px,4vw,34px) 30px; position:relative;}
  .legal-inner h2{font-size:1.4rem; padding-right:40px;}
  .legal-inner h3{font-size:1rem; margin-top:22px; margin-bottom:6px;}
  .legal-inner p{font-size:.92rem; color:var(--ink-soft); line-height:1.65;}
  .legal-inner a{color:var(--primary);}
  .legal-close{position:absolute; top:14px; right:16px; width:36px; height:36px; border-radius:10px; border:1px solid var(--border); background:var(--surface-alt); color:var(--ink); font-size:1.3rem; line-height:1; cursor:pointer;}
  .legal-close:focus-visible{outline:2px solid var(--ring);}
  /* idées reçues */
  .idees-head{text-align:center; margin-bottom:36px;}
  .idees-head .lede{margin-inline:auto; margin-top:10px;}
  .idees-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
  @media (max-width:860px){.idees-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:480px){.idees-grid{grid-template-columns:1fr;}}
  .idee{text-align:center;}
  .idee-btn{
    display:flex; flex-direction:column; align-items:center; gap:16px; width:100%;
    background:none; border:none; padding:0; cursor:pointer; font:inherit; color:var(--ink);
  }
  .idee-btn:focus-visible{outline:3px solid var(--ring); outline-offset:6px; border-radius:16px;}
  .idee-photo{width:clamp(140px,100%,200px); aspect-ratio:1/1; border-radius:50%; object-fit:cover; border:3px solid var(--border); transition:transform .2s ease, border-color .2s ease;}
  .idee-btn:hover .idee-photo{transform:scale(1.04); border-color:var(--accent);}
  .idee-q{font-weight:700; font-size:.92rem; text-transform:uppercase; letter-spacing:.03em; line-height:1.35; padding-bottom:10px; border-bottom:3px solid var(--idee-color,var(--accent)); max-width:20ch;}
  .idee-a{margin-top:14px; background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:14px 16px; font-size:.88rem; color:var(--ink-soft); text-align:left;}
  .idee-a[hidden]{display:none;}
  .idee-a strong{color:var(--ink);}
  .review-real{border-style:solid;}
  .review-real .review-text{font-size:.92rem; color:var(--ink-soft); line-height:1.6;}
  .review-real .name{margin-top:auto;}
  .review-src{font-weight:500; color:var(--muted); font-size:.82rem;}
  .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
  .success.error{background:#5A2A2A; color:#FFE3E3;}
