/* =============================================================
   BAYLINE CONCRETING
   Premium build: editorial layout, real photography, restrained 3D.
   ============================================================= */

/* ---------- Tokens ---------- */
:root {
  --ink:        #0e0f12;
  --charcoal:   #16181d;
  --graphite:   #22262e;
  --steel:      #3b414c;
  --stone:      #8a8f98;
  --sand:       #e7e2d7;
  --bone:       #f5f2ec;   /* warm off-white page bg */
  --paper:      #faf8f4;
  --white:      #ffffff;

  --accent:     #e35a1c;   /* refined burnt orange */
  --accent-2:   #c8480f;
  --accent-soft:#f4e7de;

  --bg:         var(--bone);
  --text:       #15171c;
  --muted:      #565d68;
  --faint:      #878d97;
  --line:       #e3ddd1;
  --line-dark:  rgba(255,255,255,.12);

  --font-display: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --wrap: 1240px;
  --r: 6px;
  --r-lg: 14px;

  --sh-1: 0 1px 2px rgba(14,15,18,.06), 0 8px 24px rgba(14,15,18,.06);
  --sh-2: 0 24px 60px rgba(14,15,18,.16);
  --sh-3: 0 40px 90px rgba(14,15,18,.28);

  --ease: cubic-bezier(.2,.7,.2,1);
  --header-h: 84px;
}

*,*::before,*::after { box-sizing: border-box; }
* { margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:3px; }

h1,h2,h3,h4 { font-family:var(--font-display); font-weight:800; line-height:1.05; letter-spacing:-.02em; color:var(--ink); }

/* ---------- Utilities ---------- */
.wrap { width:min(100% - 3rem, var(--wrap)); margin-inline:auto; }
.section { padding: clamp(4.5rem, 9vw, 8.5rem) 0; position:relative; }
.dark { background:var(--ink); color:#d7dae0; }
.dark h1,.dark h2,.dark h3,.dark h4 { color:#fff; }
.reset-list { list-style:none; }

.eyebrow {
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-body); font-weight:600; font-size:.75rem;
  text-transform:uppercase; letter-spacing:.18em; color:var(--accent);
}
.eyebrow::before { content:""; width:22px; height:1.5px; background:var(--accent); flex:none; }
.dark .eyebrow { color:var(--accent); }

.lede { font-size:clamp(1.05rem,1.8vw,1.2rem); color:var(--muted); line-height:1.7; }
.dark .lede { color:#b6bcc6; }

.sec-head { max-width:760px; }
.sec-head.center { margin-inline:auto; text-align:center; }
.sec-head h2 { font-size:clamp(2.2rem,5vw,3.6rem); margin:1rem 0 1rem; }
.sec-head .lede { max-width:60ch; }
.sec-head.center .lede { margin-inline:auto; }
.accent { color:var(--accent); }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.6rem; border-radius:var(--r);
  font-family:var(--font-body); font-weight:600; font-size:.98rem; letter-spacing:.01em;
  background:var(--accent); color:#fff;
  transition:transform .3s var(--ease), background .25s, box-shadow .3s var(--ease), color .25s;
  border:1px solid transparent;
}
.btn svg { width:18px; height:18px; }
.btn:hover { background:var(--accent-2); transform:translateY(-2px); }
.btn--dark { background:var(--ink); }
.btn--dark:hover { background:#000; }
.btn--outline { background:transparent; border-color:currentColor; color:var(--ink); }
.btn--outline:hover { background:var(--ink); color:#fff; border-color:var(--ink); }
.dark .btn--outline { color:#fff; }
.dark .btn--outline:hover { background:#fff; color:var(--ink); }
.btn--ghost-light { background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.28); backdrop-filter:blur(6px); }
.btn--ghost-light:hover { background:rgba(255,255,255,.16); transform:translateY(-2px); }
.btn--lg { padding:1.15rem 2rem; font-size:1.05rem; }
.btn--block { width:100%; }

.link-arrow {
  display:inline-flex; align-items:center; gap:.5rem;
  font-weight:600; color:var(--ink); font-size:.98rem;
  border-bottom:1.5px solid transparent; padding-bottom:2px; transition:.25s;
}
.link-arrow svg { width:16px; height:16px; transition:transform .3s var(--ease); }
.link-arrow:hover { color:var(--accent); }
.link-arrow:hover svg { transform:translateX(5px); }
.dark .link-arrow { color:#fff; }

/* ============================================================
   HEADER
   ============================================================ */
.header {
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .35s var(--ease), box-shadow .35s, border-color .35s;
  border-bottom:1px solid transparent;
}
.header__inner { display:flex; align-items:center; justify-content:space-between; height:var(--header-h); gap:1.5rem; }

.brand { display:flex; align-items:center; gap:.75rem; }
.brand__logo { height:50px; width:auto; flex:none; display:block; }
.footer .brand__logo { height:52px; }
.brand__name { font-family:var(--font-display); font-weight:800; font-size:1.3rem; letter-spacing:-.02em; line-height:1; color:#fff; transition:color .35s; }
.brand__name b { color:var(--accent); font-weight:800; }
.brand__sub { display:block; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.6); font-weight:600; margin-top:.28rem; transition:color .35s; white-space:nowrap; }

.nav { display:flex; align-items:center; gap:2.2rem; }
.nav a { font-weight:500; font-size:.95rem; color:rgba(255,255,255,.82); position:relative; transition:color .25s; white-space:nowrap; }
.nav a::after { content:""; position:absolute; left:0; bottom:-6px; height:1.5px; width:0; background:var(--accent); transition:width .3s var(--ease); }
.nav a:hover { color:#fff; }
.nav a:hover::after { width:100%; }

.header__cta { display:flex; align-items:center; gap:1.3rem; }
.header__phone { display:flex; align-items:center; gap:.5rem; font-family:var(--font-display); font-weight:700; font-size:1.08rem; color:#fff; white-space:nowrap; transition:color .35s; }
.header__phone svg { width:18px; height:18px; color:var(--accent); }

/* solid state on scroll */
.header.solid { background:rgba(250,248,244,.92); backdrop-filter:saturate(140%) blur(16px); border-color:var(--line); box-shadow:0 1px 0 rgba(0,0,0,.02); }
.header.solid .brand__name { color:var(--ink); }
.header.solid .brand__sub { color:var(--faint); }
.header.solid .nav a { color:var(--muted); }
.header.solid .nav a:hover { color:var(--ink); }
.header.solid .header__phone { color:var(--ink); }

.nav-toggle { display:none; width:46px; height:46px; border-radius:var(--r); border:1px solid rgba(255,255,255,.25); position:relative; }
.header.solid .nav-toggle { border-color:var(--line); }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after {
  content:""; position:absolute; left:50%; top:50%; width:20px; height:2px; background:#fff; transform:translate(-50%,-50%); transition:.3s;
}
.header.solid .nav-toggle span, .header.solid .nav-toggle span::before, .header.solid .nav-toggle span::after { background:var(--ink); }
.nav-toggle span::before { transform:translate(-50%,-6px); }
.nav-toggle span::after { transform:translate(-50%,4px); }
.nav-toggle.open span { background:transparent; }
.nav-toggle.open span::before { transform:translate(-50%,-50%) rotate(45deg); }
.nav-toggle.open span::after { transform:translate(-50%,-50%) rotate(-45deg); }

/* ============================================================
   HERO — editorial split
   ============================================================ */
.hero { position:relative; background:var(--ink); color:#fff; overflow:hidden; padding-top:calc(var(--header-h) + clamp(2rem,5vw,4rem)); padding-bottom:clamp(3rem,6vw,5.5rem); }
.hero::before { content:""; position:absolute; inset:0; background:radial-gradient(90% 70% at 15% 10%, rgba(227,90,28,.14), transparent 55%); pointer-events:none; }
.hero__grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }

.hero__eyebrow { color:#ff8a45; }
.hero__eyebrow::before { background:#ff8a45; height:3px; width:32px; }
.hero h1 { color:#fff; font-size:clamp(2.8rem,6.4vw,5rem); font-weight:800; letter-spacing:-.03em; margin:1.4rem 0 1.5rem; }
.hero h1 em { font-style:normal; color:var(--accent); }
.hero__lede { font-size:clamp(1.08rem,1.7vw,1.24rem); color:#c3c8d0; max-width:52ch; line-height:1.7; }
.hero__actions { display:flex; gap:.9rem; flex-wrap:wrap; margin-top:2.2rem; }
.hero__trust { display:flex; gap:1.6rem; flex-wrap:wrap; margin-top:2.6rem; padding-top:1.8rem; border-top:1px solid rgba(255,255,255,.12); }
.hero__trust li { display:flex; align-items:center; gap:.55rem; font-size:.9rem; color:#cbd0d8; }
.hero__trust svg { width:18px; height:18px; color:var(--accent); flex:none; }

/* layered photo panel (3D parallax) */
.hero__media { position:relative; height:min(74vh,640px); perspective:1200px; }
.hero__photo { position:absolute; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-3); will-change:transform; }
.hero__photo img { width:100%; height:100%; object-fit:cover; }
.hero__photo--main { inset:0 0 0 14%; z-index:2; border:1px solid rgba(255,255,255,.08); }
.hero__photo--accent { width:44%; height:38%; left:-4%; bottom:8%; z-index:3; border:4px solid var(--ink); }
.hero__chip {
  position:absolute; top:6%; left:2%; z-index:4;
  background:rgba(255,255,255,.95); color:var(--ink); border-radius:var(--r);
  padding:.75rem 1rem; box-shadow:var(--sh-2); display:flex; align-items:center; gap:.7rem; will-change:transform;
}
.hero__chip .ic { width:38px; height:38px; border-radius:8px; background:var(--accent-soft); color:var(--accent); display:grid; place-items:center; flex:none; }
.hero__chip .ic svg { width:20px; height:20px; }
.hero__chip b { display:block; font-family:var(--font-display); font-size:1.05rem; line-height:1; }
.hero__chip span { font-size:.74rem; color:var(--muted); }

/* ============================================================
   ASSURANCE STRIP
   ============================================================ */
.assure { background:var(--charcoal); border-top:1px solid rgba(255,255,255,.06); }
.assure__grid { display:grid; grid-template-columns:repeat(4,1fr); }
.assure__item { display:flex; align-items:center; gap:.9rem; padding:1.6rem 1.4rem; color:#e6e8ec; border-left:1px solid rgba(255,255,255,.07); }
.assure__item:first-child { border-left:none; }
.assure__item svg { width:26px; height:26px; color:var(--accent); flex:none; }
.assure__item b { font-family:var(--font-display); font-weight:700; font-size:1.02rem; display:block; line-height:1.15; color:#fff; }
.assure__item span { font-size:.82rem; color:#9aa0ab; }

/* ============================================================
   SERVICES — image cards
   ============================================================ */
.svc-top { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; margin-bottom:clamp(2.4rem,5vw,3.6rem); }
.svc-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.4rem; }
.svc { position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:360px; display:flex; align-items:flex-end; color:#fff; grid-column:span 4; isolation:isolate; }
.svc.lg { grid-column:span 6; }
.svc.sm { grid-column:span 4; }
@media (min-width:900px){ .svc.wide { grid-column:span 8; } .svc.narrow { grid-column:span 4; } }
.svc img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .8s var(--ease); }
.svc::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(14,15,18,0) 30%, rgba(14,15,18,.55) 62%, rgba(14,15,18,.9) 100%); transition:background .4s; }
.svc:hover img { transform:scale(1.06); }
.svc__body { padding:1.8rem; width:100%; }
.svc__body .k { font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--accent); font-weight:600; }
.svc__body h3 { font-size:1.7rem; margin:.4rem 0 .5rem; color:#fff; }
.svc__body p { font-size:.94rem; color:#d3d7dd; max-width:42ch; opacity:0; max-height:0; transform:translateY(6px); transition:.45s var(--ease); }
.svc:hover .svc__body p { opacity:1; max-height:120px; transform:none; margin-top:.2rem; }

/* ============================================================
   WORK / GALLERY
   ============================================================ */
.gal-filters { display:flex; gap:.5rem; flex-wrap:wrap; margin:2rem 0 2.4rem; }
.fbtn { font-size:.9rem; font-weight:600; padding:.55rem 1.1rem; border-radius:100px; border:1px solid var(--line); color:var(--muted); transition:.25s; }
.fbtn:hover { border-color:var(--ink); color:var(--ink); }
.fbtn.on { background:var(--ink); border-color:var(--ink); color:#fff; }

.gal { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.gal__item { position:relative; aspect-ratio:4/3; border-radius:var(--r-lg); overflow:hidden; cursor:pointer; box-shadow:var(--sh-1); }
.gal__item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s var(--ease); }
.gal__item:hover img { transform:scale(1.05); }
.gal__cap { position:absolute; inset:auto 0 0 0; padding:1.5rem 1.2rem 1.1rem; background:linear-gradient(180deg,transparent, rgba(14,15,18,.82)); color:#fff; opacity:0; transform:translateY(8px); transition:.35s var(--ease); }
.gal__item:hover .gal__cap { opacity:1; transform:none; }
.gal__cap .k { font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; color:var(--accent); font-weight:600; }
.gal__cap h4 { font-size:1.12rem; color:#fff; margin-top:.15rem; }
.gal__zoom { position:absolute; top:.9rem; right:.9rem; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.9); display:grid; place-items:center; opacity:0; transform:scale(.8); transition:.3s var(--ease); }
.gal__item:hover .gal__zoom { opacity:1; transform:scale(1); }
.gal__zoom svg { width:16px; height:16px; color:var(--ink); }

/* Lightbox */
.lb { position:fixed; inset:0; z-index:200; background:rgba(8,9,11,.92); display:none; align-items:center; justify-content:center; padding:2rem; backdrop-filter:blur(4px); }
.lb.open { display:flex; }
.lb img { max-width:min(92vw,1100px); max-height:86vh; border-radius:var(--r-lg); box-shadow:var(--sh-3); }
.lb__close, .lb__nav { position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; width:52px; height:52px; border-radius:50%; display:grid; place-items:center; transition:.2s; }
.lb__close:hover, .lb__nav:hover { background:var(--accent); border-color:var(--accent); }
.lb__close { top:1.4rem; right:1.4rem; }
.lb__close svg,.lb__nav svg { width:22px; height:22px; }
.lb__nav.prev { left:1.4rem; top:50%; transform:translateY(-50%); }
.lb__nav.next { right:1.4rem; top:50%; transform:translateY(-50%); }

/* ============================================================
   ABOUT split
   ============================================================ */
.about { display:grid; grid-template-columns:minmax(0,440px) 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.about__media { position:relative; }
.about__media img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; object-position:center top; border-radius:var(--r-lg); box-shadow:var(--sh-2); display:block; }
.about__badge { position:absolute; right:-1.2rem; bottom:-1.2rem; background:var(--accent); color:#fff; border-radius:var(--r-lg); padding:1.3rem 1.5rem; box-shadow:var(--sh-2); max-width:210px; }
.about__badge b { font-family:var(--font-display); font-size:2.4rem; line-height:1; display:block; }
.about__badge span { font-size:.86rem; opacity:.92; }
.about__points { display:grid; gap:1.3rem; margin-top:2rem; }
.pt { display:flex; gap:1rem; }
.pt__ic { flex:none; width:44px; height:44px; border-radius:10px; background:var(--accent-soft); color:var(--accent); display:grid; place-items:center; }
.dark .pt__ic { background:rgba(227,90,28,.16); }
.pt__ic svg { width:22px; height:22px; }
.pt h4 { font-size:1.12rem; margin-bottom:.15rem; }
.pt p { font-size:.94rem; color:var(--muted); }
.dark .pt p { color:#aab0ba; }

/* ============================================================
   PROCESS
   ============================================================ */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:2.5rem; }
.step { padding:2rem 1.6rem 2rem 0; border-top:2px solid rgba(255,255,255,.14); position:relative; }
.step__ic { width:46px; height:46px; border-radius:12px; background:rgba(227,90,28,.14); color:var(--accent); display:grid; place-items:center; margin-bottom:1.1rem; }
.step__ic svg { width:23px; height:23px; }
.step .n { font-family:var(--font-display); font-weight:800; font-size:.9rem; color:var(--accent); letter-spacing:.1em; }
.step h4 { font-size:1.3rem; margin:.6rem 0 .5rem; }
.step p { font-size:.92rem; color:#aab0ba; max-width:26ch; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.quotes { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.quote { background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:2rem; box-shadow:var(--sh-1); display:flex; flex-direction:column; }
.quote__stars { display:flex; gap:.15rem; color:var(--accent); margin-bottom:1.1rem; }
.quote__stars svg { width:18px; height:18px; }
.quote p { font-size:1.02rem; color:var(--text); line-height:1.6; }
.quote__who { display:flex; align-items:center; gap:.8rem; margin-top:auto; padding-top:1.4rem; }
.quote__ava { width:44px; height:44px; border-radius:50%; background:var(--ink); color:#fff; display:grid; place-items:center; font-family:var(--font-display); font-weight:700; }
.quote__who b { display:block; font-size:.96rem; }
.quote__who span { font-size:.82rem; color:var(--faint); }

/* ============================================================
   AREAS + MAP
   ============================================================ */
.areas-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.chips { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.8rem; }
.chip { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1rem; border-radius:100px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); font-size:.9rem; font-weight:500; transition:.25s; }
.chip:hover { background:var(--accent); border-color:var(--accent); }
.chip svg { width:14px; height:14px; color:var(--accent); }
.chip:hover svg { color:#fff; }
.map-frame { border-radius:var(--r-lg); overflow:hidden; border:1px solid rgba(255,255,255,.12); box-shadow:var(--sh-2); min-height:380px; }
.map-frame iframe { width:100%; height:100%; min-height:380px; border:0; display:block; filter:grayscale(.4) contrast(1.05) brightness(.95); }

/* ============================================================
   CONTACT
   ============================================================ */
.contact { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.cinfo .row { display:flex; gap:1rem; padding:1.3rem 0; border-bottom:1px solid var(--line); }
.cinfo .row:last-child { border-bottom:none; }
.cinfo .row__ic { flex:none; width:48px; height:48px; border-radius:11px; background:var(--ink); color:var(--accent); display:grid; place-items:center; }
.cinfo .row__ic svg { width:22px; height:22px; }
.cinfo h4 { font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; color:var(--faint); font-weight:600; margin-bottom:.25rem; }
.cinfo a, .cinfo p { color:var(--text); font-size:1.02rem; font-weight:500; }
.cinfo a:hover { color:var(--accent); }
.cinfo p span { display:block; font-size:.9rem; color:var(--muted); font-weight:400; }

.fcard { background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.6rem,3.5vw,2.6rem); box-shadow:var(--sh-1); }
.fgrid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.f-full { grid-column:1/-1; }
.field label { display:block; font-size:.82rem; font-weight:600; color:var(--text); margin-bottom:.45rem; }
.field .req { color:var(--accent); }
.field input, .field select, .field textarea {
  width:100%; padding:.9rem 1rem; border:1px solid var(--line); border-radius:var(--r); font:inherit; color:var(--text);
  background:var(--paper); transition:border-color .2s, box-shadow .2s, background .2s;
}
.field input::placeholder, .field textarea::placeholder { color:#a8aeb8; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(227,90,28,.12); background:#fff; }
.field textarea { resize:vertical; min-height:120px; }
.fnote { display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:var(--faint); margin-top:1rem; }
.fnote svg { width:15px; height:15px; color:var(--accent); flex:none; }
.fstatus { margin-top:1rem; padding:.9rem 1.1rem; border-radius:var(--r); font-size:.94rem; font-weight:500; display:none; }
.fstatus.show { display:block; }
.fstatus.ok { background:#e9f6ee; color:#1a7a44; border:1px solid #c3e6d1; }
.fstatus.err { background:#fdeceb; color:#b3271f; border:1px solid #f4c9c6; }
.fstatus.load { background:var(--sand); color:var(--muted); }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background:#0a0b0d; color:#8b9099; padding-top:clamp(3.5rem,7vw,5rem); }
.footer__grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.08); }
.footer .brand__name { color:#fff; }
.footer__brand p { margin:1.2rem 0; font-size:.94rem; max-width:34ch; line-height:1.7; }
.footer h5 { font-family:var(--font-display); font-weight:700; color:#fff; font-size:1rem; letter-spacing:.02em; margin-bottom:1.2rem; }
.footer__grid ul { display:grid; gap:.7rem; }
.footer__grid a:hover { color:var(--accent); }
.fcontact li { display:flex; gap:.65rem; align-items:flex-start; font-size:.94rem; margin-bottom:.8rem; }
.fcontact svg { width:17px; height:17px; color:var(--accent); flex:none; margin-top:3px; }
.social { display:flex; gap:.6rem; margin-top:1.3rem; }
.social a { width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,.06); display:grid; place-items:center; transition:.25s; }
.social a:hover { background:var(--accent); transform:translateY(-2px); }
.social svg { width:18px; height:18px; color:#fff; }
.footer__bottom { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:1.6rem 0; font-size:.85rem; color:#6b7078; }

/* sticky mobile bar */
.mbar { position:fixed; bottom:0; left:0; right:0; z-index:90; display:none; grid-template-columns:1fr 1fr; box-shadow:0 -6px 20px rgba(0,0,0,.25); }
.mbar a { padding:1rem; display:flex; align-items:center; justify-content:center; gap:.5rem; font-weight:600; color:#fff; background:var(--ink); }
.mbar a.q { background:var(--accent); }
.mbar svg { width:19px; height:19px; }

/* ============================================================
   Reveal
   ============================================================ */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.no-js .reveal { opacity:1; transform:none; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1100px){
  .hero__grid { grid-template-columns:1fr; }
  .hero__media { height:min(60vh,480px); max-width:520px; margin-top:.5rem; }
  .about { grid-template-columns:1fr; }
  .about__media { max-width:520px; }
  .contact { grid-template-columns:1fr; }
  .areas-grid { grid-template-columns:1fr; }
  .steps { grid-template-columns:1fr 1fr; }
  .gal { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:980px){
  .nav, .header__phone { display:none; }
  .nav-toggle { display:grid; place-items:center; }
  .nav { position:absolute; top:var(--header-h); left:0; right:0; flex-direction:column; align-items:flex-start; gap:.2rem;
    background:var(--paper); padding:1rem 1.5rem 1.6rem; box-shadow:var(--sh-1); border-bottom:1px solid var(--line);
    transform:translateY(-10px); opacity:0; pointer-events:none; transition:.3s; }
  .nav.open { display:flex; transform:none; opacity:1; pointer-events:auto; }
  .nav a { color:var(--text); padding:.7rem 0; width:100%; border-bottom:1px solid var(--line); font-size:1.05rem; }
  .header { background:rgba(250,248,244,.98); backdrop-filter:blur(14px); border-color:var(--line); }
  /* menu button: always a visible orange button with white lines on the light mobile header */
  .nav-toggle, .header.solid .nav-toggle { background:var(--accent); border-color:var(--accent); }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after,
  .header.solid .nav-toggle span, .header.solid .nav-toggle span::before, .header.solid .nav-toggle span::after { background:#fff; }
  .nav-toggle.open span, .header.solid .nav-toggle.open span { background:transparent; }
  .assure__grid { grid-template-columns:1fr 1fr; }
  .assure__item:nth-child(1),.assure__item:nth-child(2) { border-bottom:1px solid rgba(255,255,255,.07); }
  .assure__item:nth-child(odd) { border-left:none; }
  .quotes { grid-template-columns:1fr; }
  .svc-grid { grid-template-columns:1fr; }
  .svc, .svc.lg, .svc.sm, .svc.wide, .svc.narrow { grid-column:auto; min-height:280px; }
  .svc__body p { opacity:1; max-height:120px; transform:none; margin-top:.2rem; }
  .footer__grid { grid-template-columns:1fr 1fr; }
  .mbar { display:grid; }
  body { padding-bottom:58px; }
}
@media (max-width:560px){
  .header__cta .btn { display:none; }
  .header__cta { gap:.6rem; }
  .hero__media { height:420px; }
  .hero__photo--main { inset:0 0 0 8%; }
  .gal { grid-template-columns:repeat(2,1fr); gap:.7rem; }
  .steps { grid-template-columns:1fr; }
  .fgrid { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr; }
  .about__badge { position:static; margin-top:1rem; max-width:none; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
