
:root{
  --navy:#1a3a6b;
  --navy-dark:#0f2244;
  --red:#c0392b;
  --red-dark:#a12b1f;
  --white:#ffffff;
  --text:#11223b;
  --muted:#5b6d85;
  --line:#dbe3ef;
  --line-strong:#bed0e5;
  --bg:#f5f7fb;
  --bg-alt:#edf2fa;
  --success:#0e9f6e;
  --shadow:0 18px 50px rgba(12,30,61,.12);
  --radius:24px;
  --radius-sm:16px;
  --container:1160px;
  --section-pad:clamp(4rem,6vw,6rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--white);
  line-height:1.6;
}
body.menu-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.container{width:min(var(--container), calc(100% - 2rem));margin-inline:auto}
.section{padding:var(--section-pad) 0}
.section.alt{background:var(--bg)}
.section.soft{background:linear-gradient(180deg, #fff 0%, var(--bg) 100%)}
.section-header{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  margin-bottom:2rem;
  flex-wrap:wrap;
}
.section-header h2,
.section-header h1{
  margin:.1rem 0 .4rem;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.08;
}
.section-header p{margin:0;max-width:720px;color:var(--muted)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.85rem;
  color:var(--red);
}
.eyebrow::before{
  content:"";
  width:54px;height:4px;border-radius:999px;background:var(--red);
}
.lead{font-size:1.125rem;color:var(--muted)}
.muted{color:var(--muted)}
.card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.chip{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:40px;padding:0 .95rem;border-radius:999px;
  border:1px solid var(--line-strong);background:var(--white);
  color:var(--navy);font-weight:700;font-size:.95rem;
}
.tag-list,.chip-wrap{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.65rem;
  min-height:56px;padding:0 1.35rem;border-radius:999px;
  border:1px solid transparent;font-weight:800;transition:.2s ease;
  cursor:pointer
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--red);color:var(--white)}
.btn-primary:hover{background:var(--red-dark)}
.btn-secondary{background:var(--white);border-color:rgba(255,255,255,.35);color:var(--white)}
.btn-dark{background:var(--navy);color:var(--white)}
.btn-outline{background:transparent;border-color:var(--line-strong);color:var(--navy)}
.btn-light{background:var(--white);color:var(--navy)}
.text-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;color:var(--navy)}
.text-link::after{content:"→"}
.topbar{
  background:var(--navy-dark);color:#e6edf8;font-size:.95rem
}
.topbar-inner{
  min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:1rem
}
.topbar a{font-weight:700}
.site-header{
  position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);border-bottom:1px solid rgba(219,227,239,.9)
}
.navbar{
  min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1rem
}
.brand{
  display:inline-flex;align-items:center;gap:.95rem;min-width:0
}
.brand img{width:58px;height:58px;border-radius:14px}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font-weight:900;font-size:1.06rem;color:var(--navy);white-space:nowrap}
.brand-sub{font-size:.82rem;color:var(--muted);margin-top:.3rem}
.nav-links{display:flex;align-items:center;gap:1rem}
.nav-links a{
  color:var(--text);font-weight:800;padding:.65rem .9rem;border-radius:999px
}
.nav-links a:hover,.nav-links a[aria-current="page"]{background:var(--bg-alt);color:var(--navy)}
.nav-actions{display:flex;align-items:center;gap:.75rem}
.menu-toggle{
  display:none;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:14px;border:1px solid var(--line);background:var(--white)
}
.menu-panel{
  display:none;position:fixed;inset:78px 1rem auto 1rem;background:var(--white);
  border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);
  padding:1rem;z-index:50
}
.menu-panel a{display:block;padding:1rem;border-radius:16px;font-weight:800}
.menu-panel a:hover{background:var(--bg-alt)}
body.menu-open .menu-panel{display:block}
.home-hero{
  position:relative;overflow:hidden;
  background:
    linear-gradient(90deg, rgba(7,18,37,.88) 0%, rgba(8,20,42,.62) 42%, rgba(8,20,42,.25) 66%, rgba(8,20,42,.16) 100%),
    url('/assets/images/branding/hero-header-v4-1920x1080.jpg') center/cover no-repeat;
  color:var(--white);
}
.home-hero::after{
  content:"";
  position:absolute;inset:auto 0 0 0;height:180px;
  background:linear-gradient(180deg, rgba(10,21,42,0) 0%, rgba(10,21,42,.86) 100%);
  pointer-events:none
}
.hero-inner{
  position:relative;z-index:1;
  min-height:min(860px, calc(100vh - 122px));
  display:grid;grid-template-columns:minmax(0, 620px) 1fr;
  align-items:center;padding:clamp(4rem,9vw,7rem) 0
}
.hero-copy{max-width:620px}
.hero-copy .eyebrow{color:#ffd1cb}
.hero-copy .eyebrow::before{background:#ffd1cb}
.hero-copy h1{
  margin:.45rem 0 1rem;
  font-size:clamp(2.7rem, 6vw, 5.4rem);
  line-height:.94;
  letter-spacing:-.03em
}
.hero-copy p{
  margin:0 0 1.35rem;
  color:#dfe8f4;
  font-size:1.12rem;
  max-width:58ch
}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.6rem}
.hero-points{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.9rem;margin-top:2rem;max-width:620px
}
.hero-point{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
  border-radius:18px;
  padding:1rem 1rem 1rem 1.1rem;
  backdrop-filter:blur(6px)
}
.hero-point strong{display:block;font-size:1rem;color:var(--white)}
.hero-point span{display:block;color:#dbe5f4;font-size:.96rem}
.stats-row{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:-2.8rem;position:relative;z-index:3
}
.stat-card{padding:1.2rem 1.1rem}
.stat-card strong{display:block;font-size:1.7rem;color:var(--navy);line-height:1}
.stat-card span{display:block;margin-top:.35rem;color:var(--muted)}
.grid{display:grid;gap:1.2rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.service-grid .service-card{padding:1.5rem;display:flex;flex-direction:column}
.service-card h3{margin:1rem 0 .45rem;font-size:1.2rem;line-height:1.15}
.service-card p{margin:0 0 1rem;color:var(--muted)}
.service-card .text-link{margin-top:auto}
.service-icon{width:76px;height:76px}
.icon-checklist{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.icon-checklist li{
  position:relative;padding-left:1.7rem;color:var(--muted)
}
.icon-checklist li::before{
  content:"";position:absolute;left:0;top:.6rem;width:.78rem;height:.78rem;border-radius:999px;background:var(--red)
}
.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.process-card{padding:1.4rem}
.process-step{
  width:46px;height:46px;border-radius:14px;background:var(--bg-alt);
  color:var(--navy);display:grid;place-items:center;font-weight:900;margin-bottom:.8rem
}
.photo-strip{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1rem}
.photo-tall,.photo-card img{border-radius:24px}
.photo-card{
  overflow:hidden;position:relative;background:var(--navy-dark)
}
.photo-card img{width:100%;height:100%;object-fit:cover}
.gallery-grid{
  display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-auto-rows:260px;gap:1rem
}
.gallery-grid figure{
  position:relative;overflow:hidden;border-radius:24px;margin:0;background:var(--navy-dark)
}
.gallery-grid figure img{
  width:100%;height:100%;object-fit:cover;transition:transform .4s ease
}
.gallery-grid figure:hover img{transform:scale(1.05)}
.gallery-grid figure.tall{grid-row:span 2}
.gallery-grid figcaption{
  position:absolute;left:1rem;right:1rem;bottom:1rem;
  background:rgba(10,21,42,.72);backdrop-filter:blur(8px);
  color:var(--white);padding:.75rem 1rem;border-radius:18px;font-size:.94rem
}
.before-after-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.before-after-card{overflow:hidden}
.before-after-card img{width:100%;height:240px;object-fit:cover}
.before-after-body{padding:1.15rem 1.2rem}
.before-after-body h3{margin:0 0 .35rem}
.before-after-body p{margin:0;color:var(--muted)}
.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.trust-card{padding:1.35rem}
.trust-card h3{margin:.2rem 0 .35rem}
.trust-card p{margin:0;color:var(--muted)}
.area-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:1.2rem;align-items:start}
.area-card,.quote-card,.contact-card,.feature-card,.zones-list-card{padding:1.5rem}
.area-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem .9rem;margin-top:1.2rem}
.area-list span{
  border-bottom:1px dashed var(--line);padding-bottom:.4rem;color:var(--muted)
}
.faq-list{display:grid;gap:.85rem}
.faq-item{
  border:1px solid var(--line);border-radius:20px;background:var(--white);padding:0 1.1rem
}
.faq-item summary{
  list-style:none;cursor:pointer;font-weight:800;padding:1.15rem 2rem 1.15rem 0;position:relative
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";position:absolute;right:0;top:1rem;font-size:1.4rem;color:var(--navy)
}
.faq-item[open] summary::after{content:"–"}
.faq-answer{padding:0 0 1rem;color:var(--muted)}
.blog-grid .blog-card{overflow:hidden}
.blog-card img{width:100%;height:240px;object-fit:cover}
.blog-card-body{padding:1.25rem}
.blog-card h3{margin:0 0 .6rem;font-size:1.2rem;line-height:1.18}
.blog-card p{margin:0 0 1rem;color:var(--muted)}
.cta-band{
  background:linear-gradient(135deg, var(--navy) 0%, #11244c 100%);
  color:var(--white);border-radius:28px;padding:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap
}
.page-hero{
  color:var(--white);
  background:
    linear-gradient(90deg, rgba(8,20,42,.88) 0%, rgba(8,20,42,.55) 52%, rgba(8,20,42,.3) 100%),
    var(--page-hero-image) center/cover no-repeat;
}
.page-hero .container{padding:4rem 0}
.page-hero h1{font-size:clamp(2.3rem,4vw,4rem);line-height:1.03;margin:.4rem 0 1rem;max-width:900px}
.page-hero p{max-width:720px;color:#dfe8f4;margin:0}
.breadcrumbs{
  font-size:.95rem;color:#dfe8f4;margin-bottom:1rem
}
.breadcrumbs a{color:#fff}
.content-grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,.28fr);gap:1.2rem}
.content-main > * + *{margin-top:1.2rem}
.content-main .card,.sidebar-card{padding:1.5rem}
.sidebar-stack{display:grid;gap:1rem}
.sidebar-card h3{margin-top:0}
.service-highlight{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.service-highlight .card{padding:1.25rem}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact-card h3{margin:.1rem 0 .35rem}
.contact-card p{color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.field{display:grid;gap:.45rem}
.field.full{grid-column:1 / -1}
label{font-weight:800;color:var(--navy)}
input,select,textarea{
  width:100%;min-height:54px;padding:0 1rem;border-radius:16px;border:1px solid var(--line-strong);
  background:var(--white);color:var(--text)
}
textarea{min-height:150px;padding:1rem;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(26,58,107,.18);border-color:var(--navy)}
.form-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.form-note,.fine-print{font-size:.95rem;color:var(--muted)}
.success-message{
  display:none;margin-top:1rem;padding:1rem 1.1rem;border-radius:18px;
  background:#e7f8f1;color:#086447;border:1px solid #bcebd8
}
.error-message{
  display:none;margin-top:1rem;padding:1rem 1.1rem;border-radius:18px;
  background:#fdecea;color:#9f1f12;border:1px solid #f4c5bf
}
.show{display:block}
.review-placeholder{
  padding:1.5rem;border:1px dashed var(--line-strong);border-radius:24px;background:var(--bg)
}
.site-footer{
  background:linear-gradient(180deg, #142747 0%, #0e1e39 100%);
  color:#e8eef8;padding:4rem 0 6rem
}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:1.4rem}
.footer-grid h3{margin:0 0 .9rem;font-size:1.05rem;color:var(--white)}
.footer-grid p,.footer-grid li,.footer-grid a{color:#d3dded}
.footer-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:.65rem}
.footer-bottom{
  margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.12);
  color:#adc0df;font-size:.95rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap
}
.floating-contact{
  position:fixed;right:1rem;bottom:1rem;z-index:60;display:grid;gap:.8rem;justify-items:end
}
.contact-bubble{
  display:grid;gap:.75rem;justify-items:end;opacity:0;pointer-events:none;transform:translateY(10px);transition:.25s ease
}
.floating-contact.open .contact-bubble{opacity:1;pointer-events:auto;transform:translateY(0)}
.contact-bubble a{
  background:var(--white);color:var(--navy);box-shadow:var(--shadow);border:1px solid var(--line);
  min-height:50px;padding:0 1rem;border-radius:999px;display:inline-flex;align-items:center;font-weight:800
}
.contact-toggle{
  width:auto;min-height:58px;padding:0 1.2rem;border-radius:999px;background:var(--red);color:var(--white);
  box-shadow:0 18px 50px rgba(192,57,43,.34);border:none;font-weight:900
}
.mobile-cta{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,255,255,.96);
  border-top:1px solid var(--line);padding:.7rem .85rem env(safe-area-inset-bottom)
}
.mobile-cta-inner{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.mobile-cta a{min-height:52px}
.badge-list{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}
.badge{
  display:inline-flex;align-items:center;gap:.5rem;background:var(--bg-alt);border:1px solid var(--line);
  color:var(--navy);font-weight:800;padding:.65rem .9rem;border-radius:999px
}
.stat-inline{
  display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem
}
.stat-inline span{
  display:inline-flex;align-items:center;gap:.55rem;color:var(--muted);font-weight:700
}
.split-intro{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:center}
.split-intro img{border-radius:26px}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.notice{
  padding:1rem 1.1rem;border-left:5px solid var(--red);border-radius:0 18px 18px 0;
  background:#fff4f2;color:#672116
}
.article-hero img{border-radius:28px;width:100%;max-height:520px;object-fit:cover}
.article-meta{display:flex;gap:.8rem;flex-wrap:wrap;color:var(--muted);margin-top:1rem}
.article-content{max-width:860px}
.article-content h2{margin-top:2rem;font-size:1.9rem;line-height:1.12}
.article-content p{font-size:1.08rem;color:#25395a}
.article-content ul{color:#25395a}
.mini-hero{
  background:linear-gradient(135deg, var(--navy) 0%, #0f2244 100%);color:var(--white);border-radius:28px;padding:2rem
}
.mini-hero h1,.mini-hero h2{margin:.2rem 0 .7rem}
.zone-service-list{display:flex;flex-wrap:wrap;gap:.8rem}
.zone-service-list a{
  background:var(--bg);border:1px solid var(--line);padding:.8rem 1rem;border-radius:999px;font-weight:800;color:var(--navy)
}
.brand-preview{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:center}
.brand-preview .card{padding:1rem}
.brand-preview img{border-radius:20px}
.quote-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:1rem}
.quote-box{padding:1.5rem}
.quote-box h3{margin-top:0}
.admin-shell{
  background:var(--bg);min-height:100vh;padding:2rem 0
}
.admin-stack{display:grid;gap:1rem}
.admin-wrap{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:1rem}
.admin-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1.25rem 1.4rem;flex-wrap:wrap
}
.admin-brand{display:flex;align-items:center;gap:1rem}
.admin-brand img{width:70px;height:70px;border-radius:18px}
.admin-brand h1{margin:.2rem 0 .35rem;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.04}
.admin-brand p{margin:0;color:var(--muted);max-width:60ch}
.admin-top-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.admin-nav{
  display:flex;gap:.75rem;flex-wrap:wrap;padding:.8rem
}
.admin-nav a{
  min-height:48px;padding:0 1rem;border-radius:999px;border:1px solid var(--line);
  display:inline-flex;align-items:center;font-weight:800;color:var(--navy);background:var(--white)
}
.admin-nav a[aria-current="page"],.admin-nav a:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.admin-hero{padding:1.5rem}
.admin-hero h2{margin:.2rem 0 .55rem;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.06}
.admin-hero p{margin:0;color:var(--muted);max-width:70ch}
.admin-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.admin-stat-card{padding:1.2rem}
.admin-stat-label{display:block;font-size:.9rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.admin-stat-card strong{display:block;margin-top:.5rem;font-size:2.2rem;color:var(--navy);line-height:1}
.admin-stat-card p{margin:.45rem 0 0;color:var(--muted)}
.admin-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.admin-grid-top{align-items:start}
.panel-head{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.panel-head h3{margin:0 0 .25rem}
.panel-head p{margin:0;color:var(--muted)}
.record-stack{display:grid;gap:.9rem}
.record-card{
  border:1px solid var(--line);border-radius:20px;background:var(--white);
  padding:1rem 1.1rem;display:grid;gap:.8rem
}
.record-meta{
  display:flex;justify-content:space-between;gap:1rem;align-items:start
}
.record-meta strong{display:block;font-size:1.02rem;color:var(--navy)}
.record-meta p{margin:.25rem 0 0;color:var(--muted)}
.record-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.record-actions .btn{min-height:44px;padding:0 .95rem}
.status-badge{
  display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 .85rem;border-radius:999px;
  font-size:.9rem;font-weight:800;background:var(--bg-alt);color:var(--navy);border:1px solid var(--line)
}
.status-prospect{background:#eef2ff;color:#3343a5}
.status-planifie{background:#fff5db;color:#986a00}
.status-en-cours{background:#e6f7ef;color:#0d7c53}
.status-en-attente{background:#fff1ec;color:#a33d1b}
.status-termine{background:#e9f3ff;color:#1d5ca3}
.progress-track{
  width:100%;height:10px;border-radius:999px;background:var(--bg-alt);overflow:hidden
}
.progress-track span{
  display:block;height:100%;background:linear-gradient(90deg, var(--navy) 0%, var(--red) 100%);border-radius:999px
}
.backup-row{display:flex;gap:.9rem;flex-wrap:wrap}
.backup-import{position:relative;overflow:hidden}
.backup-import input{
  position:absolute;inset:0;opacity:0;cursor:pointer
}
.empty-state{
  padding:1rem 1.1rem;border:1px dashed var(--line-strong);border-radius:20px;background:var(--bg);color:var(--muted)
}
.service-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.service-group{padding:1rem 1.05rem}
.service-group h4{margin:0 0 .9rem;color:var(--navy)}
.check-item{
  display:flex;align-items:flex-start;gap:.65rem;padding:.25rem 0;color:var(--text)
}
.check-item input{
  width:20px;height:20px;min-height:auto;margin:0;margin-top:.1rem;accent-color:var(--red)
}
.check-item span{font-weight:700}
.admin-panel,.invoice-preview{
  background:var(--white);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)
}
.admin-panel{padding:1.25rem}
.invoice-preview{padding:2rem;overflow:auto}
.invoice-header{
  display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.2rem
}
.invoice-company{max-width:440px}
.invoice-company img{width:120px;margin-bottom:1rem}
.invoice-meta{display:grid;gap:.35rem;text-align:right}
.invoice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.2rem 0}
.invoice-box{padding:1rem;border:1px solid var(--line);border-radius:18px;background:var(--bg)}
.invoice-table{width:100%;border-collapse:collapse;margin-top:1rem}
.invoice-table th,.invoice-table td{padding:.75rem;border-bottom:1px solid var(--line);text-align:left}
.invoice-table th{text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;color:var(--muted)}
.total-box{
  margin-top:1rem;margin-left:auto;max-width:320px;padding:1rem;border:1px solid var(--line);border-radius:18px;background:var(--bg)
}
.total-row{display:flex;justify-content:space-between;padding:.35rem 0}
.total-row.grand{font-weight:900;font-size:1.15rem;color:var(--navy);border-top:1px solid var(--line);margin-top:.4rem;padding-top:.75rem}
.invoice-notes{margin-top:1.2rem;color:var(--muted)}
.invoice-legal{
  margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.95rem;color:var(--muted)
}
.line-item{display:grid;grid-template-columns:1.8fr .6fr .8fr auto;gap:.5rem;align-items:end}
.line-item .btn{min-height:46px;padding:0 1rem}
.small{font-size:.92rem}
.hide{display:none !important}
@media (max-width: 1100px){
  .hero-inner,.area-layout,.content-grid,.split-intro,.brand-preview,.quote-layout,.admin-wrap,.footer-grid,.contact-layout,.admin-grid-2,.service-group-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .gallery-grid figure.tall{grid-row:auto}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3,.process-grid,.trust-grid,.before-after-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 920px){
  .topbar{display:none}
  .nav-links,.nav-actions .btn-outline{display:none}
  .menu-toggle{display:flex}
  .hero-inner{grid-template-columns:1fr;min-height:auto;padding:4.4rem 0 6rem}
  .stats-row{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:-1.8rem}
  .admin-topbar,.admin-brand,.record-meta{grid-template-columns:1fr}
  .admin-brand{align-items:flex-start}
  .admin-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-copy h1{max-width:11ch}
  .hero-points,.form-grid,.check-grid,.grid-3,.process-grid,.trust-grid,.before-after-grid,.area-list,.grid-4,.service-highlight{grid-template-columns:1fr}
  .gallery-grid,.photo-strip{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .navbar{min-height:72px}
  .brand img{width:52px;height:52px}
  .brand-name{font-size:.98rem}
  .hero-actions,.form-actions{flex-direction:column;align-items:stretch}
  .stats-row{grid-template-columns:1fr}
  .home-hero{background:
    linear-gradient(180deg, rgba(7,18,37,.88) 0%, rgba(8,20,42,.72) 38%, rgba(8,20,42,.62) 100%),
    url('/assets/images/branding/hero-header-v4-mobile-1080x1350.jpg') center/cover no-repeat;}
  .section{padding:3.7rem 0}
  .cta-band{padding:1.5rem}
  .admin-stats-grid{grid-template-columns:1fr}
  .admin-topbar,.record-actions,.backup-row{flex-direction:column;align-items:stretch}
  .invoice-header,.invoice-grid,.line-item{grid-template-columns:1fr}
  .invoice-meta{text-align:left}
  .floating-contact{display:none}
  .mobile-cta{display:block}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 520px){
  .container{width:min(var(--container), calc(100% - 1.1rem))}
  .footer-grid{grid-template-columns:1fr}
  .page-hero .container{padding:3rem 0}
  .home-hero .hero-copy h1{font-size:2.6rem}
}
@media print{
  header,.site-footer,.floating-contact,.mobile-cta,.admin-panel{display:none !important}
  body{background:#fff}
  .invoice-preview{box-shadow:none;border:none;padding:0}
}
