/* One Call, shared site styles (onecallgroup.au rebuild) */
@font-face { font-family:"Rubik"; src:url("/ndis-cleaning/fonts/rubik.woff2") format("woff2"); font-weight:300 900; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("/ndis-cleaning/fonts/montserrat-700.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
:root{
  --ink:#1b1b1d; --ink-soft:#33333a; --charcoal:#161618; --charcoal-2:#1f1f22;
  --orange:#e98605; --orange-dark:#c9720a; --orange-soft:#ffb04d;
  --brand-orange-text:#9a5500; /* AA-safe orange for text on white (~5.7:1); #e98605 is fill/accent only */
  --paper:#ffffff; --surface:#f4f1ec; --surface-2:#efece7; --line:#e2ded7;
  --white-70:rgba(255,255,255,.78);
  --radius:10px; --radius-lg:16px;
  --shadow:0 18px 44px -22px rgba(20,20,25,.45);
  --shadow-card:0 24px 60px -28px rgba(20,20,25,.55);
  --wrap:1180px; --ease:cubic-bezier(.22,1,.36,1);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:"Rubik",system-ui,sans-serif; color:var(--ink); background:var(--paper); line-height:1.6; -webkit-font-smoothing:antialiased; }
h1,h2,h3{ font-family:"Rubik",sans-serif; font-weight:800; line-height:1.08; letter-spacing:-0.02em; text-wrap:balance; margin:0; }
p{ margin:0; } a{ color:inherit; } img{ max-width:100%; display:block; }
.wrap{ width:min(100% - 40px, var(--wrap)); margin-inline:auto; }
.skip-link{ position:absolute; left:8px; top:-52px; background:var(--charcoal); color:#fff; padding:10px 16px; border-radius:8px; z-index:100; text-decoration:none; transition:top .2s; }
.skip-link:focus{ top:8px; }
.kicker{ font-family:"Montserrat",sans-serif; font-weight:700; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brand-orange-text); margin:0 0 14px; }
.hero .kicker, .page-hero .kicker{ color:var(--orange-soft); } /* on dark bg, light orange passes */

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:"Rubik",sans-serif; font-weight:700; font-size:1.02rem; padding:15px 28px; border-radius:999px; border:0; cursor:pointer; text-decoration:none; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-color .2s ease; min-height:52px; }
.btn-primary{ background:var(--orange); color:var(--charcoal); box-shadow:0 10px 22px -12px rgba(20,20,25,.5); }
.btn-primary:hover{ background:#ffa01f; transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.35); }
.btn-ghost:hover{ border-color:var(--orange); color:var(--orange); }
:where(a,button):focus-visible{ outline:3px solid var(--orange); outline-offset:3px; border-radius:6px; }

/* Top bar */
.topbar{ background:var(--charcoal); color:#fff; }
.topbar-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; }
.logo-img{ height:46px; width:auto; display:block; }
.top-nav{ display:flex; align-items:center; gap:26px; }
.top-nav a{ text-decoration:none; color:rgba(255,255,255,.82); font-weight:600; font-size:.95rem; }
.top-nav a:hover, .top-nav a[aria-current="page"]{ color:var(--orange); }
.top-contact{ display:flex; align-items:center; gap:22px; }
.chip-reg{ display:inline-flex; align-items:center; gap:8px; padding:7px 14px; background:rgba(233,134,5,.14); border:1px solid rgba(233,134,5,.4); color:#ffc074; border-radius:999px; font-size:.78rem; font-weight:600; }
.top-phone{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:#fff; }
.top-phone svg{ color:var(--orange); flex:none; }
.top-phone .lbl{ font-size:.72rem; color:var(--white-70); display:block; }
.top-phone .num{ font-weight:700; font-size:1.02rem; }
@media (max-width:720px){ .top-nav{ display:none; } }

/* Hero */
.hero{ position:relative; color:#fff; background:
  linear-gradient(103deg, rgba(16,16,18,.96) 0%, rgba(16,16,18,.85) 42%, rgba(16,16,18,.45) 100%),
  url("https://images.unsplash.com/photo-1503387762-592deb58ef4e?auto=format&fit=crop&w=1700&q=80") center / cover no-repeat; }
.hero-inner{ padding:82px 0 92px; max-width:640px; }
.hero h1{ font-size:clamp(2.3rem,5vw,3.9rem); }
.hero .lede{ font-size:clamp(1.05rem,1.6vw,1.24rem); color:rgba(255,255,255,.9); margin:22px 0 30px; max-width:52ch; }
.hero-cta{ display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.hero-cta .phone-note{ font-size:.92rem; color:var(--white-70); }
.hero-cta .phone-note a{ color:#fff; font-weight:700; text-decoration:none; }

/* Compact page hero (inner pages) */
.page-hero{ background:var(--charcoal); color:#fff; }
.page-hero .wrap{ padding:64px 0 60px; max-width:60ch; }
.page-hero h1{ font-size:clamp(2rem,4vw,3rem); }
.page-hero p{ color:rgba(255,255,255,.86); font-size:1.1rem; margin-top:16px; }

/* Trust strip */
.verify{ background:var(--charcoal-2); color:#fff; border-top:1px solid rgba(255,255,255,.08); }
.verify-inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 22px; padding:16px 0; text-align:center; font-size:.92rem; }
.verify b{ color:#fff; } .verify .dot{ width:1px; height:14px; background:rgba(255,255,255,.28); }
.verify a{ color:var(--orange); font-weight:700; text-decoration:none; }
.verify a:hover{ text-decoration:underline; }

section{ padding:clamp(56px,8vw,92px) 0; }
.sec-head{ max-width:52ch; margin-bottom:44px; }
.sec-head h2{ font-size:clamp(1.8rem,3.4vw,2.55rem); }
.sec-head p{ color:var(--ink-soft); font-size:1.08rem; margin-top:14px; }
.alt{ background:var(--surface); }

/* About */
.about-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:center; }
@media (max-width:820px){ .about-grid{ grid-template-columns:1fr; gap:30px; } }
.about p + p{ margin-top:16px; color:var(--ink-soft); }
.about h2{ font-size:clamp(1.8rem,3.2vw,2.4rem); margin-bottom:18px; }
.about-card{ background:var(--charcoal); color:#fff; border-radius:var(--radius-lg); padding:34px 30px; box-shadow:var(--shadow-card); }
.about-card h3{ font-size:1.2rem; margin-bottom:16px; }
.about-card ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.about-card li{ display:flex; gap:12px; align-items:flex-start; font-size:.98rem; color:rgba(255,255,255,.88); }
.about-card li svg{ color:var(--orange); flex:none; margin-top:2px; }

/* Services grid + group headings */
.grp-head{ display:flex; align-items:baseline; gap:14px; margin:0 0 24px; flex-wrap:wrap; }
.grp-head h2{ font-size:clamp(1.5rem,2.8vw,2rem); }
.grp-head span{ color:var(--ink-soft); font-size:1rem; }
.grp + .grp{ margin-top:60px; }
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:18px; }
/* 5-card sections: flex-wrap so a leftover row centers itself (grid centers the whole track, not the last row) */
.svc-grid--flex{ display:flex; flex-wrap:wrap; justify-content:center; }
.svc-grid--flex .svc{ flex:1 1 300px; max-width:360px; }
.svc{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.svc:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
/* Vibrant icon tiles: solid orange with white glyphs, matching the original site's icon language */
.svc-ic{ width:52px; height:52px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg, #ffa01f, var(--orange) 60%, var(--orange-dark)); color:#fff; margin-bottom:16px; box-shadow:0 8px 18px -8px rgba(233,134,5,.55); }
.svc-ic svg{ width:28px; height:28px; } /* Phosphor fill glyphs, white on the orange tile */
.svc h3{ font-size:1.14rem; margin-bottom:8px; }
.svc p{ color:var(--ink-soft); font-size:.95rem; flex:1; }
.svc .tag{ display:inline-block; margin-top:12px; font-size:.76rem; font-weight:700; letter-spacing:.02em; color:var(--brand-orange-text); text-decoration:none; }
.svc a.tag:hover{ text-decoration:underline; }
/* Featured (NDIS) card: emphasized inside the white-card family via tint + badge, not a dark block */
.svc.feature{ background:rgba(233,134,5,.06); border:1.5px solid rgba(233,134,5,.38); }
.svc-badge{ display:inline-flex; align-items:center; gap:6px; align-self:flex-start; background:var(--orange); color:var(--charcoal); font-weight:700; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; padding:6px 13px; border-radius:999px; margin-bottom:16px; }
.svc-badge svg{ flex:none; }

/* Steps */
.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:26px; }
.step{ position:relative; padding-top:6px; }
.step-n{ font-family:"Rubik",sans-serif; font-weight:800; font-size:2.4rem; color:var(--orange); line-height:1; margin-bottom:12px; }
.step h3{ font-size:1.18rem; margin-bottom:8px; }
.step p{ color:var(--ink-soft); }

/* Why */
.why{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:24px; }
.why-item{ display:flex; gap:16px; align-items:flex-start; }
.why-item svg{ color:var(--orange); flex:none; }
.why-item h3{ font-size:1.12rem; margin-bottom:6px; }
.why-item p{ color:var(--ink-soft); font-size:.96rem; }

/* Quote band */
.band{ background:var(--charcoal); color:#fff; text-align:center; }
.band .wrap{ padding:64px 0; }
.band h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); }
.band p{ color:var(--white-70); margin:16px auto 28px; max-width:52ch; }

/* Footer */
footer{ background:#0f0f11; color:rgba(255,255,255,.72); font-size:.92rem; }
.foot-inner{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:26px; padding:48px 0 24px; }
.foot-brand img{ height:40px; margin-bottom:14px; }
.foot-brand p{ max-width:34ch; }
.foot-col h4{ color:#fff; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; margin:0 0 12px; }
.foot-col a{ display:block; text-decoration:none; margin-bottom:8px; color:rgba(255,255,255,.72); }
.foot-col a:hover{ color:var(--orange); }
.foot-col span{ display:block; margin-bottom:8px; }
.foot-bottom{ border-top:1px solid rgba(255,255,255,.1); padding:18px 0; font-size:.82rem; color:rgba(255,255,255,.5); }

/* FAQ list (extraction-friendly: real question H2 + self-contained answer) */
.faq-list{ max-width:78ch; }
.qa{ padding:26px 0; border-top:1px solid var(--line); }
.qa:first-child{ border-top:0; padding-top:0; }
.qa h2{ font-size:1.28rem; margin-bottom:10px; }
.qa p{ color:var(--ink-soft); }
.qa p a{ color:var(--brand-orange-text); font-weight:600; text-decoration:none; }

/* Routing cards (homepage: three audiences) */
.routes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; }
.route{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px 28px; text-decoration:none; color:inherit; transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .2s; }
.route:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:rgba(233,134,5,.4); }
.route .ic{ width:52px; height:52px; display:grid; place-items:center; border-radius:14px; background:rgba(233,134,5,.12); color:var(--brand-orange-text); margin-bottom:18px; }
.route h3{ font-size:1.3rem; margin-bottom:10px; }
.route p{ color:var(--ink-soft); font-size:.98rem; flex:1; }
.route .go{ margin-top:18px; font-weight:700; color:var(--brand-orange-text); }
.route.dark{ background:var(--charcoal); color:#fff; border-color:transparent; }
.route.dark p{ color:rgba(255,255,255,.82); }
.route.dark .ic{ background:rgba(233,134,5,.18); color:var(--orange-soft); }
.route.dark .go{ color:var(--orange-soft); }

/* Lead form (free-quote page) */
.form-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px 28px; box-shadow:var(--shadow-card); }
.form-card h2{ font-size:1.5rem; }
.form-card .sub{ color:var(--ink-soft); font-size:.96rem; margin:8px 0 20px; }
.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:15px; }
.field label{ font-weight:600; font-size:.92rem; }
.field input, .field select{ font:inherit; color:var(--ink); padding:13px 14px; border:1.5px solid var(--line); border-radius:8px; background:#fbfaf8; min-height:50px; transition:border-color .18s ease, box-shadow .18s ease; }
.field input:focus, .field select:focus{ outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(233,134,5,.18); background:#fff; }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-card .btn-primary{ width:100%; margin-top:4px; }
.form-note{ font-size:.8rem; color:var(--ink-soft); margin-top:12px; text-align:center; }
.form-note a{ color:var(--brand-orange-text); }
.form-msg{ text-align:center; padding:18px 6px; }
.form-msg h3{ font-size:1.3rem; margin-bottom:8px; }
.form-msg p{ color:var(--ink-soft); }
.form-msg .btn-primary{ width:auto; margin-top:18px; }
.cf-turnstile{ margin:4px 0 6px; min-height:66px; }
.cf-turnstile:empty{ min-height:0; margin:0; } /* collapse until the widget actually renders (pre-Phase-B keys) */

/* Entrance motion: fade-up on hero content. Pure load-time CSS animation
   (content is never gated on scroll/JS); the global reduced-motion rule disables it. */
@keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.hero .kicker, .hero h1, .hero .lede, .hero .hero-cta,
.page-hero .kicker, .page-hero h1, .page-hero .wrap > p{ animation:rise .6s var(--ease) both; }
.hero h1, .page-hero h1{ animation-delay:.08s; }
.hero .lede, .page-hero .wrap > p{ animation-delay:.16s; }
.hero .hero-cta{ animation-delay:.24s; }

/* Sticky tap-to-call bar (mobile) */
.callbar{ position:fixed; left:0; right:0; bottom:0; z-index:50; display:none; }
.callbar a{ display:flex; align-items:center; justify-content:center; gap:10px; background:var(--orange); color:var(--charcoal); font-weight:800; font-size:1.05rem; padding:15px; text-decoration:none; min-height:56px; box-shadow:0 -8px 24px -12px rgba(0,0,0,.45); }
.callbar svg{ flex:none; }
@media (max-width:720px){ .callbar{ display:block; } body{ padding-bottom:56px; } }
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; } }

/* ===== Original-site match (onecallbuilding.com.au layout, honest content) ===== */
/* Two-tier header: dark utility bar + white sticky nav with FREE QUOTE button */
.utilbar{ background:var(--charcoal); color:rgba(255,255,255,.8); font-size:.82rem; }
.utilbar-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 0; }
.utilbar .u-set{ display:flex; align-items:center; gap:24px; }
.utilbar a, .utilbar span{ color:rgba(255,255,255,.82); text-decoration:none; display:inline-flex; align-items:center; gap:8px; }
.utilbar a:hover{ color:var(--orange); }
.utilbar svg{ color:var(--orange); flex:none; }
.mainnav{ background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; }
.mainnav-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 0; }
.mainnav .logo-img{ height:44px; width:auto; display:block; }
.mainnav .nav{ display:flex; align-items:center; gap:28px; }
.mainnav .nav a{ text-decoration:none; color:var(--ink); font-weight:600; font-size:.98rem; }
.mainnav .nav a:hover, .mainnav .nav a[aria-current="page"]{ color:var(--brand-orange-text); }
.btn-sm{ padding:11px 22px; min-height:44px; font-size:.95rem; }
@media (max-width:820px){
  .utilbar .u-set.hide-sm{ display:none; }
  .mainnav-inner{ flex-wrap:wrap; row-gap:0; padding:10px 0; }
  .mainnav .logo-img{ height:40px; }
  .mainnav .nav{ order:3; width:100%; justify-content:center; gap:20px; margin-top:10px; padding-top:10px; border-top:1px solid var(--line); font-size:.94rem; flex-wrap:wrap; }
}

/* Centered hero variant */
.hero.center .hero-inner{ max-width:780px; margin-inline:auto; text-align:center; padding:88px 0 96px; }
.hero.center .lede{ margin-inline:auto; }
.hero.center .hero-cta{ justify-content:center; }
.q-phone{ display:inline-flex; align-items:center; gap:12px; color:#fff; text-decoration:none; text-align:left; }
.q-phone svg{ color:var(--orange); flex:none; }
.q-phone .lbl{ font-size:.68rem; color:var(--white-70); text-transform:uppercase; letter-spacing:.12em; display:block; }
.q-phone .num{ font-weight:800; font-size:1.12rem; }

/* About: circular image + orange honest badge */
.about-visual{ position:relative; display:flex; justify-content:center; align-items:center; min-height:340px; }
.about-visual .circle-img{ width:min(320px,80%); aspect-ratio:1; border-radius:50%; object-fit:cover; border:8px solid #fff; box-shadow:var(--shadow-card); }
.badge-circle{ position:absolute; bottom:6%; right:8%; width:132px; height:132px; border-radius:50%; background:var(--orange); color:var(--charcoal); display:grid; place-items:center; align-content:center; text-align:center; padding:14px; box-shadow:var(--shadow); }
.badge-circle b{ font-size:.98rem; font-weight:800; line-height:1.15; }
.badge-circle span{ font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-top:5px; }

/* Arched service cards (rounded-top, circular icon ring) */
.svc-arch-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
.svc-arch{ background:#fff; border:1px solid var(--line); border-radius:150px 150px var(--radius) var(--radius); padding:30px 26px 32px; text-align:center; transition:transform .25s var(--ease), box-shadow .25s var(--ease); display:flex; flex-direction:column; }
.svc-arch:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.svc-arch .ring{ width:118px; height:118px; border-radius:50%; margin:0 auto 20px; display:grid; place-items:center; background:rgba(233,134,5,.1); border:2px solid rgba(233,134,5,.28); }
.svc-arch .ring svg{ width:50px; height:50px; color:var(--brand-orange-text); }
.svc-arch h3{ font-size:1.16rem; margin-bottom:8px; }
.svc-arch p{ color:var(--ink-soft); font-size:.94rem; flex:1; }
.svc-arch .tag{ display:inline-block; margin-top:14px; font-size:.78rem; font-weight:700; color:var(--brand-orange-text); text-decoration:none; }

/* Circular service PHOTO in the arched card (matches original site) */
.svc-arch .photo{ width:158px; height:158px; border-radius:50%; margin:0 auto 20px; overflow:hidden; border:3px solid rgba(233,134,5,.3); box-shadow:0 12px 28px -16px rgba(20,20,25,.45); background:var(--surface); }
.svc-arch .photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Testimonials (placeholder-ready, mirrors original layout; real reviews only) */
.tstm-head{ max-width:62ch; margin-bottom:40px; }
.tstm-head h2{ font-size:clamp(1.9rem,3.4vw,2.5rem); }
.tstm-head p{ color:var(--ink-soft); margin-top:14px; }
.tstm-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
@media (max-width:900px){ .tstm-cards{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; } }
.tstm{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px 24px; box-shadow:var(--shadow); }
.tstm .qmark{ color:var(--orange); font-family:"Rubik",sans-serif; font-weight:800; font-size:2.6rem; line-height:.5; }
.tstm .quote{ color:var(--ink-soft); font-style:italic; margin:12px 0 20px; flex:1; }
.tstm .who{ display:flex; align-items:center; gap:12px; }
.tstm .avatar{ width:46px; height:46px; border-radius:50%; background:rgba(233,134,5,.14); border:1px solid rgba(233,134,5,.32); display:grid; place-items:center; color:var(--brand-orange-text); font-weight:800; font-size:1.05rem; flex:none; }
.tstm .name{ font-weight:700; font-size:.98rem; display:block; }
.tstm .role{ font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-orange-text); }

/* How it works: orange circular icons + numbered badge */
.steps-o{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:32px; text-align:center; }
.step-o .circ{ width:92px; height:92px; border-radius:50%; background:linear-gradient(135deg, #ffa01f, var(--orange) 60%, var(--orange-dark)); display:grid; place-items:center; margin:0 auto 18px; position:relative; box-shadow:0 12px 24px -10px rgba(233,134,5,.55); }
.step-o .circ svg{ width:40px; height:40px; color:#fff; }
.step-o .num{ position:absolute; bottom:-4px; right:-4px; width:34px; height:34px; border-radius:50%; background:var(--charcoal); color:#fff; border:2px solid #fff; display:grid; place-items:center; font-weight:800; font-size:.85rem; }
.step-o h3{ font-size:1.16rem; margin-bottom:8px; }
.step-o p{ color:var(--ink-soft); }

/* Dark call-back band with faint house graphic */
.callback{ background:var(--charcoal); color:#fff; position:relative; overflow:hidden; }
.callback .wrap{ padding:72px 0; position:relative; z-index:1; max-width:620px; }
.callback h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); }
.callback p{ color:var(--white-70); margin:16px 0 28px; max-width:46ch; }
.callback .cta-row{ display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.callback .house{ position:absolute; right:5%; top:50%; transform:translateY(-50%); color:rgba(255,255,255,.05); z-index:0; pointer-events:none; }
@media (max-width:760px){ .callback .house{ display:none; } }
