/* ===========================================================
   VitroSmart — Design system partagé
   Palette : bleu givré & argenté premium
   Typo : Playfair Display (display) + Plus Jakarta Sans (UI/texte)
   =========================================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* Neutres */
  --ink:#0c1620;
  --ink-soft:#182632;
  --muted:#5b6f80;
  --muted-lt:#8a9aa8;
  --bone:#eef3f6;
  --paper:#ffffff;

  /* Bleu givré (univers Particulier) */
  --accent:#6fa8dc;
  --accent2:#2f6690;
  --accent-pale:#d7e8f5;

  /* Argenté (univers Professionnel + accents transverses) */
  --silver:#b9c1c7;
  --silver-lt:#e3e7ea;
  --silver-dp:#7c8890;

  /* Statuts */
  --ok-bg:#eef8f1;
  --ok-tx:#1f6d3f;

  --radius:3px;
  --shadow-lg:0 24px 70px -32px rgba(12,22,32,0.28);
  --shadow-sm:0 10px 30px -18px rgba(12,22,32,0.25);
}

html{scroll-behavior:smooth}
body{
  font-family:'Plus Jakarta Sans',sans-serif;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  font-weight:400;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 56px}
.wrap-nrw{max-width:820px;margin:0 auto;padding:0 56px}

/* ---------- Typography helpers ---------- */
.display{font-family:'Playfair Display',Georgia,serif;font-weight:400;font-variant-ligatures:none}
h1,h2,h3,.h1,.h2,.h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.12;font-variant-ligatures:none}
.logo,.f-logo,.amt,.price-amount,.warr-num,.step-n,.price-name{font-variant-ligatures:none}
h1 i,h2 i,h3 i,.h1 i,.h2 i,.h3 i{font-style:normal;color:var(--accent2)}
.eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent2);font-weight:600;margin-bottom:14px;display:block}
.eyebrow.on-dark{color:var(--accent)}
.lede{font-size:16px;line-height:1.85;color:var(--muted);font-weight:400}
.small-muted{font-size:13px;color:var(--muted)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:15px 30px;text-decoration:none;border:none;cursor:pointer;border-radius:var(--radius);transition:transform .15s ease,box-shadow .2s ease,background .2s ease,color .2s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(120deg,var(--accent) 0%,var(--silver-lt) 100%);color:var(--ink)}
.btn-primary:hover{background:var(--accent2);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-soft)}
.btn-silver{background:linear-gradient(120deg,var(--silver) 0%,var(--silver-lt) 100%);color:var(--ink)}
.btn-silver:hover{background:var(--silver-dp);color:#fff}
.btn-ghost{background:transparent;color:inherit;border:1px solid rgba(12,22,32,0.18);padding:14px 29px}
.btn-ghost:hover{border-color:var(--ink);background:rgba(12,22,32,0.03)}
.btn-ghost.on-dark{border-color:rgba(255,255,255,0.25);color:#fff}
.btn-ghost.on-dark:hover{border-color:#fff;background:rgba(255,255,255,0.06)}
.btn-block{width:100%}
.btn-lg{padding:18px 36px;font-size:12px}

/* ---------- Nav (shared) ---------- */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 56px;height:72px;background:rgba(255,255,255,0.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(12,22,32,0.06)}
.site-nav.dark{background:rgba(12,22,32,0.92);border-bottom:1px solid rgba(255,255,255,0.08)}
.logo{font-family:'Playfair Display',Georgia,serif;font-size:19px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.logo em{font-style:normal;color:var(--accent2)}
.site-nav.dark .logo{color:#fff}
.site-nav.dark .logo em{color:var(--accent)}
.nav-links{list-style:none;display:flex;gap:30px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s;font-weight:600;white-space:nowrap}
.nav-links a:hover,.nav-links a.is-active{color:var(--ink)}
.site-nav.dark .nav-links a{color:rgba(255,255,255,0.55)}
.site-nav.dark .nav-links a:hover,.site-nav.dark .nav-links a.is-active{color:#fff}
.nav-switch{display:flex;align-items:center;gap:20px;flex-shrink:0}
.nav-universe-tag{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-lt);text-decoration:none;border-bottom:1px dotted rgba(12,22,32,0.3);padding-bottom:2px}
.site-nav.dark .nav-universe-tag{color:rgba(255,255,255,0.4);border-color:rgba(255,255,255,0.3)}
.nav-cta{border:1px solid currentColor;padding:9px 20px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;font-weight:600}
.nav-cta:hover{background:var(--ink);color:#fff!important;border-color:var(--ink)}
.site-nav.dark .nav-cta:hover{background:var(--accent);color:var(--ink)!important;border-color:var(--accent)}
.nav-burger{display:none}

/* ---------- Breadcrumb ---------- */
.crumb{padding:110px 56px 0;font-size:11px;letter-spacing:.06em;color:var(--muted-lt);max-width:1160px;margin:0 auto}
.crumb a{text-decoration:none;color:var(--muted-lt)}
.crumb a:hover{color:var(--ink)}

/* ---------- Section shells ---------- */
section{padding:96px 56px}
.section-tight{padding:64px 56px}
.bg-bone{background:linear-gradient(135deg,var(--bone) 0%,var(--silver-lt) 100%)}
.bg-white{background:#fff}
.bg-ink{background:var(--ink)}
.bg-ink .display,.bg-ink h2,.bg-ink h3{color:#fff}
.bg-ink p{color:rgba(255,255,255,0.55)}
.sec-head{max-width:640px;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-title{font-size:clamp(28px,3.4vw,44px);margin-bottom:16px}

/* ---------- Grids & cards ---------- */
.grid{display:grid;gap:28px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid rgba(12,22,32,0.07);border-radius:var(--radius);padding:32px}
.card-dark{background:var(--ink-soft);border:1px solid rgba(255,255,255,0.08);color:#fff}
.card-top-bar{position:relative;overflow:hidden}
.card-top-bar::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent) 0%,var(--silver-lt) 55%,var(--accent2) 100%)}

/* ---------- Spec tables (technical properties) ---------- */
.spec-table{width:100%;border-collapse:collapse;font-size:14px}
.spec-table tr{border-bottom:1px solid rgba(12,22,32,0.08)}
.spec-table tr:last-child{border-bottom:none}
.spec-table th,.spec-table td{text-align:left;padding:16px 10px;font-weight:400}
.spec-table th{color:var(--muted);font-weight:600;width:45%;font-size:13px}
.spec-table td{font-weight:500}
.tbd{display:inline-block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:var(--accent-pale)!important;color:var(--accent2)!important;padding:2px 8px;border-radius:2px;margin-left:8px;font-weight:700}

/* ---------- Pricing ---------- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.price-card{background:#fff;border:1px solid rgba(12,22,32,0.08);border-radius:var(--radius);padding:36px 28px;position:relative}
.price-card.featured{border-color:var(--accent2);box-shadow:var(--shadow-sm)}
.price-tag{position:absolute;top:-12px;left:28px;background:var(--ink);color:#fff;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:2px;font-weight:600}
.price-name{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:10px}
.price-amount{font-family:'Playfair Display',Georgia,serif;font-size:38px;font-weight:400;margin-bottom:6px}
.price-amount span{font-size:14px;font-family:'Plus Jakarta Sans',sans-serif;color:var(--muted);font-weight:500}
.price-sub{font-size:12px;color:var(--muted-lt);margin-bottom:24px}
.price-list{list-style:none;display:flex;flex-direction:column;gap:11px;margin-bottom:28px}
.price-list li{font-size:13.5px;color:var(--ink);padding-left:20px;position:relative}
.price-list li::before{content:'✓';position:absolute;left:0;color:var(--accent2);font-weight:700}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(12,22,32,0.1)}
.step{padding:28px 20px 0 0;border-right:1px solid rgba(12,22,32,0.08);position:relative}
.step:last-child{border-right:none}
.step::before{content:'';position:absolute;top:-1px;left:0;width:32px;height:2px;background:var(--accent2)}
.step-n{font-family:'Playfair Display',Georgia,serif;font-size:38px;font-weight:400;color:rgba(12,22,32,0.08);line-height:1;margin-bottom:10px}
.step-t{font-size:13.5px;font-weight:700;margin-bottom:6px}
.step-d{font-size:12.5px;color:var(--muted);line-height:1.75}

/* ---------- Before / after comparator ----------
   Source images are side-by-side collages (left half = transparent,
   right half = opaque). Each layer is stretched 200% and cropped to
   its own half via background-position, so both layers show a full,
   undistorted, aligned frame — the clip-path then reveals one over
   the other at the drag position, instead of clipping one single
   flattened image (which never actually revealed anything). */
.slider-wrap{position:relative;width:100%;aspect-ratio:3/4;border:1px solid rgba(12,22,32,0.08);border-radius:var(--radius);overflow:hidden;cursor:ew-resize;touch-action:pan-y;background:var(--bone)}
.slider-wrap.is-landscape{aspect-ratio:836/941}
.slider-wrap .sl-before,.slider-wrap .sl-after{position:absolute;inset:0;background-repeat:no-repeat;background-size:200% 100%}
.slider-wrap .sl-before{background-position:left top}
.slider-wrap .sl-after{background-position:right top;clip-path:inset(0 0 0 50%);transition:clip-path .25s ease}
.slider-wrap.is-dragging .sl-after{transition:none}
.sl-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:5;pointer-events:none;transform:translateX(-50%);box-shadow:0 0 0 1px rgba(0,0,0,0.08);transition:left .25s ease}
.slider-wrap.is-dragging .sl-line{transition:none}
.sl-tag{position:absolute;top:12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:6px 12px;z-index:4;pointer-events:none;border-radius:2px}
.sl-tag.sl-l{left:12px;background:rgba(12,22,32,0.55);color:rgba(255,255,255,0.9)}
.sl-tag.sl-r{right:12px;background:linear-gradient(135deg,var(--accent),var(--silver-lt));color:var(--ink)}
.sl-state{position:absolute;bottom:15px;color:#fff;pointer-events:none;text-shadow:0 2px 10px rgba(0,0,0,0.5)}
.sl-state b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;line-height:1;letter-spacing:.01em;font-size:17px;margin-bottom:8px}
.sl-state span{display:block;text-transform:uppercase;font-weight:600;opacity:.9;letter-spacing:.13em;font-size:7px}
.sl-state-l{left:5%}
.sl-state-r{left:5%}

/* ---------- Forms ---------- */
.site-form{position:relative;text-align:left;background:#fff;border:1px solid rgba(12,22,32,0.08);border-radius:var(--radius);padding:44px 40px 40px;box-shadow:var(--shadow-lg);overflow:hidden}
.site-form::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent) 0%,var(--silver-lt) 55%,var(--accent2) 100%)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.f-field{display:flex;flex-direction:column;gap:8px}
.f-field.full{grid-column:1/-1}
.f-field label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.f-field input,.f-field select,.f-field textarea{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;padding:12px 14px;border:1px solid rgba(12,22,32,0.15);background:var(--bone);color:var(--ink);border-radius:2px;transition:border-color .2s,background .2s}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{outline:none;border-color:var(--accent2);background:#fff}
.f-field textarea{resize:vertical;min-height:110px;font-family:inherit}
.f-hint{font-size:12px;color:var(--muted-lt);margin-top:-8px}
.form-success{margin-top:20px;padding:18px 20px;border:1px solid rgba(63,168,120,0.3);background:var(--ok-bg);color:var(--ok-tx);font-size:14px;text-align:left;border-radius:2px}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg,var(--accent) 0%,var(--silver-lt) 100%);padding:56px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta-band.dark{background:linear-gradient(120deg,var(--ink) 0%,var(--ink-soft) 100%)}
.cta-band.dark .cta-t{color:#fff}
.cta-t{font-family:'Playfair Display',Georgia,serif;font-size:30px;font-weight:400;color:var(--ink);line-height:1.25}
.cta-t b{display:block;font-weight:600}

/* ---------- FAQ ---------- */
.faq details{border-bottom:1px solid rgba(12,22,32,0.1);padding:22px 0}
.faq summary{cursor:pointer;list-style:none;font-weight:600;font-size:15px;display:flex;justify-content:space-between;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-size:20px;color:var(--accent2);font-weight:400}
.faq details[open] summary::after{content:'–'}
.faq p{margin-top:14px;font-size:14px;color:var(--muted);line-height:1.8;max-width:640px}

/* ---------- Badges / tags ---------- */
.tag-row{display:flex;flex-wrap:wrap;gap:10px}
.tag{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:7px 14px;border:1px solid rgba(12,22,32,0.14);border-radius:20px;color:var(--muted)}

/* ---------- Video toggle button (reused across immersive video blocks) ---------- */
.vi-toggle{position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;background:rgba(12,22,32,0.5);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.25);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;z-index:2}

/* ---------- PDLC technology explainer (reused on /particulier/ & /professionnel/) ---------- */
.pdlc-head{max-width:640px;margin:0 auto 52px;text-align:center}
.pdlc-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:56px}
.pdlc-col{background:var(--ink-soft);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius);padding:32px;text-align:center}
.pdlc-col-t{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,0.45);margin-bottom:22px}
.pdlc-diagram{width:100%;max-width:280px;height:auto;margin:0 auto 18px;display:block}
.pdlc-badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border-radius:22px;font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:22px}
.pdlc-badge.is-off{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.55);border:1px solid rgba(255,255,255,0.2)}
.pdlc-badge.is-on{background:linear-gradient(120deg,var(--accent),var(--silver-lt));color:var(--ink)}
.pdlc-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-bottom:24px}
.pdlc-legend span{display:flex;align-items:center;gap:6px;font-size:10.5px;color:rgba(255,255,255,0.45)}
.pdlc-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;flex-shrink:0}
.pdlc-info{display:flex;align-items:flex-start;gap:14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius);padding:18px 20px;text-align:left}
.pdlc-info svg{flex-shrink:0;margin-top:2px;color:var(--accent)}
.pdlc-info-t{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;margin-bottom:4px}
.pdlc-info-d{font-size:13px;color:rgba(255,255,255,0.5);line-height:1.7}
.pdlc-features{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid rgba(255,255,255,0.08);padding-top:40px}
.pdlc-feature{text-align:center}
.pdlc-feature svg{margin:0 auto 16px;display:block;color:var(--accent)}
.pdlc-feature-t{font-size:14px;font-weight:700;color:#fff;margin-bottom:6px}
.pdlc-feature-d{font-size:12.5px;color:rgba(255,255,255,0.45)}
@media(max-width:860px){
  .pdlc-cols{grid-template-columns:1fr}
  .pdlc-features{grid-template-columns:1fr 1fr;row-gap:32px}
}

/* ---------- Footer ---------- */
footer{background:var(--ink);padding:64px 56px 28px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
.f-logo{font-family:'Playfair Display',Georgia,serif;font-size:19px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:#fff;text-decoration:none}
.f-logo em{font-style:normal;color:var(--accent)}
.f-baseline{font-size:13px;color:rgba(255,255,255,0.4);margin-top:14px;line-height:1.7;max-width:260px}
.f-col-t{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.35);font-weight:700;margin-bottom:16px}
.f-col a{display:block;font-size:13px;color:rgba(255,255,255,0.6);text-decoration:none;margin-bottom:11px}
.f-col a:hover{color:#fff}
.f-bottom{border-top:1px solid rgba(192,192,192,0.15);padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.f-copy{font-size:11px;color:rgba(255,255,255,0.3)}

/* ---------- Utilities ---------- */
.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-48{margin-top:48px}
.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mb-32{margin-bottom:32px}
.center{text-align:center}
.hidden{display:none!important}

/* ===========================================================
   Responsive
   =========================================================== */
@media(max-width:1440px){
  .site-nav{padding:0 32px}
  .nav-links{gap:18px}
  .nav-links a{font-size:10px;letter-spacing:.06em}
  .nav-switch{gap:12px}
  .nav-cta{padding:9px 14px}
}
@media(max-width:1000px){
  .grid-4{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:1fr 1fr}
  .price-grid{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .site-nav{padding:0 20px}
  .nav-links{display:none}
  .nav-cta{display:none}
  .wrap,.wrap-nrw{padding:0 20px}
  section{padding:64px 20px}
  .section-tight{padding:48px 20px}
  .crumb{padding:96px 20px 0}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .f-row{grid-template-columns:1fr;gap:16px;margin-bottom:16px}
  .site-form{padding:26px 20px}
  .cta-band{flex-direction:column;text-align:center;padding:40px 20px}
  .f-grid{grid-template-columns:1fr;gap:32px}
  footer{padding:48px 20px 24px}
}
