/* =============================================================
   PoolConcept — MINI-PISCINES (fiche produit)
   Même design system que les piscines (noir + or champagne,
   Fraunces / Manrope / Pinyon Script).
   La pièce maîtresse : LE TABLEAU TECHNIQUE.
   ============================================================= */
:root{
  --noir:#0A0A0B; --noir-2:#111113; --noir-3:#17171A;
  --ivoire:#ECE8E1; --gris:#8C8C90;
  --or:#C2A36B; --or-clair:#D8BE8C;
  --hair:rgba(236,232,225,.12); --hair-or:rgba(194,163,107,.34);
  --serif:"Fraunces", Georgia, serif;
  --sans:"Manrope", system-ui, sans-serif;
  --script:"Pinyon Script", cursive;
  --ease:cubic-bezier(.22,.61,.36,1); --slow:cubic-bezier(.16,1,.3,1);
  --wrap:1280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--noir);color:var(--ivoire);font-family:var(--sans);font-weight:300;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.2rem,4vw,3rem)}
.script{font-family:var(--script);font-weight:400;color:var(--or-clair)}
.eyebrow{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--or)}
.sec{padding-block:clamp(3.6rem,9vh,6.5rem)}
.sec-head{margin-bottom:clamp(1.8rem,4.5vh,2.8rem)}
.sec-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.1}
.lede{color:var(--gris);max-width:64ch;margin-top:1rem}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ease),transform .9s var(--slow)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.1s}
.reveal[data-d="2"]{transition-delay:.2s}

/* ---------- HERO ---------- */
.m-hero{position:relative;min-height:min(84vh,720px);display:flex;align-items:flex-end;overflow:hidden}
.m-hero .ph{position:absolute;inset:0;z-index:0}
.m-hero .ph img{width:100%;height:100%;object-fit:cover;filter:brightness(.8);
  transform:scale(1.05);transition:transform 2.2s var(--slow)}
body.ready .m-hero .ph img{transform:scale(1)}
.m-hero .veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,10,11,.18) 0%,rgba(10,10,11,.45) 50%,rgba(10,10,11,.88) 100%)}
.m-hero .inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(2.2rem,6vh,3.6rem)}
.m-hero .fil{font-size:.7rem;letter-spacing:.14em;color:var(--gris);margin-bottom:1rem}
.m-hero .fil a{color:var(--gris);text-decoration:none}
.m-hero .fil a:hover{color:var(--or-clair)}
.m-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.3rem,6.2vw,4.8rem);line-height:1.02;
  opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease) .35s,transform 1s var(--slow) .35s}
body.ready .m-hero h1{opacity:1;transform:none}
.m-hero .tag{margin-top:.9rem;color:var(--gris);max-width:58ch;
  opacity:0;transform:translateY(12px);transition:opacity 1s var(--ease) .55s,transform 1s var(--slow) .55s}
body.ready .m-hero .tag{opacity:1;transform:none}
/* prix */
.m-hero .prix{display:inline-flex;align-items:center;gap:.8rem;margin-top:1.6rem;padding:.7rem 1.3rem;
  border:1px solid var(--hair-or);background:rgba(194,163,107,.08);
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--or-clair);
  opacity:0;transform:translateY(12px);transition:opacity 1s var(--ease) .75s,transform 1s var(--slow) .75s}
body.ready .m-hero .prix{opacity:1;transform:none}

/* ===========================================================
   TABLEAU TECHNIQUE — 2 colonnes, inversion des couleurs au survol
   =========================================================== */
.tech-sec{background:var(--noir-2);border-block:1px solid var(--hair)}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,5vw,4.5rem)}
@media (max-width:820px){.tech-grid{grid-template-columns:1fr;gap:0}}

.tech-col{display:flex;flex-direction:column}
.tech-row{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;
  padding:.95rem 1rem;border-bottom:1px solid var(--hair);
  position:relative;cursor:default;
  transition:background-color .28s var(--ease), color .28s var(--ease), padding-left .28s var(--ease)}
.tech-row:first-child{border-top:1px solid var(--hair)}
@media (max-width:820px){.tech-col:not(:first-child) .tech-row:first-child{border-top:0}}

.tech-row .k{font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gris);
  white-space:nowrap;transition:color .28s var(--ease)}
.tech-row .v{font-family:var(--serif);font-weight:400;font-size:clamp(.98rem,1.5vw,1.16rem);
  color:var(--ivoire);text-align:right;transition:color .28s var(--ease)}

/* INVERSION : le fond devient or, le texte devient noir */
.tech-row:hover{background:var(--or);color:var(--noir);padding-left:1.5rem}
.tech-row:hover .k{color:rgba(10,10,11,.72)}
.tech-row:hover .v{color:var(--noir)}
/* filet qui apparaît à gauche */
.tech-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--or-clair);
  transform:scaleY(0);transform-origin:center;transition:transform .28s var(--ease)}
.tech-row:hover::before{transform:scaleY(1)}

/* PDF fiche technique */
.tech-pdf{display:inline-flex;align-items:center;gap:.7rem;margin-top:clamp(1.8rem,4vh,2.6rem);
  padding:.85rem 1.6rem;border:1px solid var(--or);color:var(--ivoire);text-decoration:none;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;transition:.32s var(--ease)}
.tech-pdf:hover{background:var(--or);color:var(--noir)}

/* ---------- Caractéristiques ---------- */
.m-atouts{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,2.6vw,2.2rem)}
@media (max-width:760px){.m-atouts{grid-template-columns:1fr}}
.m-atout{padding-top:1.3rem;border-top:1px solid var(--hair);position:relative}
.m-atout::after{content:"";position:absolute;top:0;left:0;height:1px;width:0;background:var(--or);
  transition:width 1.1s var(--slow)}
.m-atout.in::after{width:40%}
.m-atout h3{font-family:var(--serif);font-weight:300;font-size:clamp(1.1rem,2vw,1.45rem);margin-bottom:.5rem}
.m-atout p{color:var(--gris);font-size:.95rem}

/* ---------- Installation / final ---------- */
.m-bloc{border-left:1px solid var(--hair-or);padding-left:clamp(1.2rem,3vw,2.2rem)}
.m-bloc h3{font-family:var(--serif);font-weight:300;font-size:clamp(1.3rem,2.6vw,1.9rem);margin-bottom:.9rem}
.m-bloc p{color:var(--gris);max-width:70ch}

/* ---------- Garantie Platinum ---------- */
.m-gar{background:var(--noir-2);border:1px solid var(--hair-or);padding:clamp(1.8rem,4vw,3rem)}
.m-gar h3{font-family:var(--serif);font-weight:300;font-size:clamp(1.4rem,2.8vw,2rem);margin-bottom:.9rem}
.m-gar p{color:var(--gris);max-width:64ch}
.m-gar ul{list-style:none;margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.7rem}
.m-gar li{border:1px solid var(--hair-or);padding:.6rem 1.1rem;font-size:.78rem;letter-spacing:.1em;
  color:var(--or-clair)}

/* ---------- Autres modèles : carrousel (4 visibles) ---------- */
.autres-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem}
.autres-nav{display:flex;gap:.5rem;flex:0 0 auto}
.autres-nav .ar{width:44px;height:44px;border:1px solid var(--hair);background:var(--noir-2);color:var(--ivoire);
  font-size:1.3rem;line-height:1;cursor:pointer;transition:.3s var(--ease)}
.autres-nav .ar:hover{border-color:var(--or);background:var(--or);color:var(--noir)}
.autres{--gap:clamp(.7rem,1.4vw,1.1rem);
  display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;margin-top:1.6rem}
.autres::-webkit-scrollbar{display:none}
.autre{flex:0 0 calc((100% - 3*var(--gap))/4);scroll-snap-align:start;
  padding:1.2rem;border:1px solid var(--hair);background:var(--noir-2);
  text-decoration:none;color:var(--ivoire);transition:.32s var(--ease)}
.autre:hover{background:var(--noir-3);border-color:var(--hair-or)}
.autre .k{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or)}
.autre h4{font-family:var(--serif);font-weight:300;font-size:1.08rem;margin-top:.5rem}
.autre .go{margin-top:.8rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.autre:hover .go{color:var(--or-clair)}
.autre.ext{border-color:var(--hair-or)}
.autre.ext .k{color:var(--or-clair)}
@media (max-width:900px){.autre{flex:0 0 calc((100% - var(--gap))/2)}}
@media (max-width:560px){.autre{flex:0 0 82%}}

/* ---------- CTA ---------- */
.m-cta{text-align:center;padding-block:clamp(4rem,10vh,7rem);border-top:1px solid var(--hair)}
.m-cta h2{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,4.4vw,3.2rem)}
.m-cta .btn{display:inline-flex;align-items:center;gap:.7rem;margin-top:1.7rem;padding:.95rem 2rem;
  border:1px solid var(--or);color:var(--ivoire);background:none;cursor:pointer;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:.35s var(--ease)}
.m-cta .btn:hover{background:var(--or);color:var(--noir)}

a:focus-visible,button:focus-visible{outline:2px solid var(--or-clair);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001s!important;transition-duration:.001s!important}
  .reveal{opacity:1;transform:none}
}
