/* The Warehouse — Shell unifié : header + nav + footer + double typo
   Source unique pour toutes les pages publiques.
   Édite ICI seulement, puis re-run scripts/build_shell.py. */

/* ═══════════════════════════════════════════════════════
   FLUID DESIGN TOKENS — adaptive responsive sans paliers
   clamp() interpole entre mobile (320px) et desktop (1280px+).
   ═══════════════════════════════════════════════════════ */
:root{
  /* Spacing (1 → 7) — resserré 2026-06-03 (~30% en moins sur les gros) */
  --tw-sp-1: clamp(4px,  .5vw,  6px);
  --tw-sp-2: clamp(6px,  .8vw,  12px);
  --tw-sp-3: clamp(10px, 1.2vw, 18px);
  --tw-sp-4: clamp(14px, 2vw,   28px);
  --tw-sp-5: clamp(20px, 3vw,   40px);
  --tw-sp-6: clamp(28px, 4.5vw, 56px);
  --tw-sp-7: clamp(40px, 6vw,   80px);

  /* Typography — anti-débordement (planchers mobiles plus bas, plafonds desktop intacts) */
  --tw-text-xs:  clamp(10.5px, .75vw + 8px, 13px);
  --tw-text-sm:  clamp(12px,   .8vw + 10px, 14.5px);
  --tw-text-md:  clamp(14px,   1vw + 11px, 16px);
  --tw-text-lg:  clamp(15px,   1.3vw + 12px, 20px);
  --tw-text-xl:  clamp(18px,   1.8vw + 14px, 28px);
  --tw-text-2xl: clamp(22px,   2.7vw + 16px, 42px);
  --tw-text-3xl: clamp(26px,   4.5vw + 18px, 64px);

  /* Container max-width fluid (96vw with cap) */
  --tw-container: min(1280px, 96vw);
  --tw-container-narrow: min(720px, 92vw);

  /* Line-heights resserrées (1.5 pour corps, pas 1.6) */
  --tw-lh-tight: 1.05;
  --tw-lh-snug:  1.25;
  --tw-lh-relax: 1.5;
}

/* Apply defaults to common elements */
body{font-size:var(--tw-text-md);line-height:var(--tw-lh-relax);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
h1,h2,h3,h4{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;text-wrap:balance}
h1{font-size:var(--tw-text-3xl);line-height:var(--tw-lh-tight);margin-bottom:var(--tw-sp-2)}
h2{font-size:var(--tw-text-2xl);line-height:var(--tw-lh-tight);margin-bottom:var(--tw-sp-2)}
h3{font-size:var(--tw-text-lg);line-height:var(--tw-lh-snug);margin-bottom:var(--tw-sp-1)}
p{font-size:var(--tw-text-md);line-height:var(--tw-lh-relax);text-wrap:pretty}
img,video{max-width:100%;height:auto;display:block}
/* Email / URL / plate — break naturally instead of overflowing */
a[href^="mailto:"],a[href^="tel:"],.tw-break{word-break:break-word;overflow-wrap:anywhere}
/* Buttons : never let text overflow, but allow wrap */
button,.btn,.tw-back,.tw-share,.hub-submit{overflow-wrap:break-word;white-space:normal}
/* Mobile : safety net — force lower-bound h1/h2 floor on tiny screens */
@media(max-width:380px){
  h1{font-size:clamp(22px, 8vw, 28px)}
  h2{font-size:clamp(20px, 7vw, 24px)}
}

/* Tighten common over-spacing offenders globally.
   !important defeats legacy inline page styles. */
section{padding-top:var(--tw-sp-4);padding-bottom:var(--tw-sp-4)}
section + section{padding-top:0}
.hero,.values,.section,.prices-section,.phones-section,.ct-featured,.coverage-section,
.steps,.form-section,.stats,.section-h,.steps-h,.form-h{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:var(--tw-sp-4) !important;     /* 14-28px fluide (-30% encore) */
  padding-bottom:var(--tw-sp-4) !important;
  padding-left:var(--tw-sp-3) !important;
  padding-right:var(--tw-sp-3) !important;
  min-height:0 !important;                    /* kill hero min-height:520px etc. */
}
.tw-ft{margin-top:0}
/* Internal-section spacers tightened too */
.values-grid,.steps-grid,.prices-grid,.phones-grid{
  margin-top:var(--tw-sp-3) !important;
  gap:var(--tw-sp-3) !important;
}
/* Prices grid : toujours 2 colonnes sur mobile/tablette (jamais 1 col) */
@media(max-width:900px){
  .prices-grid{grid-template-columns:repeat(2,1fr) !important}
}
@media(max-width:500px){
  .prices-grid{grid-template-columns:repeat(2,1fr) !important;gap:var(--tw-sp-2) !important}
  .price-card{padding:var(--tw-sp-3) var(--tw-sp-2) !important}
}
.section-eyebrow{margin-bottom:var(--tw-sp-1) !important}
.section-sub,.lead{margin-bottom:var(--tw-sp-3) !important}
.section-title{margin-bottom:var(--tw-sp-2) !important}
/* FAQ collapse spacing */
.faq{margin-top:var(--tw-sp-2) !important}
.faq-item{margin-bottom:var(--tw-sp-1) !important}

/* Reusable fluid utility — pages can opt-in by adding these classes */
.tw-bleed-mobile{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
@media(min-width:720px){.tw-bleed-mobile{margin-left:0;margin-right:0}}
.tw-container{max-width:var(--tw-container);margin-left:auto;margin-right:auto;padding-left:var(--tw-sp-3);padding-right:var(--tw-sp-3)}
.tw-section{padding-top:var(--tw-sp-6);padding-bottom:var(--tw-sp-6)}
.tw-stack-3{display:flex;flex-direction:column;gap:var(--tw-sp-3)}
.tw-stack-4{display:flex;flex-direction:column;gap:var(--tw-sp-4)}
.tw-grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--tw-sp-3)}
.tw-grid-auto-sm{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:var(--tw-sp-2)}


/* ── DOUBLE TYPO (signature The Warehouse) ─────────────
   Tous les <em>, .light, .tw-accent dans les titres deviennent
   du Caveat italic — comme sur la home page (`<h1>Acheter / Revendre</h1>`).
   Aucun changement de couleur ni de taille — juste la fonte + l'italic.
*/
.tw-accent,
h1 em, h2 em, h3 em, h4 em,
h1 .light, h2 .light, h3 .light, h4 .light,
h1 .tw-accent, h2 .tw-accent, h3 .tw-accent, h4 .tw-accent{
  font-family:'Caveat', Georgia, 'Times New Roman', serif !important;
  font-style:italic !important;
  font-weight:700 !important;
  letter-spacing:-.01em !important;
  color:#1D1D1F !important;
}
/* Variante "stacked" (2 lignes) pour héros de page :
   <h1 class="tw-title-stack"><span>Bodoni italic</span><span>sans bold</span></h1> */
.tw-title-stack{display:flex;flex-direction:column;line-height:1}
.tw-title-stack>span:first-child{
  font-family:'Caveat', Georgia, serif;
  font-style:italic;font-weight:700;letter-spacing:.04em;
  transform:scaleX(1.18);transform-origin:left center;
}
.tw-title-stack>span:last-child{
  font-family:'Space Grotesk',system-ui,sans-serif;
  font-weight:500;letter-spacing:-.04em;margin-top:-4px;
}

:root{
  --tw-bg:#FBFBFD;
  --tw-text:#1D1D1F;
  --tw-text-2:#4B5563;
  --tw-text-3:#6B7280;
  --tw-text-4:#86868B;
  --tw-line:rgba(0,0,0,.06);
  --tw-line-2:rgba(0,0,0,.12);
  --tw-surface:#fff;
  --tw-gray-50:#F9FAFB;
  --tw-gray-100:#F3F4F6;
  --tw-gray-200:#E5E7EB;
  --tw-gray-300:#D1D5DB;
}
.tw-hdr *,.tw-nav-overlay *,.tw-ft *,.tw-backrow *{box-sizing:border-box}
.tw-hdr a,.tw-nav-overlay a,.tw-ft a,.tw-backrow a{text-decoration:none}
.tw-hdr button,.tw-nav-overlay button,.tw-backrow button{font-family:inherit;border:0;background:none;cursor:pointer;color:inherit}

/* ── HEADER ─────────────────────────────────────────── */
.tw-hdr{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid var(--tw-line);
  padding-top:env(safe-area-inset-top,0);
  font-family:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
}

/* Variante "overlay sur hero plein écran" (home + futures pages héro vidéo).
   Active via <body class="tw-hero-over">. Le header se superpose à la vidéo
   au lieu de la pousser vers le bas. !important pour defeat toute cascade
   héritée de l'ancien shell. */
.tw-hero-over .tw-hdr{
  position:absolute !important;top:0 !important;left:0;right:0;
  background:transparent !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}
.tw-hero-over .tw-hdr-logo img{
  filter:invert(1) drop-shadow(0 2px 12px rgba(0,0,0,.45));
}
.tw-hero-over .tw-hdr-burger{background:transparent !important}
.tw-hero-over .tw-hdr-burger:hover{background:rgba(255,255,255,.12) !important}
.tw-hero-over .tw-hdr-burger span{
  background:#fff !important;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.55));
}
.tw-hdr-in{
  max-width:var(--tw-container);margin:0 auto;
  padding:var(--tw-sp-2) var(--tw-sp-3);
  display:flex;align-items:center;justify-content:space-between;gap:var(--tw-sp-2);
}
.tw-hdr-logo{display:inline-flex;align-items:center}
.tw-hdr-logo img{height:24px;width:auto;display:block;filter:none}
.tw-hdr-burger{
  width:42px;height:42px;border-radius:12px;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  transition:background .15s ease;
}
.tw-hdr-burger:hover{background:var(--tw-gray-100)}
.tw-hdr-burger span{
  width:20px;height:2px;background:var(--tw-text);border-radius:2px;
  transition:transform .25s ease, opacity .2s ease, width .2s ease;
}
.tw-hdr-burger span:nth-child(2){width:14px;align-self:flex-end;margin-right:11px}
.tw-hdr-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.tw-hdr-burger[aria-expanded="true"] span:nth-child(2){opacity:0;width:0}
.tw-hdr-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── OPTIONAL BACK ROW (sous header) ────────────────── */
.tw-backrow{
  max-width:80rem;margin:0 auto;
  padding:14px 24px 0;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-family:'Space Grotesk',system-ui,sans-serif;
}
.tw-back,.tw-share{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 16px;
  background:var(--tw-surface);
  border:1px solid var(--tw-gray-300);
  border-radius:9999px;
  font-size:13px;font-weight:600;color:var(--tw-text);
  transition:all .15s ease;
  min-height:36px;
}
.tw-back:hover,.tw-share:hover{background:var(--tw-text);color:#fff;border-color:var(--tw-text);transform:translateY(-1px)}
.tw-back .material-icons-outlined,.tw-share .material-icons-outlined{font-size:16px}
.tw-share{background:var(--tw-text);color:#fff;border-color:var(--tw-text)}
.tw-share:hover{background:#000}

/* ── NAV OVERLAY (drawer) ───────────────────────────── */
.tw-nav-overlay{
  position:fixed;inset:0;z-index:10000;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  display:flex;
  opacity:0;pointer-events:none;
  transition:opacity .35s cubic-bezier(.16,1,.3,1);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  font-family:'Space Grotesk',system-ui,sans-serif;
}
.tw-nav-overlay.open{opacity:1;pointer-events:auto}
.tw-nav-overlay::-webkit-scrollbar{width:6px}
.tw-nav-overlay::-webkit-scrollbar-track{background:transparent}
.tw-nav-overlay::-webkit-scrollbar-thumb{background:var(--tw-gray-300);border-radius:3px}
.tw-nav-close{
  position:fixed;top:20px;right:20px;z-index:201;
  width:42px;height:42px;border-radius:12px;
  background:var(--tw-gray-100);
  display:flex;align-items:center;justify-content:center;
  color:var(--tw-text);
  transition:background .2s ease, transform .25s ease;
}
.tw-nav-close:hover{background:var(--tw-gray-200);transform:rotate(90deg)}
.tw-nav-close .material-icons-outlined{font-size:24px}
.tw-nav{
  width:100%;max-width:560px;margin:0 auto;
  padding:96px 24px calc(48px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;
}
.tw-nav-section{margin-bottom:22px}
.tw-nav-label{
  font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;color:var(--tw-text-4);
  margin-bottom:8px;padding-left:14px;
}
.tw-nav a{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:12px;
  font-size:16px;font-weight:500;color:var(--tw-text);
  transition:background .15s ease;
}
.tw-nav a:hover{background:var(--tw-gray-100)}
.tw-nav a .material-icons-outlined{font-size:20px;color:var(--tw-text-3);width:24px;text-align:center}
.tw-pill{
  margin-left:auto;
  font-size:9.5px;font-weight:700;letter-spacing:.08em;
  background:var(--tw-text);color:#fff;
  padding:2px 7px;border-radius:9999px;text-transform:uppercase;
}
.tw-nav-fold{margin-bottom:16px;border-top:1px solid var(--tw-line);padding-top:16px}
.tw-nav-fold>summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--tw-text-3);
  padding:6px 14px;border-radius:8px;
  transition:background .15s ease, color .15s ease;
  user-select:none;
}
.tw-nav-fold>summary:hover{background:var(--tw-gray-100);color:var(--tw-text)}
.tw-nav-fold>summary::-webkit-details-marker{display:none}
.tw-nav-fold>summary .material-icons-outlined{font-size:18px;color:var(--tw-text-4);transition:transform .25s ease}
.tw-nav-fold[open]>summary .material-icons-outlined{transform:rotate(180deg);color:var(--tw-text-2)}

/* ── FOOTER ─────────────────────────────────────────── */
.tw-ft{
  background:#F9FAFB;border-top:1px solid var(--tw-line);
  padding:var(--tw-sp-6) var(--tw-sp-3) var(--tw-sp-3);
  margin-top:var(--tw-sp-6);
  font-family:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--tw-text-2);
}
.tw-ft-in{
  max-width:var(--tw-container);margin:0 auto;
  display:grid;grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap:var(--tw-sp-4);
  margin-bottom:var(--tw-sp-4);
}
.tw-ft-brand{grid-column:span 1}
@media(min-width:980px){.tw-ft-in{grid-template-columns:2fr repeat(3, 1fr)}}
.tw-ft-brand img{height:32px;margin-bottom:14px;display:block;filter:none;width:auto}
.tw-ft-brand p{font-size:13px;color:var(--tw-text-3);line-height:1.6;margin:0 0 12px;max-width:340px}
.tw-ft-countries{font-size:11px;font-weight:500;color:var(--tw-text-4);letter-spacing:.04em}
.tw-ft-col h4{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--tw-text-4);margin:0 0 14px}
.tw-ft-col a{display:block;font-size:13.5px;font-weight:500;color:var(--tw-text-2);padding:5px 0;transition:color .15s ease}
.tw-ft-col a:hover{color:var(--tw-text)}
.tw-ft-tel{
  display:inline-flex!important;align-items:center;
  background:var(--tw-text)!important;color:#fff!important;
  padding:9px 14px!important;border-radius:9999px;
  font-weight:700;margin-bottom:6px;
}
.tw-ft-addr{display:block;font-size:12px;color:var(--tw-text-4);margin-top:4px}
.tw-ft-bottom{
  max-width:var(--tw-container);margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  padding-top:var(--tw-sp-3);border-top:1px solid var(--tw-line);
  font-size:var(--tw-text-xs);color:var(--tw-text-4);
  flex-wrap:wrap;gap:var(--tw-sp-2);
}
.tw-ft-legal{display:flex;gap:16px}
.tw-ft-legal a{color:var(--tw-text-4);transition:color .15s ease}
.tw-ft-legal a:hover{color:var(--tw-text-2)}

/* ── MOBILE ─────────────────────────────────────────── */
@media(max-width:780px){
  .tw-hdr-in{padding:12px 18px}
  .tw-hdr-logo img{height:22px}
  .tw-backrow{padding:10px 18px 0;gap:8px}
  .tw-back,.tw-share{padding:7px 12px;font-size:12.5px;min-height:34px}
  .tw-nav{padding:80px 18px calc(32px + env(safe-area-inset-bottom))}
  .tw-nav a{font-size:15.5px;padding:11px 12px}
  .tw-ft{padding:40px 18px 20px;margin-top:48px}
  .tw-ft-in{grid-template-columns:1fr;gap:28px}
  .tw-ft-bottom{flex-direction:column;align-items:flex-start;gap:10px}
}
