/*
Theme Name: WIA Laiton
Theme URI: https://www.webiaprod.fr/
Description: Theme satellite serrurier Webiaprod, signature « laiton & encre » (papier chaud, bleu encre, accent laiton, Bricolage Grotesque + Archivo, grain SVG). Decline de la demo validee le 21/10/2026 (charte.webiaprod.com/serrurier/bron/). Contenu servi par seed.json, administrable via ACF Pro quand present.
Author: Webiaprod
Version: 1.0.0
Requires PHP: 7.0
Text Domain: wia-laiton
*/

/* ============ Signature « laiton & encre » : jetons ============ */
:root{
  --ink:#141c26; --ink-2:#1d2938; --paper:#f4efe6; --paper-2:#ece4d4;
  --brass:#b9802a; --brass-soft:#d9a84e; --brass-deep:#8a5a14;
  --line:rgba(20,28,38,.14); --ok:#1e7a4f;
  --wrap:1120px; /* conteneur unique (regle 33/38) */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Archivo",sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.05;z-index:999;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}
h1,h2,h3{font-family:"Bricolage Grotesque",sans-serif;line-height:1.08;letter-spacing:-.01em}
a{color:inherit}
img{max-width:100%;height:auto}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--brass);color:#fff;text-decoration:none;
  font-weight:700;padding:16px 26px;border-radius:999px;min-height:48px;transition:transform .15s ease, box-shadow .15s ease;box-shadow:0 10px 24px rgba(185,128,42,.35)}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(185,128,42,.45)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border:2px solid var(--ink)}
.btn svg{flex:none}

/* ============ Topbar + header ============ */
.topbar{background:var(--ink);color:var(--paper);font-size:14px;padding:8px 0}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.topbar a{color:var(--brass-soft);text-decoration:none;font-weight:700}
.site-header{position:sticky;top:0;z-index:50;background:rgba(244,239,230,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:20px;text-decoration:none;display:flex;align-items:center;gap:10px}
.logo svg{flex:none}
.menu{display:flex;gap:26px;list-style:none;font-weight:500;font-size:15px}
.menu a{text-decoration:none;position:relative}
.menu a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--brass);transition:width .2s}
.menu a:hover::after{width:100%}
.nav .btn{padding:11px 20px;font-size:15px}

/* ============ Hero ============ */
.hero{position:relative;padding:72px 0 86px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.kicker{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-deep);margin-bottom:18px}
.kicker::before{content:"";width:34px;height:2px;background:var(--brass)}
.hero h1{font-size:clamp(40px,6vw,72px);font-weight:800}
.hero h1 em{font-style:normal;color:var(--brass-deep);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:.18em;background:var(--brass-soft);opacity:.45;z-index:-1}
.hero p.lead{font-size:19px;margin:22px 0 28px;max-width:34em;color:var(--ink-2)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600}
.badge .star{color:var(--brass)}
.heroArt{position:relative;display:flex;justify-content:center}
.photoFrame{position:relative;width:min(100%,420px);margin:0;transform:rotate(-1.2deg)}
.photoFrame img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:22px;border:3px solid var(--ink);box-shadow:0 24px 48px rgba(20,28,38,.28);filter:saturate(.94) contrast(1.03)}
.photoFrame::after{content:"";position:absolute;inset:16px -14px -14px 16px;border:2px solid var(--brass);border-radius:26px;z-index:-1}
.photoFrame figcaption{position:absolute;left:16px;bottom:16px;background:rgba(20,28,38,.9);color:var(--paper);font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px}

/* ============ Bande photo pleine largeur ============ */
.band{position:relative;margin:0;height:340px;overflow:hidden;background:var(--ink)}
.band img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;filter:brightness(.82)}
.band figcaption{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 20px;color:var(--paper);font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:clamp(22px,3.4vw,34px);line-height:1.25;text-shadow:0 2px 20px rgba(0,0,0,.55)}
.band figcaption span{color:var(--brass-soft)}

/* ============ Bandeau tarif ============ */
.strip{background:var(--ink);color:var(--paper);padding:26px 0}
.strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.strip strong{font-family:"Bricolage Grotesque",sans-serif;font-size:clamp(22px,3vw,30px);font-weight:800}
.strip strong span{color:var(--brass-soft)}
.strip small{display:block;opacity:.75;font-size:14px;margin-top:2px}

/* ============ Sections ============ */
section{padding:76px 0}
.sec-head{max-width:620px;margin-bottom:44px}
.sec-head h2{font-size:clamp(28px,4vw,42px);font-weight:800}
.sec-head p{margin-top:12px;color:var(--ink-2)}

/* Services */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;transition:transform .18s ease, box-shadow .18s ease;position:relative;overflow:hidden}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(20,28,38,.10)}
.card .ico{width:48px;height:48px;border-radius:12px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--brass-deep)}
.card h3{font-size:19px;margin-bottom:8px}
.card p{font-size:15px;color:var(--ink-2)}

/* Etapes (fond encre) */
.dark{background:var(--ink);color:var(--paper)}
.dark .sec-head p{color:rgba(244,239,230,.75)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:s}
.step{border:1px solid rgba(244,239,230,.16);border-radius:18px;padding:28px;position:relative}
.step::before{counter-increment:s;content:"0" counter(s);font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:44px;color:var(--brass-soft);display:block;margin-bottom:10px}
.step h3{font-size:19px;margin-bottom:8px}
.step p{font-size:15px;color:rgba(244,239,230,.78)}

/* Zone d'intervention */
.zone .wrap{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600}
.chip.brass{background:var(--brass);border-color:var(--brass);color:#fff}
.zoneBox{background:var(--paper-2);border-radius:22px;padding:30px;border:1px solid var(--line)}
.zoneBox h3{font-size:19px;margin-bottom:10px}
.zoneBox ul{list-style:none;margin-top:8px}
.zoneBox li{padding:9px 0;border-bottom:1px dashed var(--line);font-size:15px;display:flex;gap:10px;align-items:center}
.zoneBox li:last-child{border:none}
.zoneBox li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brass);flex:none}

/* Interventions recentes (extension dans la signature validee) */
.intervGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.interv{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;position:relative}
.interv::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--brass)}
.interv .lieu{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brass-deep);margin-bottom:10px}
.interv .lieu::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brass)}
.interv h3{font-size:17px;margin-bottom:8px}
.interv p{font-size:15px;color:var(--ink-2)}

/* Bloc long SEO : prose posee sur la grille (regles 33/34) */
.savoir .duo{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start}
.savoirBox{background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px}
.savoirBox h3{font-size:21px;margin-bottom:12px}
.savoirBox h3::after{content:"";display:block;width:44px;height:3px;background:var(--brass);border-radius:3px;margin-top:10px}
.savoirBox p{font-size:15.5px;color:var(--ink-2);margin-top:12px}
.savoirBox strong{color:var(--ink)}
.savoirBox ul{margin:12px 0 0 2px;list-style:none}
.savoirBox li{padding:7px 0 7px 22px;position:relative;font-size:15.5px;color:var(--ink-2)}
.savoirBox li::before{content:"";position:absolute;left:0;top:14px;width:10px;height:10px;border:2px solid var(--brass);border-radius:3px;transform:rotate(45deg)}

/* Avis (fond encre) */
.avisHead{display:flex;align-items:center;gap:16px;margin-bottom:34px;flex-wrap:wrap}
.note{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:46px}
.stars{color:var(--brass);font-size:22px;letter-spacing:3px}
.avisHead small{color:rgba(244,239,230,.7)}
.avisGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.avis{border:1px solid rgba(244,239,230,.16);border-radius:18px;padding:24px;font-size:15px}
.avis p{color:rgba(244,239,230,.85)}
.avis footer{margin-top:14px;font-weight:700;color:var(--brass-soft);font-size:14px}

/* FAQ */
.faq{max-width:760px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin-bottom:12px}
.faq summary{cursor:pointer;font-weight:700;font-family:"Bricolage Grotesque",sans-serif;font-size:17px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:28px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;color:var(--brass-deep);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:12px;color:var(--ink-2);font-size:15px}

/* CTA final */
.final{background:linear-gradient(135deg,var(--brass-deep),var(--brass));color:#fff;text-align:center;border-radius:26px;padding:56px 30px;margin:0 20px}
.final h2{font-size:clamp(28px,4vw,40px);font-weight:800}
.final p{margin:12px auto 26px;max-width:34em}
.final .btn{background:#fff;color:var(--brass-deep);box-shadow:0 14px 30px rgba(0,0,0,.2)}

/* ============ Footer ============ */
footer.site{background:var(--ink);color:rgba(244,239,230,.8);padding:46px 0 110px;margin-top:76px;font-size:14px}
footer.site .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer.site a{color:var(--brass-soft);text-decoration:none}
footer.site .copy{margin-top:10px;opacity:.65}

/* Barre d'appel mobile (regle 37 : contact toujours apparent) */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(20,28,38,.96);backdrop-filter:blur(8px)}
.callbar a{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--brass);color:#fff;text-decoration:none;font-weight:800;font-size:17px;border-radius:14px;min-height:52px}

/* ============ Pages internes (gabarit « archive du carnet ») ============ */
.inner-hero{background:var(--ink);color:var(--paper);padding:56px 0 48px}
.inner-hero .kicker{color:var(--brass-soft)}
.inner-hero .kicker::before{background:var(--brass-soft)}
.inner-hero h1{font-size:clamp(30px,4.6vw,52px);font-weight:800;max-width:18em}
.crumbs{font-size:13px;margin-bottom:18px;color:rgba(244,239,230,.65)}
.crumbs a{color:var(--brass-soft);text-decoration:none}
.inner-body{padding:56px 0 20px}
.inner-body .wrap{display:grid;grid-template-columns:1fr 320px;gap:44px;align-items:start}
.prose{background:#fff;border:1px solid var(--line);border-radius:22px;padding:40px;font-size:16px;color:var(--ink-2);overflow-wrap:break-word}
.prose h2{font-size:clamp(22px,3vw,30px);margin:34px 0 12px;color:var(--ink)}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:19px;margin:26px 0 10px;color:var(--ink)}
.prose p{margin:12px 0}
.prose ul,.prose ol{margin:12px 0 12px 22px}
.prose li{margin:6px 0}
.prose a{color:var(--brass-deep);font-weight:600}
.prose img{border-radius:14px;margin:14px 0}
.prose blockquote{border-left:3px solid var(--brass);padding:4px 0 4px 18px;margin:16px 0;color:var(--ink)}
.prose table{border-collapse:collapse;width:100%;margin:14px 0}
.prose td,.prose th{border:1px solid var(--line);padding:9px 12px;font-size:15px}
.sideCta{position:sticky;top:96px;background:var(--paper-2);border:1px solid var(--line);border-radius:22px;padding:28px;text-align:center}
.sideCta h3{font-size:19px;margin-bottom:8px}
.sideCta p{font-size:14px;color:var(--ink-2);margin-bottom:16px}
.sideCta .btn{width:100%;justify-content:center}
.sideCta .badge{margin-top:14px}
.postList{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.postCard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;text-decoration:none;display:block;transition:transform .18s ease, box-shadow .18s ease}
.postCard:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(20,28,38,.10)}
.postCard h3{font-size:18px;margin-bottom:8px}
.postCard p{font-size:14.5px;color:var(--ink-2)}
.postCard .more{display:inline-block;margin-top:12px;font-weight:700;color:var(--brass-deep);font-size:14px}
.pagin{margin-top:34px;display:flex;gap:8px;flex-wrap:wrap}
.pagin .page-numbers{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 14px;text-decoration:none;font-weight:600;font-size:14px}
.pagin .page-numbers.current{background:var(--brass);border-color:var(--brass);color:#fff}

/* ============ Cocon semantique : menus deroulants, section maillage, footer ============ */
.menu .has-sub{position:relative}
.menu .has-sub>a::before{content:"▾";font-size:10px;margin-left:5px;color:var(--brass-deep)}
.menu .sub{position:absolute;top:100%;left:-14px;padding-top:12px;min-width:260px;display:none;list-style:none;z-index:60}
.menu .has-sub:hover .sub,.menu .has-sub:focus-within .sub{display:block}
.menu .sub li{background:#fff;border:1px solid var(--line);border-top:none}
.menu .sub li:first-child{border-top:1px solid var(--line);border-radius:12px 12px 0 0}
.menu .sub li:last-child{border-radius:0 0 12px 12px}
.menu .sub a{display:block;padding:11px 16px;font-size:14px}
.menu .sub a::after{display:none}
.menu .sub a:hover{background:var(--paper);color:var(--brass-deep)}
.cocon{background:#fff;border-top:1px solid var(--line)}
.coconCols{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.coconBox{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:26px}
.coconBox h3{font-size:17px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--brass)}
.coconBox ul{list-style:none}
.coconBox li{margin:0 0 9px;padding-left:16px;position:relative}
.coconBox li::before{content:"◆";position:absolute;left:0;top:2px;font-size:8px;color:var(--brass)}
.coconBox a{text-decoration:none;font-size:14.5px;font-weight:500}
.coconBox a:hover{color:var(--brass-deep);text-decoration:underline}
footer.site .footCol strong{color:#f4efe6;display:block;margin-bottom:10px}
footer.site .footCol ul{list-style:none}
footer.site .footCol li{margin-bottom:7px}
footer.site .footCol a{font-size:13.5px}

/* ============ Mobile (parite totale, regle 2) ============ */
@media(max-width:900px){
  .hero .wrap{grid-template-columns:1fr}
  .heroArt{order:-1}
  .heroArt .photoFrame{width:min(100%,300px)}
  .band{height:240px}
  .grid,.steps,.avisGrid,.intervGrid,.postList{grid-template-columns:1fr}
  .zone .wrap,.savoir .duo{grid-template-columns:1fr}
  .inner-body .wrap{grid-template-columns:1fr}
  .sideCta{position:static}
  .prose{padding:26px 20px}
  .menu{display:none}
  .nav .btn{display:none}
  .callbar{display:block}
  section{padding:56px 0}
  .hero{padding:44px 0 56px}
  .coconCols{grid-template-columns:1fr}
  footer.site .wrap{flex-direction:column}
}

/* ============ Gate ?flat=1 (regles 21/46) : capture par tranches sans etats colles ============ */
body.wia-flat{scroll-behavior:auto}
body.wia-flat .site-header{position:static;backdrop-filter:none}
body.wia-flat .callbar{display:none!important}
body.wia-flat .sideCta{position:static}
body.wia-flat::after{display:none}
body.wia-flat *{transition:none!important;animation:none!important}
