/* ===== Lauba Plomberie — style.css ===== */

/* Polices auto-hébergées (Fraunces + Inter, sous-ensemble latin) —
   aucune requête vers fonts.googleapis.com, donc aucune donnée visiteur
   transmise à un tiers au chargement de la page. */
@font-face{font-family:'Fraunces'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../assets/fonts/fraunces-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Fraunces'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../assets/fonts/fraunces-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Fraunces'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../assets/fonts/fraunces-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../assets/fonts/inter-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../assets/fonts/inter-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../assets/fonts/inter-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../assets/fonts/inter-latin-700-normal.woff2') format('woff2');}

:root{
  --blue:#003DB5; --blue-dark:#002B82; --blue-pale:#EAF0FC; --blue-pale-2:#F5F8FE;
  --ink:#101826; --ink-soft:#4B5568; --line:#E1E7F2; --white:#fff; --amber:#C97A2B;
  --radius:14px; --shadow:0 12px 30px -14px rgba(0,42,140,.28);
  --header-h:68px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{margin:0; font-family:'Inter',Arial,sans-serif; color:var(--ink); background:#fff;
  line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
body.nav-open{overflow:hidden;}

h1,h2,h3{font-family:'Fraunces',Georgia,serif; font-weight:600; line-height:1.15; color:var(--blue-dark); margin:0 0 .5em;}
h1{font-size:clamp(1.75rem,5vw,3.2rem); font-weight:700; line-height:1.1;}
h2{font-size:clamp(1.4rem,3vw,2.1rem);}
h3{font-size:1.12rem; font-weight:600;}
p{margin:0 0 1em; color:var(--ink-soft);}
a{color:var(--blue);}
img{max-width:100%; display:block;}
.container{width:100%; max-width:1140px; margin:0 auto; padding:0 20px;}
.section{padding:56px 0;}
.section--pale{background:var(--blue-pale-2);}
.eyebrow{display:inline-block; font-weight:700; font-size:.75rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--blue); margin-bottom:.6em;}
.lede{font-size:1.05rem; max-width:56ch;}

/* Boutons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:14px 24px; border-radius:999px; font-weight:600; text-decoration:none;
  font-size:.97rem; border:2px solid transparent; cursor:pointer; line-height:1.2;
  transition:transform .15s, box-shadow .15s, background .15s;}
.btn--primary{background:var(--blue); color:#fff; box-shadow:var(--shadow);}
.btn--primary:hover{background:var(--blue-dark); transform:translateY(-2px);}
.btn--ghost{border-color:var(--blue); color:var(--blue); background:#fff;}
.btn--ghost:hover{background:var(--blue-pale);}
.btn--on-dark{border-color:#fff; color:#fff;}
.btn--on-dark:hover{background:rgba(255,255,255,.12);}

/* ===== Header ===== */
.site-header{position:sticky; top:0; z-index:60; background:#fff; border-bottom:1px solid var(--line);}
.site-header .inner{display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:10px 20px; max-width:1140px; margin:0 auto; min-height:var(--header-h);}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; min-width:0;}
.brand img{height:48px; width:auto; flex:none;}
.brand-text{font-family:'Fraunces',serif; font-weight:700; color:var(--blue-dark);
  font-size:1.02rem; line-height:1.15; white-space:nowrap;}
.brand-text small{display:block; font-family:'Inter',sans-serif; font-weight:500;
  font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);}
nav.main-nav{display:flex; align-items:center; gap:26px;}
nav.main-nav a{color:var(--ink); text-decoration:none; font-weight:600; font-size:.95rem;}
nav.main-nav a.active,nav.main-nav a:hover{color:var(--blue);}
.header-cta{display:flex; align-items:center; gap:12px; flex:none;}
.phone-pill{display:inline-flex; align-items:center; gap:8px; font-weight:700;
  color:var(--blue-dark); text-decoration:none; white-space:nowrap;}
.nav-toggle,.nav-close{display:none; background:none; border:0; padding:6px;
  color:var(--blue-dark); cursor:pointer; line-height:1;}
.nav-panel-head{display:none;}

@media (max-width:900px){
  .brand img{height:42px;}
  .brand-text{font-size:.95rem;}
  .brand-text small{display:none;}          /* la baseline est déjà dans le logo */
  .header-cta .btn{display:none;}           /* CTA déplacé dans le menu + le hero */
  .phone-pill .btn-label{display:none;}
  .phone-pill{width:42px; height:42px; justify-content:center; border-radius:50%;
    background:var(--blue-pale);}
  .nav-toggle{display:block;}

  /* Menu plein écran — sorti du flux du header, plus de conflit de positionnement */
  nav.main-nav{position:fixed; inset:0; z-index:100; background:#fff;
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:0; padding:0 22px 40px; display:none; overflow-y:auto;
    overscroll-behavior:contain;}
  nav.main-nav.open{display:flex;}
  .nav-panel-head{display:flex; align-items:center; justify-content:space-between;
    padding:14px 0; border-bottom:1px solid var(--line); margin-bottom:8px;}
  .nav-panel-head img{height:40px;}
  .nav-close{display:block;}
  nav.main-nav a{font-size:1.12rem; padding:16px 0; border-bottom:1px solid var(--line);}
  nav.main-nav .nav-actions{display:grid; gap:12px; margin-top:26px;}
  nav.main-nav .nav-actions .btn{width:100%;}
}
@media (min-width:901px){ nav.main-nav .nav-actions{display:none;} }

/* ===== Hero ===== */
.hero{background:linear-gradient(180deg,var(--blue-pale-2) 0%,#fff 100%); padding:52px 0 60px;}
.hero .inner{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;}
.hero-badges{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.badge{display:inline-flex; align-items:center; gap:7px; background:#fff; border:1px solid var(--line);
  padding:8px 14px; border-radius:999px; font-size:.83rem; font-weight:600; color:var(--blue-dark);
  box-shadow:0 4px 14px -8px rgba(0,42,130,.25);}
.badge .dot{width:7px; height:7px; border-radius:50%; background:var(--amber); flex:none;}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:24px;}
.hero-art{background:var(--blue); border-radius:24px; padding:0; display:flex;
  align-items:center; justify-content:center; box-shadow:var(--shadow);
  aspect-ratio:1/1; overflow:hidden;}
.hero-art img{width:100%; height:100%; object-fit:cover; filter:none;}

/* Cadres photo */
.photo-frame{margin:0; border-radius:var(--radius); overflow:hidden; background:var(--blue-pale);
  box-shadow:0 10px 26px -16px rgba(0,42,140,.4);}
.photo-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.photo-frame--portrait{aspect-ratio:3/4;}
.photo-frame figcaption{font-size:.83rem; color:var(--ink-soft); background:#fff;
  padding:12px 14px; border:1px solid var(--line); border-top:0;}
.photo-frame:has(figcaption) img{aspect-ratio:16/10;}

/* Emplacements photo restants — à remplacer par de vraies images */
.photo-slot{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(145deg,var(--blue) 0%,var(--blue-dark) 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:#fff; text-align:center; padding:20px; gap:10px;
}
.photo-slot::before{
  content:""; position:absolute; inset:0; opacity:.12;
  background-image:radial-gradient(circle at 20% 20%, #fff 0, transparent 45%),
                    radial-gradient(circle at 80% 80%, #fff 0, transparent 40%);
}
.photo-slot svg{width:34px; height:34px; opacity:.85; position:relative;}
.photo-slot span{font-size:.78rem; font-weight:600; letter-spacing:.03em; opacity:.9; position:relative; max-width:22ch;}
.photo-slot--portrait{aspect-ratio:3/4;}
.photo-slot--landscape{aspect-ratio:16/10;}
.photo-slot--square{aspect-ratio:1/1;}

.photo-gallery{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px;}
@media (max-width:460px){ .photo-gallery{grid-template-columns:1fr;} }

@media (max-width:900px){
  .hero{padding:36px 0 44px;}
  .hero .inner{grid-template-columns:1fr; gap:30px;}
  .hero-art{order:-1; aspect-ratio:auto; padding:26px; max-width:280px; margin:0 auto; border-radius:20px;}
  .hero-art img{width:100%;}
  .hero-actions .btn{width:100%;}
}

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

.service-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; transition:transform .15s, box-shadow .15s;}
.service-card:hover{transform:translateY(-3px); box-shadow:var(--shadow);}
.service-card .num{display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; background:var(--blue-pale);
  color:var(--blue-dark); font-family:'Fraunces',serif; font-weight:700; margin-bottom:12px;}

/* Bandeau confiance */
.trust-strip{background:var(--blue-dark); color:#fff; border-radius:22px; padding:36px 26px;
  text-align:center; position:relative; overflow:hidden;}
.trust-strip::before{content:""; position:absolute; top:-60%; left:50%; transform:translateX(-50%);
  width:640px; height:640px; border-radius:50%; border:2px dashed rgba(255,255,255,.14);}
.trust-strip h2,.trust-strip p{position:relative;}
.trust-strip h2{color:#fff;}
.trust-strip p{color:#DCE6FA; max-width:60ch; margin-inline:auto;}
.trust-strip .btn{position:relative;}

/* Zone */
.zone-list{columns:2; gap:24px; margin:0; padding:0; list-style:none;}
.zone-list li{break-inside:avoid; padding:10px 0; border-bottom:1px solid var(--line); color:var(--ink);}
@media (max-width:620px){ .zone-list{columns:1;} }

/* Avis */
.review-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px;}
.stars{color:var(--amber); letter-spacing:2px; font-size:1.05rem; margin-bottom:8px;}
.placeholder-note{border:1.5px dashed var(--blue); background:var(--blue-pale);
  border-radius:var(--radius); padding:20px; color:var(--blue-dark); font-weight:500;}
.google-block{border:1px solid var(--line); border-radius:var(--radius); padding:26px; background:#fff;}
.google-block .g-head{display:flex; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap;}
.g-logo{font-weight:700; color:var(--blue-dark); font-size:1.05rem;}

/* Formulaire */
form.devis-form{display:grid; gap:16px; max-width:640px;}
form.devis-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:620px){ form.devis-form .row2{grid-template-columns:1fr;} }
form.devis-form label{font-weight:600; font-size:.9rem; display:block; margin-bottom:6px; color:var(--ink);}
form.devis-form input,form.devis-form select,form.devis-form textarea{
  width:100%; padding:13px 14px; border:1.5px solid var(--line); border-radius:10px;
  font:inherit; font-size:16px; color:var(--ink); background:#fff;}
form.devis-form input:focus,form.devis-form select:focus,form.devis-form textarea:focus{
  outline:3px solid var(--blue-pale); border-color:var(--blue);}
form.devis-form textarea{min-height:130px; resize:vertical;}
.consent{display:flex; gap:10px; align-items:flex-start; font-size:.85rem; color:var(--ink-soft);}
.consent input{width:auto; margin-top:3px;}
@media (max-width:620px){ form.devis-form button{width:100%; justify-self:stretch;} }

/* Contact */
.contact-info{display:grid; gap:18px;}
.contact-info .item{display:flex; gap:14px;}
.contact-info .item strong{display:block; color:var(--blue-dark);}
.icon{width:26px; height:26px; color:var(--blue); flex:none;}

/* Footer */
.site-footer{background:#0B1526; color:#B9C4DA; padding:48px 0 26px; margin-top:56px;}
.site-footer h4{color:#fff; font-family:'Fraunces',serif; margin-bottom:.7em;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px;}
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr;} }
.site-footer a{color:#B9C4DA; text-decoration:none;}
.site-footer a:hover{color:#fff;}
.site-footer p{color:#B9C4DA;}
.footer-brand{display:flex; align-items:center; gap:12px; margin-bottom:12px;}
.footer-brand img{height:42px; filter:brightness(0) invert(1);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:32px; padding-top:20px;
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.84rem;}

/* Bandeau titre pages internes */
.page-hero{background:var(--blue-pale-2); padding:44px 0 36px; border-bottom:1px solid var(--line);}
.breadcrumb{font-size:.85rem; color:var(--ink-soft); margin-bottom:10px;}
.breadcrumb a{color:var(--ink-soft);}

.skip-link{position:absolute; left:-999px; top:0; background:var(--blue); color:#fff; padding:10px 16px; z-index:200;}
.skip-link:focus{left:10px; top:10px;}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important;}
  html{scroll-behavior:auto;}
}
