/*
Theme Name: ADG Construction
Theme URI: https://adgconstruction.com.au
Author: ADG Construction Pty Ltd
Description: Custom theme for ADG Construction, Brisbane home renovation and extension builders. Activating it creates the Home, Renovations, Project Gallery, About Us, Our Team and Contact pages and the main menu automatically. Business details (phone, email, address, licence, socials) are edited under Appearance → Customize → ADG business details.
Version: 1.6.1
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: adg
*/

/* ADG Construction — site styles */
:root{
  --orange:#ff7e31;
  --orange-dark:#e8661a;
  --ink:#141618;          /* near-black, headings */
  --char:#1d2023;         /* charcoal panels */
  --body:#6b6f73;         /* body copy */
  --line:#e3e1dc;
  --cream:#f5f3ee;        /* warm section background */
  --white:#fff;
  --radius:4px;
  --max:1320px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --f-head:"Inter Tight",system-ui,sans-serif;
  --f-body:"Inter",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);font-size:16px;line-height:1.7;color:var(--body);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-head);color:var(--ink);font-weight:500;line-height:1.12;letter-spacing:-.02em}
h1{font-size:clamp(44px,8.4vw,128px);letter-spacing:-.035em}
h2{font-size:clamp(32px,4.2vw,58px)}
h3{font-size:clamp(22px,2vw,28px)}
p+p{margin-top:1em}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 32px}
.section{padding:clamp(80px,10vw,140px) 0}
.bg-cream{background:var(--cream)}
.bg-dark{background:var(--char);color:#a9adb1}
.bg-dark h2,.bg-dark h3{color:#fff}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:22px}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--orange);border-radius:50%}
.bg-dark .eyebrow{color:#fff}
.lead{font-size:clamp(17px,1.3vw,19px);max-width:620px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:12px;padding:17px 32px;background:var(--orange);color:#fff;font-weight:500;font-size:15px;border-radius:var(--radius);border:0;cursor:pointer;transition:background .3s,transform .3s var(--ease)}
.btn:hover{background:var(--orange-dark);transform:translateY(-2px)}
.btn svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--orange);color:#fff}
.circle-link{width:52px;height:52px;border-radius:50%;background:#fff;display:inline-grid;place-items:center;color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.06);transition:background .3s,color .3s}
.circle-link svg{width:18px;height:18px}
.circle-link:hover{background:var(--orange);color:#fff}

/* Header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .35s,box-shadow .35s,padding .35s;padding:22px 0}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo img{height:60px;width:auto;transition:height .35s}
.nav{display:flex;align-items:center;gap:34px}
.nav>li{list-style:none;position:relative}
.nav>li>a{color:#fff;font-size:15px;font-weight:500;padding:10px 0;display:inline-flex;align-items:center;gap:6px;position:relative}
.nav>li>a::after{content:"";position:absolute;left:0;bottom:4px;height:1px;width:0;background:var(--orange);transition:width .3s var(--ease)}
.nav>li>a:hover::after,.nav>li>a.active::after{width:100%}
.nav .caret{width:9px;height:9px;opacity:.7}
.dropdown{position:absolute;top:100%;left:-22px;min-width:250px;background:#fff;padding:14px 0;border-radius:var(--radius);box-shadow:0 18px 40px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s var(--ease)}
.nav>li:hover .dropdown,.nav>li:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{display:block;padding:9px 22px;color:var(--ink);font-size:15px}
.dropdown a:hover{color:var(--orange)}
.header-cta{display:flex;align-items:center;gap:22px}
.header-phone{color:#fff;font-weight:500;font-size:15px;display:inline-flex;gap:8px;align-items:center}
.header-phone svg{width:16px;height:16px;color:var(--orange)}
.site-header .btn{padding:13px 24px}
.site-header.scrolled,.site-header.solid{background:rgba(20,22,24,.96);backdrop-filter:blur(8px);padding:12px 0;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.site-header.scrolled .logo img{height:42px}
.menu-toggle{display:none;background:none;border:0;color:#fff;cursor:pointer;width:44px;height:44px}
.menu-toggle span{display:block;width:26px;height:2px;background:currentColor;margin:6px auto;transition:transform .3s,opacity .3s}

/* Full-width header & heroes: logo and hero text sit at the left edge, menu stays centred */
.site-header .container{max-width:none;display:grid;grid-template-columns:1fr auto 1fr;padding-left:clamp(20px,3.5vw,56px);padding-right:clamp(20px,3.5vw,56px)}
.site-header .logo{justify-self:start}
.site-header .header-cta{justify-self:end}
.hero .container,.page-hero .container{max-width:none;padding-left:clamp(20px,3.5vw,56px);padding-right:clamp(20px,3.5vw,56px)}

/* Mobile menu */
.mobile-menu{position:fixed;inset:0;background:var(--ink);z-index:60;padding:28px 24px;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .45s var(--ease);overflow-y:auto}
.mobile-menu.open{transform:none}
.mobile-menu .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}
.mobile-menu .top img{height:44px}
.mobile-menu .close{background:none;border:0;color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;gap:8px}
.mobile-menu nav a{display:block;color:#fff;font-family:var(--f-head);font-size:30px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-menu nav a.sub{font-size:19px;color:#a9adb1;padding-left:18px;border:0}
.mobile-menu .contact{margin-top:auto;padding-top:32px;color:#a9adb1;font-size:15px}
.mobile-menu .contact a{color:#fff}

/* Hero (home) */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(48px,9vh,110px);color:#fff;overflow:hidden;padding:150px 0 48px}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:heroZoom 14s var(--ease) forwards}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,14,.55) 0%,rgba(10,12,14,.15) 45%,rgba(10,12,14,.65) 100%)}
@keyframes heroZoom{to{transform:scale(1)}}
.hero h1{color:#fff;text-transform:uppercase;max-width:12ch;font-size:clamp(44px,min(8.4vw,13.5vh),128px)}
.hero .btn{margin-top:34px}
.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.hero-bottom h2{color:#fff;font-size:clamp(24px,min(3vw,5vh),42px);max-width:20ch}
.scroll-down{font-size:13px;letter-spacing:.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:12px;margin-top:14px}
.scroll-down i{width:1px;height:42px;background:rgba(255,255,255,.4);position:relative;overflow:hidden}
.scroll-down i::after{content:"";position:absolute;left:0;top:-42px;width:1px;height:42px;background:var(--orange);animation:drip 2s infinite}
@keyframes drip{to{top:42px}}
.hero-badges{display:flex;gap:12px;flex-wrap:wrap}
.hero-badges span{border:1px solid rgba(255,255,255,.35);border-radius:40px;padding:8px 18px;font-size:14px;backdrop-filter:blur(6px);background:rgba(255,255,255,.06)}

/* Page hero (inner pages) */
.page-hero{position:relative;min-height:68vh;display:flex;align-items:flex-end;color:#fff;padding:180px 0 70px;overflow:hidden}
.page-hero .hero-bg::after{background:linear-gradient(180deg,rgba(10,12,14,.6),rgba(10,12,14,.55))}
.page-hero h1{color:#fff;font-size:clamp(44px,7vw,104px);text-transform:uppercase}
.crumbs{font-size:14px;color:rgba(255,255,255,.75);margin-top:18px}
.crumbs a:hover{color:var(--orange)}
.crumbs>span{margin:0 10px;color:var(--orange)}

/* Stats */
.stats{border-bottom:1px solid var(--line)}
.stats .container{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:54px 28px;border-left:1px solid var(--line);display:flex;align-items:center;gap:18px}
.stat:first-child{border-left:0;padding-left:0}
.stat b{font-family:var(--f-head);font-weight:500;font-size:clamp(42px,4.4vw,68px);color:var(--ink);letter-spacing:-.04em;line-height:1;white-space:nowrap}
.stat b sup{color:var(--orange);font-size:.5em;vertical-align:top;margin-left:2px}
.stat .lbl{font-size:15px;line-height:1.4;color:var(--ink);max-width:12ch}

/* Intro + service accordion */
.intro-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:60px}
.intro-grid h2{max-width:20ch}
.intro-grid .row{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;flex-wrap:wrap}
.svc-wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(30px,5vw,80px);align-items:start}
.svc-list{border-top:1px solid var(--line)}
.svc-item{border-bottom:1px solid var(--line)}
.svc-item button{all:unset;cursor:pointer;display:flex;width:100%;justify-content:space-between;align-items:center;padding:26px 0;font-family:var(--f-head);font-size:clamp(22px,2.2vw,30px);color:#b4b6b8;transition:color .3s}
.svc-item button .n{font-size:14px;font-family:var(--f-body);color:var(--orange);margin-right:22px;vertical-align:middle}
.svc-item button svg{width:20px;height:20px;transition:transform .4s var(--ease)}
.svc-item.active button,.svc-item button:hover{color:var(--ink)}
.svc-item.active button svg{transform:rotate(45deg);color:var(--orange)}
.svc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.svc-item.active .svc-body{grid-template-rows:1fr}
.svc-body>div{overflow:hidden}
.svc-body p{padding:0 0 26px;max-width:46ch}
.svc-body .more{display:inline-flex;gap:8px;align-items:center;color:var(--ink);font-weight:500;margin:-8px 0 28px;border-bottom:1px solid var(--orange)}
.svc-media{position:sticky;top:110px;aspect-ratio:4/3.4;border-radius:var(--radius);overflow:hidden;background:var(--cream)}
.svc-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .6s,transform 1.2s var(--ease)}
.svc-media img.show{opacity:1;transform:none}

/* Marquee */
.marquee{overflow:hidden;padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--cream)}
.marquee-track{display:flex;width:max-content;animation:marq 38s linear infinite}
.marquee-track span{font-family:var(--f-head);font-size:clamp(36px,5vw,72px);font-weight:500;text-transform:uppercase;color:var(--ink);letter-spacing:-.03em;white-space:nowrap;display:inline-flex;align-items:center}
.marquee-track span::after{content:"";width:18px;height:18px;border-radius:50%;background:var(--orange);margin:0 46px}
.marquee-track span.outline{color:transparent;-webkit-text-stroke:1px var(--ink)}
@keyframes marq{to{transform:translateX(-50%)}}

/* Feature cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px}
.card{background:#fff;padding:38px 30px 34px;border-radius:var(--radius);display:flex;flex-direction:column;gap:16px;transition:transform .4s var(--ease),box-shadow .4s}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.07)}
.card .ico{width:58px;height:58px;border-radius:50%;background:var(--cream);display:grid;place-items:center;color:var(--orange);margin-bottom:10px}
.card .ico svg{width:26px;height:26px}
.card h3{font-size:22px}
.card p{font-size:15px}
.bg-cream .card{background:#fff}

/* Statement */
.statement{text-align:center}
.statement h2{max-width:24ch;margin:0 auto;font-size:clamp(30px,4vw,56px);line-height:1.22}
.statement .pill-img{display:inline-block;width:1.7em;height:1.05em;border-radius:6px;overflow:hidden;vertical-align:-.12em;margin:0 .12em}
.statement .pill-img img{width:100%;height:100%;object-fit:cover}
.statement u{text-decoration-thickness:2px;text-underline-offset:.14em;text-decoration-color:var(--orange)}

/* Big image */
.wide-img{border-radius:var(--radius);overflow:hidden;margin-top:70px;aspect-ratio:16/7}
.wide-img img{width:100%;height:100%;object-fit:cover}

/* Projects grid */
.proj-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:50px}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.proj{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/4.6;display:block;cursor:pointer}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.proj:hover img{transform:scale(1.06)}
.proj::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(10,12,14,.7))}
.proj .cap{position:absolute;left:26px;right:26px;bottom:24px;z-index:1;color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.proj .cap h3{color:#fff;font-size:24px}
.proj .cap small{display:block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.8;margin-bottom:4px}
.proj .cap .circle-link{flex:none;width:44px;height:44px}
.proj:nth-child(3n+2){margin-top:60px}

/* Split about */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}
.split-media{position:relative}
.split-media .main{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/4.4}
.split-media .main img{width:100%;height:100%;object-fit:cover}
.split-media .badge{position:absolute;right:-24px;bottom:40px;background:var(--orange);color:#fff;padding:26px 28px;border-radius:var(--radius);max-width:220px}
.split-media .badge b{font-family:var(--f-head);font-size:46px;font-weight:500;display:block;line-height:1}
.split-media .badge span{font-size:14px;line-height:1.4;display:block;margin-top:8px}
.checks{list-style:none;margin:28px 0 36px;display:grid;gap:12px}
.checks li{display:flex;gap:14px;align-items:flex-start;color:var(--ink)}
.checks li::before{content:"";flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/12px no-repeat}
.bg-dark .checks li{color:#fff}

/* Process steps */
.steps{display:grid;gap:0;border-top:1px solid var(--line);margin-top:60px}
.step{display:grid;grid-template-columns:120px 1fr 1.3fr;gap:40px;padding:46px 0;border-bottom:1px solid var(--line);align-items:start}
.step .num{font-family:var(--f-head);font-size:56px;line-height:1;color:var(--orange);letter-spacing:-.04em}
.step h3{font-size:clamp(24px,2.3vw,32px)}
.step .tag{display:inline-block;margin-top:14px;font-size:13px;background:var(--cream);color:var(--ink);padding:6px 14px;border-radius:30px}
.step ul{list-style:none;display:grid;gap:8px;margin-top:14px}
.step ul li{padding-left:22px;position:relative}
.step ul li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:2px;background:var(--orange)}
.step .note{font-size:14px;font-style:italic;margin-top:14px}
.bg-cream .steps,.bg-cream .step{border-color:#dcd9d2}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(40px,6vw,100px)}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:26px 0;font-family:var(--f-head);font-size:clamp(19px,1.6vw,23px);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);position:relative;transition:background .3s,border-color .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .3s}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i{background:var(--orange);border-color:var(--orange)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:#fff}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq details p{padding:0 50px 26px 0}

/* CTA band */
.cta{position:relative;overflow:hidden;color:#fff;text-align:center;padding:clamp(100px,12vw,170px) 0}
.cta .hero-bg::after{background:rgba(14,16,18,.72)}
.cta h2{color:#fff;font-size:clamp(36px,6vw,88px);text-transform:uppercase;letter-spacing:-.035em;max-width:14ch;margin:0 auto 22px}
.cta p{color:rgba(255,255,255,.8);max-width:560px;margin:0 auto 36px}
.cta .actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.cta .mail{display:block;margin-top:30px;font-family:var(--f-head);font-size:clamp(20px,2.4vw,32px);color:#fff;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:6px}

/* Gallery */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.filters button{border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:30px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;transition:all .3s}
.filters button.on,.filters button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.masonry{columns:3 320px;column-gap:24px}
.masonry a{display:block;margin-bottom:24px;border-radius:var(--radius);overflow:hidden;break-inside:avoid;position:relative}
.masonry img{width:100%;transition:transform 1s var(--ease)}
.masonry a:hover img{transform:scale(1.04)}
.g-cap{position:absolute;left:12px;bottom:12px;right:12px;font-size:13px;color:#fff;background:rgba(14,16,18,.72);backdrop-filter:blur(4px);padding:7px 12px;border-radius:30px;width:max-content;max-width:calc(100% - 24px);opacity:0;transform:translateY(6px);transition:all .35s var(--ease);pointer-events:none}
.masonry a:hover .g-cap,.masonry a:focus-visible .g-cap{opacity:1;transform:none}
@media (hover:none){.g-cap{opacity:1;transform:none}}
.lightbox{position:fixed;inset:0;background:rgba(10,12,14,.94);z-index:80;display:none;align-items:center;justify-content:center;padding:40px}
.lightbox.open{display:flex}
.lightbox img{max-height:86vh;max-width:min(1200px,92vw);border-radius:var(--radius)}
.lightbox button{position:absolute;background:none;border:0;color:#fff;cursor:pointer;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;transition:background .3s}
.lightbox button:hover{background:var(--orange)}
.lightbox button svg{width:22px;height:22px}
.lb-close{top:20px;right:20px}.lb-prev{left:20px;top:50%;transform:translateY(-50%)}.lb-next{right:20px;top:50%;transform:translateY(-50%)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(40px,6vw,100px)}
.c-list{list-style:none;margin-top:36px;border-top:1px solid var(--line)}
.c-list li{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.c-list .ico{flex:none;width:48px;height:48px;border-radius:50%;background:var(--cream);display:grid;place-items:center;color:var(--orange)}
.c-list .ico svg{width:20px;height:20px}
.c-list small{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.c-list a,.c-list strong{color:var(--ink);font-family:var(--f-head);font-size:20px;font-weight:500}
.c-list a:hover{color:var(--orange)}
.form{background:var(--cream);padding:clamp(28px,4vw,56px);border-radius:var(--radius);display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form h3{grid-column:1/-1;margin-bottom:8px}
.form label{display:grid;gap:8px;font-size:14px;color:var(--ink)}
.form .full{grid-column:1/-1}
.form input,.form select,.form textarea{font:inherit;font-size:15px;padding:15px 16px;border:1px solid #dcd9d2;background:#fff;border-radius:var(--radius);color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--orange);outline-offset:-1px;border-color:transparent}
.form textarea{min-height:140px;resize:vertical}
.form .btn{justify-self:start}
.map{margin-top:80px;border-radius:var(--radius);overflow:hidden;height:420px;background:var(--cream)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}

/* Prose page */
.prose{max-width:760px}
.prose p{font-size:17px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:start}
.callout{background:var(--char);color:#c8cbce;padding:clamp(30px,4vw,54px);border-radius:var(--radius);margin-top:60px;display:grid;grid-template-columns:1fr 1fr;gap:40px}
.callout h3{color:#fff}
.callout .checks li{color:#fff}

/* Portfolio */
.pf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.pf-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;min-width:0;transition:transform .4s var(--ease),box-shadow .4s}
.pf-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.08)}
.pf-img{position:relative;aspect-ratio:4/3;overflow:hidden}
.pf-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.pf-card:hover .pf-img img{transform:scale(1.05)}
.pf-no{position:absolute;left:16px;top:16px;background:var(--orange);color:#fff;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:30px}
.pf-body{padding:26px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.pf-body small{font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.pf-body h3{font-size:23px}
.pf-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:4px}
.pf-mini dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.pf-mini dd{font-family:var(--f-head);font-size:19px;color:var(--ink)}
.pf-more{margin-top:auto;padding-top:8px;display:inline-flex;gap:8px;align-items:center;color:var(--ink);font-weight:500}
.pf-more svg{width:16px;height:16px;color:var(--orange);transition:transform .3s var(--ease)}
.pf-card:hover .pf-more svg{transform:translateX(4px)}
.pf-h1{font-size:clamp(38px,5.6vw,84px)!important;text-transform:none!important;max-width:18ch}
.pf-sum{max-width:56ch;color:rgba(255,255,255,.85);font-size:clamp(16px,1.3vw,19px);margin-top:18px}
.facts-band{border-bottom:1px solid var(--line)}
.facts{display:grid;grid-template-columns:repeat(6,1fr)}
.fact{padding:36px 22px;border-left:1px solid var(--line);min-width:0}
.fact:first-child{border-left:0;padding-left:0}
.fact dt{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.fact dd{font-family:var(--f-head);font-size:clamp(19px,1.6vw,24px);color:var(--ink);line-height:1.25}
.fact dd small{display:block;font-family:var(--f-body);font-size:13px;color:var(--body);margin-top:4px}
.pf-lists{display:grid;gap:34px}
.pf-lists .checks{margin:16px 0 0}
.jump{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.jump a{border:1px solid var(--ink);color:var(--ink);padding:10px 22px;border-radius:30px;font-size:14px;transition:all .3s}
.jump a:hover{background:var(--ink);color:#fff}
.next-card{position:relative;display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/6;margin-top:10px}
.next-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.next-card:hover img{transform:scale(1.04)}
.next-card::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,12,14,.75),rgba(10,12,14,.1))}
.next-card>div{position:absolute;left:clamp(20px,4vw,50px);bottom:clamp(20px,4vw,46px);right:20px;z-index:1;color:#fff}
.next-card small{font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.next-card h2{color:#fff;margin:8px 0 18px;max-width:20ch}
@media (max-width:1100px){.facts{grid-template-columns:repeat(3,1fr)}.fact:nth-child(4){border-left:0;padding-left:0}.fact:nth-child(n+4){border-top:1px solid var(--line)}.pf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.facts{grid-template-columns:1fr 1fr}.fact{padding:22px 14px!important;border-left:1px solid var(--line)!important;border-top:1px solid var(--line)}.fact:nth-child(odd){border-left:0!important;padding-left:0!important}.fact:nth-child(-n+2){border-top:0}.pf-grid{grid-template-columns:1fr}.next-card{aspect-ratio:4/3}}

/* Blog */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.post-grid.two{grid-template-columns:repeat(2,1fr)}
.post-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;min-width:0;transition:transform .4s var(--ease),box-shadow .4s}
.bg-cream .post-card{background:#fff}
.section:not(.bg-cream) .post-card{background:var(--cream)}
.post-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.08)}
.post-img{position:relative;aspect-ratio:16/10;overflow:hidden}
.post-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.post-card:hover .post-img img{transform:scale(1.05)}
.post-body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.post-body small{font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.post-body h3{font-size:22px;text-wrap:balance}
.post-body p{font-size:15px}
.post-card:hover .pf-more svg{transform:translateX(4px)}
.post-hero{min-height:60vh}
.post-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(40px,6vw,90px);align-items:start}
.post-content{max-width:720px;font-size:17px}
.post-content>*+*{margin-top:1.1em}
.post-content h2{font-size:clamp(26px,2.6vw,36px);margin-top:1.6em}
.post-content ul,.post-content ol{padding-left:1.3em;display:grid;gap:8px}
.post-content strong{color:var(--ink)}
.post-side{position:sticky;top:110px}
.side-box{background:var(--char);color:#c8cbce;padding:32px;border-radius:var(--radius);display:grid;gap:12px}
.side-box h3{color:#fff}
.side-box .eyebrow{color:#fff;margin:0}
.side-box .btn{justify-self:start}
.side-box a[href^="tel"]{color:#fff!important;font-family:var(--f-head);font-size:20px}
@media (max-width:1100px){.post-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){.post-layout{grid-template-columns:1fr}.post-side{position:static}}
@media (max-width:560px){.post-grid,.post-grid.two{grid-template-columns:1fr}}

/* Featured post */
.featured-post{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.fp-img{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden}
.fp-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.featured-post:hover .fp-img img{transform:scale(1.04)}
.fp-body{display:grid;gap:18px;justify-items:start}
.fp-body h2{font-size:clamp(28px,3vw,44px);text-wrap:balance}
@media (max-width:860px){.featured-post{grid-template-columns:1fr}}
.f-bottom a{text-decoration:underline;text-underline-offset:3px}
.f-bottom a:hover{color:var(--orange)}

/* About */
.about-hero{min-height:82vh}
.about-hero h1{font-size:clamp(40px,6.4vw,96px);text-transform:none;max-width:16ch}
.big-statement{font-size:clamp(28px,3.4vw,48px);line-height:1.2;text-wrap:balance}
.suburbs{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.suburbs li{border:1px solid rgba(255,255,255,.18);color:#fff;padding:7px 14px;border-radius:30px;font-size:14px}
.office-card{background:#fff;color:var(--body);padding:clamp(28px,4vw,48px);border-radius:var(--radius);display:grid;gap:14px}
.office-card h3{color:var(--ink)}
.office-card .eyebrow{color:var(--ink);margin:0}
.office-card a{color:var(--ink)}
.office-card .btn{color:#fff}
.office-card .btn-light{background:var(--cream);color:var(--ink)}

/* Team */
.team-photo{margin-top:clamp(50px,6vw,80px);position:relative;aspect-ratio:16/7;max-width:100%;border-radius:var(--radius);overflow:hidden;background:var(--char)}
.team-photo>img{width:100%;height:100%;object-fit:cover}
.team-photo .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:linear-gradient(160deg,#25292d,#141618)}
.team-photo .ph img{width:min(260px,40%);opacity:.9}
.team-photo .ph span{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#8e9296}
@media (max-width:560px){.team-photo{aspect-ratio:4/3}}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.member{min-width:0}
.team-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.team-group{display:grid;gap:14px;margin-bottom:44px;max-width:760px}
.team-group .eyebrow{margin-bottom:0}
.m-photo{position:relative;aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;background:var(--char);margin-bottom:20px}
.m-photo>img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.member:hover .m-photo>img{transform:scale(1.05)}
.m-photo .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(160deg,#25292d,#141618)}
.m-photo .ph img{width:46%;opacity:.9}
.m-photo .ph span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#8e9296}
.m-links{position:absolute;left:18px;bottom:18px;display:flex;gap:10px;opacity:0;transform:translateY(12px);transition:all .4s var(--ease)}
.member:hover .m-links,.member:focus-within .m-links{opacity:1;transform:none}
.m-links .circle-link{width:44px;height:44px}
.member h3{font-size:22px}
.member p{font-size:15px;margin-top:4px;color:var(--orange-dark)}
@media (max-width:1100px){.team-grid,.team-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.member h3{font-size:18px}}
@media (hover:none){.m-links{opacity:1;transform:none}}

/* Footer */
.site-footer{background:#0f1113;color:#8e9296;padding:100px 0 0;font-size:15px}
.f-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:50px;padding-bottom:70px}
.f-top img{height:58px;width:auto;margin-bottom:26px}
.f-top h4{color:#fff;font-size:17px;margin-bottom:20px;font-weight:500}
.f-top ul{list-style:none;display:grid;gap:10px}
.f-top a:hover{color:var(--orange)}
.f-top .big{color:#fff;font-family:var(--f-head);font-size:24px;display:block;margin-top:10px}
.socials{display:flex;gap:10px;margin-top:26px}
.socials a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;color:#fff;transition:all .3s}
.socials a:hover{background:var(--orange);border-color:var(--orange)}
.socials svg{width:17px;height:17px}
.f-word{font-family:var(--f-head);font-weight:600;font-size:clamp(80px,19vw,300px);line-height:.78;letter-spacing:-.05em;color:#17191c;text-align:center;user-select:none;overflow:hidden;padding-top:10px}
.f-bottom{border-top:1px solid rgba(255,255,255,.08);padding:26px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px}
.to-top{position:fixed;right:24px;bottom:24px;width:50px;height:50px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;z-index:40;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--orange)}
.to-top svg{width:18px;height:18px}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Responsive */
@media (max-width:1100px){
  .nav,.header-phone{display:none}
  .site-header .container{display:flex}
  .menu-toggle{display:block}
  .cards{grid-template-columns:repeat(2,1fr)}
  .f-top{grid-template-columns:1fr 1fr}
  .stats .container{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-left:0;padding-left:0}
  .stat{border-top:1px solid var(--line)}
  .stat:nth-child(-n+2){border-top:0}
}
@media (max-width:860px){
  .container{padding:0 20px}
  .svc-wrap,.split,.faq-wrap,.contact-grid,.two-col,.callout{grid-template-columns:1fr}
  .svc-media{position:relative;top:0;order:-1}
  .proj-grid{grid-template-columns:1fr 1fr}
  .proj:nth-child(3n+2){margin-top:0}
  .step{grid-template-columns:1fr;gap:14px}
  .split-media .badge{right:16px}
  .site-header .btn{display:none}
}
@media (max-width:560px){
  .container{padding:0 16px}
  .cards,.proj-grid,.f-top,.form{grid-template-columns:1fr}
  .stats .container{grid-template-columns:1fr}
  .stat{border-left:0!important;padding:30px 0!important;border-top:1px solid var(--line)!important}
  .stat:first-child{border-top:0!important}
  .logo img{height:42px}
  .hero{padding-top:120px}
  .faq details p{padding-right:0}
}

/* Google reviews */
.stars{display:inline-flex;gap:2px;color:#f5b301}
.stars svg{width:15px;height:15px}
.g-word{font-family:var(--f-head);font-weight:600;font-size:15px;letter-spacing:-.01em}
.review-badge{display:inline-flex;align-items:center;gap:12px;padding:10px 16px;border-radius:12px;background:#fff;color:var(--ink);box-shadow:0 6px 24px rgba(0,0,0,.12);transition:transform .3s var(--ease)}
.review-badge:hover{transform:translateY(-2px)}
.review-badge .g-word{padding-right:12px;border-right:1px solid var(--line)}
.rb-text{display:grid;line-height:1.25}
.rb-top{display:inline-flex;align-items:center;gap:8px}
.rb-top b{font-family:var(--f-head);font-size:16px}
.rb-sub{font-size:13px;color:var(--body)}
.rb-dark{margin-top:22px;background:#1d2023;color:#fff;box-shadow:none;border:1px solid rgba(255,255,255,.1)}
.rb-dark .rb-sub{color:#a9adb1}.rb-dark .g-word{border-color:rgba(255,255,255,.15)}
.hero-side{display:grid;gap:14px;justify-items:end}
.cta-reviews{margin-top:30px;display:flex;justify-content:center}
.reviews-band{background:var(--char);color:#c8cbce;padding:clamp(40px,5vw,60px) 0}
.rv-inner{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(24px,4vw,60px);align-items:center}
.rv-left{display:flex;align-items:center;gap:18px;color:#fff}
.rv-left .g-word{font-size:26px;padding-right:18px;border-right:1px solid rgba(255,255,255,.15)}
.rv-score{display:flex;align-items:center;gap:10px}
.rv-score b{font-family:var(--f-head);font-size:34px;font-weight:500;line-height:1}
.rv-score .stars svg{width:20px;height:20px}
.rv-left p{font-size:15px;color:#c8cbce;margin-top:4px}
.rv-quote{font-size:17px;max-width:46ch}
@media (max-width:960px){.rv-inner{grid-template-columns:1fr}.hero-side{justify-items:start}}

/* Chat */
.chat{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.chat-btn{display:inline-flex;align-items:center;gap:10px;background:var(--orange);color:#fff;border:0;border-radius:40px;padding:14px 22px;font:inherit;font-weight:500;font-size:15px;cursor:pointer;box-shadow:0 10px 30px rgba(232,102,26,.35);transition:transform .3s var(--ease),background .3s}
.chat-btn:hover{background:var(--orange-dark);transform:translateY(-2px)}
.chat-btn svg{width:20px;height:20px}
.chat-panel{width:min(360px,calc(100vw - 40px));background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.25);overflow:hidden;animation:chatIn .35s var(--ease)}
@keyframes chatIn{from{opacity:0;transform:translateY(12px)}}
.chat-head{display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;padding:16px 18px}
.chat-head img{height:30px;width:auto}
.chat-head div{display:grid;line-height:1.3;flex:1}
.chat-head span{font-size:12px;color:#a9adb1}
.chat-x{background:none;border:0;color:#fff;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:50%}
.chat-x:hover{background:rgba(255,255,255,.1)}.chat-x svg{width:18px;height:18px}
.chat-body{padding:18px;background:var(--cream);display:grid;gap:14px}
.chat-msg{background:#fff;color:var(--ink);padding:12px 14px;border-radius:4px 14px 14px 14px;font-size:15px;max-width:85%;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.chat-quick{display:flex;flex-wrap:wrap;gap:8px}
.chat-quick a{border:1px solid var(--orange);color:var(--orange-dark);background:#fff;padding:8px 14px;border-radius:30px;font-size:14px;transition:all .25s}
.chat-quick a:hover{background:var(--orange);color:#fff}
.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.chat-form input{flex:1;min-width:0;font:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:30px;color:var(--ink)}
.chat-form input:focus{outline:2px solid var(--orange);outline-offset:-1px}
.chat-form button{width:44px;height:44px;flex:none;border-radius:50%;border:0;background:var(--orange);color:#fff;display:grid;place-items:center;cursor:pointer}
.chat-form button svg{width:18px;height:18px}
.chat-note{font-size:12px;color:var(--body);padding:0 14px 12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.to-top{bottom:96px!important}
@media (max-width:560px){.chat-btn span{display:none}.chat-btn{padding:16px}}
.hero{padding-bottom:max(48px,96px)}

/* Review cards */
.rv-grid{columns:3 300px;column-gap:24px}
.rv-card{break-inside:avoid;margin:0 0 24px;background:#fff;border-radius:var(--radius);padding:28px 28px 24px;display:grid;gap:16px}
.rv-card-top{display:flex;justify-content:space-between;align-items:center}
.rv-card-top .g-word{font-size:13px;color:var(--body)}
.rv-card blockquote{font-size:16px;color:var(--ink);line-height:1.6}
.rv-card figcaption{display:grid;gap:2px;border-top:1px solid var(--line);padding-top:14px}
.rv-card figcaption b{color:var(--ink);font-weight:500}
.rv-card figcaption span{font-size:13px}

/* ---- Lead conversion components ---- */
.form-fine{font-size:.8rem;opacity:.65;margin:4px 0 0}
.what-next{margin:34px 0 10px}
.what-next ol{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:18px}
.what-next li{display:flex;gap:16px;align-items:flex-start}
.what-next li>span{flex:0 0 38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:700}
.what-next li b{display:block;font-size:1.05rem;margin-bottom:2px}
.what-next li p{margin:0;opacity:.8;font-size:.95rem}
.mini-rvs{display:grid;gap:14px;margin-top:30px}
.mini-rv{margin:0;padding:18px 20px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:6px}
.mini-rv .stars{color:#FBBC04;display:inline-flex;gap:2px}
.mini-rv .stars svg{width:15px;height:15px}
.mini-rv blockquote{margin:8px 0;font-size:.95rem;line-height:1.55}
.mini-rv figcaption{font-size:.85rem;font-weight:600;opacity:.75}
.review-link{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:inherit;text-decoration:none;margin-top:4px}
.review-link .stars{color:#FBBC04;display:inline-flex}
.review-link .stars svg,.review-link>svg{width:15px;height:15px}
.review-link:hover{color:var(--orange)}
.quote-sec{background:var(--cream)}
.price-guide{max-width:820px;margin:0 auto;text-align:center;padding:clamp(30px,5vw,54px);background:#fff;border-top:4px solid var(--orange);box-shadow:0 20px 50px rgba(0,0,0,.06)}
.price-guide h3{margin:10px 0 6px}
.pg-range{display:block;font-size:clamp(2rem,5vw,3.2rem);color:var(--orange);line-height:1.1;margin:8px 0 14px}
.price-guide p{max-width:620px;margin:0 auto 24px;opacity:.85}
.m-bar{display:none}
@media (max-width:860px){
  .m-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:90;box-shadow:0 -6px 20px rgba(0,0,0,.15)}
  .m-bar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 10px;font-weight:700;text-decoration:none;background:#222;color:#fff;font-size:1rem}
  .m-bar a svg{width:18px;height:18px}
  .m-bar .m-quote{background:var(--orange)}
  body{padding-bottom:54px}
  .chat{bottom:70px!important}
  .to-top{display:none!important}
}
.contact-grid>.form{align-self:start;align-content:start}
@media (min-width:861px){.contact-grid>.form{position:sticky;top:110px}}
.pf-pending{padding:22px 26px;border:1px dashed rgba(0,0,0,.2);border-radius:6px;background:rgba(255,126,49,.06);font-weight:500;margin:0}

/* ---- 2-step quote form ---- */
.qf-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.qf-head h3{margin:0}
.qf-count{font-size:13px;opacity:.7;white-space:nowrap}
.qf-count{display:none}
.qf-bar{height:4px;background:#e4e0d8;border-radius:4px;overflow:hidden;display:none}
.qf-bar i{display:block;height:100%;width:50%;background:var(--orange);transition:width .4s var(--ease)}
.qf-step{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.qf-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.qf-back{background:none;border:0;font:inherit;font-size:14px;text-decoration:underline;cursor:pointer;color:var(--ink);padding:0;display:none}
.qform .qf-next{justify-self:stretch;justify-content:center;display:none}
.qform.js-steps .qf-count,.qform.js-steps .qf-bar,.qform.js-steps .qf-next,.qform.js-steps .qf-back{display:block}
.qform.js-steps .qf-next{display:inline-flex}
.qform.js-steps[data-at="1"] .qf-step[data-step="2"]{display:none}
.qform.js-steps[data-at="2"] .qf-step[data-step="1"]{display:none}
.qform.js-steps[data-at="2"] .qf-bar i{width:100%}
.qform.show-all .qf-step{display:grid!important}
.form-fine a{text-decoration:underline}
@media (max-width:560px){.qf-step{grid-template-columns:1fr}}

/* ---- trust strip ---- */
.trust-strip{background:var(--ink,#222);color:#fff;padding:18px 0}
.trust-strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 28px}
.trust-strip li{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:500}
.trust-strip li>svg{width:22px;height:22px;color:var(--orange);flex:0 0 22px}
.trust-strip .ts-rv a{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.trust-strip .stars{color:#FBBC04;display:inline-flex}
.trust-strip .stars svg{width:15px;height:15px}
@media (max-width:860px){.trust-strip ul{display:grid;grid-template-columns:1fr 1fr}.trust-strip li{font-size:13px}}

/* ---- hero with form ---- */
.hero-form{position:relative;color:#fff;padding:clamp(130px,14vw,170px) 0 clamp(50px,6vw,80px);overflow:hidden}
.hero-form .hero-bg{position:absolute;inset:0;z-index:-1}
.hero-form .hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-form .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.82),rgba(20,20,20,.45))}
.hf-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,70px);align-items:center}
.hf-copy h1{font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.02;margin:14px 0 22px;text-transform:uppercase}
.hf-ticks{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:10px}
.hf-ticks li{padding-left:30px;position:relative;font-size:1.05rem}
.hf-ticks li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat}
.hf-call{display:inline-flex;align-items:center;gap:14px;color:#fff;text-decoration:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);padding:12px 22px 12px 16px;border-radius:40px;font-size:1.3rem;font-weight:600}
.hf-call svg{width:26px;height:26px;color:var(--orange)}
.hf-call small{display:block;font-size:12px;font-weight:400;opacity:.8}
.hero-form .crumbs{margin-top:26px}
.hero-form .form{color:var(--ink);box-shadow:0 30px 60px rgba(0,0,0,.35)}
@media (max-width:960px){.hf-grid{grid-template-columns:1fr}}

/* ---- risk free ---- */
.risk-chips{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.risk-chips li{border:1px solid rgba(255,255,255,.25);border-radius:30px;padding:8px 16px;font-size:14px}
.suppliers{margin-top:26px}
.suppliers small{opacity:.7;font-size:13px}
.suppliers div{display:flex;gap:28px;margin-top:8px;font-weight:700;font-size:1.25rem;letter-spacing:.02em;opacity:.9}

/* ---- before / after ---- */
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ba{margin:0}
.ba-frame{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:#ddd;--pos:50%}
.ba-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;background:#fff;transform:translateX(-50%);pointer-events:none}
.ba-handle::after{content:"⟷";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:18px;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba-tag{position:absolute;top:12px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(0,0,0,.6);color:#fff;padding:5px 10px;border-radius:4px;pointer-events:none}
.ba-tag-b{left:12px}.ba-tag-a{right:12px;background:var(--orange)}
.ba figcaption{margin-top:12px;font-weight:600}
.ba figcaption a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.ba figcaption svg{width:14px;height:14px;color:var(--orange)}
@media (max-width:960px){.ba-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.ba-grid{grid-template-columns:1fr}}

/* ---- video ---- */
.video-facade{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:var(--radius);overflow:hidden;cursor:pointer;background:#111}
.video-facade img{width:100%;height:100%;object-fit:cover;opacity:.8;transition:opacity .3s}
.video-facade:hover img{opacity:.95}
.vf-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:86px;height:86px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.vf-play svg{width:34px;height:34px;margin-left:4px}
.video-wrap{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:#000}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---- service areas ---- */
.areas{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.areas h3{font-size:1.1rem;margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid var(--orange)}
.areas ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.areas li{opacity:.85}
@media (max-width:860px){.areas{grid-template-columns:1fr 1fr}}
.hero-form h1,.hero-form .hf-copy{color:#fff}.hero-form .crumbs a{color:#fff}
.ba-grid:has(> :nth-child(2):last-child){grid-template-columns:1fr 1fr}@media (max-width:600px){.ba-grid:has(> :nth-child(2):last-child){grid-template-columns:1fr}}

/* ---- CRM form + booking embeds ---- */
.crm-form{background:var(--cream);border-radius:var(--radius);padding:clamp(20px,3vw,34px)}
.crm-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
.crm-head h3{margin:0 0 4px}
.crm-head p{margin:0;opacity:.75;font-size:15px}
.step-no{display:inline-grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--orange);color:#fff;font-weight:700;font-size:18px;vertical-align:middle;margin-right:6px}
.crm-form iframe{display:block;width:100%;height:1350px;border:0;border-radius:var(--radius);background:#fff}
.calendly-wrap{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.06)}
.calendly-inline-widget{min-width:300px;height:720px}
@media (max-width:860px){.crm-form iframe{height:1500px}.calendly-inline-widget{height:1000px}}
.crm-intro{max-width:760px;margin-bottom:34px}
.crm-intro .lead{margin-top:16px}
.crm-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(24px,4vw,50px);align-items:start}
.crm-side .what-next{margin-top:0}
.crm-call{margin-top:24px;font-weight:600}
.crm-call a{color:var(--orange);text-decoration:underline}
@media (min-width:961px){.crm-side{position:sticky;top:110px}}
@media (max-width:960px){.crm-grid{grid-template-columns:1fr}}

/* ---- VSL ---- */
.vsl-head{max-width:760px;margin:0 auto 34px;text-align:center}
.vsl-head .eyebrow{justify-content:center}
.vsl-head .lead{margin-top:16px}
.vsl-frame{max-width:1040px;margin:0 auto}
.vsl-frame .video-facade,.vsl-frame .video-wrap{box-shadow:0 30px 70px rgba(0,0,0,.35)}
.vsl-facade .vf-play{width:110px;height:110px}
.vsl-facade .vf-play svg{width:44px;height:44px}
.vsl-label{position:absolute;left:50%;top:calc(50% + 78px);transform:translateX(-50%);color:#fff;font-weight:600;letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.6);white-space:nowrap}
.vsl-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}
.bg-dark .vsl-head h2,.bg-dark .vsl-head .lead{color:#fff}
@media (max-width:600px){.vsl-facade .vf-play{width:76px;height:76px}.vsl-label{top:calc(50% + 56px);font-size:14px}}

/* ---- charcoal sections: keep cards and forms readable ---- */
.bg-dark .form,.bg-dark .crm-form{color:var(--ink)}
.bg-dark .form h3,.bg-dark .crm-form h3{color:var(--ink)}
.bg-dark .mini-rv{color:var(--ink);border-color:transparent}
.bg-dark .what-next li b{color:#fff}
.bg-dark .what-next li p{color:#c5c9cd;opacity:1}
.bg-dark .review-link{color:#fff}
.bg-dark .lead{color:#c5c9cd}
.bg-dark .c-list li{border-color:rgba(255,255,255,.12)}
.bg-dark .c-list a,.bg-dark .c-list strong{color:#fff}
.bg-dark .c-list small{color:#a9adb1}
.bg-dark .c-list .ico{background:rgba(255,255,255,.08)}
.bg-dark .btn-ghost{color:#fff;border-color:rgba(255,255,255,.35)}
.bg-dark .next-card h2{color:#fff}
.bg-dark .team-group .lead,.bg-dark p{color:#c5c9cd}
.quote-sec.bg-dark{background:var(--char)}
.bg-dark .form p,.bg-dark .crm-form p{color:var(--ink)}.bg-dark .mini-rv blockquote,.bg-dark .mini-rv p{color:var(--ink)}

/* ---- service areas (full list) ---- */
.areas{grid-template-columns:repeat(5,1fr);gap:26px}
.area-group h3 small{display:block;font-size:12px;font-weight:500;opacity:.6;margin-top:3px;letter-spacing:.02em}
.area-group ul{gap:5px}
.area-group li{font-size:14.5px}
.areas-wrap{position:relative}
.areas-wrap .areas{max-height:470px;overflow:hidden;transition:max-height .5s var(--ease)}
.areas-wrap::after{content:"";position:absolute;left:0;right:0;bottom:56px;height:120px;background:linear-gradient(to bottom,rgba(245,243,238,0),var(--cream));pointer-events:none;transition:opacity .3s}
section:not(.bg-cream) .areas-wrap::after{background:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}
.areas-more{margin-top:18px}
.areas-wrap.open .areas{max-height:none}
.areas-wrap.open::after{opacity:0}
@media (max-width:1100px){.areas{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.areas{grid-template-columns:1fr 1fr}.areas-wrap .areas{max-height:560px}}

/* ---- portfolio videos ---- */
.pv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.pv-grid.pv-one{grid-template-columns:1fr;max-width:1000px}
.pv{margin:0}
.pv figcaption{margin-top:12px;color:#fff;font-weight:600}
@media (max-width:760px){.pv-grid{grid-template-columns:1fr}}
.pv-featured{max-width:1100px;margin:0 auto 34px}

/* ---- autoplay cover video ---- */
.hero-bg .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:reduce){.hero-bg .hero-video{display:none}}

/* ---- architectural video grid ---- */
.pv-grid.pv-art{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(80px,8.5vw,125px);gap:18px;grid-auto-flow:dense}
.pv-art .pv{grid-column:span var(--c);grid-row:span var(--r);position:relative;margin:0}
.pv-art .pv .video-facade,.pv-art .pv .video-wrap{height:100%;aspect-ratio:auto;border-radius:4px}
.pv-art .pv figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:40px 18px 14px;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);border-radius:0 0 4px 4px;pointer-events:none;font-size:15px}
.pv-art .pv .vf-play{width:64px;height:64px}
.pv-art .pv .vf-play svg{width:26px;height:26px}
.pv-art .pv:first-child .vf-play{width:92px;height:92px}
@media (max-width:760px){.pv-grid.pv-art{grid-template-columns:1fr 1fr;grid-auto-rows:110px}.pv-art .pv{grid-column:span 2;grid-row:span 2}.pv-art .pv:nth-child(3n+2),.pv-art .pv:nth-child(3n+3){grid-column:span 1;grid-row:span 2}.pv-art .pv:first-child{grid-row:span 3}}
.page-hero{position:relative}
.sound-toggle{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(16px,3vw,34px);z-index:3;display:inline-flex;align-items:center;gap:10px;background:rgba(15,17,19,.55);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:40px;padding:11px 18px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;backdrop-filter:blur(6px);transition:background .3s}
.sound-toggle:hover{background:var(--orange);border-color:var(--orange)}
.sound-toggle svg{width:20px;height:20px}
.sound-toggle .snd-on{display:none}
.sound-toggle[aria-pressed="true"] .snd-on{display:block}
.sound-toggle[aria-pressed="true"] .snd-off{display:none}
@media (prefers-reduced-motion:reduce){.sound-toggle{display:none}}
.hero-form .crm-form{box-shadow:0 30px 60px rgba(0,0,0,.35);color:var(--ink)}
.hero-form .crm-form h3{color:var(--ink)}
.hero-form .crm-form p{color:var(--ink)}
.hero-form .crm-form iframe{height:min(720px,72vh)}
@media (max-width:960px){.hero-form .crm-form iframe{height:900px}}
.hf-grid.hf-solo{grid-template-columns:1fr}
.hf-solo .hf-copy{max-width:760px}
.hf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}

/* Commercial case study with portrait videos */
.com-case-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.com-vids{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.com-vid{aspect-ratio:9/16}
.com-vid img{width:100%;height:100%;object-fit:cover}
.com-vids figcaption{font-size:14px;opacity:.85}
@media (max-width:900px){.com-case-grid{grid-template-columns:1fr}}

/* Architectural mixed-size photo grid */
.photo-art{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(60px,7vw,110px);gap:14px;grid-auto-flow:dense}
.photo-art a{grid-column:span var(--c);grid-row:span var(--r);display:block;overflow:hidden;border-radius:4px;background:#ddd}
.photo-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.photo-art a:hover img{transform:scale(1.04)}
@media (max-width:760px){.photo-art{grid-template-columns:repeat(2,1fr);grid-auto-rows:120px;gap:10px}.photo-art a{grid-column:span 1;grid-row:span 2}.photo-art a:nth-child(5n+1){grid-column:span 2;grid-row:span 2}}

/* Service area region cards */
.area-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.area-card{border-top:2px solid var(--orange);padding:24px 0 6px}
.area-card h3{font-size:clamp(22px,2vw,28px)}
.area-card p{margin-top:10px;opacity:.7}
@media (max-width:860px){.area-cards{grid-template-columns:1fr 1fr}}
.area-card svg{width:26px;height:26px;color:var(--orange);margin-bottom:14px;display:block}

/* ===== WordPress additions ===== */

/* Menus from Appearance → Menus */
.site-header nav{display:contents}
.nav{margin:0;padding:0}
.nav li{list-style:none;position:relative}
.nav>li>a{color:#fff;font-size:15px;font-weight:500;padding:10px 0;display:inline-flex;align-items:center;gap:6px;position:relative}
.nav>li.menu-item-has-children>a::before{content:"";order:2;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7}
.nav>li.current-menu-item>a::after,.nav>li.current-menu-ancestor>a::after,.nav>li.current_page_item>a::after,.nav>li.current-page-ancestor>a::after{width:100%}
.nav .sub-menu{position:absolute;top:100%;left:-22px;min-width:250px;margin:0;background:#fff;padding:14px 0;border-radius:var(--radius);box-shadow:0 18px 40px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s var(--ease);z-index:5}
.nav>li:hover>.sub-menu,.nav>li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.nav .sub-menu a{display:block;padding:9px 22px;color:var(--ink);font-size:15px}
.nav .sub-menu a:hover,.nav .sub-menu .current-menu-item>a{color:var(--orange)}
.mobile-nav{list-style:none;margin:0;padding:0}
.mobile-nav a{display:block;color:#fff;font-family:var(--f-head);font-size:30px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-nav .sub-menu{list-style:none;margin:0;padding:6px 0 10px}
.mobile-nav .sub-menu a{font-size:19px;color:#a9adb1;padding:6px 0 6px 18px;border:0}

/* Logged-in admin bar */
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (max-width:600px){.admin-bar .site-header{top:0}}

/* Pages without a photo header (blog, standard pages, 404) */
.adg-solid-header .site-header{background:rgba(20,22,24,.96)}
.adg-solid-header main{padding-top:110px}

/* Accessibility helpers */
.skip-link{position:absolute;left:-9999px;top:10px;z-index:100;background:var(--orange);color:#fff;padding:10px 16px;border-radius:var(--radius)}
.skip-link:focus{left:10px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

/* Quote form */
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form{position:relative}
.form-msg{padding:14px 16px;border-radius:var(--radius);font-size:15px}
.form-msg.ok{background:#e6f4ea;color:#1e5b2f}
.form-msg.err{background:#fde8e1;color:#8a2b0c}
.form-plugin input:not([type=submit]):not([type=checkbox]):not([type=radio]),.form-plugin select,.form-plugin textarea{font:inherit;font-size:15px;padding:15px 16px;border:1px solid #dcd9d2;background:#fff;border-radius:var(--radius);color:var(--ink);width:100%}
.form-plugin input[type=submit],.form-plugin button[type=submit]{display:inline-flex;padding:17px 32px;background:var(--orange);color:#fff;font:inherit;font-weight:500;border:0;border-radius:var(--radius);cursor:pointer}
.form.form-plugin{display:block}

/* Standard pages & blog posts (content from the WordPress editor) */
.entry{padding:clamp(60px,8vw,110px) 0}
.entry-header{margin-bottom:40px}
.entry-header h1{font-size:clamp(38px,5vw,68px)}
.entry-meta{font-size:14px;margin-top:12px}
.entry-content{max-width:780px;font-size:17px;color:var(--body)}
.entry-content>*+*{margin-top:1.2em}
.entry-content h2{font-size:clamp(28px,3vw,40px);margin-top:1.6em}
.entry-content h3{margin-top:1.4em}
.entry-content a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:3px}
.entry-content ul,.entry-content ol{padding-left:1.3em}
.entry-content img{border-radius:var(--radius);height:auto}
.entry-content .alignwide{max-width:1100px}
.entry-content .alignfull{max-width:none}
.entry-content blockquote{border-left:3px solid var(--orange);padding-left:20px;color:var(--ink)}
.entry-content .wp-block-button__link{background:var(--orange);color:#fff;text-decoration:none;border-radius:var(--radius);padding:15px 28px}
.post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.post-card{display:flex;flex-direction:column;gap:12px}
.post-card .thumb{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;background:var(--cream)}
.post-card .thumb img{width:100%;height:100%;object-fit:cover}
.post-card h2{font-size:24px}
.post-card small{font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.pagination{margin-top:50px;display:flex;gap:10px}
.pagination .page-numbers{padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink)}
.pagination .current{background:var(--ink);color:#fff}
@media (max-width:860px){.post-list{grid-template-columns:1fr}}

/* Category tabs as links */
.filters a{border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:30px;font-size:14px;color:var(--ink);transition:all .3s}
.filters a.on,.filters a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}



/* SEO fixes (October 2026 audit, batch 3) */
/* Service page heroes: quote and call buttons under the heading. */
.page-hero .hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 10px}
.page-hero .hero-ctas .btn-call{background:transparent;border:1px solid rgba(255,255,255,.7);color:#fff}
.page-hero .hero-ctas .btn-call:hover{background:#fff;color:var(--ink)}
/* Phones and tablets: icon-only chat button that appears after the first screen, so it doesn't cover the trust strip. */
@media (max-width:860px){
  .chat-btn span{display:none}
  .chat-btn{padding:16px}
  .chat .chat-btn{transition:opacity .3s,transform .3s}
  body:not(.adg-scrolled) .chat .chat-btn{opacity:0;pointer-events:none;transform:translateY(12px)}
  footer a[href^="tel:"],footer a[href^="mailto:"]{display:inline-block;padding-block:12px}
}


/* Homepage hero (October 2026): on laptops and desktops, size the heading so the whole
   first screen fits — heading, quote button, subheading and Google review badge —
   whatever the window height. Phones keep the theme's original sizing. */
@media (min-width:861px){
  .hero{gap:clamp(28px,4vh,60px)}
  .hero h1{font-size:clamp(44px,min(8.4vw,calc((100vh - 540px) / 2.3)),128px)}
}
@media (min-width:861px) and (max-height:950px){
  .hero .scroll-down{display:none}
}
