/* Shared styles for /services/* and /areas/* pages */
:root {
    --red:#FF1A2E; --red-glow:rgba(255,26,46,.28); --border-red:rgba(255,26,46,.28);
    --bg:#080808; --bg-2:#0F0F0F; --bg-3:#161616; --border:rgba(255,255,255,.07);
    --text:#F5F5F5; --text-2:#A8A8A8; --text-3:#6A6A6A;
    --cream:#F5F2EA; --cream-2:#E7E1D3; --ink:#141414; --ink-2:#4A4A4A;
}
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; line-height:1.6; }
img { max-width:100%; display:block; }
a { color:inherit; }
.wrap { max-width:1180px; margin:0 auto; padding:0 32px; }

/* Nav */
.pnav { position:sticky; top:0; z-index:100; background:rgba(8,8,8,.92); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom:1px solid var(--border); }
.pnav .wrap { display:flex; align-items:center; justify-content:space-between; height:72px; gap:20px; }
.pnav-brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.pnav-brand img { width:44px; height:auto; }
.pnav-brand strong { display:block; font-family:'Bebas Neue',sans-serif; font-size:19px; letter-spacing:2.5px; line-height:1; }
.pnav-brand small { font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--text-3); }
.pnav-links { display:flex; gap:26px; list-style:none; }
.pnav-links a { text-decoration:none; color:var(--text-2); font-size:12.5px; letter-spacing:1.4px; text-transform:uppercase; }
.pnav-links a:hover, .pnav-links a[aria-current] { color:#fff; }
.pnav-cta { display:flex; gap:10px; align-items:center; }
.btn { display:inline-block; padding:15px 28px; background:var(--red); color:#fff; text-decoration:none; font-weight:700; font-size:13px; letter-spacing:1px; text-transform:uppercase; border:1px solid var(--red); transition:box-shadow .25s, transform .2s; text-align:center; }
.btn:hover { box-shadow:0 0 34px var(--red-glow); transform:translateY(-1px); }
.btn-sm { padding:11px 18px; font-size:11.5px; }
.btn-line { background:transparent; border-color:rgba(255,255,255,.3); }
.btn-line:hover { border-color:#fff; box-shadow:none; }
.btn-dark { background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.btn-dark:hover { background:var(--ink); color:#fff; box-shadow:none; }

/* Hero */
.phero { position:relative; padding:96px 0 84px; overflow:hidden; }
.phero-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.phero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(8,8,8,.96) 0%, rgba(8,8,8,.84) 55%, rgba(8,8,8,.7) 100%); }
.phero .wrap { position:relative; z-index:1; }
.crumbs { font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-3); margin-bottom:22px; }
.crumbs a { text-decoration:none; color:var(--text-2); }
.crumbs a:hover { color:var(--red); }
.phero h1 { font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(46px,6.4vw,92px); line-height:.92; letter-spacing:-.5px; max-width:900px; }
.phero h1 em { color:var(--red); font-style:normal; }
.phero p.lead { font-size:17px; color:#CFCFCF; max-width:620px; margin:22px 0 32px; }
.phero-btns { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.phero-btns .txt { color:#fff; font-size:14px; text-decoration:none; margin-left:6px; }
.phero-btns .txt:hover { color:var(--red); }
.rating-pill { display:inline-flex; gap:10px; align-items:center; margin-top:26px; font-size:13px; color:var(--text-2); text-decoration:none; padding:9px 14px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05); }
.rating-pill b { color:#fff; }
.rating-pill .st { color:#FBBC04; letter-spacing:2px; }

/* Sections */
.sec { padding:84px 0; }
.sec-cream { background:var(--cream); color:var(--ink); }
.sec-cream p, .sec-cream li { color:var(--ink-2); }
.sec-2 { background:var(--bg-2); }
.label { display:flex; align-items:center; gap:12px; font-size:10.5px; letter-spacing:4px; text-transform:uppercase; color:var(--red); margin-bottom:16px; }
.label::before { content:''; width:28px; height:1px; background:var(--red); }
h2.t { font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(38px,4.6vw,64px); line-height:.95; letter-spacing:-.5px; margin-bottom:22px; }
.sec-cream h2.t, .sec-cream h3 { color:var(--ink); }
.prose p { font-size:16px; line-height:1.8; margin-bottom:16px; max-width:720px; color:var(--text-2); }
.sec-cream .prose p { color:var(--ink-2); }

.split { display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:start; }
.check { list-style:none; display:flex; flex-direction:column; gap:12px; }
.check li { padding-left:30px; position:relative; font-size:15px; line-height:1.55; }
.check li::before { content:'✓'; position:absolute; left:0; top:0; width:20px; height:20px; border-radius:50%; background:var(--red); color:#fff; font-size:12px; display:flex; align-items:center; justify-content:center; font-weight:700; }
.panel { background:var(--bg-3); border:1px solid var(--border); padding:30px 28px; }
.sec-cream .panel { background:#fff; border-color:var(--cream-2); }
.panel h3 { font-family:'Syne',sans-serif; font-size:17px; margin-bottom:18px; }

.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.card { background:var(--bg-3); border:1px solid var(--border); padding:26px 24px; }
.sec-cream .card { background:#fff; border-color:var(--cream-2); }
.card h3 { font-family:'Syne',sans-serif; font-size:17px; margin-bottom:8px; }
.card p { font-size:14px; color:var(--text-2); line-height:1.65; }
.sec-cream .card p { color:var(--ink-2); }
.card .tag { display:inline-block; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--red); border:1px solid var(--border-red); padding:4px 8px; margin-bottom:12px; }
.step-n { font-family:'Bebas Neue',sans-serif; font-size:40px; color:var(--red); line-height:1; margin-bottom:8px; }

/* Photos */
.photos { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.photos figure { position:relative; aspect-ratio:4/5; overflow:hidden; background:#ddd; margin:0; }
.photos img { width:100%; height:100%; object-fit:cover; }
.photos figcaption { position:absolute; left:0; right:0; bottom:0; padding:24px 10px 8px; background:linear-gradient(transparent,rgba(0,0,0,.75)); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }

/* Reviews */
.rv { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.rv figure { margin:0; background:#fff; border:1px solid var(--cream-2); padding:26px; display:flex; flex-direction:column; gap:14px; }
.rv .st { color:#E8A600; letter-spacing:2px; }
.rv blockquote { color:var(--ink); font-size:15px; line-height:1.7; flex:1; }
.rv figcaption { font-size:13px; color:var(--ink-2); border-top:1px solid var(--cream-2); padding-top:12px; }

/* FAQ */
.faq { max-width:820px; }
.faq details { border-bottom:1px solid var(--border); padding:20px 0; }
.sec-cream .faq details { border-color:var(--cream-2); }
.faq summary { cursor:pointer; font-weight:600; font-size:16.5px; list-style:none; display:flex; justify-content:space-between; gap:20px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; color:var(--red); font-size:22px; line-height:1; }
.faq details[open] summary::after { content:'–'; }
.faq details p { margin-top:12px; color:var(--text-2); font-size:15px; line-height:1.75; }
.sec-cream .faq details p { color:var(--ink-2); }

/* Links grid */
.links { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; list-style:none; }
.links a { display:flex; justify-content:space-between; align-items:center; padding:16px 18px; border:1px solid var(--border); text-decoration:none; font-weight:600; font-size:15px; transition:border-color .2s, color .2s; }
.links a:hover { border-color:var(--red); color:var(--red); }
.links a span { color:var(--red); }
.sec-cream .links a { border-color:var(--cream-2); background:#fff; color:var(--ink); }

/* CTA */
.cta { border:1px solid var(--border-red); background:linear-gradient(120deg, rgba(255,26,46,.09), transparent 60%); padding:54px; display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap; }
.cta h2 { font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(38px,4.4vw,60px); line-height:.95; }
.cta p { color:var(--text-2); margin-top:12px; max-width:520px; }
.cta-actions { display:flex; flex-direction:column; gap:12px; min-width:260px; }
.cta-phone { font-family:'Bebas Neue',sans-serif; font-size:40px; color:var(--red); text-decoration:none; letter-spacing:1.5px; text-align:center; }

/* Footer */
.pfoot { border-top:1px solid var(--border); background:var(--bg-2); padding:48px 0 110px; font-size:13px; color:var(--text-3); }
.pfoot .wrap { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:36px; }
.pfoot h4 { color:var(--text); font-size:12px; letter-spacing:2px; text-transform:uppercase; margin-bottom:14px; }
.pfoot ul { list-style:none; display:flex; flex-direction:column; gap:8px; }
.pfoot a { text-decoration:none; color:var(--text-2); }
.pfoot a:hover { color:var(--red); }
.pfoot .copy { grid-column:1/-1; border-top:1px solid var(--border); padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

/* Sticky mobile bar */
.mbar { display:none; position:fixed; left:0; right:0; bottom:0; z-index:200; gap:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(8,8,8,.94); border-top:1px solid var(--border); backdrop-filter:blur(12px); }
.mbar a { flex:1; text-align:center; padding:14px 6px; border-radius:12px; text-decoration:none; font-weight:700; font-size:12.5px; }
.mbar .c { flex:0 0 64px; border:1px solid rgba(255,255,255,.2); color:#fff; }
.mbar .t { border:1px solid var(--border-red); color:var(--red); }
.mbar .b { background:var(--red); color:#fff; }

@media(max-width:960px) {
    .pnav-links { display:none; }
    .split { grid-template-columns:1fr; gap:32px; }
    .photos { grid-template-columns:1fr 1fr; }
    .pfoot .wrap { grid-template-columns:1fr 1fr; }
}
@media(max-width:640px) {
    .wrap { padding:0 20px; }
    .pnav .wrap { height:62px; }
    .pnav-brand div, .pnav-cta .btn-line { display:none; }
    .phero { padding:64px 0 56px; }
    .phero p.lead { font-size:15.5px; }
    .phero-btns .btn { width:100%; }
    .sec { padding:60px 0; }
    .cta { padding:32px 22px; }
    .cta-actions { width:100%; }
    .photos { gap:6px; }
    .pfoot .wrap { grid-template-columns:1fr; }
    .mbar { display:flex; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }

/* Dark review cards outside cream sections (service pages) */
.sec:not(.sec-cream) .rv figure { background:var(--bg-3); border-color:var(--border); }
.sec:not(.sec-cream) .rv blockquote { color:#D8D8D8; }
.sec:not(.sec-cream) .rv figcaption { color:var(--text-2); border-top-color:var(--border); }
.sec:not(.sec-cream) .rv figcaption strong { color:#fff; }

/* ── Recent-jobs slideshow (assets/slides.js) ───────────────── */
.photos.ae-ss { display:block; }
.ae-ss .ss-stage { position:relative; aspect-ratio:16/9; max-height:620px; width:100%; overflow:hidden; background:#0b0b0b; border:1px solid var(--border); }
.ae-ss .ss-slide { position:absolute; inset:0; margin:0; opacity:0; transition:opacity 1s ease; aspect-ratio:auto; background:none; }
.ae-ss .ss-slide.on { opacity:1; z-index:1; }
.ae-ss .ss-bg { position:absolute; inset:-40px; background-size:cover; background-position:center; filter:blur(28px) brightness(.4) saturate(1.2); }
.ae-ss .ss-slide img { position:relative; width:100%; height:100%; object-fit:contain; }
.ae-ss .ss-slide.on img { animation:ssZoom 6s ease-out both; }
@keyframes ssZoom { from { transform:scale(1); } to { transform:scale(1.03); } }
.ae-ss .ss-shade { position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,0) 38%); }
.ae-ss .ss-cap { position:absolute; left:28px; right:28px; bottom:26px; z-index:3; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; pointer-events:none; }
.ae-ss .ss-label { font-family:'Bebas Neue',sans-serif; font-size:clamp(26px,3vw,40px); letter-spacing:1px; line-height:1; color:#fff; }
.ae-ss .ss-label::before { content:''; display:block; width:30px; height:3px; background:var(--red); margin-bottom:12px; }
.ae-ss .ss-count { font-size:13px; letter-spacing:2px; color:rgba(255,255,255,.7); white-space:nowrap; }
.ae-ss .ss-count b { color:#fff; font-weight:700; }
.ae-ss .ss-btn { position:absolute; top:50%; z-index:3; width:48px; height:48px; margin-top:-24px; display:grid; place-items:center; cursor:pointer;
  background:rgba(8,8,8,.55); border:1px solid rgba(255,255,255,.18); color:#fff; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; transition:opacity .25s, background .2s, border-color .2s; }
.ae-ss .ss-prev { left:18px; } .ae-ss .ss-next { right:18px; }
.ae-ss .ss-stage:hover .ss-btn { opacity:1; }
.ae-ss .ss-btn:hover { background:var(--red); border-color:var(--red); }
.ae-ss .ss-btn svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.ae-ss .ss-bar { position:absolute; left:0; right:0; bottom:0; height:3px; z-index:3; background:rgba(255,255,255,.12); }
.ae-ss .ss-bar i { display:block; height:100%; width:0; background:var(--red); box-shadow:0 0 10px rgba(255,26,46,.7); }
.ae-ss .ss-thumbs { display:flex; gap:8px; margin-top:10px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.ae-ss .ss-thumbs::-webkit-scrollbar { display:none; }
.ae-ss .ss-thumbs button { flex:0 0 96px; height:64px; padding:0; border:1px solid var(--border); background:#111; cursor:pointer; opacity:.45; transition:opacity .25s, border-color .25s; overflow:hidden; }
.ae-ss .ss-thumbs button img { width:100%; height:100%; object-fit:cover; display:block; }
.ae-ss .ss-thumbs button:hover { opacity:.8; }
.ae-ss .ss-thumbs button.on { opacity:1; border-color:var(--red); box-shadow:0 0 0 1px var(--red); }
@media (max-width:640px) {
  .ae-ss .ss-stage { aspect-ratio:4/5; max-height:none; }
  .ae-ss .ss-btn { opacity:1; width:40px; height:40px; margin-top:-20px; }
  .ae-ss .ss-prev { left:10px; } .ae-ss .ss-next { right:10px; }
  .ae-ss .ss-cap { left:18px; right:18px; bottom:20px; }
  .ae-ss .ss-thumbs button { flex-basis:68px; height:50px; }
}
@media (prefers-reduced-motion: reduce) { .ae-ss .ss-slide.on img { animation:none; } .ae-ss .ss-slide { transition:none; } }
