
:root {
  --color-white: #ffffff;
  --color-footer-bg: var(--brand-secondary);
  --color-footer-text: rgba(255,255,255,0.55);
}
/* Final hardening: logo visible immediately, footer uses shared curved design */


*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--charcoal:var(--brand-secondary);
  --terra-light:rgba(67,197,219,.28);--terra-dark:var(--brand-secondary);--sage-light:rgba(67,197,219,.28);
  --cream:#FFFFFF;--slate:var(--brand-secondary);--muted:var(--text-secondary);
  --border:rgba(37,50,92,0.1);
}

/* Homepage full-bleed rebuild */

main.homepage{
  margin:0;
  overflow:visible;
}

nav#mainNav .nav-links a{
  border-radius:0;
}

@media(min-width:99999px){
  .inner-wrap{
    padding:0 1.5rem;
  }

  main.homepage section{
    padding:3rem 0;
  }

  nav#mainNav .nav-inner{
    min-height:70px;
  }

  nav#mainNav .nav-links{
    display:none;
  }

  nav#mainNav .hamburger{
    display:flex!important;
    position:relative;
    width:44px;
    height:44px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    opacity:1;
    padding:0;
    margin-left:auto;
    transform:none!important;
  }

  nav#mainNav::after{
    display:none!important;
  }

  .focused-hero,
  .focused-hero-content-wrap{
    min-height:100vh;
  }

  .focused-hero::after{
    left:0;
    right:0;
    width:100%;
    background:linear-gradient(180deg,rgba(10,20,40,.18),rgba(10,20,40,.76));
  }

  .focused-hero-text{
    width:100%;
    margin-left:0;
    padding:2rem 1.5rem;
    align-self:flex-end;
  }

  .focused-provider-card .hero-tagline{
    font-size:clamp(2.4rem,11vw,3.25rem)!important;
  }

  .stats-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2.5rem 1.25rem;
  }

  .stat-value{
    font-size:2.25rem;
  }

  footer .footer-inner{
    padding:3rem 1.5rem;
  }

  footer .footer-top{
    grid-template-columns:1fr;
    gap:2.25rem;
  }

  footer .footer-bottom{
    flex-direction:column;
  }
}

/* Final mobile viewport guard */

@media(min-width:99999px){
  nav#mainNav .nav-inner{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0 1.5rem!important;
    position:relative!important;
    box-sizing:border-box!important;
  }

  nav#mainNav .nav-links{
    display:none!important;
  }

  nav#mainNav .hamburger{
    display:flex!important;
    position:absolute!important;
    right:1.5rem!important;
    top:50%!important;
    width:48px!important;
    height:48px!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:column!important;
    gap:5px!important;
    opacity:1!important;
    background:transparent!important;
    border:0!important;
    transform:translateY(-50%)!important;
    z-index:3!important;
  }

  nav#mainNav .hamburger span{
    display:block!important;
    width:24px!important;
    height:2px!important;
    background:var(--brand-deep)!important;
    border-radius:2px!important;
  }

  nav#mainNav .nav-inner::after{
    display:none!important;
  }
}

@media(min-width:99999px){
  nav#mainNav .nav-inner{
    width:100%;
    max-width:100%;
    margin:0;
    padding:0 1.5rem;
    position:relative;
    box-sizing:border-box;
  }

  nav#mainNav .nav-links{
    display:none;
  }

  nav#mainNav .hamburger{
    display:block!important;
    position:absolute!important;
    right:1.5rem;
    top:50%;
    width:48px;
    height:48px;
    opacity:0!important;
    transform:translateY(-50%)!important;
    z-index:3;
  }

  nav#mainNav .nav-inner::after{
    content:'';
    position:absolute;
    right:1.5rem;
    top:50%;
    width:24px;
    height:2px;
    background:var(--brand-deep);
    border-radius:2px;
    box-shadow:0 -7px 0 var(--brand-deep),0 7px 0 var(--brand-deep);
    transform:translateY(-50%);
    pointer-events:none;
  }
}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;background:var(--linen);color:var(--charcoal);overflow-x:hidden}
body.has-mouse{cursor:none}
body.has-mouse a,body.has-mouse button,body.has-mouse input,body.has-mouse select,body.has-mouse .service-item{cursor:none}
img{max-width:100%;display:block}

/* CURSOR
   mix-blend-mode:difference makes an element auto-invert against
   whatever is underneath it (light or dark section, photo, etc.)
   so it stays visible everywhere. It's kept on the outer ring only
   (a thin outline) -- putting it on the solid dot too caused a
   real problem: the dot is the same --terra teal as most of the
   site's own buttons, and difference-blending a color against an
   identical color always computes to solid black. That meant the
   dot stamped a black smudge on every teal button/CTA it passed
   over (e.g. "Send My Enquiry"). The dot stays flat teal so it
   never blackens the site's own buttons; the ring still adapts. */
.cursor,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);z-index:9999;transition:opacity .3s}
.cursor{width:10px;height:10px;background:var(--terra);z-index:10000;transition:transform .15s,background .2s}
.cursor-ring{width:36px;height:36px;border:1.5px solid rgba(67,197,219,.4);transition:transform .08s;mix-blend-mode:difference}
.cursor.grow{transform:translate(-50%,-50%) scale(2.5);background:rgba(67,197,219,.2)}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:1.4rem 4rem;display:flex;align-items:center;justify-content:space-between;transition:background .4s,box-shadow .4s}
nav.scrolled{background:rgba(247,242,235,.95);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 1px 0 var(--border)}
.nav-logo{font-family:'Outfit', sans-serif;font-size:1.6rem;font-weight:700;color:var(--charcoal);text-decoration:none;letter-spacing:-.5px}
.nav-logo span{color:var(--terra);font-style:italic}
.nav-links{display:flex;gap:2.2rem;list-style:none;align-items:center}
.nav-links a{font-size:.85rem;font-weight:500;color:var(--slate);text-decoration:none;transition:color .2s}
.nav-links a:hover{color:var(--terra)}
.nav-cta{background:var(--charcoal)!important;color:var(--linen)!important;padding:.65rem 1.4rem!important;border-radius:100px;font-weight:600!important;transition:background .2s,transform .15s!important}
.nav-cta:hover{background:var(--terra)!important;transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;z-index:210;position:relative}
.hamburger span{display:block;width:24px;height:2px;background:var(--charcoal);border-radius:2px;transition:all .3s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* mobile-nav moved to animation upgrades block */
.mobile-nav a{font-family:'Outfit', sans-serif;font-size:2rem;color:rgba(247,242,235,.75);text-decoration:none;font-style:italic;transition:color .2s}
.mobile-nav a:hover{color:var(--terra)}
.mobile-nav .mob-cta{background:var(--terra);color:#fff;padding:.8rem 2rem;border-radius:100px;font-style:normal;font-size:1rem;font-weight:600;font-family:'Outfit',sans-serif;margin-top:1rem}

/* FLOATING CALL BTN */
.float-cta{position:fixed;bottom:2rem;right:2rem;z-index:180;background:var(--terra);color:#fff;border:none;border-radius:100px;padding:.8rem 1.6rem;font-family:'Outfit',sans-serif;font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:8px;box-shadow:0 8px 30px rgba(67,197,219,.4);transition:transform .2s,box-shadow .2s;text-decoration:none}
.float-cta:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(67,197,219,.5)}
.float-cta svg{width:16px;height:16px;fill:white}

/* HERO */
/* -- BROCHURE HERO -- */
.hero-brochure{width:100%;background:#fff;padding-top:72px;position:relative;z-index:1}
.hero-top{display:grid;grid-template-columns:1fr 1fr 1fr;min-height:340px}
.hero-photo{position:relative;overflow:hidden;min-height:340px;flex-shrink:0}
.hero-photo img,.hero-photo-placeholder{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo-placeholder{background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-primary) 100%);display:flex;align-items:center;justify-content:center;min-height:340px}
.hero-photo-placeholder svg{opacity:.3}
.hero-photo-placeholder .photo-label{position:absolute;bottom:1.25rem;left:1.25rem;background:rgba(37,50,92,.6);backdrop-filter:blur(8px);color:#fff;font-size:.72rem;font-weight:500;padding:.4rem .85rem;border-radius:100px;letter-spacing:.3px}
.hero-centre{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-left:1px solid var(--border);border-right:1px solid var(--border);background:#fff}
.hero-logo-mark{font-family:'Outfit', sans-serif;font-size:2.8rem;font-weight:700;color:var(--charcoal);letter-spacing:-1.5px;line-height:1;margin-bottom:.25rem}
.hero-logo-mark span{color:var(--terra);font-style:italic}
.hero-logo-sub{font-size:.65rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:1.75rem}
.hero-contact-row{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.75rem}
.hero-contact-item{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.82rem;color:var(--slate)}
.hero-contact-item a{color:var(--terra);font-weight:600;text-decoration:none}
.hero-contact-item a:hover{text-decoration:underline}
.hero-contact-icon{width:16px;height:16px;flex-shrink:0}
.hero-divider{width:48px;height:2px;background:var(--sage);border-radius:2px;margin:.25rem auto .5rem}
.hero-right-panel{display:flex;flex-direction:column;padding:2rem 2.5rem;justify-content:space-between}
.ndis-badge{display:inline-flex;align-items:center;gap:.75rem;background:var(--brand-secondary);border-radius:14px;padding:.85rem 1.4rem;width:fit-content;box-shadow:0 4px 20px rgba(37,50,92,.3)}
.ndis-badge-logo{background:#fff;border-radius:8px;padding:.5rem .9rem;display:flex;align-items:center}
.ndis-badge-logo-text{font-size:1.5rem;font-weight:900;color:var(--brand-secondary);letter-spacing:-2px;font-family:'Outfit',sans-serif;line-height:1}
.ndis-badge-text{color:#fff;font-size:.82rem;font-weight:500;line-height:1.4}
.ndis-badge-text span{display:block;font-size:1.05rem;font-weight:700}
.hero-tagline{font-family:'Outfit', sans-serif;font-size:1.6rem;font-weight:700;color:var(--charcoal);line-height:1.25;margin-top:1rem}
.hero-tagline em{font-style:italic;color:var(--terra)}
.hero-tagline-sub{font-size:.85rem;color:var(--muted);margin-top:.4rem;font-weight:300}

/* BOTTOM PANELS */
.hero-bottom{display:grid;grid-template-columns:1fr 1fr;border-top:3px solid var(--terra)}
.hero-who{background:var(--charcoal);padding:3rem 3.5rem;position:relative;overflow:hidden}
.hero-who::before{content:'';position:absolute;top:-80px;left:-80px;width:300px;height:300px;border-radius:50%;background:rgba(67,197,219,.08)}
.hero-who-inner{position:relative;z-index:1}
.hero-who-label{font-size:.7rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--sage);margin-bottom:.75rem;display:block}
.hero-who h2{font-family:'Outfit', sans-serif;font-size:clamp(1.8rem,2.5vw,2.8rem);font-weight:700;color:#fff;line-height:1.1;margin-bottom:1.25rem}
.hero-who h2 em{font-style:italic;color:var(--terra)}
.hero-who-text{font-size:.92rem;color:rgba(247,242,235,.55);font-weight:300;margin-bottom:1.75rem;max-width:420px}
.hero-who-values{display:flex;flex-direction:column;gap:.6rem;margin-bottom:2rem}
.hero-who-val{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:rgba(247,242,235,.75);font-weight:400}
.hero-who-val-dot{width:6px;height:6px;border-radius:50%;background:var(--terra);flex-shrink:0}
.hero-ndis-reg{display:inline-flex;align-items:center;gap:.75rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.75rem 1.25rem}
.hero-ndis-heart{font-size:1.6rem}
.hero-ndis-reg-text{font-size:.72rem;color:rgba(247,242,235,.5);line-height:1.5}
.hero-ndis-reg-text strong{color:#fff;display:block;font-size:.85rem}
.hero-care-photo{position:relative;overflow:hidden;min-height:400px}
.hero-care-photo img,.hero-care-placeholder{width:100%;height:100%;object-fit:cover;display:block}
.hero-care-photo iframe{position:absolute;inset:0;display:block;object-fit:cover}
.hero-care-placeholder{background:linear-gradient(160deg,#ffffff 0%,var(--bg-alt) 100%);display:flex;align-items:center;justify-content:center;min-height:400px}
.hero-care-photo-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(37,50,92,.5) 0%,transparent 50%)}
.hero-care-caption{position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;color:#fff;z-index:2}
.hero-care-caption-text{font-family:'Outfit', sans-serif;font-size:1rem;font-style:italic;line-height:1.5;opacity:.9}
.hero-care-caption-name{font-size:.75rem;color:rgba(255,255,255,.6);margin-top:.25rem;font-weight:500}
.hero-who-btns{display:flex;gap:.75rem;margin-top:1.75rem;flex-wrap:wrap}
.btn-terra-sm{background:var(--terra);color:#fff;padding:.7rem 1.5rem;border-radius:100px;font-size:.82rem;font-weight:600;border:none;text-decoration:none;transition:background .2s,transform .15s;display:inline-block}
.btn-terra-sm:hover{background:var(--terra-dark);transform:translateY(-1px)}
.btn-outline-light{background:transparent;color:rgba(247,242,235,.7);padding:.7rem 1.5rem;border-radius:100px;font-size:.82rem;font-weight:500;border:1px solid rgba(247,242,235,.2);text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.btn-outline-light:hover{background:rgba(255,255,255,.08);color:#fff}
@keyframes breathe{0%,100%{transform:scale(1) translate(0,0);opacity:.7}50%{transform:scale(1.15) translate(30px,-20px);opacity:1}}
.hero-left{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:8rem 4rem 4rem}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:100px;padding:.4rem 1rem;font-size:.75rem;font-weight:600;letter-spacing:.5px;color:var(--slate);margin-bottom:2rem;width:fit-content;box-shadow:0 2px 12px rgba(37,50,92,.06);animation:fadeUp .6s ease both}
.badge-dot{width:7px;height:7px;background:var(--sage);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(67,197,219,.6)}50%{box-shadow:0 0 0 6px rgba(67,197,219,0)}}
.hero-headline{font-family:'Outfit', sans-serif;font-size:clamp(3rem,5vw,5.5rem);line-height:1.0;font-weight:700;color:var(--charcoal);letter-spacing:-2px;margin-bottom:1.5rem;overflow:hidden}
.hero-headline em{font-style:italic;color:var(--terra);display:block}
.word{display:inline-block;animation:slideUp .6s cubic-bezier(.22,1,.36,1) both}
.word:nth-child(1){animation-delay:.1s}.word:nth-child(2){animation-delay:.2s}.word:nth-child(3){animation-delay:.3s}.word:nth-child(4){animation-delay:.4s}
@keyframes slideUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.hero-sub{font-size:1.05rem;font-weight:300;line-height:1.8;color:var(--muted);max-width:440px;margin-bottom:2.5rem;animation:fadeUp .8s .5s ease both}
.hero-btns{display:flex;gap:1rem;align-items:center;animation:fadeUp .8s .7s ease both;flex-wrap:wrap}
.btn-terra{background:var(--terra);color:#fff;padding:.9rem 2rem;border-radius:100px;font-size:.9rem;font-weight:600;border:none;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-block;letter-spacing:.2px}
.btn-terra:hover{background:var(--terra-dark);transform:translateY(-2px);box-shadow:0 12px 32px rgba(67,197,219,.3)}
.btn-ghost-dark{background:transparent;color:var(--charcoal);padding:.9rem 2rem;border-radius:100px;font-size:.9rem;font-weight:500;border:1.5px solid var(--charcoal);text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;gap:8px}
.btn-ghost-dark:hover{background:var(--charcoal);color:var(--linen)}
.arrow{transition:transform .2s}
.btn-ghost-dark:hover .arrow{transform:translateX(4px)}
.hero-right{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;padding:8rem 4rem 4rem 0}
.hero-visual{width:100%;max-width:460px;display:flex;flex-direction:column;gap:1rem;animation:fadeUp .8s .4s ease both}
.hero-img-card{background:var(--charcoal);border-radius:24px;height:280px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:1.5rem}
.hero-img-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(67,197,219,.15) 0%,rgba(67,197,219,.1) 100%)}
.hero-illustration{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.hero-img-caption{position:relative;z-index:1;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:.8rem 1.2rem;width:100%;display:flex;align-items:center;gap:12px}
.caption-avatar{width:36px;height:36px;border-radius:50%;background:var(--terra);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1rem}
.caption-text{color:#fff;font-size:.8rem;line-height:1.4}
.caption-name{font-weight:600;font-size:.85rem}
@media(min-width:99999px){
  nav{padding:1rem 1.25rem}
  .nav-links{display:none}
  .hamburger{display:flex}
  .hero-left{padding:7rem 1.25rem 3rem}
  section,.about-section,.what-section,.how-section,.tac-section,.why-section,.team-section,.testimonial-section,.accom-section,.cta-section{padding:4rem 1.25rem}
  .what-inner{grid-template-columns:1fr;gap:2rem}
  .what-left{position:static}
  .steps-grid{grid-template-columns:1fr;gap:2rem}
  .team-grid{grid-template-columns:1fr}
  .testi-card{min-width:100%}
  .footer-top{grid-template-columns:1fr;gap:2rem}
  .float-cta span{display:none}
  .float-cta{padding:.9rem 1.1rem;border-radius:50%}
  .testi-header{flex-direction:column;align-items:flex-start}
}


.nav-links a.active-link{color:var(--terra)}
.nav-links a.active-link::after{width:100%}


/* -- Section entrance animations (CSS only, no JS needed) -- */
@keyframes fadeSlideUp{
  from{opacity:0;transform:translateY(42px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeSlideLeft{
  from{opacity:0;transform:translateX(-32px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

/* Apply to key content blocks with staggered delays.
   These sit hidden (opacity:0) until their section scrolls into
   view, at which point script.js's IntersectionObserver adds
   .in-view to the section and the animation plays. Previously
   these animations fired unconditionally at page-load time, so
   anything below the fold had already finished animating before
   a visitor scrolled down to see it. */
.js .about-section .about-inner > *,
.js .what-section .what-inner > *,
.js .how-section .how-title,
.js .how-section .how-sub,
.js .how-section .steps-grid,
.js .tac-section .tac-inner > *,
.js .why-section .why-inner > *,
.js .team-section .team-title,
.js .team-section .team-sub,
.js .team-section .team-grid,
.js .testimonial-section .testi-header,
.js .testimonial-section .testi-track-wrap,
.js .accom-section .accom-inner > *,
.js .cta-section .cta-inner,
.js #about > div > *,
.js .stacked-service .stacked-media,
.js .stacked-service .stacked-content,
.js .who-we-are-section .who-we-are-inner > *,
.js .icon-grid-dark .icon-grid,
.js .core-services-section .core-services-grid,
.js .video-playlist-section .video-playlist,
.js .dark-band .dark-band-list
{
  opacity: 0;
}

.about-section.in-view .about-inner > *,
.what-section.in-view .what-inner > *,
.how-section.in-view .how-title,
.how-section.in-view .how-sub,
.how-section.in-view .steps-grid,
.tac-section.in-view .tac-inner > *,
.why-section.in-view .why-inner > *,
.team-section.in-view .team-title,
.team-section.in-view .team-sub,
.team-section.in-view .team-grid,
.testimonial-section.in-view .testi-header,
.testimonial-section.in-view .testi-track-wrap,
.accom-section.in-view .accom-inner > *,
.cta-section.in-view .cta-inner,
#about.in-view > div > *,
.stacked-service.in-view .stacked-media,
.stacked-service.in-view .stacked-content,
.who-we-are-section.in-view .who-we-are-inner > *,
.icon-grid-dark.in-view .icon-grid,
.core-services-section.in-view .core-services-grid,
.video-playlist-section.in-view .video-playlist,
.dark-band.in-view .dark-band-list
{
  animation:fadeSlideUp .9s cubic-bezier(.22,1,.36,1) both;
}

/* Stagger children */
.about-section.in-view .about-inner > *:nth-child(2),
.what-section.in-view .what-inner > *:nth-child(2),
.tac-section.in-view .tac-inner > *:nth-child(2),
.accom-section.in-view .accom-inner > *:nth-child(2),
#about.in-view > div > *:nth-child(2)
{ animation-delay:.15s }

.how-section.in-view .how-sub{ animation-delay:.1s }
.how-section.in-view .steps-grid{ animation-delay:.2s }
.why-section.in-view .why-inner > *:nth-child(2){ animation-delay:.15s }
.team-section.in-view .team-sub{ animation-delay:.1s }
.team-section.in-view .team-grid{ animation-delay:.2s }
.testimonial-section.in-view .testi-track-wrap{ animation-delay:.15s }

.team-section.in-view .team-grid .team-card:nth-child(1){ animation:fadeSlideUp .6s .1s cubic-bezier(.22,1,.36,1) both }
.team-section.in-view .team-grid .team-card:nth-child(2){ animation:fadeSlideUp .6s .22s cubic-bezier(.22,1,.36,1) both }
.team-section.in-view .team-grid .team-card:nth-child(3){ animation:fadeSlideUp .6s .34s cubic-bezier(.22,1,.36,1) both }

.how-section.in-view .steps-grid .step:nth-child(1){ animation:fadeSlideUp .6s .1s cubic-bezier(.22,1,.36,1) both }
.how-section.in-view .steps-grid .step:nth-child(2){ animation:fadeSlideUp .6s .2s cubic-bezier(.22,1,.36,1) both }
.how-section.in-view .steps-grid .step:nth-child(3){ animation:fadeSlideUp .6s .3s cubic-bezier(.22,1,.36,1) both }
.how-section.in-view .steps-grid .step:nth-child(4){ animation:fadeSlideUp .6s .4s cubic-bezier(.22,1,.36,1) both }

.hero-brochure .hero-top{ animation:fadeIn .6s ease both }
.hero-brochure .hero-bottom{ animation:fadeSlideUp .7s .2s cubic-bezier(.22,1,.36,1) both }

/* ------------------------------------------
   LIFE & ANIMATION UPGRADES
------------------------------------------ */

/* -- Staggered hero words with bounce -- */
@keyframes bounceIn{
  0%{opacity:0;transform:translateY(60px) scale(.9)}
  60%{transform:translateY(-8px) scale(1.02)}
  80%{transform:translateY(4px) scale(.99)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
.word{animation:bounceIn .7s cubic-bezier(.22,1,.36,1) both}







/* -- Button sweep fill effect -- */
.btn-terra,.btn-terra-sm,.nav-cta,.mob-cta{
  position:relative;overflow:hidden;
  transition:color .3s,transform .2s,box-shadow .2s;
}
.btn-terra::after,.btn-terra-sm::after,.nav-cta::after{
  content:'';position:absolute;inset:0;
  background:rgba(255,255,255,.18);
  transform:translateX(-101%);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.btn-terra:hover::after,.btn-terra-sm:hover::after,.nav-cta:hover::after{transform:translateX(0)}
.btn-ghost-dark{position:relative;overflow:hidden;transition:color .3s,background .3s,border-color .3s,transform .2s}
.btn-ghost-dark::after{content:'';position:absolute;inset:0;background:var(--charcoal);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1);z-index:-1}
.btn-ghost-dark:hover::after{transform:scaleX(1)}
.btn-ghost-dark:hover{color:var(--linen)!important;border-color:var(--charcoal)}

/* -- Nav link animated underline -- */
.nav-links a{position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--terra);transition:width .3s cubic-bezier(.22,1,.36,1);border-radius:2px}
.nav-links a:hover::after{width:100%}

/* -- Card tilt (3D perspective on hover) -- */
.tilt-card{transform-style:preserve-3d;will-change:transform;transition:transform .15s ease,box-shadow .3s}
.tilt-card:hover{box-shadow:0 24px 60px rgba(37,50,92,.13)!important}

/* -- Service item alive hover -- */
.service-item{transition:padding .3s,background .25s,border-radius .25s}
.service-item:hover{background:rgba(67,197,219,.03);border-radius:12px;padding-left:.75rem;padding-right:.75rem}
.service-icon-wrap{transition:background .25s,transform .3s}
.service-item:hover .service-icon-wrap{transform:scale(1.12) rotate(-5deg)}

/* -- Team card deep hover -- */
.team-card{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;overflow:hidden}
.team-card-top{overflow:hidden}
.team-card-top img{transition:transform .5s cubic-bezier(.22,1,.36,1)}
.team-card:hover .team-card-top img{transform:scale(1.08)}
.team-card-body{padding:1.5rem}
.team-name{font-size:1.05rem;font-weight:700;margin-bottom:.25rem}
.team-role{font-size:.85rem;font-weight:600;margin-bottom:.75rem}
.team-bio{font-size:.9rem;line-height:1.6}

/* -- Stat blocks pulse -- */
@keyframes statPop{
  0%{transform:scale(.85);opacity:0}
  60%{transform:scale(1.05)}
  100%{transform:scale(1);opacity:1}
}
.stat-block .stat-num{animation:statPop .8s cubic-bezier(.22,1,.36,1) both}
.stat-block:nth-child(2) .stat-num{animation-delay:.15s}
.stat-block:nth-child(3) .stat-num{animation-delay:.3s}

/* -- Step cards hover -- */
.step{transition:transform .3s}
.step:hover{transform:translateY(-8px)}
.step-num{transition:background .3s,transform .3s,box-shadow .3s}
.step:hover .step-num{box-shadow:0 0 0 6px rgba(67,197,219,.15)}

/* -- Accom type row hover -- */
.accom-type{transition:border-color .2s,transform .25s,box-shadow .25s,background .2s}
.accom-type:hover{transform:translateX(8px);box-shadow:4px 0 20px rgba(67,197,219,.1);background:#fff}

/* -- Removed service hover -- */
.tac-service{transition:border-color .2s,background .2s,transform .2s,padding-left .2s}
.tac-service:hover{transform:translateX(6px);padding-left:1.75rem}

/* -- Ticker: pause on hover, variable speed -- */
.ticker-track{animation:ticker 28s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}


/* Subtle grain on linen bg */
body::before{
  content:'';position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events:none!important!important;z-index:0;opacity:.4;
}

/* -- Parallax bleed section -- */
.parallax-section{
  position:relative;height:440px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.parallax-bg{
  position:absolute;inset:-20%;
  background:#ffffff;
  background-image:url('https://images.unsplash.com/photo-1531983412531-1f49a365ffed?w=1600&q=80&auto=format&fit=crop');
  background-size:cover;background-position:center;
  transition:transform .1s linear;
  filter:brightness(.38);
}
.parallax-content{
  position:relative;z-index:1;text-align:center;padding:2rem 4rem;max-width:800px;
}
.parallax-quote{
  font-family:'Outfit', sans-serif;
  font-size:clamp(1.8rem,3.5vw,3.2rem);
  font-style:italic;font-weight:400;
  color:#fff;line-height:1.3;margin-bottom:1.25rem;
}
.parallax-quote strong{font-style:normal;color:var(--terra)}
.parallax-sub{font-size:.9rem;color:rgba(255,255,255,.5);letter-spacing:2px;text-transform:uppercase;font-weight:500}

/* -- GIANT watermark text scrolling behind why section -- */
.why-section{position:relative;overflow:hidden}
.why-watermark{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'Outfit', sans-serif;
  font-size:clamp(8rem,18vw,18rem);
  font-weight:700;font-style:italic;
  color:rgba(255,255,255,.03);
  white-space:nowrap;pointer-events:none;
  letter-spacing:-4px;
  animation:watermarkDrift 20s ease-in-out infinite alternate;
}
@keyframes watermarkDrift{
  from{transform:translate(-52%,-50%)}
  to{transform:translate(-48%,-50%)}
}

/* -- Floating label form fields -- */
.form-group{position:relative;margin-bottom:0}
.form-group .form-field{padding:1.4rem 1.25rem .5rem;height:3.5rem}
.form-group label{
  /* Form fields render as solid white boxes (see .form-field below), so a
     white/translucent-white label here was invisible against the field's
     own background -- this was a real, pre-existing bug on both the
     Contact and Careers forms, not just a Contact-page issue. */
  position:absolute;left:1.25rem;top:50%;transform:translateY(-50%);
  font-size:.9rem;color:var(--muted-neutral);
  transition:all .2s cubic-bezier(.22,1,.36,1);pointer-events:none;
  transform-origin:left top;
}
.form-group .form-field:focus ~ label,
.form-group .form-field:not(:placeholder-shown) ~ label{
  top:.55rem;transform:translateY(0) scale(.75);
  color:var(--brand-primary);font-weight:500;
}
/* Needs !important: a later, unrelated rule sets
   .form-field::placeholder{color:var(--muted-neutral)!important}, which
   otherwise wins over this non-important rule regardless of the higher
   specificity here, leaving the placeholder visibly rendered in the same
   spot as the floating label above it -- the doubled/ghosted text seen
   in every field. */
.form-group .form-field::placeholder{color:transparent!important}

/* .form-error-msg had ZERO CSS anywhere, so these <p> tags rendered
   as normal always-visible block text -- every field's error message
   showed permanently instead of only appearing after a failed submit.
   The JS (contact/careers forms) already toggles a "show" class on
   invalid submit; this just needs to actually hide/reveal it. */
.form-error-msg{display:none;margin:.4rem 0 0;font-size:.8rem;color:#dc2626;}
.form-error-msg.show{display:block;}

/* -- Ripple on click -- */
@keyframes ripple{
  to{transform:scale(4);opacity:0}
}
.ripple-dot{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.35);
  width:20px;height:20px;
  animation:ripple .6s linear forwards;
  pointer-events:none;
  transform-origin:center;
}

/* -- Testimonial card hover -- */
.testi-card{transition:box-shadow .3s;cursor:default}
.testi-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(37,50,92,.1)}

/* -- NDIS callout cards -- */
.ndis-value-card{
  border-radius:16px;padding:1.5rem;text-align:center;
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;
  cursor:default;
}
.ndis-value-card:hover{transform:translateY(-8px) scale(1.02)!important}

/* -- About value rows -- */
.about-value{transition:border-color .2s,transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s}
.about-value:hover{box-shadow:0 8px 28px rgba(37,50,92,.08)}

/* -- Mobile nav slide-in -- */
.mobile-nav{display:flex!important;visibility:hidden;transition:transform .4s cubic-bezier(.22,1,.36,1),visibility .4s}
.mobile-nav.open{visibility:visible}

/* -- Swipe hint on testimonials -- */
.swipe-hint{display:none;font-size:.75rem;color:var(--muted);text-align:center;margin-top:.75rem}
@media(min-width:99999px){.swipe-hint{display:block}}

/* -- Bold oversized section intro numbers -- */
.giant-label{
  font-family:'Outfit', sans-serif;
  font-size:clamp(5rem,12vw,10rem);
  font-weight:700;font-style:italic;
  color:var(--terra);opacity:.08;
  line-height:1;display:block;
  margin-bottom:-2.5rem;
  letter-spacing:-3px;
  pointer-events:none;
}

/* -- Hero contact items animated -- */
.hero-contact-item{transition:transform .2s}
.hero-contact-item:hover{transform:translateX(4px)}

/* -- Floating CTA pulse -- */
.float-cta{animation:floatPulse 3s ease-in-out infinite}
@keyframes floatPulse{
  0%,100%{box-shadow:0 8px 30px rgba(67,197,219,.4),0 0 0 0 rgba(67,197,219,.3)}
  50%{box-shadow:0 12px 40px rgba(67,197,219,.5),0 0 0 12px rgba(67,197,219,0)}
}
.float-cta:hover{animation:none}

/* -- Outlined text accent -- */
.text-outline{
  -webkit-text-stroke:2px var(--terra);
  color:transparent;
  font-style:italic;
}

/* ------------------------------------------
   PREMIUM HOMEPAGE REDESIGN
------------------------------------------ */
:root{
  --brand-paper:#FFFFFF;
  --brand-white:#FFFFFF;
  --brand-black:var(--brand-secondary);
  --brand-ink:var(--brand-secondary);
  --brand-muted:var(--text-secondary);
  --brand-primary-accent-dark:var(--brand-secondary);
  --brand-primary-accent-soft:rgba(67,197,219,.35);
  --brand-border:rgba(37,50,92,.11);
  --brand-shadow:0 22px 70px rgba(37,50,92,.10);
  --brand-shadow-soft:0 12px 34px rgba(37,50,92,.08);
  --container:1400px;
}

.container{width:min(var(--container),calc(100% - 48px));margin-inline:auto}
.section{padding:clamp(4.5rem,7vw,7rem) 0}
.card{background:var(--brand-white);border:1px solid var(--brand-border);border-radius:var(--radius-card);box-shadow:var(--brand-shadow-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;border-radius:999px;text-decoration:none;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.section-title{font-family:'Outfit', sans-serif;font-size:clamp(2.2rem,4vw,4rem);line-height:1.05;letter-spacing:0;color:var(--brand-ink)}

body{background:linear-gradient(180deg,var(--brand-cream) 0%,var(--bg-alt) 48%,var(--brand-cream) 100%);color:var(--brand-ink)}
main.homepage{position:relative;z-index:1;overflow:hidden}

nav{
  top:18px;left:50%;right:auto;transform:translateX(-50%);
  width:min(var(--container),calc(100% - 40px));
  padding:.85rem .95rem .85rem 1.25rem;
  border:1px solid rgba(37,50,92,.08);
  border-radius:999px;
  background:rgba(255,253,248,.86);
  box-shadow:0 12px 40px rgba(37,50,92,.08);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
nav.scrolled{background:rgba(255,253,248,.94);box-shadow:0 16px 50px rgba(37,50,92,.11)}
.nav-logo{font-size:1.45rem;padding-left:.25rem}
.nav-links{gap:.35rem}
.nav-links a{display:inline-flex;align-items:center;min-height:38px;padding:0 .85rem;border-radius:999px;font-size:.84rem;color:var(--brand-muted)}
.nav-links a:hover,.nav-links a.active-link{color:var(--brand-primary-accent);background:rgba(67,197,219,.08)}
.nav-links a::after{display:none}
.nav-cta{background:var(--brand-black)!important;color:#fff!important;padding:0 1.15rem!important;box-shadow:0 10px 24px rgba(37,50,92,.16)}
.nav-cta:hover{background:var(--brand-primary-accent)!important;color:#fff!important}

.float-cta{
  right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);
  min-height:48px;padding:.85rem 1.25rem;border-radius:999px;
  background:linear-gradient(135deg,var(--brand-primary-accent),var(--brand-primary));
  box-shadow:0 16px 42px rgba(67,197,219,.34);
}

.hero-brochure{
  background:
    radial-gradient(circle at 10% 12%,rgba(67,197,219,.12),transparent 30%),
    linear-gradient(180deg,var(--bg-alt) 0%,var(--brand-cream) 100%);
  padding:clamp(7rem,10vw,8.5rem) 0 clamp(4rem,7vw,6rem);
}
.hero-top{
  width:min(var(--container),calc(100% - 48px));
  margin:0 auto;
  grid-template-columns:minmax(240px,.95fr) minmax(260px,.9fr) minmax(280px,1.05fr);
  gap:1rem;
  min-height:420px;
  align-items:stretch;
}
.hero-photo,.hero-centre,.hero-right-panel{
  border-radius:var(--radius-card);
  border:1px solid var(--brand-border);
  box-shadow:var(--brand-shadow-soft);
  overflow:hidden;
}
.hero-photo{min-height:420px;background:var(--brand-secondary)}
.hero-photo img{min-height:420px;filter:saturate(.94) contrast(1.03)}
.hero-centre{
  justify-content:space-between;
  padding:2.5rem 2rem;
  background:rgba(255,255,255,.88);
  border-left:1px solid var(--brand-border);
  border-right:1px solid var(--brand-border);
}
.hero-logo-mark{font-size:clamp(2.8rem,4vw,3.8rem);letter-spacing:0;margin-top:.25rem}
.hero-logo-sub{font-size:.72rem;color:var(--brand-muted);margin-bottom:1.35rem}
.hero-divider{background:linear-gradient(90deg,transparent,var(--brand-primary-accent),transparent);width:80px}
.hero-contact-row{gap:.8rem;margin:1.5rem 0}
.hero-contact-item{
  justify-content:flex-start;
  width:100%;
  padding:.85rem 1rem;
  border:1px solid rgba(37,50,92,.08);
  border-radius:15px;
  background:rgba(247,242,235,.58);
  color:var(--brand-ink);
}
.hero-contact-item a{color:var(--brand-primary-accent-dark)}
.hero-contact-icon{color:var(--brand-primary-accent)}
.hero-right-panel{
  padding:2.25rem;
  background:linear-gradient(145deg,#fff 0%,var(--brand-primary-soft) 100%);
  gap:2rem;
}
.ndis-badge{
  border-radius:18px;
  padding:1rem 1.2rem;
  box-shadow:0 18px 42px rgba(37,50,92,.22);
}
.hero-tagline{
  max-width:420px;
  font-size:clamp(2rem,3.7vw,3.35rem);
  letter-spacing:0;
  line-height:1.03;
}
.hero-tagline-sub{font-size:.95rem;color:var(--brand-muted);margin-top:1rem}

.hero-bottom{
  width:min(var(--container),calc(100% - 48px));
  margin:1rem auto 0;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  border-top:0;
  gap:1rem;
  align-items:stretch;
}
.hero-who,.hero-care-photo{
  min-height:500px;
  border-radius:var(--radius-card);
  box-shadow:var(--brand-shadow);
}
.hero-who{
  padding:clamp(2rem,4vw,4rem);
  background:
    radial-gradient(circle at 15% 0%,rgba(67,197,219,.22),transparent 34%),
    linear-gradient(145deg,#ffffff,var(--bg-alt));
}
.hero-who::before{background:rgba(67,197,219,.12)}
.hero-who-label{color:var(--brand-primary-accent-soft)}
.hero-who h2{font-size:clamp(2.35rem,4vw,4rem)!important;letter-spacing:0!important}
.hero-who-text{
  max-width:560px;
  font-size:1rem;
  line-height:1.85;
  color:rgba(247,242,235,.72);
}
.hero-who-btns{gap:.9rem;margin-top:2rem}
.btn-terra-sm,.btn-terra{
  padding:.9rem 1.35rem;
  background:linear-gradient(135deg,var(--brand-primary-accent),var(--brand-primary));
  color:#fff;
  box-shadow:0 12px 28px rgba(67,197,219,.25);
}
.btn-outline-light{
  padding:.9rem 1.35rem;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}
.hero-ndis-reg{
  border-radius:18px;
  padding:.9rem 1.15rem;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.13);
}
.hero-care-photo{
  min-height:500px;
  background:var(--brand-secondary);
  border:1px solid rgba(255,255,255,.08);
}
.hero-care-photo iframe{width:100%;height:100%;border:0}

.ticker{
  width:min(var(--container),calc(100% - 48px));
  margin:0 auto clamp(4rem,7vw,6rem);
  border-radius:999px;
  background:var(--brand-black);
  box-shadow:var(--brand-shadow-soft);
}
.ticker-item{color:rgba(247,242,235,.66)}

footer{
  padding:clamp(4rem,6vw,5.5rem) 0 2rem;
  background:
    radial-gradient(circle at 10% 0%,rgba(67,197,219,.14),transparent 28%),
    linear-gradient(180deg,#ffffff 0%,var(--bg-alt) 100%);
}
.footer-top,.footer-bottom{
  width:min(var(--container),calc(100% - 48px));
  margin-inline:auto;
}
.footer-top{
  grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(140px,1fr));
  gap:clamp(2rem,4vw,4rem);
  padding-bottom:3rem;
}
.footer-logo{font-size:2.1rem}
.footer-tagline{max-width:420px;color:rgba(247,242,235,.5);font-size:.94rem}
.footer-ack{max-width:500px;color:rgba(247,242,235,.34)}
.footer-col-title{color:rgba(247,242,235,.48)}
.footer-links{gap:.85rem}
.footer-links a{color:rgba(247,242,235,.58);font-size:.9rem}
.footer-bottom{padding-top:.25rem}
.social-btn{border-radius:999px;width:38px;height:38px;background:rgba(255,255,255,.03)}

@media(min-width:99999px){
  nav{width:calc(100% - 28px);top:12px}
  .nav-links{gap:.15rem}
  .nav-links a{padding:0 .62rem;font-size:.8rem}
  .hero-top{grid-template-columns:1fr 1fr}
  .hero-right-panel{grid-column:1 / -1}
  .hero-tagline{max-width:680px}
}

@media(min-width:99999px){
  .container{width:calc(100% - 32px)}
  nav{border-radius:22px;padding:.85rem 1rem}
  .hamburger{display:flex}
  .nav-links{display:none}
  .hero-brochure{padding-top:6.5rem}
  .hero-top,.hero-bottom,.ticker,.footer-top,.footer-bottom{width:calc(100% - 32px)}
  .hero-top,.hero-bottom{grid-template-columns:1fr;gap:.9rem}
  .hero-photo,.hero-photo img{min-height:260px}
  .hero-centre{align-items:stretch;text-align:left;padding:1.5rem}
  .hero-logo-mark,.hero-logo-sub{text-align:center}
  .hero-divider{margin:.4rem auto}
  .hero-right-panel{padding:1.6rem}
  .hero-who,.hero-care-photo{min-height:auto}
  .hero-who{padding:2rem}
  .hero-care-photo{aspect-ratio:16/10;min-height:260px}
  .hero-who-btns{flex-direction:column;align-items:stretch}
  .btn{width:100%}
  .ticker{border-radius:18px;margin-bottom:3rem}
  .footer-top{grid-template-columns:1fr}
  .footer-bottom{align-items:flex-start;flex-direction:column}
}

@media(min-width:99999px){
  .hero-brochure{padding-top:5.75rem}
  .hero-top,.hero-bottom,.ticker,.footer-top,.footer-bottom{width:calc(100% - 24px)}
  .hero-photo,.hero-centre,.hero-right-panel,.hero-who,.hero-care-photo{border-radius:20px}
  .hero-contact-item{font-size:.78rem;padding:.8rem}
  .hero-tagline{font-size:2.25rem}
  .hero-who h2{font-size:2.4rem!important}
  .float-cta{width:48px;height:48px;padding:0;justify-content:center}
}

/* Elrok brand system */
:root{
  --brand-gradient:linear-gradient(135deg,var(--bg-alt) 0%,#ffffff 40%,var(--brand-primary) 100%);
  --text:var(--brand-secondary);
  --text-muted:var(--text-secondary);
  --glass:rgba(255,255,255,.76);
  --glass-border:rgba(67,197,219,.22);
  --brand-shadow:0 24px 70px rgba(37,50,92,.16);
  --brand-shadow-soft:0 14px 36px rgba(37,50,92,.10);
  --radius-card:20px;
  --radius-soft:20px;
}

body{
  background:linear-gradient(180deg,var(--surface-soft) 0%,var(--white) 45%,var(--surface-soft) 100%);
  color:var(--text);
}

a{color:var(--primary)}
a:hover{color:var(--brand-deep)}

nav{
  border:1px solid rgba(67,197,219,.24);
  background:rgba(255,255,255,.86);
  box-shadow:0 18px 55px rgba(37,50,92,.12);
}
nav.scrolled{background:rgba(255,255,255,.94);box-shadow:0 20px 60px rgba(37,50,92,.14)}
.nav-logo{
  display:inline-flex;
  align-items:center;
  padding-left:0;
  min-width:132px;
}
.nav-logo img{
  width:auto;
  height:46px;
  object-fit:contain;
}
.nav-links a{color:var(--text);font-weight:600}
.nav-links a:hover,.nav-links a.active-link{color:var(--brand-deep);background:rgba(67,197,219,.13)}
.nav-cta,
.btn-terra,
.btn-terra-sm,
.btn-submit,
.mobile-nav .mob-cta,
.float-cta{
  background:linear-gradient(135deg,var(--primary),var(--secondary))!important;
  color:var(--brand-deep)!important;
  border:0;
  border-radius:20px;
  box-shadow:0 14px 34px rgba(67,197,219,.28);
}
.nav-cta:hover,
.btn-terra:hover,
.btn-terra-sm:hover,
.btn-submit:hover,
.mobile-nav .mob-cta:hover,
.float-cta:hover{
  background:var(--brand-gradient)!important;
  color:var(--white)!important;
  transform:translateY(-2px);
  box-shadow:0 22px 48px rgba(37,50,92,.24);
}

.cursor{background:var(--primary)}
.cursor-ring{border-color:rgba(67,197,219,.45)}
.cursor.grow{background:rgba(67,197,219,.22)}

.mobile-nav{background:var(--brand-gradient)}
.mobile-nav a{color:rgba(255,255,255,.82)}
.mobile-nav a:hover{color:var(--secondary)}

.hero-brochure{
  background:
    radial-gradient(circle at 10% 12%,rgba(67,197,219,.20),transparent 28%),
    radial-gradient(circle at 88% 6%,rgba(37,50,92,.12),transparent 30%),
    linear-gradient(180deg,var(--bg-alt) 0%,#FFFFFF 58%,var(--bg-alt) 100%);
}
.hero-photo,
.hero-centre,
.hero-right-panel,
.hero-who,
.hero-care-photo,
.team-card,
.testi-card,
.hero-stat-card,
.about-value,
.accom-type,
.ndis-value-card,
.card{
  border-radius:20px;
  box-shadow:var(--brand-shadow-soft);
}
.hero-centre,
.hero-right-panel,
.team-card,
.testi-card,
.hero-stat-card,
.about-value,
.accom-type,
.ndis-value-card,
.card{
  background:var(--glass);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.hero-logo-img{
  width:min(230px,80%);
  height:auto;
  object-fit:contain;
  margin:0 auto .75rem;
}
.hero-divider,
.section-label,
.hero-contact-icon,
.ticker-item::after,
.team-role,
.testi-stars,
.quote-big,
.stat-num,
.hero-stat-num,
.tac-big,
.giant-label{
  color:var(--primary)!important;
}
.hero-divider{background:linear-gradient(90deg,transparent,var(--primary),transparent)}
.hero-contact-item{
  background:rgba(255,255,255,.72);
  border-color:rgba(67,197,219,.22);
  color:var(--text);
}
.hero-contact-item a{color:var(--brand-deep)}
.hero-tagline,
.about-title,
.what-title,
.how-title,
.team-title,
.testi-title,
.accom-title,
.section-title,
.service-name,
.team-name,
.testi-name,
.step-title,
.about-value-text,
.accom-type-name{
  color:var(--brand-deep);
}
.hero-tagline em,
.about-title em,
.what-title em,
.how-title em,
.team-title em,
.testi-title em,
.accom-title em,
.service-item:hover .service-name,
.service-item.open .service-name,
.why-title strong,
.parallax-quote strong{
  color:var(--primary)!important;
}
.hero-who,
.tac-section,
.why-section,
.about-visual,
.accom-visual,
.ticker,
footer{
  background:var(--brand-gradient)!important;
}
.hero-who-text,
.tac-copy,
.why-title,
.stat-label,
.footer-tagline,
.footer-ack,
.footer-links a,
.footer-copy{
  color:rgba(255,255,255,.78);
}
.hero-who-label,
.footer-col-title{color:var(--secondary)}
.btn-outline-light{
  border-color:rgba(255,255,255,.32);
  background:rgba(255,255,255,.12);
  border-radius:20px;
}
.btn-ghost-dark{
  color:var(--brand-deep);
  border-color:rgba(37,50,92,.35);
  border-radius:20px;
}
.btn-ghost-dark::after{background:var(--brand-gradient)}
.btn-ghost-dark:hover{color:var(--white)!important;border-color:var(--primary)}

.service-item:hover,
.tac-service:hover{
  background:rgba(67,197,219,.09);
  border-color:rgba(67,197,219,.32);
}
.service-icon-wrap,
.about-value-icon,
.accom-type-icon,
.testi-avatar{
  background:rgba(67,197,219,.14);
  color:var(--brand-deep);
  border-radius:16px;
}
.service-item.open .service-toggle,
.step:hover .step-num{
  background:var(--primary);
  border-color:var(--primary);
  color:var(--brand-deep);
}
.step-num{
  background:var(--brand-gradient);
  border-color:var(--white);
}

.cta-section{
  background:var(--brand-gradient)!important;
}
.form-field,
input,
select,
textarea{
  border-radius:20px!important;
}
.form-field{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.28);
  color:var(--white);
}
.form-field:focus{
  background:rgba(255,255,255,.20);
  border-color:var(--secondary);
  box-shadow:0 0 0 4px rgba(67,197,219,.16);
}
.form-field option{background:var(--brand-deep);color:var(--white)}
table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:var(--white);
  border:1px solid rgba(67,197,219,.20);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--brand-shadow-soft);
}
th{
  background:var(--brand-gradient);
  color:var(--white);
  text-align:left;
}
th,td{padding:1rem;border-bottom:1px solid rgba(67,197,219,.14)}
tr:last-child td{border-bottom:0}
.footer-logo{
  display:inline-flex;
  align-items:center;
  width:min(240px,100%);
}
.footer-logo img{
  width:100%;
  max-width:220px;
  height:auto;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.footer-links a:hover,
.social-btn:hover svg{color:var(--secondary);fill:var(--secondary)}
.social-btn:hover{border-color:var(--secondary);background:rgba(67,197,219,.12)}

@keyframes floatPulse{
  0%,100%{box-shadow:0 12px 34px rgba(67,197,219,.30),0 0 0 0 rgba(67,197,219,.28)}
  50%{box-shadow:0 18px 46px rgba(67,197,219,.42),0 0 0 12px rgba(67,197,219,0)}
}

@media(min-width:99999px){
  nav{
    left:12px;
    right:auto;
    width:min(640px,calc(100vw - 24px));
    max-width:calc(100% - 24px);
    transform:none;
    box-sizing:border-box;
  }
  .hamburger{
    display:flex;
    position:absolute;
    top:50%;
    right:18px;
    transform:translateY(-50%);
    margin-left:0;
  }
  .nav-logo{min-width:auto}
  .nav-logo img{height:42px}
  .hero-logo-img{width:min(210px,72%)}
}

@media(min-width:99999px){
  nav{width:366px;max-width:calc(100vw - 24px)}
}

/* Focused homepage hero */
.focused-hero{
  position:relative;
  min-height:clamp(620px,82vh,820px);
  padding:clamp(7rem,10vw,8.5rem) clamp(1rem,4vw,3rem) clamp(3rem,6vw,5rem);
  overflow:hidden;
  background:var(--brand-deep);
}
.focused-hero-bg,
.focused-hero-overlay{
  position:absolute;
  inset:0;
}
.focused-hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.92) contrast(1.03);
  transform:scale(1.04);
}
.focused-hero-overlay{
  background:
    radial-gradient(circle at 74% 42%,rgba(67,197,219,.24),transparent 30%),
    linear-gradient(90deg,rgba(37,50,92,.55) 0%,rgba(37,50,92,.34) 38%,rgba(37,50,92,.72) 100%),
    linear-gradient(180deg,rgba(37,50,92,.12) 0%,rgba(37,50,92,.62) 100%);
}
.focused-hero-inner{
  position:relative;
  z-index:1;
  min-height:calc(clamp(620px,82vh,820px) - clamp(10rem,16vw,13.5rem));
  margin:0 auto;
  align-items:center;
  justify-content:flex-end;
}
.focused-provider-card{
  width:min(560px,100%);
  min-height:420px;
  padding:clamp(2rem,4vw,3.3rem);
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,255,255,.72));
  border:1px solid rgba(67,197,219,.34);
  box-shadow:0 30px 90px rgba(37,50,92,.26),0 0 0 1px rgba(255,255,255,.24) inset;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  justify-content:space-between;
  gap:2.5rem;
}
.focused-provider-card .provider-entity{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.18em;
  margin-bottom:1rem;
}
.focused-provider-card .ndis-badge{
  background:linear-gradient(135deg,var(--brand-deep),var(--brand-deep));
  box-shadow:0 18px 42px rgba(37,50,92,.24);
}
.focused-provider-card .ndis-badge-logo-text{color:var(--brand-deep)}
.focused-provider-card .hero-tagline{
  max-width:470px;
  font-size:clamp(2.75rem,5vw,4.6rem);
  line-height:1.02;
}
.focused-provider-card .hero-tagline-sub{
  font-weight:700;
  margin-top:1.2rem;
}

footer .footer-brand-name{
  font-size:1.08rem;
  font-weight:800;
  margin:.95rem 0 .25rem;
}
footer .footer-service-line{
  color:var(--secondary);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.footer-contact-list{
  display:grid;
  gap:.55rem;
  margin:1.25rem 0 1.35rem;
}
.footer-contact-list a{
  width:fit-content;
  color:rgba(255,255,255,.78);
  text-decoration:none;
  font-size:.94rem;
  font-weight:600;
}
.footer-contact-list a:hover{color:var(--secondary)}

@media(min-width:99999px){
  .focused-hero{min-height:auto}
  .focused-hero-inner{
    width:calc(100% - 32px);
    min-height:560px;
    justify-content:center;
  }
  .focused-provider-card{
    width:min(560px,100%);
    min-height:380px;
  }
}

@media(min-width:99999px){
  .focused-hero{
    padding:6.5rem .75rem 2rem;
  }
  .focused-hero-inner{
    width:calc(100% - 24px);
    min-height:520px;
    margin:0 auto;
  }
  .focused-provider-card{
    width:calc(100% - 24px);
    max-width:342px;
    box-sizing:border-box;
    min-height:0;
    padding:1.5rem;
    border-radius:24px;
    gap:2rem;
  }
  .focused-provider-card .hero-tagline{
    font-size:clamp(2.25rem,12vw,3rem);
  }
}

.ticker-item::after{content:'\2022'!important}
footer .footer-logo img{
  filter:none!important;
  background:var(--white);
  border-radius:8px;
}

/* Two-part homepage hero */
.focused-hero{
  min-height:auto;
  padding:clamp(7rem,10vw,8rem) clamp(1rem,4vw,3rem) clamp(3rem,5vw,4rem);
  background:
    radial-gradient(circle at 15% 14%,rgba(67,197,219,.16),transparent 28%),
    linear-gradient(180deg,var(--bg-alt) 0%,#FFFFFF 100%);
}
.focused-hero-inner{
  width:min(var(--container),calc(100% - 48px));
  min-height:clamp(520px,68vh,700px);
  display:flex;
  justify-content:initial;
  gap:clamp(1rem,2vw,1.5rem);
  border-radius:32px;
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(247,252,254,.78));
  border:1px solid rgba(67,197,219,.24);
  box-shadow:0 28px 86px rgba(37,50,92,.14);
}
.focused-hero-media{
  width:45%;
  min-width:0;
  position:relative;
  overflow:hidden;
  border-radius:32px 0 0 32px;
  background:var(--brand-deep);
}
.focused-hero-media::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(37,50,92,.12),rgba(37,50,92,.26));
  pointer-events:none;
}
.focused-hero-media img{
  display:block;
  transform:none;
  filter:saturate(.95) contrast(1.02);
}
.focused-hero-content{
  width:55%;
  align-items:center;
  padding:clamp(1.25rem,3.5vw,3rem);
}
.focused-provider-card{
  width:min(620px,100%);
  background:rgba(255,255,255,.9);
  border:1px solid rgba(67,197,219,.32);
  box-shadow:0 24px 70px rgba(37,50,92,.16);
}
.focused-provider-card .hero-tagline{
  font-size:clamp(2.7rem,4.7vw,4.8rem);
}

@media(min-width:99999px){
  .focused-hero-inner{width:calc(100% - 32px)}
  .focused-hero-media{width:40%}
  .focused-hero-content{width:60%;padding:clamp(1rem,3vw,2rem)}
  .focused-provider-card .hero-tagline{font-size:clamp(2.35rem,5vw,3.6rem)}
}

@media(min-width:99999px){
  .focused-hero{padding:6.5rem .75rem 2rem}
  .focused-hero-inner{
    width:100%;
    min-height:0;
    flex-direction:column;
    border-radius:28px;
  }
  .focused-hero-media,
  .focused-hero-content{
    width:100%;
  }
  .focused-hero-media{
    min-height:320px;
    aspect-ratio:4/3;
    border-radius:28px 28px 0 0;
  }
  .focused-hero-content{
    padding:1rem;
  }
  .focused-provider-card{
    width:100%;
    max-width:none;
    padding:1.4rem;
    border-radius:24px;
  }
  .focused-provider-card .provider-entity{
    font-size:.66rem;
    line-height:1.45;
  }
  .focused-provider-card .hero-tagline{
    font-size:clamp(2.1rem,11vw,3rem);
  }
}

/* Final homepage layout polish */
:root{
  --light-grey:var(--bg-alt);
  --text-muted:var(--muted-neutral);
}

.container{
  max-width:1400px;
  width:100%;
  margin:0 auto;
  padding:0 2rem;
  box-sizing:border-box;
}

body{
  color:var(--brand-deep);
}

nav#mainNav{
  position:sticky;
  top:16px;
  left:auto;
  right:auto;
  transform:none;
  z-index:100;
  box-sizing:border-box;
  width:min(1400px,calc(100% - 4rem));
  margin:16px auto 0;
  padding:1rem 1.25rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(229,231,235,.9);
  border-radius:999px;
  box-shadow:0 18px 50px rgba(37,50,92,.12);
}

nav#mainNav.scrolled{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 18px 50px rgba(37,50,92,.14);
}

nav#mainNav .nav-logo{
  min-width:0;
  padding:0;
}

nav#mainNav .nav-logo img{
  display:block;
}

nav#mainNav .nav-links{
  gap:.35rem;
}

.homepage{
  margin-top:-88px;
}

.focused-hero{
  padding:8.25rem 0 4.5rem;
  background:linear-gradient(180deg,var(--bg-alt) 0%,#ffffff 100%);
}

.focused-hero .container{
  max-width:1400px;
}

.focused-hero-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  gap:0;
  min-height:clamp(520px,70vh,700px);
  width:100%;
  padding:0;
  overflow:hidden;
  border-radius:0 28px 28px 0;
  background:#fff;
  border:1px solid var(--border);
  box-shadow:0 26px 70px rgba(37,50,92,.13);
}

.focused-hero-media{
  width:100%;
  min-height:100%;
  box-sizing:border-box;
  border-radius:0 8px 8px 0;
}

.focused-hero-media::after{
  background:linear-gradient(90deg,rgba(37,50,92,.04),rgba(37,50,92,.12));
}

.focused-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:0 8px 8px 0;
}

.focused-hero-content{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  gap:24px;
  padding:clamp(2rem,5vw,4rem);
}

.focused-provider-card{
  box-sizing:border-box;
  gap:24px;
  padding:clamp(2rem,4vw,3.5rem);
  border-radius:28px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(67,197,219,.24);
  box-shadow:0 22px 60px rgba(37,50,92,.12);
}

.focused-provider-card .provider-entity{
  margin-bottom:16px;
  color:var(--brand-deep);
}

.focused-provider-card .hero-tagline{
  color:var(--brand-deep);
  font-size:clamp(2.5rem,5vw,4rem);
  line-height:1.05;
  overflow-wrap:break-word;
}

.focused-provider-card .hero-tagline-sub{
  color:var(--text-muted);
}

.focused-provider-card .ndis-badge{
  background:var(--brand-deep);
}

.focused-provider-card .hero-tagline em,
.nav-links a:hover,
.nav-links a.active-link{
  color:var(--primary)!important;
}

.services-static-section{
  padding:4.5rem 0 5rem;
  background:#fff;
}

.services-static-section h2{
  margin:0 0 40px;
  color:var(--brand-deep);
  font-size:28px;
  line-height:1.2;
  font-weight:700;
  text-align:left;
}

.services-static-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}

.service-static-card{
  min-height:142px;
  padding:24px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 12px 32px rgba(37,50,92,.06);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.service-static-card:hover{
  transform:translateY(-4px);
  border-color:rgba(67,197,219,.36);
  box-shadow:0 18px 46px rgba(37,50,92,.1);
}

.service-static-icon{
  width:40px;
  height:40px;
  display:block;
  margin-bottom:18px;
  border-radius:50%;
  background:var(--primary);
  box-shadow:0 10px 24px rgba(67,197,219,.24);
}

.service-static-card h3{
  margin:0;
  color:var(--brand-deep);
  font-size:17px;
  line-height:1.35;
  font-weight:600;
}

.ticker{
  display:none!important;
}

section h2,
.section-title{
  margin-bottom:40px;
}

footer .footer-inner.container{
  max-width:1400px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
  padding-left:2rem;
  padding-right:2rem;
  box-sizing:border-box;
}

footer .footer-top{
  align-items:flex-start;
}

footer .footer-top > div{
  vertical-align:top;
}

footer .footer-logo{
  margin-bottom:1rem;
}

footer .footer-service-line{
  color:var(--muted-neutral)!important;
  font-size:13px;
  line-height:1.4;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}

footer .footer-col-title{
  margin-top:0;
  color:#fff;
}

.float-cta{
  color:#fff!important;
  box-shadow:0 12px 34px rgba(37,50,92,.28);
}

.float-cta:hover{
  box-shadow:0 16px 44px rgba(37,50,92,.34);
}

@media(min-width:99999px){
  nav#mainNav{
    left:0!important;
    right:0!important;
    transform:none!important;
    width:calc(100% - 1.5rem)!important;
    max-width:calc(100% - 1.5rem)!important;
    margin:12px .75rem 0!important;
    padding:.8rem 1rem;
    overflow:visible;
  }

  .focused-hero-inner{
    grid-template-columns:1fr 1fr;
    min-height:560px;
  }

  .focused-hero-content{
    padding:2rem;
  }

  .services-static-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(min-width:99999px){
  .container{
    padding:0 1rem;
  }

  nav#mainNav{
    top:12px;
    left:0!important;
    right:0!important;
    transform:none!important;
    width:calc(100% - 1.5rem)!important;
    max-width:calc(100% - 1.5rem)!important;
    margin:12px .75rem 0!important;
    padding:.8rem 1rem;
    overflow:visible;
  }

  nav#mainNav::after{
    content:'';
    position:absolute;
    right:28px;
    top:50%;
    width:24px;
    height:2px;
    background:var(--brand-deep);
    border-radius:2px;
    box-shadow:0 -7px 0 var(--brand-deep),0 7px 0 var(--brand-deep);
    transform:translateY(-50%);
    pointer-events:none;
    z-index:3;
  }

  nav#mainNav .nav-links{
    display:none;
  }

  nav#mainNav .hamburger{
    display:block!important;
    position:absolute;
    right:8px;
    top:0;
    width:64px;
    height:100%;
    margin-left:auto;
    padding:0;
    opacity:0;
    transform:none!important;
    z-index:4;
  }

  nav#mainNav .hamburger span{
    display:block;
    width:24px;
    height:2px;
    background:var(--brand-deep);
    border-radius:2px;
  }

  nav#mainNav .nav-logo img{
    height:42px;
    max-width:180px;
  }

  .homepage{
    margin-top:-78px;
  }

  .focused-hero{
    padding:7.25rem 0 2rem;
  }

  .focused-hero-inner{
    grid-template-columns:1fr;
    width:100%;
    min-height:0;
    border-radius:24px;
  }

  .focused-hero-media{
    min-height:320px;
    aspect-ratio:4/3;
    border-radius:24px 24px 8px 8px;
  }

  .focused-hero-media img{
    border-radius:24px 24px 8px 8px;
  }

  .focused-hero-content{
    padding:1rem;
  }

  .focused-provider-card{
    border-radius:20px;
    padding:1.5rem;
  }

  .focused-provider-card .hero-tagline{
    font-size:clamp(2.1rem,10vw,2.75rem);
  }

  .services-static-section{
    padding:3rem 0 3.5rem;
  }

  .services-static-grid{
    grid-template-columns:1fr;
  }

  footer .footer-inner.container{
    padding-left:1rem;
    padding-right:1rem;
  }
}

/* Authoritative homepage rebuild overrides */
:root{
  --white:#ffffff;
  --light-teal-wash:var(--brand-primary-soft);
  --body-text:var(--text-secondary);
}

html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

body{
  font-size:17px;
  line-height:1.7;
  color:var(--body-text);
  background:var(--white);
}

.inner-wrap{
  max-width:1400px;
  margin:0 auto;
  padding:0 2rem;
  box-sizing:border-box;
}

main.homepage{
  margin:0!important;
  overflow:visible!important;
}

main.homepage section{
  width:100%;
  padding:5rem 0;
}

main.homepage section h1,
main.homepage section h2,
main.homepage section h3{
  color:var(--brand-deep);
  font-weight:700;
}

nav#mainNav{
  position:sticky!important;
  top:0!important;
  left:0!important;
  right:0!important;
  z-index:100!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  display:block!important;
  background:rgba(255,255,255,.95)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:0!important;
  border-bottom:1px solid rgba(0,0,0,.06)!important;
  border-radius:0!important;
  box-shadow:none!important;
}

nav#mainNav.scrolled{
  background:rgba(255,255,255,.95)!important;
  box-shadow:none!important;
}

nav#mainNav .nav-inner{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}

nav#mainNav .nav-logo{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}

nav#mainNav .nav-logo img{
  width:auto;
  height:48px;
  max-width:190px;
  object-fit:contain;
}

nav#mainNav .nav-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.5rem;
  margin:0;
  padding:0;
  list-style:none;
}

nav#mainNav .nav-links a{
  color:var(--brand-deep);
  font-size:14px;
  font-weight:600;
  text-decoration:none;
}

nav#mainNav .nav-links a:hover,
nav#mainNav .nav-links a.active-link{
  color:var(--primary)!important;
  background:transparent;
}

nav#mainNav .nav-cta{
  background:var(--primary)!important;
  color:var(--white)!important;
  border-radius:999px!important;
  padding:.65rem 1.35rem!important;
}

nav#mainNav .nav-cta:hover{
  background:var(--brand-primary-hover)!important;
  color:var(--white)!important;
}

.focused-hero{
  background:var(--brand-deep)!important;
}

.focused-hero::after{
  content:'';
  position:absolute;
  top:0;
  right:0;
  width:55%;
  height:100%;
  background:linear-gradient(to right,transparent,rgba(10,20,40,.72));
  z-index:1;
  pointer-events:none;
}

.focused-hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  max-width:none;
  display:block;
}

.focused-hero-content-wrap{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  min-height:100vh;
}

.focused-hero-text{
  margin-left:auto;
  width:50%;
  padding:4rem 3rem 4rem 2rem;
  box-sizing:border-box;
}

.focused-provider-card{
  width:100%;
  min-height:0;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:32px;
}

.focused-provider-card .provider-entity{
  color:rgba(255,255,255,.7)!important;
  font-size:12px!important;
  line-height:1.5;
  letter-spacing:.1em!important;
  text-transform:uppercase;
  margin:0 0 16px!important;
}

.focused-provider-card .ndis-badge{
  background:rgba(37,50,92,.92)!important;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 18px 42px rgba(0,0,0,.24);
}

.focused-provider-card .hero-tagline{
  margin:0;
  color:var(--white)!important;
  font-size:clamp(2.8rem,5vw,4.2rem)!important;
  line-height:1.1!important;
  max-width:none;
}

.focused-provider-card .hero-tagline em{
  display:block;
  color:var(--primary)!important;
}

.focused-provider-card .hero-tagline-sub{
  margin-top:24px;
  color:rgba(255,255,255,.86)!important;
  font-size:17px;
  font-weight:600;
}

.stats-bar{
  background:var(--white);
}

.stats-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-around;
  gap:2rem;
  padding:3rem 0;
}

.stat-item{
  text-align:center;
  flex:1 1 0;
}

.stat-value{
  font-family:'Outfit', sans-serif;
  font-size:2.8rem;
  line-height:1.05;
  font-weight:700;
  color:var(--brand-deep);
  margin-bottom:.75rem;
}

.stat-label{
  font-size:.75rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted-neutral);
  font-weight:700;
}

.services-static-section{
  display:none!important;
}

.service-card{
  background:var(--light-teal-wash);
  border:1px solid var(--border);
  border-radius:12px;
  padding:2rem;
  overflow:hidden;
  position:relative;
}

.service-card::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity .4s ease;
}

.service-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(10,20,40,.65);
  opacity:0;
  transition:opacity .4s ease;
}

.service-card:hover::before,
.service-card:hover::after{
  opacity:1;
}

.service-card .card-content{
  position:relative;
  z-index:2;
  transition:color .4s ease;
}

.service-card:hover .card-content,
.service-card:hover .card-content *{
  color:var(--white)!important;
}

footer{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  background:var(--brand-deep)!important;
  color:rgba(255,255,255,.7);
  padding:0!important;
}

footer .footer-inner{
  max-width:1400px;
  margin:0 auto;
  padding:5rem 2rem 3rem;
  box-sizing:border-box;
}

footer .footer-top{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:3rem;
  align-items:start;
  padding:0!important;
  margin:0!important;
  border:0!important;
}

footer .footer-top > div{
  align-self:start;
}

footer .footer-logo{
  display:inline-flex;
  width:auto;
  max-width:220px;
  margin:0 0 1.5rem;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

footer .footer-logo img{
  display:block;
  width:auto;
  max-width:220px;
  height:auto;
  background:transparent!important;
  border-radius:0!important;
  filter:brightness(0) invert(1)!important;
  mix-blend-mode:screen;
}

footer .footer-brand-name{
  color:var(--white);
  font-size:17px;
  font-weight:700;
  margin:0 0 .75rem;
}

footer .footer-tagline{
  color:rgba(255,255,255,.65)!important;
  font-size:14px;
  line-height:1.7;
  margin:0 0 1rem;
}

.footer-social-row{
  display:flex;
  align-items:center;
  gap:8px;
  margin:1.25rem 0 1.5rem;
}

.footer-social-row a{
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  font-size:14px;
  font-weight:700;
  margin-right:0;
  text-decoration:none;
  transition:background .2s;
}

.footer-social-row a:hover{
  background:rgba(255,255,255,.15);
}

footer .footer-ack{
  color:rgba(255,255,255,.5);
  font-size:12px;
  line-height:1.7;
  max-width:360px;
}

footer .footer-col-title{
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--primary)!important;
  margin:0 0 1.5rem;
  font-weight:700;
}

footer .footer-links{
  list-style:none;
  margin:0;
  padding:0;
}

footer .footer-links a{
  color:rgba(255,255,255,.7)!important;
  font-size:14px;
  line-height:2.2;
  text-decoration:none;
  font-weight:400;
}

footer .footer-links a:hover{
  color:var(--white)!important;
}

.newsletter-text{
  color:rgba(255,255,255,.6);
  font-size:13px;
  line-height:1.6;
  margin:0 0 1rem;
}

.newsletter-form{
  margin:0 0 1rem;
}

.newsletter-form input{
  width:100%;
  padding:10px 14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  border-radius:6px;
  color:var(--white);
  font-size:14px;
  margin-bottom:8px;
}

.newsletter-form input::placeholder{
  color:rgba(255,255,255,.5);
}

.newsletter-form button{
  width:100%;
  padding:10px;
  background:var(--primary);
  color:var(--white);
  border:0;
  border-radius:6px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.05em;
  cursor:pointer;
  transition:background .2s;
}

.newsletter-form button:hover{
  background:var(--brand-primary-hover);
}

.footer-contact-small{
  display:grid;
  gap:.2rem;
  margin-top:1rem;
}

.footer-contact-small a{
  color:rgba(255,255,255,.6);
  font-size:13px;
  line-height:2;
  text-decoration:none;
}

.footer-contact-small a:hover{
  color:var(--white);
}

footer .footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:3rem;
  padding-top:1.5rem;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:rgba(255,255,255,.4);
  font-size:12px;
}

footer .footer-copy{
  color:rgba(255,255,255,.4);
}

.float-cta{
  background:var(--brand-deep)!important;
  color:var(--white)!important;
}

@media(min-width:99999px){
  .inner-wrap{
    padding:0 1.5rem;
  }

  main.homepage section{
    padding:3rem 0;
  }

  nav#mainNav .nav-inner{
    min-height:70px;
  }

  nav#mainNav .nav-links{
    display:none;
  }

  nav#mainNav .hamburger{
    display:block!important;
    position:absolute!important;
    right:1.5rem;
    top:50%;
    width:48px;
    height:48px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    opacity:0!important;
    padding:0;
    margin-left:auto;
    transform:translateY(-50%)!important;
    z-index:3;
  }

  nav#mainNav::after{
    display:none!important;
  }

  nav#mainNav .nav-inner{
    position:relative;
  }

  nav#mainNav .nav-inner::after{
    content:'';
    position:absolute;
    right:1.5rem;
    top:50%;
    width:24px;
    height:2px;
    background:var(--brand-deep);
    border-radius:2px;
    box-shadow:0 -7px 0 var(--brand-deep),0 7px 0 var(--brand-deep);
    transform:translateY(-50%);
    pointer-events:none;
  }

  .focused-hero,
  .focused-hero-content-wrap{
    min-height:100vh;
  }

  .focused-hero::after{
    left:0;
    right:0;
    width:100%;
    background:linear-gradient(180deg,rgba(10,20,40,.18),rgba(10,20,40,.76));
  }

  .focused-hero-text{
    width:100%;
    margin-left:0;
    padding:2rem 1.5rem;
    align-self:flex-end;
    overflow:hidden;
  }

  .focused-provider-card .hero-tagline{
    max-width:100%;
    overflow-wrap:break-word;
    font-size:clamp(2.2rem,10vw,2.8rem)!important;
  }

  .stats-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2.5rem 1.25rem;
  }

  .stat-value{
    font-size:2.25rem;
  }

  footer .footer-inner{
    padding:3rem 1.5rem;
  }

  footer .footer-top{
    grid-template-columns:1fr;
    gap:2.25rem;
  }

  footer .footer-bottom{
    flex-direction:column;
  }
}

/* Final mobile viewport guard */
.inner-wrap{
  width:100%;
}

@media(min-width:99999px){
  nav#mainNav .nav-inner{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0 1.5rem!important;
    position:relative!important;
    box-sizing:border-box!important;
  }

  nav#mainNav .nav-links{
    display:none!important;
  }

  nav#mainNav .hamburger{
    display:block!important;
    position:absolute!important;
    right:1.5rem!important;
    top:50%!important;
    width:48px!important;
    height:48px!important;
    opacity:0!important;
    transform:translateY(-50%)!important;
    z-index:3!important;
  }

  nav#mainNav .nav-inner::after{
    content:''!important;
    position:absolute!important;
    right:1.5rem!important;
    top:50%!important;
    width:24px!important;
    height:2px!important;
    display:block!important;
    background:var(--brand-deep)!important;
    border-radius:2px!important;
    box-shadow:0 -7px 0 var(--brand-deep),0 7px 0 var(--brand-deep)!important;
    transform:translateY(-50%)!important;
    pointer-events:none!important;
  }
}

.page-hero {
  width: 100%;
  background: linear-gradient(135deg, #ffffff 0%, var(--bg-alt) 100%);
  padding: 5rem 0 4rem;
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2300b8b8' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

.page-hero-inner {
  position: relative;
  z-index: 1;
}

.page-hero .section-label {
  color: var(--primary);
  opacity: 0.9;
}

.page-hero-title {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.1;
  margin: 0.75rem 0 1rem;
  letter-spacing: -1px;
}

.page-hero-title em {
  font-style: italic;
  color: var(--primary);
}

.page-hero-sub {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.68);
  font-weight: 300;
  max-width: 580px;
  line-height: 1.7;
  margin: 0;
}

/* Photo variant of .page-hero, same principle as .service-hero-full: the
   image now paints edge-to-edge on this outer section (no card margin,
   radius, or shadow) so it fills the full page width and sits directly on
   the page instead of floating as an inset rounded card. .page-hero-inner
   still carries .inner-wrap to keep the text readable and gutter-padded.
   Each page sets which photo to use via an inline --hero-img custom
   property on the <section>. */
.page-hero.page-hero-photo {
  position: relative;
  min-height: 56vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  background-image: linear-gradient(rgba(15, 21, 38, 0.62), rgba(15, 21, 38, 0.62)), var(--hero-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* Full-viewport hero trial -- only applied where .hero-xl is added
   (currently just index.html) so it can be tried on one page first.
   background-size:cover keeps the photo's own aspect ratio and crops
   rather than stretching, so it won't distort -- but at very tall
   viewports a modest-resolution source image can start to look soft
   once it's scaled up that far. */
.page-hero.page-hero-photo.hero-xl {
  min-height: 100vh;
}
.page-hero.page-hero-photo::before {
  display: none;
}
/* Homepage hero image only: slight brightness/contrast/saturation lift on
   the photo itself, plus a soft white vignette + faint wash layered above
   it. Scoped to .hero-xl (index.html only) so no other .page-hero-photo
   page is affected. The filtered image moves to ::before so the filter
   doesn't also wash out the text/button sitting on top. */
.page-hero.page-hero-photo.hero-xl {
  background-image: none;
}
.page-hero.page-hero-photo.hero-xl::before {
  display: block;
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(15, 21, 38, 0.62), rgba(15, 21, 38, 0.62)), var(--hero-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: brightness(1.12) contrast(0.96) saturate(0.95);
  z-index: 0;
  pointer-events: none;
}
.page-hero.page-hero-photo.hero-xl::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(255, 255, 255, 0) 45%, rgba(255, 255, 255, 0.35) 100%),
    rgba(255, 255, 255, 0.08);
  z-index: 1;
  pointer-events: none;
}
.page-hero.page-hero-photo.hero-xl .page-hero-inner {
  z-index: 2;
}
.page-hero.page-hero-photo .page-hero-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  padding: 3rem 2rem;
  box-sizing: border-box;
}
.page-hero.page-hero-photo .page-hero-title,
.page-hero.page-hero-photo .page-hero-title em {
  color: #ffffff !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}
.page-hero.page-hero-photo .page-hero-sub {
  color: rgba(255, 255, 255, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45);
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
.page-hero.page-hero-photo .section-label {
  color: rgba(255, 255, 255, 0.9) !important;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.4);
}
.page-hero.page-hero-photo .btn-terra,
.page-hero.page-hero-photo .btn-service-secondary {
  margin-top: 0.5rem;
}
@media (min-width: 99999px) {
  .page-hero.page-hero-photo {
    min-height: 48vh;
  }
  .page-hero.page-hero-photo .page-hero-inner {
    padding: 2.5rem 1.25rem;
  }
}

@media (min-width: 99999px) {
  .page-hero {
    padding: 3.5rem 0 3rem;
  }
  .page-hero-title {
    font-size: clamp(2rem, 8vw, 2.8rem);
  }
}

/* Final nav visibility and shared curved footer treatment */
nav#mainNav,
#mainNav,
.site-nav {
  box-shadow: none !important;
  color: var(--color-text) !important;
}

nav#mainNav.scrolled,
#mainNav.scrolled,
.site-nav.scrolled {
  background: #ffffff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

nav#mainNav .nav-logo,
#mainNav .nav-logo,
.site-nav .nav-logo {
  align-items: center !important;
  opacity: 1 !important;
  visibility: visible !important;
  color: var(--color-primary) !important;
  transition: none !important;
}

nav#mainNav .nav-logo img,
#mainNav .nav-logo img,
.site-nav .nav-logo img {
  max-height: 48px !important;
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
}


.about-section {
  background: var(--white);
  padding: 5rem 0;
}

.about-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}

@media (min-width: 99999px) {
  .about-inner {
    grid-template-columns: 1fr;
  }
}

/* Theycare-style homepage hero and floating nav overrides.
   NOTE: this was originally a bare "main" element selector, which
   meant it silently zeroed out padding-top/margin-top on EVERY
   <main> on every page (not just the homepage) via !important --
   including .service-page's own padding-top:72px fix (the one that
   clears the fixed nav on all 8 individual service pages). Scoped
   to main.homepage only, which is what "Theycare-style homepage
   hero" actually refers to. */
main.homepage,
.homepage {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#mainNav.scrolled,
nav#mainNav.scrolled {
  background: rgba(255, 255, 255, 0.15) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
}

#mainNav .nav-inner,
nav#mainNav .nav-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 1.1rem 2rem !important;
  min-height: 0 !important;
}

#mainNav .nav-logo img,
nav#mainNav .nav-logo img {
  height: 48px !important;
  width: auto !important;
  object-fit: contain !important;
  filter: brightness(0) invert(1) !important;
  transition: filter 0.3s !important;
}

/* Final homepage proof-card and stats bridge */

/* Final hero overflow and stats bridge refinement */

/* Homepage proof-card and stats bridge */

.focused-hero {
  padding-bottom: 4rem !important;
}

.hero-proof-card {
  bottom: -3rem !important;
}

.stats-bar {
  margin-top: -40px !important;
  padding: 3.5rem 0 2.5rem !important;
  box-shadow: 0 -4px 40px rgba(0,0,0,0.06) !important;
  border-radius: 12px 12px 0 0 !important;
}

@media (min-width: 99999px) {
  .hero-proof-card {
    bottom: -3rem !important;
    left: 1.5rem !important;
    top: auto !important;
  }
}

#mainNav .nav-links li a,
nav#mainNav .nav-links li a {
  color: rgba(255, 255, 255, 0.85) !important;
}

#mainNav .nav-links li a:hover,
nav#mainNav .nav-links li a:hover {
  color: #ffffff !important;
}

#mainNav .nav-links li a.active,
#mainNav .nav-links li a.active-link,
nav#mainNav .nav-links li a.active,
nav#mainNav .nav-links li a.active-link {
  color: #ffffff !important;
  font-weight: 500 !important;
}

#mainNav .nav-links li a::before,
nav#mainNav .nav-links li a::before {
  content: '' !important;
  position: absolute !important;
  top: 2px !important;
  left: 2px !important;
  display: block !important;
  width: 8px !important;
  height: 8px !important;
  background: transparent !important;
  border-top: 1.5px solid rgba(255,255,255,0.9) !important;
  border-left: 1.5px solid rgba(255,255,255,0.9) !important;
  border-bottom: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  pointer-events: none !important;
}

#mainNav .nav-links li a::after,
nav#mainNav .nav-links li a::after {
  content: '' !important;
  position: absolute !important;
  right: 2px !important;
  bottom: 2px !important;
  left: auto !important;
  display: block !important;
  width: 8px !important;
  height: 8px !important;
  background: transparent !important;
  border-bottom: 1.5px solid rgba(255,255,255,0.9) !important;
  border-right: 1.5px solid rgba(255,255,255,0.9) !important;
  border-top: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  pointer-events: none !important;
}

#mainNav .nav-cta,
nav#mainNav .nav-cta {
  border: 1.5px solid rgba(255,255,255,0.7) !important;
  color: #ffffff !important;
  padding: 7px 18px !important;
  border-radius: 6px !important;
  font-weight: 500 !important;
  transition: background 0.2s !important;
  backdrop-filter: blur(4px) !important;
}

#mainNav .nav-cta:hover,
nav#mainNav .nav-cta:hover {
  background: rgba(255,255,255,0.2) !important;
}

.focused-hero {
  overflow: hidden !important;
  background: var(--bg-alt) !important;
  padding: 0 !important;
}

.focused-hero::after {
  display: none !important;
}

.focused-hero-image {
  max-width: none !important;
}

.hero-image-fade {
  left: 30%;
  background: linear-gradient(to right, transparent, var(--bg-alt));
}

.hero-blur-edge {
  position: absolute;
  top: 0;
  left: 28%;
  width: 32%;
  height: 100%;
  backdrop-filter: blur(5px) brightness(1.05);
  -webkit-backdrop-filter: blur(5px) brightness(1.05);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 40%, rgba(0,0,0,1) 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 40%, rgba(0,0,0,1) 100%);
  z-index: 2;
  pointer-events: none;
}

.hero-right-panel,
.focused-provider-card {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.hero-tagline,
.focused-provider-card .hero-tagline {
  font-size: clamp(2.8rem, 5vw, 4.5rem) !important;
  font-weight: 700 !important;
  color: var(--brand-secondary) !important;
  line-height: 1.08 !important;
  letter-spacing: -1px !important;
  margin: 0 0 0.5rem !important;
}

.hero-tagline em,
.focused-provider-card .hero-tagline em {
  display: inline !important;
  font-style: italic !important;
  color: var(--brand-primary) !important;
}

.hero-tagline-sub,
.focused-provider-card .hero-tagline-sub {
  color: var(--text-secondary) !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  margin-top: 1rem !important;
}

.provider-entity,
.focused-provider-card .provider-entity {
  color: var(--muted-neutral) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin-bottom: 1rem !important;
}

.focused-hero-content-wrap {
  z-index: 4 !important;
  padding-top: 5rem !important;
}

.focused-hero-text {
  margin-left: auto !important;
  width: 46% !important;
  padding: 3rem 3rem 3rem 2rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.5rem !important;
}

.hero-proof-card {
  position: absolute;
  bottom: 3rem;
  left: 2rem;
  z-index: 5;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 8px;
  padding: 1.25rem 1.75rem;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

.hero-proof-num {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--brand-secondary);
  font-family: 'Outfit', sans-serif;
  line-height: 1;
  margin-bottom: 0.25rem;
}

.hero-proof-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-neutral);
  margin-bottom: 0.5rem;
}

.hero-proof-stars {
  color: var(--brand-primary);
  font-size: 0.9rem;
  letter-spacing: 2px;
}

@media (min-width: 99999px) {
  #mainNav .nav-inner,
  nav#mainNav .nav-inner {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 1rem 1.5rem !important;
  }

  #mainNav .hamburger span,
  nav#mainNav .hamburger span {
    background: #ffffff !important;
  }

  #mainNav.scrolled .hamburger span,
  nav#mainNav.scrolled .hamburger span {
    background: var(--brand-deep) !important;
  }

  #mainNav .nav-inner::after,
  nav#mainNav .nav-inner::after {
    background: #ffffff !important;
    box-shadow: 0 -7px 0 #ffffff, 0 7px 0 #ffffff !important;
  }

  #mainNav.scrolled .nav-inner::after,
  nav#mainNav.scrolled .nav-inner::after {
    background: var(--brand-deep) !important;
    box-shadow: 0 -7px 0 var(--brand-deep), 0 7px 0 var(--brand-deep) !important;
  }

  .focused-hero-image {
    width: 100% !important;
    height: 50vh !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
  }

  .focused-hero-text {
    width: 100% !important;
    margin-left: 0 !important;
    padding: 2rem 1.5rem !important;
  }

  .focused-hero-content-wrap {
    flex-direction: column !important;
    align-items: flex-start !important;
    min-height: auto !important;
    padding-top: 0 !important;
  }

  .hero-image-fade,
  .hero-blur-edge {
    display: none !important;
  }

  .hero-proof-card {
    top: calc(50vh - 7rem);
    bottom: auto;
    left: 1.5rem;
  }
}

/* Final nav correction: remove top gap and refine floating hero nav */
html,
body {
  margin: 0 !important;
  padding: 0 !important;
}

.homepage,
main.homepage {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Removed: a leftover rule here forced .cursor/.cursor-ring to
   width:0!important;height:0!important, which shrank the custom
   cursor to nothing sitewide -- while body.has-mouse still hid the
   real OS pointer via cursor:none. Net effect: no visible cursor
   at all on every page that had the #cursor/#cursorRing markup
   (index, about, services, team, stories, careers, contact,
   resources). position:fixed and pointer-events:none were already
   redundant with the base .cursor,.cursor-ring rule above. */

#mainNav,
nav#mainNav {
  right: auto !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#mainNav.scrolled,
nav#mainNav.scrolled {
  position: fixed !important;
  top: 0 !important;
  background: rgba(255,255,255,0.18) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
  border-bottom: 1px solid rgba(255,255,255,0.25) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.06) !important;
}

.nav-logo img,
#mainNav .nav-logo img,
nav#mainNav .nav-logo img {
  height: 48px !important;
  width: auto !important;
  object-fit: contain !important;
  filter: brightness(0) invert(1) !important;
  transition: filter 0.3s !important;
  background: transparent !important;
}

.nav-links li a,
#mainNav .nav-links li a,
nav#mainNav .nav-links li a {
  position: relative !important;
  padding: 5px 10px !important;
  display: inline-block !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  text-decoration: none !important;
  background: transparent !important;
}

.nav-links li a:hover,
#mainNav .nav-links li a:hover,
nav#mainNav .nav-links li a:hover {
  color: #ffffff !important;
}

.nav-links li a.active,
.nav-links li a.active-link,
#mainNav .nav-links li a.active,
#mainNav .nav-links li a.active-link,
nav#mainNav .nav-links li a.active,
nav#mainNav .nav-links li a.active-link {
  color: #ffffff !important;
  font-weight: 500 !important;
}

.nav-links li a::before,
.nav-links li a::after,
#mainNav .nav-links li a::before,
#mainNav .nav-links li a::after,
nav#mainNav .nav-links li a::before,
nav#mainNav .nav-links li a::after {
  content: '' !important;
  position: absolute !important;
  width: 5px !important;
  height: 5px !important;
  opacity: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
}

.nav-links li a::before,
#mainNav .nav-links li a::before,
nav#mainNav .nav-links li a::before {
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  border-top: 1.5px solid rgba(255,255,255,0.9) !important;
  border-left: 1.5px solid rgba(255,255,255,0.9) !important;
  border-bottom: 0 !important;
  border-right: 0 !important;
  transform: translate(4px, 4px) !important;
}

.nav-links li a::after,
#mainNav .nav-links li a::after,
nav#mainNav .nav-links li a::after {
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  top: auto !important;
  display: block !important;
  border-bottom: 1.5px solid rgba(255,255,255,0.9) !important;
  border-right: 1.5px solid rgba(255,255,255,0.9) !important;
  border-top: 0 !important;
  border-left: 0 !important;
  transform: translate(-4px, -4px) !important;
}

.nav-links li a:hover::before,
.nav-links li a:hover::after,
.nav-links li a.active::before,
.nav-links li a.active::after,
.nav-links li a.active-link::before,
.nav-links li a.active-link::after,
#mainNav .nav-links li a:hover::before,
#mainNav .nav-links li a:hover::after,
#mainNav .nav-links li a.active::before,
#mainNav .nav-links li a.active::after,
#mainNav .nav-links li a.active-link::before,
#mainNav .nav-links li a.active-link::after,
nav#mainNav .nav-links li a:hover::before,
nav#mainNav .nav-links li a:hover::after,
nav#mainNav .nav-links li a.active::before,
nav#mainNav .nav-links li a.active::after,
nav#mainNav .nav-links li a.active-link::before,
nav#mainNav .nav-links li a.active-link::after {
  opacity: 1 !important;
  transform: translate(0, 0) !important;
}

.nav-cta,
#mainNav .nav-cta,
nav#mainNav .nav-cta {
  display: inline-block !important;
  border: 1.5px solid rgba(255,255,255,0.75) !important;
  color: #ffffff !important;
  padding: 7px 18px !important;
  border-radius: 6px !important;
  background: rgba(255,255,255,0.08) !important;
  font-weight: 500 !important;
  font-size: 0.88rem !important;
  text-decoration: none !important;
  transition: background 0.2s ease !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  box-shadow: none !important;
  transform: none !important;
}

.nav-cta:hover,
#mainNav .nav-cta:hover,
nav#mainNav .nav-cta:hover {
  background: rgba(255,255,255,0.2) !important;
  color: #ffffff !important;
}

.nav-cta::before,
.nav-cta::after,
#mainNav .nav-cta::before,
#mainNav .nav-cta::after,
nav#mainNav .nav-cta::before,
nav#mainNav .nav-cta::after {
  display: none !important;
}

#mainNav.scrolled .nav-cta:hover,
nav#mainNav.scrolled .nav-cta:hover {
  background: rgba(67,197,219,0.08) !important;
}

.hero-brochure.focused-hero,
section.focused-hero {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

@media (min-width: 99999px) {
  #mainNav .nav-inner,
  nav#mainNav .nav-inner {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Auto nav theme switching */
.nav-logo,
#mainNav .nav-logo,
nav#mainNav .nav-logo {
  display: flex !important;
  align-items: center !important;
}

/* DEFAULT - white text for dark hero backgrounds */
#mainNav .nav-links li a,
nav#mainNav .nav-links li a {
  color: rgba(255,255,255,0.9) !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  transition: color 0.25s ease !important;
}

#mainNav .nav-links li a:hover,
#mainNav .nav-links li a.active,
#mainNav .nav-links li a.active-link,
nav#mainNav .nav-links li a:hover,
nav#mainNav .nav-links li a.active,
nav#mainNav .nav-links li a.active-link {
  color: #ffffff !important;
  font-weight: 500 !important;
}

#mainNav .nav-links li a::before,
nav#mainNav .nav-links li a::before {
  border-top-color: rgba(255,255,255,0.9) !important;
  border-left-color: rgba(255,255,255,0.9) !important;
}

#mainNav .nav-links li a::after,
nav#mainNav .nav-links li a::after {
  border-bottom-color: rgba(255,255,255,0.9) !important;
  border-right-color: rgba(255,255,255,0.9) !important;
}

#mainNav .nav-cta,
nav#mainNav .nav-cta {
  border-color: rgba(255,255,255,0.75) !important;
  color: rgba(255,255,255,0.9) !important;
  background: rgba(255,255,255,0.08) !important;
}

/* DARK TEXT - when hero background is light */
#mainNav.nav-dark-text .nav-links li a,
nav#mainNav.nav-dark-text .nav-links li a {
  color: rgba(37,50,92,0.85) !important;
  text-shadow: none !important;
}

#mainNav.nav-dark-text .nav-links li a:hover,
#mainNav.nav-dark-text .nav-links li a.active,
#mainNav.nav-dark-text .nav-links li a.active-link,
nav#mainNav.nav-dark-text .nav-links li a:hover,
nav#mainNav.nav-dark-text .nav-links li a.active,
nav#mainNav.nav-dark-text .nav-links li a.active-link {
  color: var(--brand-secondary) !important;
  font-weight: 600 !important;
}

#mainNav.nav-dark-text .nav-links li a::before,
nav#mainNav.nav-dark-text .nav-links li a::before {
  border-top-color: var(--brand-primary) !important;
  border-left-color: var(--brand-primary) !important;
}

#mainNav.nav-dark-text .nav-links li a::after,
nav#mainNav.nav-dark-text .nav-links li a::after {
  border-bottom-color: var(--brand-primary) !important;
  border-right-color: var(--brand-primary) !important;
}

#mainNav.nav-dark-text .nav-cta,
nav#mainNav.nav-dark-text .nav-cta {
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
  background: transparent !important;
}

#mainNav.nav-dark-text .nav-cta:hover,
nav#mainNav.nav-dark-text .nav-cta:hover {
  background: rgba(67,197,219,0.08) !important;
}

#mainNav.nav-dark-text .nav-logo img,
nav#mainNav.nav-dark-text .nav-logo img {
  filter: none !important;
}

/* SCROLLED STATE - always glassy with brand deep */
#mainNav.scrolled .nav-links li a,
nav#mainNav.scrolled .nav-links li a {
  color: rgba(37,50,92,0.85) !important;
}

#mainNav.scrolled .nav-links li a:hover,
#mainNav.scrolled .nav-links li a.active,
#mainNav.scrolled .nav-links li a.active-link,
nav#mainNav.scrolled .nav-links li a:hover,
nav#mainNav.scrolled .nav-links li a.active,
nav#mainNav.scrolled .nav-links li a.active-link {
  color: var(--brand-secondary) !important;
}

#mainNav.scrolled .nav-links li a::before,
nav#mainNav.scrolled .nav-links li a::before {
  border-top-color: var(--brand-primary) !important;
  border-left-color: var(--brand-primary) !important;
}

#mainNav.scrolled .nav-links li a::after,
nav#mainNav.scrolled .nav-links li a::after {
  border-bottom-color: var(--brand-primary) !important;
  border-right-color: var(--brand-primary) !important;
}

#mainNav.scrolled .nav-cta,
nav#mainNav.scrolled .nav-cta {
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
  background: transparent !important;
}

#mainNav.scrolled .nav-logo img,
nav#mainNav.scrolled .nav-logo img {
  filter: none !important;
}

/* Final end-of-file homepage proof-card and stats bridge */
#mainNav,
nav#mainNav {
  position: absolute !important;
  background: transparent !important;
  border-bottom: none !important;
}

.nav-logo,
#mainNav .nav-logo,
nav#mainNav .nav-logo {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.focused-hero {
  position: relative !important;
  width: 100% !important;
  min-height: 100vh !important;
  overflow: visible !important;
  margin-top: 0 !important;
  padding-bottom: 3rem !important;
}

.hero-image-container {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 58% !important;
  height: 100% !important;
  overflow: hidden !important;
}

.focused-hero-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 58% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 25% !important;
  overflow: hidden !important;
}

.hero-image-container .focused-hero-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 25% !important;
}

.hero-proof-card {
  position: absolute !important;
  bottom: -2.5rem !important;
  left: 3rem !important;
  z-index: 10 !important;
  background: rgba(255,255,255,0.97) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-radius: 8px !important;
  padding: 1.25rem 1.75rem !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1) !important;
}

.stats-bar {
  position: relative !important;
  z-index: 5 !important;
  background: #ffffff !important;
  margin-top: -2rem !important;
  padding: 4rem 0 2.5rem !important;
  box-shadow: 0 -4px 40px rgba(0,0,0,0.05) !important;
  border-radius: 16px 16px 0 0 !important;
}

.stat-value {
  font-size: clamp(1.4rem, 3vw, 2.4rem) !important;
  font-weight: 700 !important;
  color: var(--brand-secondary) !important;
  font-family: 'Outfit', sans-serif !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}

@media (min-width: 99999px) {
  .hero-image-container {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 50vh !important;
  }

  .focused-hero-image,
  .hero-image-container .focused-hero-image {
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    inset: 0 !important;
  }

  .hero-proof-card {
    bottom: -2.5rem !important;
    left: 1.5rem !important;
    top: auto !important;
  }
}

/* Search, light footer, and content page additions */
.nav-search-btn { background: none; border: none; padding: 6px; color: inherit; display: flex; }
.nav-search-btn svg { width: 18px; height: 18px; }
.nav-search-bar { top: 0; width: 100%; z-index: 300; background: rgba(255,255,255,0.97); backdrop-filter: blur(20px); padding: 1.25rem 0; box-shadow: 0 4px 20px rgba(0,0,0,0.08); transform: translateY(-100%); transition: transform 0.3s ease; }
.nav-search-bar.open { transform: translateY(0); }
.nav-search-bar .inner-wrap { display: flex; align-items: center; gap: 1rem; }
.nav-search-input { border: none; border-bottom: 2px solid var(--brand-primary); font-size: 1.1rem; font-family: 'Outfit', sans-serif; color: var(--brand-secondary); background: transparent; }
.nav-search-close { background: none; border: none; font-size: 1.2rem; color: var(--muted-neutral); padding: 4px 8px; }
.site-footer { width: 100%; background: #ffffff; border-top: 1px solid var(--border-neutral); }
footer.site-footer { background: #ffffff !important; }
.footer-trust-bar { background: linear-gradient(135deg, var(--brand-primary-soft) 0%, var(--border-neutral) 100%); border-bottom: 1px solid rgba(67,197,219,0.15); padding: 1.25rem 0; }
.footer-trust-inner { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.footer-trust-label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-neutral); white-space: nowrap; }
.footer-trust-logos { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.trust-badge { display: flex; align-items: center; gap: 8px; }
.tac-trust { font-size: 0.78rem; font-weight: 700; color: var(--brand-secondary); background: #ffffff; border: 1px solid rgba(67,197,219,0.3); padding: 4px 12px; border-radius: 4px; letter-spacing: 0.04em; }
.footer-main { padding: 4rem 0 3rem; background: #ffffff; }
.footer-main-inner { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 3rem; align-items: start; }
.footer-logo-img { height: 44px; width: auto; margin-bottom: 1rem; object-fit: contain; }
.footer-about-text { font-size: 0.88rem; color: var(--muted-neutral); line-height: 1.75; margin-bottom: 1.5rem; font-weight: 300; }
.footer-contact-block { display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 1.5rem; }
.footer-contact-item { display: flex; align-items: center; gap: 8px; font-size: 0.85rem; color: var(--text-secondary); text-decoration: none; transition: color 0.2s; }
.footer-contact-item:hover { color: var(--brand-primary); }
.footer-socials-row { display: flex; gap: 8px; }
.footer-social-icon { width: 34px; height: 34px; border-radius: 8px; border: 1px solid var(--border-neutral); display: flex; align-items: center; justify-content: center; color: var(--muted-neutral); text-decoration: none; transition: border-color 0.2s, color 0.2s, background 0.2s; }
.footer-social-icon:hover { border-color: var(--brand-primary); color: var(--brand-primary); background: var(--brand-primary-soft); }
.footer-col-head { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--brand-secondary); margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--border-neutral); }
.footer-col-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.footer-col-links li a { font-size: 0.85rem; color: var(--muted-neutral); text-decoration: none; transition: color 0.2s; display: flex; align-items: center; gap: 6px; }
.footer-col-links li a::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--brand-primary); flex-shrink: 0; opacity: 0; transition: opacity 0.2s; }
.footer-col-links li a:hover { color: var(--brand-secondary); }
.footer-col-links li a:hover::before { opacity: 1; }
.footer-emergency { font-size: 0.82rem; color: var(--muted-neutral); line-height: 1.8; }
.footer-emergency a { color: var(--brand-secondary); font-weight: 600; text-decoration: none; display: block; }
.footer-emergency span { font-size: 0.75rem; color: var(--muted-neutral); }
.footer-ack-bar { background: var(--brand-primary-soft); border-top: 1px solid var(--border-neutral); border-bottom: 1px solid var(--border-neutral); padding: 1rem 0; }
.footer-ack-bar p { font-size: 0.78rem; color: var(--muted-neutral); line-height: 1.6; font-style: italic; }
.footer-bottom-bar { background: var(--brand-secondary); padding: 1rem 0; }
.footer-bottom-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.footer-bottom-bar p { font-size: 0.78rem; color: rgba(255,255,255,0.5); margin: 0; }
.about-intro-section, .values-section, .journey-section, .careers-section, .resources-section { padding: 5rem 0; background: #ffffff; }
.ndis-info-inner, .careers-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
/* .about-intro-inner uses intrinsic auto-fit instead of a fixed breakpoint:
   at desktop widths it renders identically to the old 1fr 1fr (two ~668px
   columns easily clear the 420px minimum), but once the available width
   can no longer fit two 420px columns plus the gap, it reflows to a single
   full-width column on its own -- no separate mobile rule needed. */
.about-intro-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 4rem; align-items: start; }
.about-intro-title, .why-choose-title, .values-title, .vision-title, .journey-title, .ndis-info-title, .careers-title { font-family: 'Outfit', sans-serif; font-size: clamp(1.8rem,3vw,2.8rem); font-weight: 700; color: var(--brand-secondary); line-height: 1.2; margin: 0.75rem 0 1.5rem; }
.about-intro-title em, .why-choose-title em, .values-title em, .vision-title em, .journey-title em, .ndis-info-title em, .careers-title em { font-style: italic; color: var(--brand-primary); }
.about-intro-text p, .careers-intro p { font-size: 0.95rem; color: var(--muted-neutral); line-height: 1.8; margin-bottom: 1rem; font-weight: 300; }
.about-intro-cards, .values-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.about-value-card { padding: 1.5rem; border-radius: 10px; }
.about-value-card.dark { background: var(--brand-secondary); }
.about-value-card.teal { background: var(--brand-primary); }
.about-value-card.light { background: var(--brand-primary-soft); border: 1px solid var(--border-neutral); }
.about-value-title { font-size: 0.88rem; font-weight: 600; color: #ffffff; margin-bottom: 0.35rem; }
.about-value-card.light .about-value-title { color: var(--brand-secondary); }
.about-value-desc { font-size: 0.78rem; color: rgba(255,255,255,0.72); line-height: 1.6; }
.about-value-card.light .about-value-desc { color: var(--muted-neutral); }
.mission-section { padding: 5rem 0; background: var(--brand-secondary); }
.mission-inner { text-align: center; max-width: 800px; margin: 0 auto; }
.mission-badge { display: inline-block; background: rgba(67,197,219,0.15); color: var(--brand-primary); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 14px; border-radius: 4px; margin-bottom: 1.5rem; }
.mission-quote { font-family: 'Outfit', sans-serif; font-size: clamp(1.2rem,2.5vw,1.8rem); font-style: italic; color: #ffffff; line-height: 1.6; margin: 0 0 1.5rem; }
.mission-sub { font-size: 0.95rem; color: rgba(255,255,255,0.65); line-height: 1.8; font-weight: 300; }
.why-choose-section, .ndis-info-section { padding: 5rem 0; background: var(--brand-primary-soft); }
.why-choose-header { text-align: center; margin-bottom: 3rem; }
.why-choose-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; }
.why-card, .rights-card, .resource-card { background: #ffffff; border: 1px solid var(--border-neutral); border-radius: 10px; padding: 1.5rem; transition: box-shadow 0.2s, border-color 0.2s; }
.why-card:hover, .resource-card:hover { box-shadow: 0 8px 24px rgba(67,197,219,0.1); border-color: var(--brand-primary); }
.why-card-icon, .resource-icon { width: 44px; height: 44px; background: var(--brand-primary-soft); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--brand-primary); margin-bottom: 1rem; flex-shrink: 0; }
.why-card-title, .resource-title { font-size: 0.9rem; font-weight: 600; color: var(--brand-secondary); margin: 0 0 0.5rem; }
.why-card-desc, .resource-desc, .value-desc { font-size: 0.82rem; color: var(--muted-neutral); line-height: 1.6; }
.value-item { padding: 2rem; border-left: 3px solid var(--brand-primary); background: var(--brand-primary-soft); border-radius: 0 8px 8px 0; }
.value-name { font-size: 1.1rem; font-weight: 700; color: var(--brand-secondary); margin-bottom: 0.5rem; font-family: 'Outfit', sans-serif; }
.vision-section { padding: 4rem 0; background: var(--brand-primary-soft); }
.vision-inner { text-align: center; max-width: 700px; margin: 0 auto; }
.vision-text { font-size: 1.05rem; color: var(--text-secondary); line-height: 1.8; font-weight: 300; }
.journey-steps { display: flex; align-items: flex-start; gap: 0; }
.journey-step { flex: 1; text-align: center; padding: 0 1rem; }
.journey-num { width: 52px; height: 52px; border-radius: 50%; background: var(--brand-secondary); color: #ffffff; font-size: 1.2rem; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; font-family: 'Outfit', sans-serif; }
.journey-title-text { font-size: 0.92rem; font-weight: 600; color: var(--brand-secondary); margin-bottom: 0.5rem; }
.journey-desc { font-size: 0.82rem; color: var(--muted-neutral); line-height: 1.6; }
.journey-connector { width: 60px; height: 2px; background: linear-gradient(to right,var(--brand-primary),var(--brand-primary)); margin-top: 26px; flex-shrink: 0; }
.ndis-contact-list { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-direction: column; gap: 0.75rem; }
.ndis-contact-list li { font-size: 0.9rem; color: var(--text-secondary); line-height: 1.6; }
.ndis-contact-list a { color: var(--brand-primary); text-decoration: none; }
.ndis-rights-cards { display: flex; flex-direction: column; gap: 1rem; }
.rights-card { border-left: 3px solid var(--brand-primary); }
.rights-card strong { font-size: 0.9rem; color: var(--brand-secondary); display: block; margin-bottom: 0.35rem; }
.careers-inner { grid-template-columns: 1fr 1.4fr; }
.careers-roles { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 1rem; }
.careers-role { background: var(--brand-primary-soft); border: 1px solid var(--border-neutral); color: var(--brand-secondary); font-size: 0.82rem; font-weight: 500; padding: 6px 14px; border-radius: 20px; }
.careers-form-wrap { background: var(--brand-primary-soft); border: 1px solid var(--border-neutral); border-radius: 12px; padding: 2rem; }
.careers-form-title { font-family: 'Outfit', sans-serif; font-size: 1.5rem; font-weight: 700; color: var(--brand-secondary); margin: 0 0 0.25rem; }
.careers-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.careers-upload-label { display: flex; align-items: center; gap: 10px; padding: 1rem; border: 2px dashed var(--border-neutral); border-radius: 8px; cursor: pointer; font-size: 0.85rem; color: var(--muted-neutral); transition: border-color 0.2s; }
.careers-upload-label:hover { border-color: var(--brand-primary); color: var(--brand-secondary); }
.careers-upload-label svg { width: 20px; height: 20px; color: var(--brand-primary); flex-shrink: 0; }
.careers-file-input { display: none; }

/* -- Contact page: two-column layout (info panel + form card), same
   grid/card language as the Careers expression-of-interest section. -- */
.contact-section { padding: 5rem 0; background: #ffffff; }
.contact-inner { display: grid; grid-template-columns: 1fr 1.3fr; gap: 4rem; align-items: start; }
.contact-info-title { font-family: 'Outfit', sans-serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 700; color: var(--brand-secondary); line-height: 1.2; margin: 0.75rem 0 1rem; }
.contact-info > p { font-size: 0.95rem; color: var(--muted-neutral); line-height: 1.8; font-weight: 300; margin: 0 0 2rem; }
.contact-details { list-style: none; display: flex; flex-direction: column; gap: 1.25rem; margin: 0 0 2rem; padding: 0; }
.contact-details li { display: flex; align-items: flex-start; gap: 0.9rem; }
.contact-detail-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--brand-primary-soft); color: var(--brand-primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-detail-icon svg { width: 19px; height: 19px; }
.contact-detail-label { display: block; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted-neutral); margin-bottom: 0.2rem; }
.contact-details a, .contact-detail-value { font-size: 0.98rem; color: var(--brand-secondary); font-weight: 500; text-decoration: none; }
.contact-details a:hover { color: var(--brand-primary); }
.contact-badge { display: inline-flex; align-items: center; background: var(--brand-primary-soft); border: 1px solid var(--border-neutral); color: var(--brand-secondary); font-size: 0.8rem; font-weight: 600; padding: 8px 16px; border-radius: 20px; }

/* -- Form card: soft gradient wash + a large, very low-opacity decorative
   circle in the corner so it reads as a designed card rather than a flat
   tinted box. */
.contact-form-wrap {
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, #ffffff 0%, var(--brand-primary-soft) 120%);
  border: 1px solid var(--border-neutral);
  border-radius: 22px;
  padding: 2.75rem;
  box-shadow: 0 30px 70px rgba(37, 50, 92, 0.1);
}
.contact-form-wrap::before {
  content: "";
  position: absolute;
  top: -70px;
  right: -70px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(67, 197, 219, 0.16) 0%, rgba(67, 197, 219, 0) 70%);
  pointer-events: none;
}
.contact-form-title {
  position: relative;
  font-family: 'Outfit', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--brand-secondary);
  margin: 0 0 0.25rem;
}
.contact-form-sub {
  position: relative;
  font-size: 0.92rem;
  color: var(--muted-neutral);
  margin: 0 0 0.85rem;
}
.contact-response-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--brand-primary);
  background: rgba(67, 197, 219, 0.1);
  padding: 0.4rem 0.85rem;
  border-radius: 20px;
  margin-bottom: 1.75rem;
}
.pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--brand-primary);
  box-shadow: 0 0 0 0 rgba(67, 197, 219, 0.55);
  animation: contactPulse 2s infinite;
  flex-shrink: 0;
}
@keyframes contactPulse {
  0% { box-shadow: 0 0 0 0 rgba(67, 197, 219, 0.55); }
  70% { box-shadow: 0 0 0 7px rgba(67, 197, 219, 0); }
  100% { box-shadow: 0 0 0 0 rgba(67, 197, 219, 0); }
}
.contact-form { position: relative; display: flex; flex-direction: column; gap: 1.15rem; }
.contact-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; }
@media (min-width: 99999px) { .contact-inner { grid-template-columns: 1fr; gap: 2.5rem; } }
@media (min-width: 99999px) { .contact-form-row { grid-template-columns: 1fr; } .contact-form-wrap { padding: 1.75rem; } }

.contact-form .btn-submit {
  width: 100%;
  padding: 1rem 1.5rem !important;
  font-size: 1rem;
  margin-top: 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}
.btn-arrow {
  display: inline-block;
  transition: transform 0.2s ease;
}
.btn-submit:hover .btn-arrow {
  transform: translateX(4px);
}
.form-note {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.78rem;
  color: var(--muted-neutral);
  line-height: 1.55;
  margin: 0.25rem 0 0;
}
.form-note svg {
  width: 15px;
  height: 15px;
  color: var(--brand-primary);
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.form-error-msg {
  display: none;
  margin: 0.45rem 0 0;
  padding-left: 0.7rem;
  border-left: 2px solid #dc2626;
  font-size: 0.8rem;
  color: #dc2626;
}
.form-error-msg.show { display: block; }

.resources-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-bottom: 3rem; }
.resource-card { background: var(--brand-primary-soft); display: flex; gap: 1rem; align-items: flex-start; }
.resource-icon { background: var(--border-neutral); margin-bottom: 0; }
.resource-tag { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand-primary); margin-bottom: 0.4rem; }
.resource-link { font-size: 0.8rem; font-weight: 600; color: var(--brand-primary); text-decoration: none; transition: color 0.2s; }
.resource-link:hover { color: var(--brand-secondary); }
.emergency-banner { background: linear-gradient(135deg,#ffffff 0%,var(--bg-alt) 100%); border-radius: 12px; padding: 2rem; }
.emergency-banner-inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.emergency-banner-inner div { flex: 1; }
.emergency-banner-inner strong { display: block; font-size: 1rem; font-weight: 600; color: #ffffff; margin-bottom: 0.25rem; }
.emergency-banner-inner span { font-size: 0.85rem; color: rgba(255,255,255,0.65); }
.emergency-phone { color: var(--brand-primary); font-weight: 600; font-size: 0.9rem; text-decoration: none; white-space: nowrap; }
@media (min-width: 99999px) { .footer-main-inner, .about-intro-inner, .ndis-info-inner, .careers-inner { grid-template-columns: 1fr; } .footer-brand-col { grid-column: 1 / -1; } .why-choose-grid, .values-grid, .resources-grid { grid-template-columns: 1fr 1fr; } .journey-steps { flex-direction: column; align-items: center; } .journey-connector { width: 2px; height: 30px; margin: 0; } }
@media (min-width: 99999px) { .footer-main-inner, .why-choose-grid, .values-grid, .resources-grid, .careers-form-row { grid-template-columns: 1fr; } .footer-bottom-inner { flex-direction: column; text-align: center; } }

/* Final nav, form, and footer fixes */
#mainNav,
nav#mainNav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  z-index: 100 !important;
  background: rgba(255,255,255,0.15) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
  border-bottom: 1px solid rgba(255,255,255,0.2) !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  transition: background 0.3s ease, border-color 0.3s ease !important;
}

#mainNav.scrolled,
#mainNav.nav-solid,
nav#mainNav.scrolled,
nav#mainNav.nav-solid {
  background: rgba(255,255,255,0.95) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border-bottom: 1px solid rgba(67,197,219,0.15) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.06) !important;
}

.page-hero {
  padding-top: calc(5rem + 64px) !important;
}

body:not(.has-hero) main > section:first-child {
  padding-top: calc(3rem + 64px) !important;
}

#mainNav.nav-solid .nav-links li a,
#mainNav.scrolled .nav-links li a,
nav#mainNav.nav-solid .nav-links li a,
nav#mainNav.scrolled .nav-links li a {
  color: rgba(37,50,92,0.85) !important;
}

#mainNav.nav-solid .nav-links li a:hover,
#mainNav.nav-solid .nav-links li a.active,
#mainNav.nav-solid .nav-links li a.active-link,
#mainNav.scrolled .nav-links li a:hover,
#mainNav.scrolled .nav-links li a.active,
#mainNav.scrolled .nav-links li a.active-link,
nav#mainNav.nav-solid .nav-links li a:hover,
nav#mainNav.nav-solid .nav-links li a.active,
nav#mainNav.nav-solid .nav-links li a.active-link,
nav#mainNav.scrolled .nav-links li a:hover,
nav#mainNav.scrolled .nav-links li a.active,
nav#mainNav.scrolled .nav-links li a.active-link {
  color: var(--brand-secondary) !important;
}

#mainNav.nav-solid .nav-links li a::before,
#mainNav.scrolled .nav-links li a::before,
nav#mainNav.nav-solid .nav-links li a::before,
nav#mainNav.scrolled .nav-links li a::before {
  border-top-color: var(--brand-primary) !important;
  border-left-color: var(--brand-primary) !important;
}

#mainNav.nav-solid .nav-links li a::after,
#mainNav.scrolled .nav-links li a::after,
nav#mainNav.nav-solid .nav-links li a::after,
nav#mainNav.scrolled .nav-links li a::after {
  border-bottom-color: var(--brand-primary) !important;
  border-right-color: var(--brand-primary) !important;
}

#mainNav.nav-solid .nav-cta,
#mainNav.scrolled .nav-cta,
nav#mainNav.nav-solid .nav-cta,
nav#mainNav.scrolled .nav-cta {
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
  background: transparent !important;
}

#mainNav.nav-solid .nav-logo img,
#mainNav.scrolled .nav-logo img,
nav#mainNav.nav-solid .nav-logo img,
nav#mainNav.scrolled .nav-logo img {
  filter: none !important;
}

.form-field {
  width: 100% !important;
  padding: 0.85rem 1rem !important;
  border: 1.5px solid var(--border-neutral) !important;
  border-radius: 12px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 0.95rem !important;
  color: var(--brand-secondary) !important;
  background: #ffffff !important;
  outline: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  display: block !important;
  box-sizing: border-box !important;
}

.form-field:hover {
  border-color: var(--brand-primary) !important;
}

.form-field:focus {
  border-color: var(--brand-primary) !important;
  box-shadow: 0 0 0 4px rgba(67,197,219,0.16) !important;
}

.form-field::placeholder {
  color: var(--muted-neutral) !important;
  font-weight: 300 !important;
}

select.form-field {
  cursor: pointer !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300b8b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 16px !important;
  padding-right: 2.5rem !important;
}

textarea.form-field {
  resize: vertical !important;
  min-height: 110px !important;
}

.form-group {
  margin-bottom: 1rem !important;
  position: relative !important;
}

.footer-trust-bar {
  background: linear-gradient(135deg, var(--brand-primary-soft) 0%, var(--border-neutral) 100%) !important;
  border-bottom: 1px solid rgba(67,197,219,0.15) !important;
  padding: 1.25rem 0 !important;
  position: relative !important;
  overflow: hidden !important;
}

.footer-trust-bar::after {
  content: '' !important;
  position: absolute !important;
  right: 2rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 80px !important;
  height: 80px !important;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='4' r='2' fill='%2300b8b8' opacity='0.15'/%3E%3Cpath d='M10 21v-6l-2-4H5l1-2h5l2 4v2h3l1 3-2 .5L14 21h-4z' fill='%2300b8b8' opacity='0.15'/%3E%3Cpath d='M17 14c0 2.76-2.24 5-5 5s-5-2.24-5-5c0-1.5.66-2.85 1.71-3.79L8 9.5C6.76 10.74 6 12.28 6 14c0 3.31 2.69 6 6 6s6-2.69 6-6h-1z' fill='%2300b8b8' opacity='0.15'/%3E%3C/svg%3E") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  pointer-events: none !important;
}

.footer-bottom-bar {
  position: relative !important;
  background: linear-gradient(135deg, #ffffff 0%, var(--bg-alt) 100%) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

.footer-bottom-accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-primary) 40%, var(--brand-primary) 100%);
}

.footer-bottom-inner {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
  padding: 1.25rem 0 !important;
}

.footer-bottom-left {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.footer-disability-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(67,197,219,0.15);
  border: 1px solid rgba(67,197,219,0.3);
  border-radius: 20px;
  padding: 4px 12px 4px 8px;
  color: var(--brand-primary);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.footer-disability-icon {
  width: 16px;
  height: 16px;
  color: var(--brand-primary);
}

.footer-bottom-left p {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.45);
  margin: 0;
}

.footer-bottom-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.footer-bottom-badge {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  padding: 3px 10px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 3px;
}

@media (min-width: 99999px) {
  .footer-bottom-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}

.testimonials-section {
  background: var(--brand-secondary);
}

.testi-bg-watermark {
  color: rgba(67,197,219,0.04);
}

.testi-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.testi-section-title {
  font-size: clamp(2rem, 3.5vw, 3rem);
  color: #ffffff;
}

.testi-section-sub {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.55);
}

.testi-nav-btns {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.testi-nav-btn {
  width: 44px;
  height: 44px;
  border: 1.5px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.7);
}

.testi-nav-btn:hover {
  background: rgba(67,197,219,0.1);
}

.testi-nav-btn svg {
  width: 18px;
  height: 18px;
}

.testi-track-outer {
  overflow: hidden;
}

.testi-track-new {
  display: grid;
  grid-template-columns: repeat(4, 100%);
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@media (min-width: 900px) {
  .testi-track-new {
    grid-template-columns: repeat(4, calc(50% - 0.75rem));
    gap: 1.5rem;
  }
}

.testi-card-new {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 2rem;
  gap: 1rem;
  transition: border-color 0.3s, background 0.3s;
  backdrop-filter: blur(4px);
}

.testi-card-new:hover {
  border-color: rgba(67,197,219,0.3);
  background: rgba(255,255,255,0.06);
}

.testi-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.testi-avatar-new {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  font-family: 'Outfit', sans-serif;
  flex-shrink: 0;
}

.testi-avatar-teal {
  background: rgba(67,197,219,0.2);
  border: 1.5px solid rgba(67,197,219,0.4);
}

.testi-avatar-brand-deep {
  background: rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.85);
  border: 1.5px solid rgba(255,255,255,0.2);
}

.testi-rating {
  display: flex;
  gap: 2px;
}

.testi-rating svg {
  width: 14px;
  height: 14px;
  color: var(--brand-primary);
}

.testi-quote-mark {
  font-size: 2.5rem;
  color: rgba(67,197,219,0.3);
}

.testi-quote-text {
  font-size: 0.92rem;
  color: rgba(255,255,255,0.78);
  line-height: 1.85;
}

.testi-author-row {
  border-top: 1px solid rgba(255,255,255,0.07);
}

.testi-author-name {
  font-size: 0.9rem;
  color: #ffffff;
}

.testi-author-role {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.45);
}

.testi-category-tag {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  white-space: nowrap;
  flex-shrink: 0;
}

.testi-tag-participant {
  background: rgba(67,197,219,0.15);
  color: var(--brand-primary);
  border: 1px solid rgba(67,197,219,0.25);
}

.testi-tag-team {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.7);
  border: 1px solid rgba(255,255,255,0.15);
}

.testi-tag-referral {
  background: rgba(16,185,129,0.12);
  color: var(--brand-primary);
  border: 1px solid rgba(16,185,129,0.2);
}

.testi-tag-community {
  background: rgba(251,191,36,0.1);
  color: var(--brand-primary);
  border: 1px solid rgba(251,191,36,0.2);
}

.testi-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 2.5rem;
}

.testi-dot {
  background: rgba(255,255,255,0.2);
}

@media (min-width: 99999px) {
  .testi-track-new {
    grid-template-columns: repeat(4, 85vw);
    gap: 1rem;
  }
  .testi-header-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (min-width: 99999px) {
  .testi-track-new {
    grid-template-columns: repeat(4, 90vw);
  }
}

/* Light section treatment overrides */
.testimonials-section {
  padding: 6rem 0;
  background: #ffffff;
  position: relative;
  overflow: hidden;
}

.testi-bg-watermark {
  position: absolute;
  top: -2rem;
  right: 4rem;
  font-size: 20rem;
  color: rgba(67,197,219,0.05);
  font-family: 'Outfit', sans-serif;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.testi-section-title {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 700;
  color: var(--brand-secondary);
  margin: 0.5rem 0 0.75rem;
  line-height: 1.15;
}

.testi-section-title em {
  font-style: italic;
  color: var(--brand-primary);
}

.testi-section-sub {
  font-size: 0.92rem;
  color: var(--muted-neutral);
  font-weight: 300;
  max-width: 500px;
  line-height: 1.7;
  margin: 0;
}

.testi-nav-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid var(--border-neutral);
  background: var(--brand-primary-soft);
  color: var(--brand-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
}

.testi-nav-btn:hover {
  border-color: var(--brand-primary);
  background: var(--border-neutral);
  color: var(--brand-primary);
}

.testi-card-new {
  background: var(--brand-primary-soft);
  border: 1px solid var(--border-neutral);
  border-radius: 16px;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.testi-card-new:hover {
  border-color: var(--brand-primary);
  box-shadow: 0 8px 32px rgba(67,197,219,0.08);
}

.testi-avatar-teal {
  background: rgba(67,197,219,0.1);
  color: var(--brand-primary);
  border: 1.5px solid rgba(67,197,219,0.25);
}

.testi-avatar-brand-deep {
  background: var(--bg-alt);
  color: var(--brand-secondary);
  border: 1.5px solid var(--border-neutral);
}

.testi-quote-mark {
  font-size: 2rem;
  color: rgba(67,197,219,0.25);
  font-family: 'Outfit', sans-serif;
  line-height: 1;
  margin-bottom: -0.5rem;
}

.testi-quote-text {
  font-size: 0.88rem;
  color: var(--text-secondary);
  line-height: 1.8;
  font-weight: 300;
  flex: 1;
  font-style: italic;
}

.testi-author-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-neutral);
}

.testi-author-name {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--brand-secondary);
}

.testi-author-role {
  font-size: 0.73rem;
  color: var(--muted-neutral);
  margin-top: 2px;
}

.testi-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--border-neutral);
  cursor: pointer;
  transition: background 0.2s, width 0.2s;
  padding: 0;
}

.testi-dot.active {
  background: var(--brand-primary);
  width: 24px;
  border-radius: 4px;
}

.stats-bar,
.why-section,
.about-intro-section,
.vision-section,
.ndis-info-section,
.careers-section,
.resources-section,
.tac-section,
.testimonial-section {
  background: #ffffff;
}

.how-section,
.values-section,
.journey-section,
.accom-section,
.team-section,
.cta-section {
  background: var(--brand-primary-soft);
}

.what-title,
.how-title,
.testi-title,
.team-title,
.why-title,
.accom-title,
.tac-title,
.cta-title,
.section-label {
  color: var(--brand-secondary);
}

.what-title em,
.how-title em,
.testi-title em,
.team-title em,
.why-title em,
.accom-title em,
.tac-title em,
.cta-title em {
  color: var(--brand-primary);
  font-style: italic;
}

.section-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand-primary);
  display: inline-block;
  margin-bottom: 0.5rem;
}

body {
  color: var(--text-secondary);
}

p {
  color: var(--text-secondary);
  line-height: 1.8;
}

.hero-image-fade {
  position: absolute;
  top: 0;
  left: 28%;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, var(--bg-alt), transparent);
  z-index: 1;
  pointer-events: none;
}

.img-fade-left {
  position: relative;
  overflow: hidden;
}

.img-fade-left::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(to right, #ffffff, transparent);
  pointer-events: none;
  z-index: 1;
}

.pdf-viewer-section {
  background: var(--brand-primary-soft);
  border: 1px solid var(--border-neutral);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 2rem;
}

/* Compact horizontal layout: a small cover thumbnail sits inline with the
   title/description/actions instead of a large full-width block, so a
   document doesn't dominate the page and more PDFs can be added as a
   simple stacked list (.pdf-resources-list) without each one taking up
   a huge amount of vertical space. */
.pdf-resources-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-bottom: 2rem;
}

.pdf-viewer-header {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.25rem 1.5rem;
  flex-wrap: wrap;
}

.pdf-cover-thumb {
  position: relative;
  flex-shrink: 0;
  display: block;
  width: 76px;
  aspect-ratio: 1654 / 2339;
  padding: 0;
  border: 1px solid var(--border-neutral);
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(37, 50, 92, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.pdf-cover-thumb:hover,
.pdf-cover-thumb:focus-visible {
  transform: translateY(-2px);
  border-color: var(--brand-primary);
  box-shadow: 0 10px 22px rgba(67, 197, 219, 0.18);
}

.pdf-viewer-header-body {
  flex: 1;
  min-width: 220px;
}

.pdf-viewer-header-left {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
  min-width: 220px;
}

.pdf-viewer-icon {
  width: 48px;
  height: 48px;
  background: var(--border-neutral);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-primary);
  flex-shrink: 0;
}

.pdf-viewer-icon svg {
  width: 22px;
  height: 22px;
}

.pdf-viewer-tag {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand-primary);
  margin-bottom: 0.3rem;
}

.pdf-viewer-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--brand-secondary);
  margin: 0 0 0.3rem;
  font-family: 'Outfit', sans-serif;
}

.pdf-viewer-sub {
  font-size: 0.82rem;
  color: var(--muted-neutral);
  line-height: 1.6;
  margin: 0 0 0.75rem;
}

.pdf-viewer-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}

.pdf-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--brand-secondary);
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.2s;
  border: none;
  cursor: pointer;
}

.pdf-download-btn:hover {
  background: var(--brand-primary);
  color: #ffffff;
}

.pdf-download-btn svg {
  width: 15px;
  height: 15px;
}

.pdf-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: transparent;
  color: var(--brand-secondary);
  font-size: 0.82rem;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: 6px;
  border: 1.5px solid var(--border-neutral);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
  font-family: 'Outfit', sans-serif;
}

.pdf-toggle-btn:hover {
  border-color: var(--brand-primary);
  color: var(--brand-primary);
  background: var(--brand-primary-soft);
}

.pdf-toggle-btn svg {
  width: 15px;
  height: 15px;
  transition: transform 0.3s ease;
}

.pdf-toggle-btn.open svg {
  transform: rotate(180deg);
}

/* Real first-page cover: a portrait card sized to an A4-ish page ratio
   (1654x2339 from the generated cover image) instead of the old
   landscape box that was built to frame a hand-drawn mock document.
   The actual PDF page image lives inside via .pdf-cover-img. */
.pdf-cover-preview {
  position: relative;
  display: block;
  width: min(100%, 300px);
  aspect-ratio: 1654 / 2339;
  margin: 0 auto 2rem;
  padding: 0;
  border: 1px solid var(--border-neutral);
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 14px 40px rgba(37,50,92,0.1);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.pdf-cover-preview:hover {
  transform: translateY(-3px);
  border-color: var(--brand-primary);
  box-shadow: 0 18px 48px rgba(67,197,219,0.16);
}

.pdf-cover-frame {
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.pdf-cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.pdf-cover-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: linear-gradient(to top, rgba(37,50,92,0.92), rgba(37,50,92,0.68));
  color: #ffffff;
}

.pdf-cover-badge {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand-primary);
}

.pdf-cover-cta {
  font-size: 0.82rem;
  font-weight: 500;
  color: #ffffff;
}

.pdf-embed-wrap {
  border-top: 1px solid var(--border-neutral);
}

.pdf-embed-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 2rem;
  background: #ffffff;
  border-bottom: 1px solid var(--border-neutral);
}

.pdf-page-info {
  font-size: 0.78rem;
  color: var(--muted-neutral);
  font-weight: 400;
}

.pdf-open-new {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--brand-primary);
  text-decoration: none;
  transition: color 0.2s;
}

.pdf-open-new:hover {
  color: var(--brand-secondary);
}

.pdf-open-new svg {
  width: 13px;
  height: 13px;
}

.pdf-embed-container {
  position: relative;
  width: 100%;
  height: 700px;
  background: var(--bg-alt);
}

.pdf-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

.pdf-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--brand-primary-soft);
}

.pdf-fallback-inner {
  text-align: center;
  padding: 2rem;
}

.pdf-fallback-inner svg {
  width: 48px;
  height: 48px;
  color: var(--brand-primary);
  margin-bottom: 1rem;
}

.pdf-fallback-inner p {
  font-size: 0.9rem;
  color: var(--muted-neutral);
  margin-bottom: 1rem;
}

@media (min-width: 99999px) {
  .pdf-viewer-header {
    padding: 1.1rem;
    gap: 0.9rem;
  }
  .pdf-cover-thumb {
    width: 60px;
  }
  .pdf-viewer-header-body {
    min-width: 0;
  }
  .pdf-viewer-actions {
    width: 100%;
  }
  .pdf-download-btn,
  .pdf-toggle-btn {
    flex: 1;
    justify-content: center;
  }
  .pdf-embed-container {
    height: 500px;
  }
  .pdf-embed-toolbar {
    padding: 0.75rem 1.25rem;
  }
}

/* Final brand and homepage hero overrides */

#mainNav .nav-links li a.active-link,
nav#mainNav .nav-links li a.active-link {
  color: var(--brand-primary) !important;
}

#mainNav .nav-links li a.active-link::before,
#mainNav .nav-links li a.active-link::after,
nav#mainNav .nav-links li a.active-link::before,
nav#mainNav .nav-links li a.active-link::after {
  border-color: var(--brand-primary) !important;
  background: var(--brand-primary) !important;
}

#mainNav .nav-cta,
nav#mainNav .nav-cta,
#mainNav.scrolled .nav-cta,
nav#mainNav.scrolled .nav-cta,
#mainNav.nav-dark-text .nav-cta,
nav#mainNav.nav-dark-text .nav-cta {
  background: transparent !important;
  border: 1.5px solid rgba(67,197,219,0.65) !important;
  color: var(--brand-primary) !important;
  box-shadow: none !important;
}

#mainNav .nav-cta:hover,
nav#mainNav .nav-cta:hover,
#mainNav.scrolled .nav-cta:hover,
nav#mainNav.scrolled .nav-cta:hover,
#mainNav.nav-dark-text .nav-cta:hover,
nav#mainNav.nav-dark-text .nav-cta:hover {
  background: transparent !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
  transform: translateY(-1px);
}

.ndis-badge,
.focused-provider-card .ndis-badge,
.ndis-trust {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  width: fit-content !important;
  background: var(--brand-secondary) !important;
  border: 0 !important;
  border-radius: 12px !important;
  padding: 0.75rem 1.25rem !important;
  box-shadow: 0 4px 20px rgba(37,50,92,0.3) !important;
}

.ndis-badge-logo,
.focused-provider-card .ndis-badge-logo,
.ndis-trust .ndis-badge-logo {
  background: #ffffff !important;
  border-radius: 8px !important;
  padding: 0.5rem 0.9rem !important;
}

.ndis-badge-logo-text,
.focused-provider-card .ndis-badge-logo-text,
.ndis-trust .ndis-badge-logo-text {
  color: var(--brand-secondary) !important;
}

.ndis-badge-text,
.focused-provider-card .ndis-badge-text,
.ndis-trust .ndis-badge-text {
  color: #ffffff !important;
}

.hero-brochure.focused-hero,
section.focused-hero {
  position: relative !important;
  min-height: 100vh !important;
  width: 100vw !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--brand-secondary) !important;
}

.focused-hero::after,
.hero-image-fade,
.hero-blur-edge,
.hero-image-container {
  display: none !important;
}

.focused-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: linear-gradient(to right, rgba(37,50,92,0.75) 0%, rgba(37,50,92,0.3) 50%, transparent 100%) !important;
}

.focused-hero-content-wrap {
  position: relative !important;
  z-index: 2 !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.focused-hero-text {
  width: min(100%, 680px) !important;
  margin: 0 !important;
  padding: 7rem 0 8rem !important;
  color: #ffffff !important;
}

.focused-hero-text .provider-entity {
  margin: 0 0 1rem !important;
  color: rgba(255,255,255,0.76) !important;
  font-size: 0.75rem !important;
  line-height: 1.5 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

.focused-hero .hero-tagline {
  display: block !important;
  margin: 1.35rem 0 1rem !important;
  max-width: 760px !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: clamp(3rem, 5vw, 5.5rem) !important;
  line-height: 1.02 !important;
  font-weight: 700 !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

.focused-hero .hero-tagline em {
  display: block !important;
  color: var(--brand-primary) !important;
  font-style: italic !important;
}

.hero-subheading {
  max-width: 520px !important;
  margin: 0 0 1.75rem !important;
  color: #ffffff !important;
  font-size: 1.05rem !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
}

.hero-cta-row {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  flex-wrap: wrap !important;
}

.hero-cta-primary,
.hero-cta-secondary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.9rem 2rem !important;
  border-radius: 100px !important;
  font-size: 0.9rem !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.hero-cta-primary {
  background: var(--brand-primary) !important;
  color: #ffffff !important;
  border: 0 !important;
  font-weight: 600 !important;
}

.hero-cta-secondary {
  background: transparent !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(255,255,255,0.5) !important;
  font-weight: 500 !important;
}

.hero-cta-primary:hover,
.hero-cta-secondary:hover {
  transform: translateY(-1px) !important;
}

.focused-hero .hero-proof-card {
  position: absolute !important;
  bottom: 2.5rem !important;
  left: 2.5rem !important;
  z-index: 10 !important;
  background: #ffffff !important;
  border-radius: 16px !important;
  padding: 1rem 1.5rem !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.15) !important;
}

.focused-hero .hero-proof-num {
  color: var(--text) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.focused-hero .hero-proof-label {
  margin-top: 0.35rem !important;
  color: var(--muted-neutral) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.focused-hero .hero-proof-stars {
  margin-top: 0.3rem !important;
  color: var(--brand-primary) !important;
  font-size: 0.9rem !important;
  line-height: 1 !important;
}

@media (min-width: 99999px) {
  .focused-hero-content-wrap {
    align-items: flex-end !important;
  }

  .focused-hero-text {
    padding: 7rem 0 10rem !important;
  }

  .focused-hero .hero-tagline {
    font-size: clamp(3rem, 14vw, 4.2rem) !important;
  }

  .focused-hero .hero-proof-card {
    left: 1rem !important;
    bottom: 1.25rem !important;
  }
}

/* Site-wide nav repair: simple Services dropdown and visible navbar */
nav#mainNav,
#mainNav {
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  background: rgba(255,255,255,0.97) !important;
  border-bottom: 1px solid rgba(37,50,92,0.08) !important;
  border-radius: 0 !important;
  box-shadow: 0 2px 18px rgba(37,50,92,0.06) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

nav#mainNav .nav-inner,
#mainNav .nav-inner {
  min-height: 76px !important;
}

nav#mainNav .nav-links,
#mainNav .nav-links {
  align-items: center !important;
  display: flex !important;
  gap: 0.65rem !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

nav#mainNav .nav-links > li,
#mainNav .nav-links > li {
  position: relative !important;
}

nav#mainNav .nav-links > li > a,
#mainNav .nav-links > li > a {
  color: var(--text) !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 40px !important;
  padding: 0.4rem 0.7rem !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  background: transparent !important;
  text-shadow: none !important;
}

nav#mainNav .nav-links > li > a:hover,
nav#mainNav .nav-links > li > a.active-link,
#mainNav .nav-links > li > a:hover,
#mainNav .nav-links > li > a.active-link {
  color: var(--brand-primary) !important;
}

nav#mainNav .nav-links > li > a::before,
nav#mainNav .nav-links > li > a::after,
#mainNav .nav-links > li > a::before,
#mainNav .nav-links > li > a::after {
  display: none !important;
  content: none !important;
}

nav#mainNav .services-dropdown,
#mainNav .services-dropdown {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  z-index: 1200 !important;
  display: none !important;
  min-width: 260px !important;
  max-width: 280px !important;
  margin: 0 !important;
  padding: 0.5rem 0 !important;
  list-style: none !important;
  background: #ffffff !important;
  border-top: 3px solid var(--brand-primary) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12) !important;
}

nav#mainNav .services-nav:hover .services-dropdown,
nav#mainNav .services-nav:focus-within .services-dropdown,
nav#mainNav .services-nav.open .services-dropdown,
#mainNav .services-nav:hover .services-dropdown,
#mainNav .services-nav:focus-within .services-dropdown,
#mainNav .services-nav.open .services-dropdown {
  display: block !important;
}

nav#mainNav .services-dropdown li,
#mainNav .services-dropdown li {
  margin: 0 !important;
  padding: 0 !important;
}

nav#mainNav .services-dropdown li a,
#mainNav .services-dropdown li a {
  display: block !important;
  padding: 0.65rem 1.25rem !important;
  color: var(--text) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 0 !important;
}

nav#mainNav .services-dropdown li a:hover,
#mainNav .services-dropdown li a:hover {
  color: var(--brand-primary) !important;
  background: var(--brand-primary-soft) !important;
}

nav#mainNav .services-dropdown li a::before,
nav#mainNav .services-dropdown li a::after,
#mainNav .services-dropdown li a::before,
#mainNav .services-dropdown li a::after {
  display: none !important;
  content: none !important;
}

nav#mainNav .nav-cta,
#mainNav .nav-cta {
  border: 1.5px solid var(--brand-primary) !important;
  border-radius: 999px !important;
  color: var(--brand-primary) !important;
  background: transparent !important;
  box-shadow: none !important;
}

nav#mainNav .nav-cta:hover,
#mainNav .nav-cta:hover {
  color: #ffffff !important;
  background: var(--brand-primary) !important;
}

.page-hero {
  padding-top: 5rem !important;
}

.resources-section {
  padding: 5rem 0 !important;
  background: #ffffff !important;
}

.resources-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  /* start (not stretch): lets the PDF card be its own, taller, natural
     height for the cover image without forcing the two plain cards to
     stretch down and pick up ugly blank space at the bottom. */
  align-items: start !important;
}

/* .resource-card normally has min-height:100% (elsewhere, to fill equal-
   height stretched rows). With align-items:start on this specific grid
   that percentage would still resolve against the row's now-taller,
   PDF-card-driven height and force the two plain cards to grow to match
   it, so it's cancelled here. */
.resources-grid .resource-card {
  min-height: 0 !important;
}

.resource-card {
  display: flex !important;
  gap: 1rem !important;
  align-items: flex-start !important;
  min-height: 100% !important;
  padding: 1.5rem !important;
  background: #ffffff !important;
  border: 1px solid var(--border-neutral) !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

.resource-card:hover {
  transform: translateY(-3px) !important;
  border-color: rgba(67,197,219,0.3) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,0.10) !important;
}

.resource-icon {
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--brand-primary) !important;
  background: var(--brand-primary-soft) !important;
  border-radius: 12px !important;
}

.resource-icon svg {
  width: 20px !important;
  height: 20px !important;
}

.resource-title {
  color: var(--text) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 1.1rem !important;
}

.resource-link {
  color: var(--brand-primary) !important;
  font-weight: 600 !important;
}

/* PDF resource card: lives in the same .resources-grid as the other two
   cards, but flips to a stacked layout — a real cover-page image as a
   wide banner across the top so it's actually recognisable, with the
   tag/title/description/actions below. This makes the card taller than
   its plain-icon neighbours, which is intentional so the cover art stays
   clearly visible. Both the cover and the "View Document" text open the
   shared #pdfModal instead of expanding inline. */
.resource-card-pdf {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
  /* Deliberately NOT overflow:hidden here -- with align-items:start on the
     grid, this card needs its natural (min-content) height to be reported
     honestly so the row sizes to fit the full cover image. overflow:hidden
     on a grid item zeroes out that automatic minimum size per spec, which
     was previously squashing this card down to match its short neighbours
     and clipping the cover image. Corner-rounding is instead handled by
     .resource-icon-pdf's own border-radius + overflow:hidden below. */
  min-height: 0 !important;
}

.resource-card-pdf .resource-icon-pdf {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  /* .resource-icon sets the shorthand `flex: 0 0 44px !important`, and
     flex-basis dictates the main-axis size in this column flex container
     -- it silently wins over height/aspect-ratio unless the shorthand
     itself is redeclared here. */
  flex: 0 1 auto !important;
  aspect-ratio: 4 / 3;
  border-radius: 15px 15px 0 0 !important;
  background: var(--bg-alt) !important;
  border: 0;
  border-bottom: 1px solid var(--border-neutral);
  padding: 0;
  margin: 0;
  cursor: pointer;
  overflow: hidden;
}

.resource-icon-pdf img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.3s ease;
}

.resource-icon-pdf:hover img {
  transform: scale(1.03);
}

.resource-card-pdf .resource-content {
  padding: 1.25rem 1.5rem 1.5rem;
}

.resource-card-pdf .resource-link {
  background: none;
  border: 0;
  padding: 0;
  margin: 0.5rem 0 0;
  font-family: 'Outfit', sans-serif;
  font-size: 0.8rem;
  text-align: left;
  cursor: pointer;
  display: inline-block;
}

/* Shared PDF viewer modal, opened by any [data-pdf-trigger] element. */
.pdf-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.pdf-modal.open {
  display: flex;
}

.pdf-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 21, 38, 0.72);
}

.pdf-modal-dialog {
  position: relative;
  width: min(100%, 900px);
  height: min(88vh, 900px);
  background: #ffffff;
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.pdf-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-neutral);
  flex-wrap: wrap;
}

.pdf-modal-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-secondary);
  margin: 0;
  font-family: 'Outfit', sans-serif;
}

.pdf-modal-pages {
  font-size: 0.78rem;
  color: var(--muted-neutral);
}

.pdf-modal-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pdf-modal-download,
.pdf-modal-open-new {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: none;
  padding: 7px 12px;
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap;
}

.pdf-modal-download {
  background: var(--brand-secondary);
  color: #ffffff;
}

.pdf-modal-download:hover {
  background: var(--brand-primary);
  color: #ffffff;
}

.pdf-modal-open-new {
  color: var(--brand-primary);
  border: 1.5px solid var(--border-neutral);
}

.pdf-modal-open-new:hover {
  border-color: var(--brand-primary);
  background: var(--brand-primary-soft);
}

.pdf-modal-download svg,
.pdf-modal-open-new svg {
  width: 14px;
  height: 14px;
}

.pdf-modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1.5px solid var(--border-neutral);
  background: #ffffff;
  color: var(--muted-neutral);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}

.pdf-modal-close:hover {
  border-color: var(--brand-primary);
  color: var(--brand-primary);
}

.pdf-modal-close svg {
  width: 16px;
  height: 16px;
}

.pdf-modal-body {
  position: relative;
  flex: 1;
  background: var(--bg-alt);
}

.pdf-modal-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

body.pdf-modal-open-lock {
  overflow: hidden;
}

@media (min-width: 99999px) {
  .pdf-modal {
    padding: 0;
  }
  .pdf-modal-dialog {
    width: 100%;
    height: 100%;
    border-radius: 0;
  }
  .pdf-modal-actions {
    gap: 6px;
  }
  .pdf-modal-download span,
  .pdf-modal-open-new span {
    display: none;
  }
}

@media (min-width: 99999px) {
  nav#mainNav .nav-links,
  #mainNav .nav-links {
    display: none !important;
  }

  nav#mainNav .hamburger,
  #mainNav .hamburger {
    opacity: 1 !important;
    display: flex !important;
  }

  nav#mainNav .nav-inner::after,
  #mainNav .nav-inner::after {
    display: none !important;
  }

  .resources-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 99999px) {
  .resources-grid {
    grid-template-columns: 1fr !important;
  }
}

.shared-theme-loaded {
  display: initial;
}

body {
  font-family: var(--font-body);
  color: var(--color-text-muted);
  background: var(--color-white);
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-heading);
  color: var(--color-text);
}

p, li, a, input, select, button, textarea {
  font-family: var(--font-body);
}

main,
section,
.page-hero,
.about-section,
.services-section,
.resources-section,
.stories-section,
.team-section,
.careers-section,
.contact-section,
.accom-section,
.tac-section,
.why-section,
.mission-section,
.values-section,
.ndis-info-section,
.content-section,
.section-light {
  background-color: var(--color-white) !important;
}

nav#mainNav,
#mainNav,
.site-nav {
  padding: 0 !important;
  background: var(--color-white) !important;
  border-bottom: 1px solid var(--color-border) !important;
  box-shadow: none;
}

nav#mainNav.scrolled,
#mainNav.scrolled,
.site-nav.scrolled {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08) !important;
}

nav#mainNav .nav-inner,
#mainNav .nav-inner,
.site-nav .nav-inner {
  width: 100%;
  max-width: 1400px;
  height: 72px;
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

nav#mainNav .nav-logo,
#mainNav .nav-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

nav#mainNav .nav-logo img,
#mainNav .nav-logo img {
  width: auto !important;
  height: 48px !important;
  max-height: 48px !important;
  object-fit: contain;
  display: block;
}

nav#mainNav .nav-links,
#mainNav .nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

nav#mainNav .nav-links > li,
#mainNav .nav-links > li {
  position: relative;
}

nav#mainNav .nav-links > li > a,
#mainNav .nav-links > li > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 72px;
  color: var(--color-text) !important;
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.2s;
}

nav#mainNav .nav-links > li > a:hover,
nav#mainNav .nav-links > li > a.active-link,
#mainNav .nav-links > li > a:hover,
#mainNav .nav-links > li > a.active-link {
  color: var(--color-accent) !important;
}

nav#mainNav .nav-links > li > a::after,
#mainNav .nav-links > li > a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 18px;
  width: 0;
  height: 2px;
  background: var(--color-accent);
  transition: width 0.3s;
}

nav#mainNav .nav-links > li > a:hover::after,
nav#mainNav .nav-links > li > a.active-link::after,
#mainNav .nav-links > li > a:hover::after,
#mainNav .nav-links > li > a.active-link::after {
  width: 100%;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

nav#mainNav .nav-cta,
#mainNav .nav-cta,
.nav-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--color-accent) !important;
  border-radius: 100px !important;
  padding: 0.65rem 1.35rem !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  font-size: 0.86rem;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
}

nav#mainNav .nav-cta:hover,
#mainNav .nav-cta:hover,
.nav-cta:hover {
  background: var(--color-accent) !important;
  color: var(--color-white) !important;
}

.nav-search-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: var(--color-white);
  color: var(--color-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}

.nav-search-btn:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.services-dropdown {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  background: var(--color-white) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12) !important;
  border-top: 3px solid var(--color-accent) !important;
  min-width: 260px !important;
  max-width: 280px !important;
  padding: 0.5rem 0 !important;
  list-style: none !important;
  margin: 0 !important;
  display: none;
  z-index: 500 !important;
}

.services-dropdown li {
  margin: 0 !important;
  padding: 0 !important;
}

.services-dropdown li a {
  display: block !important;
  padding: 0.65rem 1.25rem !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  color: var(--color-text) !important;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s !important;
  border-bottom: none !important;
  white-space: nowrap !important;
}

.services-dropdown li a:hover {
  background: var(--brand-primary-soft) !important;
  color: var(--color-accent) !important;
}

.services-dropdown li a::before,
.services-dropdown li a::after {
  display: none !important;
}

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 260;
  background: var(--color-primary);
  transform: translateX(100%);
  transition: transform 0.35s ease;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1.2rem;
  padding: 3rem;
}

.mobile-nav.open {
  transform: translateX(0);
}

.mobile-nav a,
.mobile-services-toggle {
  border: 0;
  background: transparent;
  color: var(--color-white);
  font-family: var(--font-heading);
  font-size: 2rem;
  font-style: italic;
  text-decoration: none;
}

.mobile-services-list {
  display: none;
  flex-direction: column;
  gap: 0.6rem;
  padding-left: 1rem;
}

.mobile-services-list.open {
  display: flex;
}

.mobile-services-list a {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-style: normal;
  color: rgba(255,255,255,0.72);
}

.mobile-close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,0.24);
  border-radius: 50%;
  background: transparent;
  color: var(--color-white);
  font-size: 1.7rem;
}

.nav-search-bar {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  z-index: 190;
  display: none;
  align-items: center;
  gap: 1rem;
  padding: 1rem 5rem;
  background: var(--color-white);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}

.nav-search-bar.open {
  display: flex;
}

.nav-search-input {
  flex: 1;
  border: 0;
  border-bottom: 2px solid var(--color-accent);
  padding: 0.5rem 0;
  font-size: 1.05rem;
  outline: none;
  color: var(--color-text);
}

.nav-search-close {
  border: 0;
  background: transparent;
  color: var(--color-text);
  font-size: 1.5rem;
  cursor: pointer;
}


.vision,
.vision-section {
  background: var(--color-primary) !important;
}

.vision blockquote,
.vision .vision-quote,
.vision-quote,
.vision p:first-child {
  font-family: var(--font-heading) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  color: var(--color-white) !important;
}

.btn-primary,
.btn-terra,
.submit-btn,
.float-call,
.float-cta,
.service-card.featured h3,
.service-card.featured p,
.vision,
.vision *,
.btn-white:hover {
  color: var(--color-white) !important;
}

.service-card.featured .tag {
  color: var(--brand-primary) !important;
}

.accommodation-banner {
  background-image: linear-gradient(to right, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.78) 50%, rgba(255,255,255,0.3) 100%), url("https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=1400&q=80&auto=format&fit=crop") !important;
}

.accommodation-content h2,
.accommodation-content p,
.accommodation-options span {
  color: var(--color-text) !important;
}

.ndis-badge .ndis-copy,
.ndis-badge .ndis-copy span,
.ndis-badge-text,
.ndis-badge-text span {
  color: var(--color-white) !important;
}

.trust-ndis {
  color: var(--color-white) !important;
}

@media (min-width: 99999px) {
  nav#mainNav .nav-inner,
  #mainNav .nav-inner,
  .site-nav .nav-inner {
    padding: 0 1rem;
  }

  nav#mainNav .nav-links,
  #mainNav .nav-links,
  .nav-actions {
    display: none !important;
  }

  nav#mainNav .hamburger,
  #mainNav .hamburger,
  .hamburger {
    display: flex !important;
    flex-direction: column;
    gap: 5px;
    background: transparent;
    border: 0;
    padding: 0;
  }

  .hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-text);
  }

  .site-footer .footer-top {
    grid-template-columns: 1fr;
    padding: 3rem 1.5rem !important;
  }

  .site-footer .footer-ack,
  .site-footer .footer-bottom {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
}

/* Final hardening: logo visible immediately, footer uses shared curved design */
nav#mainNav,
#mainNav,
.site-nav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 200 !important;
  height: 72px !important;
  min-height: 72px !important;
  display: flex !important;
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--border-neutral) !important;
  opacity: 1 !important;
  visibility: visible !important;
  transition: box-shadow 0.3s ease !important;
}

nav#mainNav .nav-logo,
#mainNav .nav-logo,
.site-nav .nav-logo,
nav#mainNav .nav-logo img,
#mainNav .nav-logo img,
.site-nav .nav-logo img {
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
}

nav#mainNav .nav-logo,
#mainNav .nav-logo,
.site-nav .nav-logo {
  display: inline-flex !important;
}

nav#mainNav .nav-logo img,
#mainNav .nav-logo img,
.site-nav .nav-logo img {
  display: block !important;
  height: 48px !important;
  width: auto !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}








/* Phase 3 consistency pass: preserve layout, standardise brand surfaces. */
:root {
  --font-main: 'Outfit', sans-serif;
  --font-heading: var(--font-main);
  --font-body: var(--font-main);
  --brand-primary: #43C5DB;
  --brand-primary-hover: #2AAFC6;
  --brand-primary-soft: #EAFBFD;
  --brand-secondary: #25325C;
  --bg: #FFFFFF;
  --bg-alt: #F8FAFC;
  --card: #FFFFFF;
  --border-neutral: #E5E7EB;
  --text: #111827;
  --text-secondary: #4B5563;
  --muted-neutral: #6B7280;
  --color-primary: var(--brand-secondary);
  --color-accent: var(--brand-primary);
  --color-teal: var(--brand-primary);
  --color-white: #FFFFFF;
  --color-light: var(--bg-alt);
  --color-text: var(--text);
  --color-text-muted: var(--text-secondary);
  --color-text-light: var(--muted-neutral);
  --color-border: var(--border-neutral);
  --color-footer-bg: #FFFFFF;
  --color-footer-text: var(--text-secondary);
  --color-ndis-purple: var(--brand-secondary);
}

html, body, button, input, select, textarea, h1, h2, h3, h4, h5, h6, p, a, span, li, label,
.site-nav, .site-footer, .card, .service-card, .resource-card, .team-card, .testimonial-card, .contact-card, .form-card {
  font-family: var(--font-main) !important;
}

h1, h2, h3, h4, h5, h6, .section-title, .hero-headline, .hero-title, .page-title,
.service-name, .team-name, .testi-title, .about-title, .what-title, .how-title, .careers-title {
  color: var(--text) !important;
  font-style: normal !important;
}

p, li, .section-subtitle, .hero-copy, .service-desc, .team-role, .testi-text,
.footer-tagline, .footer-ack, .footer-bottom p {
  color: var(--text-secondary) !important;
}

a { color: var(--brand-primary); }
a:hover, a:focus, a:visited { color: var(--brand-secondary); }

.btn-primary, .btn-terra, .btn-submit, .submit-btn, .nav-cta, .mob-cta, .float-cta,
.hero-cta-primary, .service-cta-button, .contact-submit, button[type="submit"] {
  background: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: #FFFFFF !important;
}

.btn-primary:hover, .btn-terra:hover, .btn-submit:hover, .submit-btn:hover, .nav-cta:hover,
.mob-cta:hover, .float-cta:hover, .hero-cta-primary:hover, .service-cta-button:hover,
.contact-submit:hover, button[type="submit"]:hover {
  background: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: #FFFFFF !important;
}

.btn-secondary, .btn-outline, .btn-ghost, .hero-cta-secondary, .service-secondary, .service-card-link {
  background: #FFFFFF !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
}

.btn-secondary:hover, .btn-outline:hover, .btn-ghost:hover, .hero-cta-secondary:hover,
.service-secondary:hover, .service-card-link:hover {
  background: var(--brand-primary-soft) !important;
  color: var(--brand-secondary) !important;
}

.card, .service-card, .service-card.featured, .service-support-card, .resource-card, .why-card,
.rights-card, .testimonial-card, .testi-card, .testi-card-new, .team-card, .contact-card,
.contact-form, .form-card, .proof-card, .hero-proof-card, .hero-stat-card, .stat-card,
.ndis-value-card, .about-value-card, .about-value-card.dark, .about-value-card.teal,
.about-value-card.light, .value-card, .service-cta-card, .accom-panel-inner, .tac-service,
.services-text-panel, .focused-provider-card, .info-card, .panel, .box, .tile {
  background: #FFFFFF !important;
  background-image: none !important;
  border: 1px solid var(--border-neutral) !important;
  box-shadow: 0 8px 24px rgba(37,50,92,0.07) !important;
  color: var(--text-secondary) !important;
}

.card h1, .card h2, .card h3, .card h4, .service-card h3, .service-card.featured h3,
.service-support-card h3, .resource-card h3, .why-card h3, .rights-card h3,
.testimonial-card h3, .testi-card h3, .team-card h3, .contact-card h3, .proof-card h3,
.hero-proof-card h3, .hero-stat-card h3, .ndis-value-card h3, .about-value-card h3,
.value-card h3, .service-cta-card h3, .accom-panel-inner h3, .tac-service h3,
.services-text-panel h3, .focused-provider-card h3, .info-card h3, .panel h3, .box h3, .tile h3 {
  color: var(--text) !important;
}

.card p, .service-card p, .service-card.featured p, .service-support-card p, .resource-card p,
.why-card p, .rights-card p, .testimonial-card p, .testi-card p, .team-card p,
.contact-card p, .proof-card p, .hero-proof-card p, .hero-stat-card p, .ndis-value-card p,
.about-value-card p, .value-card p, .service-cta-card p, .accom-panel-inner p, .tac-service p,
.services-text-panel p, .focused-provider-card p, .info-card p, .panel p, .box p, .tile p {
  color: var(--text-secondary) !important;
}

.service-icon, .service-icon-wrap, .resource-icon, .why-card-icon, .rights-icon, .contact-icon,
.about-value-icon, .tac-service-icon, .icon-pill, .feature-icon {
  background: var(--brand-primary-soft) !important;
  color: var(--brand-primary) !important;
  border-color: rgba(67,197,219,0.25) !important;
}

.badge, .kicker, .role-tag, .tag, .pill, .nav-links a.active, .nav-links a:hover,
.search-toggle, .nav-search-toggle {
  color: var(--brand-primary) !important;
}

.hero-media, .hero-photo, .hero-care-photo, .hero-visual, .focused-hero-media,
.hero-image-container, .service-hero-image, .page-hero-visual {
  overflow: visible !important;
}

.hero-media img, .hero-photo img, .hero-care-photo img, .hero-visual img, .focused-hero-media img,
.focused-hero-image, .hero-image-container img, .service-hero-image img, .page-hero-visual img {
  object-fit: contain !important;
  object-position: center center !important;
}

/* team.html headshot cards were accidentally caught by the hero-image
   rules above (meant for large page-hero visuals), which forced
   overflow:visible + object-fit:contain on them -- since .team-card-top
   had no fixed height, each photo rendered at its own full natural
   aspect ratio, producing wildly inconsistent, oversized card heights
   instead of neat cropped headshots. Given its own fixed-ratio, cropped
   treatment here instead. */
.team-card-top {
  overflow: hidden !important;
  aspect-ratio: 4 / 5;
}
.team-card-top img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center top !important;
}

.hero-blur, .hero-glow, .hero-media::before, .hero-visual::before, .focused-hero-media::before,
.hero-image-container::before {
  pointer-events: none !important;
}

.site-footer {
  background: #FFFFFF !important;
  color: var(--text-secondary) !important;
  border-top-color: var(--border-neutral) !important;
}

.site-footer h3 { color: var(--brand-secondary) !important; }
.site-footer a { color: var(--text-secondary) !important; }
.site-footer a:hover, .site-footer a:focus { color: var(--brand-primary) !important; }
.site-footer .footer-bottom {
  background: var(--bg-alt) !important;
  border-top: 1px solid rgba(67,197,219,0.12) !important;
}

/* Phase 3 legacy alias map: old names resolve to approved Elrok colors. */
:root {
  --primary: var(--brand-primary);
  --secondary: var(--brand-primary);
  --brand-deep: var(--brand-secondary);
  --white: #FFFFFF;
  --linen: #FFFFFF;
  --charcoal: var(--text);
  --terra: var(--brand-primary);
  --terra-light: var(--brand-primary);
  --terra-dark: var(--brand-primary-hover);
  --sage: var(--brand-primary);
  --sage-light: var(--brand-primary-soft);
  --cream: var(--bg-alt);
  --slate: var(--text-secondary);
  --muted: var(--muted-neutral);
  --brand-ink: var(--text);
  --brand-cream: var(--bg-alt);
  --brand-primary-accent: var(--brand-primary);
  --surface: #FFFFFF;
  --surface-soft: var(--bg-alt);
  --border: var(--border-neutral);
  --line: var(--border-neutral);
  --soft: #FFFFFF;
  --pill: var(--brand-primary-soft);
  --pill-line: rgba(67,197,219,0.28);
}

/* Footer audit cleanup: one balanced layout for the shared _footer.html component. */
footer.site-footer {
  position: relative !important;
  z-index: 1 !important;
  overflow: visible !important;
  margin-top: 0 !important;
  padding: 0 !important;
  background: #FFFFFF !important;
  color: var(--text-secondary) !important;
  border-top: 1px solid var(--border-neutral) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

footer.site-footer::before,
footer.site-footer::after {
  content: none !important;
}

footer.site-footer .footer-accent {
  position: absolute;
  top: 0;
  left: max(24px, calc((100% - 1400px) / 2));
  right: max(24px, calc((100% - 1400px) / 2));
  height: 3px;
  background: var(--brand-primary);
  border-radius: 0 0 2px 2px;
}

footer.site-footer .footer-top {
  width: min(100% - 48px, 1400px) !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 56px 0 32px !important;
  display: grid !important;
  grid-template-columns: minmax(260px, 1.35fr) repeat(3, minmax(150px, 1fr)) !important;
  gap: 32px 48px !important;
  align-items: start !important;
  border: 0 !important;
}

footer.site-footer .footer-brand,
footer.site-footer .footer-column,
footer.site-footer .footer-support {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

footer.site-footer .footer-logo-image {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

footer.site-footer .footer-logo-image img {
  display: block !important;
  width: auto !important;
  height: 48px !important;
  max-width: 220px !important;
  object-fit: contain !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

footer.site-footer .footer-tagline {
  max-width: 360px;
  margin: 0;
  color: var(--text-secondary) !important;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.65;
}

footer.site-footer h3 {
  margin: 0 0 14px !important;
  color: var(--brand-secondary) !important;
  font-family: var(--font-main) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  line-height: 1.2;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

footer.site-footer ul {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
}

footer.site-footer li,
footer.site-footer li a,
footer.site-footer .footer-contact a {
  font-family: var(--font-main) !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
}

footer.site-footer li a,
footer.site-footer .footer-contact a {
  color: var(--text-secondary) !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

footer.site-footer li a:hover,
footer.site-footer li a:focus,
footer.site-footer .footer-contact a:hover,
footer.site-footer .footer-contact a:focus {
  color: var(--brand-primary) !important;
}

footer.site-footer .footer-contact {
  width: 100%;
  margin: 18px 0 0 !important;
  padding: 18px 0 0;
  border-top: 1px solid var(--border-neutral);
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

footer.site-footer .socials {
  margin: 18px 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap;
}

footer.site-footer .socials a {
  width: 36px !important;
  height: 36px !important;
  border-radius: 8px !important;
  border: 1px solid var(--border-neutral) !important;
  background: #FFFFFF !important;
  color: var(--text-secondary) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

footer.site-footer .socials a:hover,
footer.site-footer .socials a:focus {
  color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  background: var(--brand-primary-soft) !important;
}

footer.site-footer .socials svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

footer.site-footer .footer-disability-mark {
  margin: 18px 0 0 !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

footer.site-footer .footer-disability-mark svg {
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px;
  stroke: var(--brand-primary) !important;
}

footer.site-footer .footer-disability-mark span {
  margin: 0 !important;
  color: var(--brand-primary) !important;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

footer.site-footer .footer-ack {
  width: min(100% - 48px, 1400px) !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 20px 0 !important;
  border-top: 1px solid var(--border-neutral) !important;
  color: var(--muted-neutral) !important;
  font-family: var(--font-main) !important;
  font-size: 0.8rem !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  text-align: left !important;
}

footer.site-footer .footer-bottom {
  width: min(100% - 48px, 1400px) !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 18px 0 28px !important;
  background: #FFFFFF !important;
  border-top: 1px solid var(--border-neutral) !important;
  border-radius: 0 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}

footer.site-footer .footer-bottom p {
  margin: 0 !important;
  color: var(--muted-neutral) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
}

@media (min-width: 99999px) {
  footer.site-footer .footer-top {
    grid-template-columns: minmax(240px, 1.2fr) repeat(2, minmax(170px, 1fr)) !important;
  }

  footer.site-footer .footer-support {
    grid-column: span 2;
  }
}

@media (min-width: 99999px) {
  footer.site-footer .footer-accent {
    left: 24px;
    right: 24px;
  }

  footer.site-footer .footer-top,
  footer.site-footer .footer-ack,
  footer.site-footer .footer-bottom {
    width: min(100% - 32px, 1400px) !important;
  }

  footer.site-footer .footer-top {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    padding-top: 44px !important;
  }

  footer.site-footer .footer-support {
    grid-column: auto;
  }

  footer.site-footer .footer-tagline {
    max-width: none;
  }

  footer.site-footer .footer-bottom {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
}

/* Phase 3 follow-up: remove stat-style emphasis, soften vision, improve interactive affordances. */
.hero-stats,
.proof-card,
.trust-strip,
.stats-section {
  display: none !important;
}

.vision,
.vision-section {
  width: min(100% - 2rem, 1400px) !important;
  margin: 1.5rem auto !important;
  padding: clamp(2.5rem, 4vw, 4rem) clamp(1.25rem, 3vw, 2.5rem) !important;
  background: #EAFBFD !important;
  border: 1px solid rgba(67, 197, 219, 0.28) !important;
  border-radius: 28px !important;
  box-shadow: 0 12px 32px rgba(37, 50, 92, 0.06) !important;
  color: var(--text) !important;
}

.vision blockquote,
.vision .vision-quote,
.vision-quote,
.vision p:first-child {
  color: var(--text) !important;
  font-style: normal !important;
  font-weight: 500 !important;
}

.vision p,
.vision span,
.vision small {
  color: var(--text-secondary) !important;
}

.vision-circle {
  opacity: 0.18 !important;
}

:where(a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], summary, .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-outline, .nav-links a, .nav-actions a, .nav-search-toggle, .search-toggle, .nav-search-close, .hamburger, .mobile-menu-toggle, .mobile-services-toggle, .mobile-close, .dropdown a, .services-dropdown a, .nav-dropdown a, .service-link, .service-card-link, .float-cta, .float-call, .contact-submit, .submit-btn, .cta-button, .testi-btn, .form-card button, .cta-form button, .footer-social a) {
  cursor: pointer !important;
}

:where(a, button, [role="button"], input, select, textarea, summary, .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-outline, .nav-links a, .nav-actions a, .nav-search-toggle, .search-toggle, .nav-search-close, .hamburger, .mobile-menu-toggle, .mobile-services-toggle, .mobile-close, .dropdown a, .services-dropdown a, .nav-dropdown a, .service-link, .service-card-link, .float-cta, .float-call, .contact-submit, .submit-btn, .cta-button, .testi-btn, .footer-social a):focus-visible {
  outline: 3px solid rgba(67, 197, 219, 0.45) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(67, 197, 219, 0.16) !important;
}

:where(a, button, [role="button"], input, select, textarea, summary, .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-outline, .nav-links a, .nav-actions a, .nav-search-toggle, .search-toggle, .nav-search-close, .hamburger, .mobile-menu-toggle, .mobile-services-toggle, .mobile-close, .dropdown a, .services-dropdown a, .nav-dropdown a, .service-link, .service-card-link, .float-cta, .float-call, .contact-submit, .submit-btn, .cta-button, .testi-btn, .footer-social a) {
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

:where(.nav-links a, .nav-actions a, .dropdown a, .services-dropdown a, .nav-dropdown a, .service-link, .service-card-link, .footer-social a):hover {
  color: var(--brand-secondary) !important;
}

:where(.btn-primary, .btn-terra, .submit-btn, .contact-submit, .float-cta, .float-call):hover {
  background: var(--brand-secondary) !important;
  border-color: var(--brand-secondary) !important;
}

/* Services page repair: scoped layout, cards, anchors, and steps. */
.services-page {
  background: #ffffff;
}

.services-page main {
  padding-top: 72px !important;
  background: #ffffff;
}

.services-page .page-hero {
  margin: 0;
  padding: clamp(4rem, 7vw, 6rem) 0 clamp(3rem, 5vw, 4.5rem);
  background: linear-gradient(135deg, #ffffff 0%, var(--bg-alt) 100%);
  overflow: hidden;
}

/* The generic .services-page .page-hero reset above (same specificity,
   later in source) was clobbering the photo-hero background image and
   padding set by .page-hero-photo, leaving a blank/white hero on
   services.html. Restore the photo treatment for that specific
   combination with a more specific selector. */
.services-page .page-hero.page-hero-photo {
  padding: 0;
  min-height: 56vh;
  background-image: linear-gradient(rgba(15, 21, 38, 0.62), rgba(15, 21, 38, 0.62)), var(--hero-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.services-page .page-hero-title {
  max-width: 760px;
  margin: 0.75rem 0 1rem;
  color: var(--text) !important;
  letter-spacing: 0;
}

.services-page .page-hero-title em,
.services-page .how-title em {
  color: var(--brand-primary) !important;
  font-style: normal;
}

.services-page .page-hero-sub {
  max-width: 680px;
  color: var(--text-secondary) !important;
  font-weight: 400;
}

.services-page #services,
.services-page #how {
  scroll-margin-top: 104px;
}

.services-page .how-section {
  padding: clamp(3.75rem, 6vw, 5.5rem) max(24px, calc((100% - 1400px) / 2)) clamp(4.5rem, 7vw, 6rem);
  background: var(--brand-primary-soft);
}

.services-page .how-section > .section-label,
.services-page .how-title,
.services-page .how-sub {
  max-width: 760px;
}

.services-page .how-title {
  margin: 0.75rem 0 1rem;
  color: var(--text) !important;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.15;
  letter-spacing: 0;
}

.services-page .how-sub {
  margin: 0 0 2rem;
  color: var(--text-secondary) !important;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
}

.services-page .steps-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
}

.services-page .step {
  min-height: 250px;
  padding: 24px;
  border-radius: 8px;
  background: #ffffff !important;
  border: 1px solid #e5e7eb;
  box-shadow: 0 10px 28px rgba(37, 50, 92, 0.07);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transform: none !important;
}

.services-page .step::before,
.services-page .step::after {
  content: none !important;
  display: none !important;
}

.services-page .step-num {
  width: 38px;
  height: 38px;
  margin: 0 0 18px;
  border-radius: 50%;
  background: var(--brand-primary) !important;
  border: 0 !important;
  color: #ffffff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: none !important;
}

.services-page .step-title {
  margin: 0 0 10px;
  color: #111827 !important;
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.3;
}

.services-page .step-text {
  margin: 0;
  color: #4b5563 !important;
  font-size: 0.94rem;
  font-weight: 400;
  line-height: 1.65;
}

.services-page footer.site-footer {
  clear: both;
  margin-top: 0 !important;
}

.services-page .float-cta {
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 180;
}

@media (min-width: 99999px) {
  .services-page .steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 99999px) {
  .services-page main {
    padding-top: 72px !important;
  }

  .services-page .page-hero {
    padding: 3.25rem 0 2.75rem;
  }

  .services-page .steps-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .services-page .step {
    padding: 22px !important;
  }

  .services-page #services,
  .services-page #how {
    scroll-margin-top: 92px;
  }

  .services-page .how-section {
    padding: 3.25rem 1.25rem 4.5rem;
  }

  .services-page .float-cta {
    right: 16px;
    bottom: 16px;
    width: 48px;
    height: 48px;
    padding: 0 !important;
    justify-content: center;
  }

  .services-page .float-cta span {
    display: none;
  }
}

/* ============================================================
   REDESIGN COMPONENTS (added to match realpathhealth.com.au's
   section patterns: dark contrast bands, stacked service
   sections, core-service cards, video playlist, footer v2).
   New isolated class names -- does not modify anything above.
   ============================================================ */

/* .service-page (the <main> element on all 8 individual service
   pages) had ZERO CSS. nav{} is position:fixed and overlaps the
   very top of the page, so without this offset the hero's h1 and
   intro paragraph render underneath/behind the fixed nav bar and
   only the lower "Refer Someone / View Services" buttons clear it.
   Matches the existing .services-page main { padding-top: 72px } fix. */
.service-page {
  padding-top: 72px;
}

/* Full-bleed photo hero for individual service pages, matching
   realpathhealth.com.au's hero pattern (full-width background
   photo + dark scrim + centred white text) instead of the old
   .service-hero-grid two-column layout, which had no CSS grid
   rule defined at all and rendered as a broken vertical stack. */
/* Hero used to paint its photo as a full-viewport-bleed background on
   .service-hero-full itself, so the image ran edge-to-edge while every
   other section on the page (nav, detail grids, cards) was capped at
   the site's 1400px .inner-wrap column. That made the hero the one
   section that ignored the grid. The photo now lives on
   .service-hero-inner instead -- which already carries the
   .inner-wrap class -- so the hero renders as a rounded card whose
   left/right edges match the nav, the detail-grid images, and every
   other boxed section on the page. .service-hero-full itself is just
   vertical spacing now, same as .section. */
.service-hero-full {
  /* Hero photo now paints edge-to-edge on this outer section (no card
     margin, radius, or shadow) so it fills the full page width and sits
     directly on the page. .service-hero-inner still carries .inner-wrap,
     which keeps the *text* readable and gutter-padded without capping the
     photo itself. */
  position: relative;
  min-height: 62vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #ffffff;
  overflow: hidden;
  background-image: linear-gradient(rgba(15, 21, 38, 0.62), rgba(15, 21, 38, 0.62)), var(--hero-img, url('hero.png'));
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
}
.service-hero-full .service-hero-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  padding-top: 3rem;
  padding-bottom: 3rem;
  box-sizing: border-box;
}
.service-hero-full .service-hero-inner h1,
.service-hero-full .service-hero-inner p {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.service-hero-full .section-label {
  color: rgba(255, 255, 255, 0.85);
}
.service-hero-heading {
  max-width: 720px;
  margin: 0.75rem auto 0;
  color: #ffffff;
  font-size: clamp(1.5rem, 3vw, 2.35rem);
}
.service-hero-tagline {
  margin: 0.75rem auto 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 500;
}

/* Alternating image/text detail sections on individual service pages,
   matching realpathhealth.com.au's Mental Health page pattern (image
   left + text right, then text left + image right, repeating down the
   page). .service-detail-grid previously had NO layout rule at all, so
   both rows silently collapsed into a plain vertical stack (image full
   width, then text below) instead of sitting side by side -- alternation
   never actually rendered. DOM order alone produces the alternation:
   row 1 is [image, copy], row 2 (.service-detail-grid-reverse) is
   [copy, image], so a plain two-column grid is enough; no special
   "reverse" override needed on desktop. */
.service-detail-section {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}
/* Same intrinsic auto-fit approach as .about-intro-inner: two 400px-min
   columns fit comfortably at desktop widths (unchanged look), and the
   grid reflows to one full-width column on its own once there isn't
   room for both -- no fixed breakpoint number involved. */
.service-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.service-detail-grid:last-child {
  margin-bottom: 0;
}
.service-detail-image {
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.service-detail-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.service-detail-copy .section-label {
  display: inline-block;
}

/* The rest of the individual service page template -- support cards,
   trust grid, cta, and section headings -- had zero CSS defined at
   all, same as .service-detail-grid above. Fixing the whole template
   in one pass instead of one component at a time. */
.service-section-heading {
  max-width: 640px;
  margin: 0 auto 2.5rem;
  text-align: center;
}
.service-section-heading h2 {
  margin-top: 0.5rem;
}

.service-support-section {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--brand-primary-soft);
}
.service-support-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.service-support-card {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  overflow: hidden;
}
.service-support-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.service-support-card h3 {
  margin: 1.1rem 1.25rem 0.5rem;
  font-size: 1.05rem;
  line-height: 1.3;
}
.service-support-card p {
  margin: 0 1.25rem 1.25rem;
  font-size: 0.88rem;
  line-height: 1.6;
  flex: 1;
}

.service-trust-section {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
}
.service-content-section {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
}
.service-content-section-alt {
  background: var(--brand-primary-soft);
}
.service-content-wrap {
  max-width: 900px;
}
.service-content-wrap > p {
  max-width: 760px;
}
.service-content-wrap h3 {
  margin-top: 2rem;
}
.service-content-list,
.service-choice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem 2rem;
  padding-left: 1.4rem;
}
.service-content-list li,
.service-choice-list li {
  padding-left: 0.25rem;
  line-height: 1.55;
}
.service-content-callout {
  margin-top: 2.5rem;
  padding: clamp(1.5rem, 3vw, 2rem);
  border-left: 4px solid var(--brand-primary);
  background: #ffffff;
}
.service-content-callout h3 {
  margin-top: 0;
}
.service-content-callout p:last-child {
  margin-bottom: 0;
}
.service-choice-list {
  max-width: 900px;
  margin: 0 auto;
}
.service-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  align-items: stretch;
}
.service-trust-grid > div {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 96px;
  padding: 1.5rem;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid var(--border-neutral);
  font-weight: 600;
  color: var(--brand-deep);
}
.support-social-page .service-trust-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.service-cta-section {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
}
.service-cta-card {
  border-radius: 16px;
  padding: clamp(2rem, 5vw, 3rem);
  text-align: center;
}
.service-cta-card p {
  max-width: 520px;
  margin: 0 auto 1.5rem;
}
@media (max-width: 640px) {
  .service-content-list,
  .service-choice-list {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .support-social-page .service-detail-grid {
    grid-template-columns: 1fr;
  }
  .support-social-page .service-detail-grid-reverse .service-detail-image {
    order: -1;
  }
  .support-social-page .service-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .support-social-page .service-trust-grid {
    grid-template-columns: 1fr;
  }
}
/* Photo variant: the image sits behind the text as a real layered
   element (not a CSS background-image) since .service-cta-card's shared
   "background:#fff!important" rule would otherwise block one. Text is
   raised above it with its own stacking context. */
.service-cta-card.service-cta-card-photo {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.service-cta-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.service-cta-card.service-cta-card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(15, 21, 38, 0.6), rgba(15, 21, 38, 0.6));
  z-index: 1;
}
.service-cta-card-content {
  position: relative;
  z-index: 2;
}
.service-cta-card.service-cta-card-photo h2,
.service-cta-card.service-cta-card-photo p {
  color: #ffffff !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

@media (min-width: 99999px) {
  .service-support-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 99999px) {
  .service-support-grid {
    grid-template-columns: 1fr;
  }
  .service-trust-grid {
    grid-template-columns: 1fr;
  }
}

/* Scroll-reveal classes used throughout the service-page template.
   Like everything else above, these had no CSS at all -- the
   animation never fired because there was nothing to animate.
   Wired into the same IntersectionObserver in script.js that drives
   .in-view elsewhere on the site (see the reveal selector list). */
.js .reveal, .js .reveal-left, .js .reveal-right, .js .reveal-scale {
  opacity: 0;
}
.js .reveal {
  transform: translateY(42px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.js .reveal-left {
  transform: translateX(-70px);
  transition: opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1), transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
}
.js .reveal-right {
  transform: translateX(70px);
  transition: opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1), transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
}
.js .reveal-scale {
  transform: scale(0.9);
  transition: opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1), transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.in-view,
.reveal-left.in-view,
.reveal-right.in-view,
.reveal-scale.in-view {
  opacity: 1;
  transform: none;
}
.stacked-service.in-view .reveal-left,
.stacked-service.in-view .reveal-right,
.who-we-are-section.in-view .reveal-left,
.who-we-are-section.in-view .reveal-right {
  animation: none;
}
.reveal-delay-1 { transition-delay: 0ms !important; }
.reveal-delay-2 { transition-delay: 90ms !important; }
.reveal-delay-3 { transition-delay: 180ms !important; }
.reveal-delay-4 { transition-delay: 270ms !important; }
.service-detail-grid > .reveal-left:nth-child(2),
.service-detail-grid > .reveal-right:nth-child(2),
.stacked-inner > .reveal-left:nth-child(2),
.stacked-inner > .reveal-right:nth-child(2),
.who-we-are-inner > .reveal-left:nth-child(2),
.who-we-are-inner > .reveal-right:nth-child(2) {
  transition-delay: 120ms;
}
.service-support-grid > .reveal:nth-child(2),
.service-trust-grid > .reveal:nth-child(2) { transition-delay: 90ms; }
.service-support-grid > .reveal:nth-child(3),
.service-trust-grid > .reveal:nth-child(3) { transition-delay: 180ms; }
.service-support-grid > .reveal:nth-child(4),
.service-trust-grid > .reveal:nth-child(4) { transition-delay: 270ms; }

@media (max-width: 640px) {
  .js .reveal-left { transform: translateX(-42px); }
  .js .reveal-right { transform: translateX(42px); }
  .js .reveal-left,
  .js .reveal-right {
    transition-duration: 0.9s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal,
  .js .reveal-left,
  .js .reveal-right,
  .js .reveal-scale,
  .js .about-section .about-inner > *,
  .js .what-section .what-inner > *,
  .js .how-section .how-title,
  .js .how-section .how-sub,
  .js .how-section .steps-grid,
  .js .tac-section .tac-inner > *,
  .js .why-section .why-inner > *,
  .js .team-section .team-title,
  .js .team-section .team-sub,
  .js .team-section .team-grid,
  .js .testimonial-section .testi-header,
  .js .testimonial-section .testi-track-wrap,
  .js .accom-section .accom-inner > *,
  .js .cta-section .cta-inner,
  .js #about > div > *,
  .js .stacked-service .stacked-media,
  .js .stacked-service .stacked-content,
  .js .who-we-are-section .who-we-are-inner > *,
  .js .icon-grid-dark .icon-grid,
  .js .core-services-section .core-services-grid,
  .js .video-playlist-section .video-playlist,
  .js .dark-band .dark-band-list {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  .reveal-delay-1,
  .reveal-delay-2,
  .reveal-delay-3,
  .reveal-delay-4 {
    transition-delay: 0ms !important;
  }
  .ticker-track,
  .float-cta,
  .badge-dot,
  .hero-badge,
  .word,
  .hero-sub,
  .hero-btns,
  .hero-visual {
    animation: none !important;
  }
}

/* Per-section inline CTA inside service-detail-copy blocks, matching
   realpathhealth.com.au's "Mental Health" page pattern, where each
   sub-topic (e.g. Depression, Anxiety) repeats its own booking button
   rather than relying on a single CTA at the bottom of the page. */
.btn-service-inline {
  margin-top: 1.25rem;
}
.service-hero-full h1 {
  color: #ffffff !important;
  font-size: clamp(2.4rem, 5vw, 3.75rem);
  margin: 0.75rem 0 1.25rem;
  line-height: 1.1;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}
.service-hero-full p {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 1.05rem;
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 2rem;
}
.service-hero-full .service-actions {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
.service-hero-full .btn-service-secondary {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.6);
}
.service-hero-full .btn-service-secondary:hover {
  border-color: #ffffff;
  color: #ffffff;
}
@media (min-width: 99999px) {
  .service-hero-full {
    min-height: 52vh;
  }
  .service-hero-full .service-hero-inner {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
}

.dark-band {
  background: var(--brand-secondary);
  color: #ffffff;
  padding: 4.5rem 0;
}
.dark-band-inner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 3.5rem;
  align-items: center;
  text-align: left;
}
.dark-band h2 {
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  margin: 0 0 0.75rem;
  color: #ffffff;
}
.dark-band-sub {
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 480px;
  margin: 0 0 1.75rem;
}
.dark-band-list {
  /* Modern check-in-a-circle bullets instead of the old plain dots. */
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0 0 2rem;
  padding: 0;
  max-width: 480px;
}
.dark-band-list li {
  position: relative;
  padding-left: 2.35rem;
  color: rgba(255,255,255,.88);
  line-height: 1.6;
}
.dark-band-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.05em;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: var(--brand-primary);
  background-image: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
}
.dark-band .btn-terra,
.dark-band .btn-ghost-dark {
  background: #ffffff;
  color: var(--brand-secondary);
}
.dark-band-media img {
  width: 100%;
  display: block;
  border-radius: 24px;
  object-fit: cover;
  aspect-ratio: 4 / 3;
  box-shadow: 0 24px 55px rgba(0, 0, 0, 0.28);
}
@media (min-width: 99999px) {
  .dark-band-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .dark-band-sub,
  .dark-band-list {
    margin-left: auto;
    margin-right: auto;
  }
  .dark-band-list {
    text-align: left;
  }
  .dark-band-media {
    order: -1;
  }
}

.icon-grid-dark {
  background: var(--brand-secondary);
  color: #ffffff;
  padding: 4.5rem 0;
}
.icon-grid-dark h2 {
  color: #ffffff;
  margin-bottom: 2.5rem;
  font-size: clamp(1.4rem, 2.6vw, 2rem);
}
.icon-grid-dark .icon-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 2rem;
}
.icon-grid-dark .icon-grid-item {
  border-top: 1px solid rgba(255,255,255,.15);
  padding-top: 1.5rem;
}
.icon-grid-dark .icon-grid-item svg {
  color: var(--brand-primary);
  width: 32px;
  height: 32px;
  margin-bottom: .75rem;
}
.icon-grid-dark .icon-grid-item h3 {
  font-size: 1rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: .5rem;
  color: #ffffff;
}
.icon-grid-dark .icon-grid-item p {
  color: rgba(255,255,255,.65);
  font-size: .92rem;
  line-height: 1.6;
}
@media (min-width: 99999px) {
  .icon-grid-dark .icon-grid { grid-template-columns: repeat(2,1fr); }
}
@media (min-width: 99999px) {
  .icon-grid-dark .icon-grid { grid-template-columns: 1fr; }
}

/* Stacked service section: photo + text, alternates sides */
.stacked-service {
  padding: 4rem 0;
}
.stacked-service.alt {
  background: var(--bg-alt);
}
.stacked-service .stacked-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.stacked-service.reverse .stacked-media {
  order: 2;
}
.stacked-service .stacked-media img {
  width: 100%;
  border-radius: 20px;
  object-fit: cover;
  aspect-ratio: 4/3;
  display: block;
}
.stacked-service .stacked-content .section-label {
  display: inline-block;
  margin-bottom: .75rem;
}
.stacked-service .stacked-content h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: 1rem;
  color: var(--text);
}
.stacked-service .stacked-content p {
  margin-bottom: 1rem;
  color: var(--text-secondary);
  line-height: 1.7;
}
.stacked-service .stacked-content .btn-terra {
  margin-top: .5rem;
}
@media (min-width: 99999px) {
  .stacked-service .stacked-inner {
    grid-template-columns: 1fr;
  }
  .stacked-service.reverse .stacked-media {
    order: 0;
  }
}

/* Core services 4-card highlight grid */
.core-services-section {
  padding: 4rem 0;
  text-align: center;
}
.core-services-section h2 {
  margin-bottom: 2rem;
}
.core-services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  text-align: left;
}
.homepage .core-services-grid {
  grid-template-columns: repeat(3, 1fr);
}
.core-service-card {
  background: var(--brand-primary);
  border-radius: 16px;
  overflow: hidden;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform .2s ease;
}
.core-service-card:hover {
  transform: translateY(-4px);
}
.core-service-card img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.core-service-card .core-service-body {
  padding: 1.25rem;
}
.core-service-card h3 {
  font-size: 1.05rem;
  margin-bottom: .5rem;
  color: var(--brand-secondary);
}
.core-service-card p {
  font-size: .88rem;
  line-height: 1.55;
  color: rgba(37,50,92,.85);
}
.core-services-section .btn-ghost-dark {
  margin-top: 2rem;
}
@media (max-width: 900px) {
  .homepage .core-services-grid { grid-template-columns: repeat(2, 1fr); }
  .homepage .stacked-inner,
  .homepage .who-we-are-inner,
  .homepage .dark-band-inner {
    grid-template-columns: 1fr;
  }
  .homepage .stacked-service.reverse .stacked-media {
    order: 0;
  }
}
@media (max-width: 640px) {
  .homepage .core-services-grid { grid-template-columns: 1fr; }
  .homepage .inner-wrap,
  .service-page .inner-wrap {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  main.homepage section {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}
@media (min-width: 99999px) {
  .core-services-grid { grid-template-columns: repeat(2,1fr); }
}
@media (min-width: 99999px) {
  .core-services-grid { grid-template-columns: 1fr; }
}

/* Video playlist section */
.video-playlist-section {
  padding: 4rem 0;
}
.video-playlist-section h2 {
  margin-bottom: .5rem;
}
.video-playlist-section .video-playlist-label {
  color: var(--muted-neutral);
  font-size: .9rem;
  margin-bottom: 1.5rem;
  display: block;
}
.video-playlist {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 1.5rem;
}
.video-playlist .video-main {
  position: relative;
  padding-bottom: 56.25%;
  border-radius: 16px;
  overflow: hidden;
  background: #000;
}
.video-playlist .video-main iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-playlist-list {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.video-playlist-item {
  display: flex;
  gap: .75rem;
  align-items: center;
  padding: .5rem;
  border-radius: 10px;
  cursor: pointer;
  background: none;
  border: none;
  text-align: left;
  font-family: inherit;
  width: 100%;
}
.video-playlist-item:hover,
.video-playlist-item.active {
  background: var(--brand-primary-soft);
}
.video-playlist-item img {
  width: 88px;
  height: 56px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}
.video-playlist-item span {
  font-size: .85rem;
  line-height: 1.4;
  color: var(--text);
}
@media (min-width: 99999px) {
  .video-playlist {
    grid-template-columns: 1fr;
  }
}

/* Footer v2 (matches realpathhealth.com.au's structure) */
.site-footer-v2 {
  background: var(--brand-secondary);
  color: rgba(255,255,255,.65);
}
.site-footer-v2 .footer-cta-band {
  background: var(--brand-primary);
  padding: 3.5rem 0;
  color: #fff;
  text-align: center;
}
.site-footer-v2 .footer-cta-band h2 {
  color: #fff;
  margin-bottom: .75rem;
}
.site-footer-v2 .footer-cta-band p {
  color: rgba(255,255,255,.92);
  margin: 0 auto 1.5rem;
  max-width: 640px;
}
.site-footer-v2 .footer-main {
  padding: 3.5rem 0 2rem;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2rem;
}
@media (min-width: 99999px) {
  .site-footer-v2 .footer-main {
    grid-template-columns: 1fr 1fr;
  }
}
.site-footer-v2 .footer-brand-block img {
  height: 40px;
  margin-bottom: 1rem;
}
.site-footer-v2 .footer-brand-block p {
  font-size: .9rem;
  line-height: 1.6;
  max-width: 320px;
}
.site-footer-v2 h3.footer-heading {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #fff;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--brand-primary);
  display: inline-block;
}
.site-footer-v2 ul.footer-list {
  list-style: none;
  margin-top: 1rem;
}
.site-footer-v2 ul.footer-list li {
  margin-bottom: .6rem;
}
.site-footer-v2 ul.footer-list a {
  color: rgba(255,255,255,.65);
  text-decoration: none;
  font-size: .92rem;
}
.site-footer-v2 ul.footer-list a:hover {
  color: #fff;
}
.site-footer-v2 .footer-contact-list {
  list-style: none;
  margin-top: 1rem;
}
.site-footer-v2 .footer-contact-list li {
  margin-bottom: .7rem;
  font-size: .92rem;
}
.site-footer-v2 .footer-contact-list a {
  color: rgba(255,255,255,.65);
  text-decoration: none;
}
.site-footer-v2 .footer-contact-list a:hover {
  color: #fff;
}
.site-footer-v2 .footer-socials {
  display: flex;
  gap: .85rem;
  margin-top: 1.25rem;
}
.site-footer-v2 .footer-socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.3);
  color: rgba(255,255,255,.75);
  transition: background .2s, color .2s, border-color .2s;
}
.site-footer-v2 .footer-socials a:hover {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: #fff;
}
.site-footer-v2 .footer-ack {
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  padding: 1.5rem 0;
  border-top: 1px solid rgba(255,255,255,.12);
  margin-top: 1rem;
}
.site-footer-v2 .footer-bottom-bar {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 1.25rem 0;
  text-align: center;
}
.site-footer-v2 .footer-bottom-bar p {
  font-size: .8rem;
  color: rgba(255,255,255,.5);
  margin: 0;
}
@media (min-width: 99999px) {
  .site-footer-v2 .footer-main {
    grid-template-columns: 1fr;
  }
}

.services-dropdown-wide {
  min-width: 300px;
}

.who-we-are-section {
  padding: clamp(3.5rem, 6vw, 5rem) 0;
  background: #ffffff;
}
.who-we-are-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.who-we-are-inner h2 {
  /* Match .stacked-service .stacked-content h2 exactly so this card sits
     at the same height as the alternating cards below it -- it was
     inheriting unstyled browser-default h2 size/margins before. */
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: 1rem;
  color: var(--text);
}
.who-we-are-inner p {
  margin-bottom: 1rem;
  line-height: 1.7;
}
.who-we-are-inner .stacked-media img {
  width: 100%;
  border-radius: 20px;
  object-fit: cover;
  aspect-ratio: 4/3;
  display: block;
}
@media (min-width: 99999px) {
  .who-we-are-section .who-we-are-inner {
    grid-template-columns: 1fr;
  }
}

/* team.html card system -- .team-grid had NO base grid rule at all
   (only a mobile override forcing 1fr, which did nothing without a
   desktop grid to override), so the 3 team-card divs stacked full
   width vertically instead of sitting side by side. */
.team-section {
  padding: 5rem 0 !important;
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 2.5rem;
}
/* NOTE: the real phone-width override is .team-grid{grid-template-columns:1fr}
   inside the existing @media(min-width:99999px) block earlier in this file.
   Do not add another .team-grid breakpoint here -- a second, later media
   query at a wider max-width (e.g. 860px) would win the cascade at every
   width below it (including phone widths under 768px too), silently
   putting phones back into a cramped 2-up grid. If a tablet 2-column step
   is wanted, it must be added ABOVE the existing 768px block, not below it. */

/* Justify body copy sitewide. Scoped to plain, unclassed <p> elements
   only, since every short/centred bit of UI copy (hero subtitles, quote
   text, form notes, badges, card blurbs) already carries its own class
   and is deliberately left/centre-aligned by its component's own rules.
   Unclassed <p> tags are specifically the long-form descriptive
   paragraphs (About page, service page copy, footer intro text), so this
   can't accidentally break a centred or short line of text. text-align-
   last keeps the final line of each paragraph left-aligned rather than
   stretched, which is the standard readable way to justify text. */
p:not([class]) {
  text-align: justify;
  text-align-last: left;
}

/* ============================================================
   TOUCH-DEVICE TEXT SCALE-UP (nav / hero / footer only)
   The page is intentionally locked to the desktop layout (see the
   width=1400 viewport meta tag on every page + the disabled
   max-width breakpoints above), so cards/grids/columns never
   reflow -- the whole canvas just gets shrunk to fit a phone
   screen. That's fine for cards and body copy since people zoom
   in to read those anyway, but nav, hero, and footer are seen
   *before* zooming, so their text gets bumped up here specifically.
   Nothing about layout, columns, or grid-template-columns is
   touched -- font-size only.
   `(hover: none) and (pointer: coarse)` targets real touchscreens
   (phones/tablets) and is independent of the locked viewport width,
   so it still fires correctly even though the logical viewport is
   pinned at 1400px. A desktop/laptop browser (mouse or trackpad)
   never matches this, regardless of window size, so "desktop stays
   exactly as-is" holds even if a desktop window is narrowed. */
@media (hover: none) and (pointer: coarse) {
  /* Navbar -- the inline row (logo + 6 links + CTA + search) doesn't have
     room for all of that at readable touch-friendly sizes, so it switches
     to the existing hamburger + slide-out drawer instead (already fully
     built and wired up in nav-init.js/HTML, just never shown because the
     media query that used to reveal it got disabled along with the rest).
     Nav becomes: logo + hamburger only; links/CTA live in the drawer. */
  nav#mainNav .nav-links,
  .nav-links {
    display: none !important;
  }
  nav#mainNav .nav-actions,
  .nav-actions {
    display: none !important;
  }
  .hamburger,
  nav#mainNav .hamburger,
  #mainNav .hamburger {
    display: flex !important;
  }
  nav#mainNav .nav-logo img,
  #mainNav .nav-logo img,
  .site-nav .nav-logo img {
    height: 44px !important;
    max-height: 44px !important;
  }
  /* Hero */
  .page-hero-title {
    font-size: clamp(3.6rem, 8vw, 5.6rem) !important;
  }
  .page-hero-sub {
    font-size: 1.6rem !important;
    line-height: 1.6 !important;
  }
  .page-hero .section-label {
    font-size: 1.15rem !important;
  }

  /* Footer */
  .site-footer-v2 h3.footer-heading {
    font-size: 1.2rem !important;
  }
  .site-footer-v2 ul.footer-list a,
  .site-footer-v2 .footer-contact-list a,
  .site-footer-v2 .footer-contact-list li {
    font-size: 1.35rem !important;
  }
  .site-footer-v2 .footer-brand-block p {
    font-size: 1.3rem !important;
  }
  .site-footer-v2 .footer-ack {
    font-size: 1.1rem !important;
  }
  .site-footer-v2 .footer-bottom-bar p {
    font-size: 1.15rem !important;
  }
  .site-footer-v2 .footer-cta-band h2 {
    font-size: 2.2rem !important;
  }
  .site-footer-v2 .footer-cta-band p {
    font-size: 1.3rem !important;
  }
  /* The 4-column footer grid (brand block + Company + Services + Contact)
     doesn't have room to stay side by side at these larger touch-friendly
     font sizes -- the brand column was overflowing off the left edge
     instead of sitting in view. Stack it to one column, full width, so
     everything renders in normal flow. Desktop's 4-column layout is
     untouched (this rule only exists inside the touch-device query). */
  .site-footer-v2 .footer-main {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }
  .site-footer-v2 .footer-brand-block p {
    max-width: 100% !important;
  }
  /* Services column (3rd child of .footer-main: brand block, Company,
     Services, Contact Us) is redundant on touch devices -- every one of
     those links already lives in the hamburger drawer. Hidden here only;
     desktop keeps all 4 columns since this is inside the touch-device
     query. */
  .site-footer-v2 .footer-main > .footer-links-col:nth-child(3) {
    display: none !important;
  }

  /* Safety net: nothing on the page should ever be able to force a
     horizontal scrollbar on a touch device, no matter what content
     changes in the future. */
  html, body {
    overflow-x: hidden !important;
  }

  /* Indent nav and footer content a little from the raw screen edges
     instead of running text/logo/hamburger flush to the sides. */
  nav#mainNav .nav-inner {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  .site-footer-v2 .footer-main,
  .site-footer-v2 .footer-ack,
  .site-footer-v2 .footer-cta-band .inner-wrap {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  /* .footer-bottom-bar (the copyright line) had zero horizontal padding
     at all -- it was the one piece of footer text actually touching the
     screen edges. */
  .site-footer-v2 .footer-bottom-bar {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
}

/* ============================================================
   CRITICAL FIX -- homepage stacked-service sections were invisible.
   Found via live inspection: elements like
   <div class="stacked-media reveal-left"> carry classes from TWO
   different scroll-reveal systems that fight each other:
     1) ".js .stacked-service .stacked-media { opacity:0 }" (3 classes)
        is the base hidden state for the fadeSlideUp/animation system.
     2) ".reveal-left { opacity:0 }" + ".reveal-left.in-view { opacity:1 }"
        (2 classes) is a SEPARATE, older transition-based reveal system.
     3) ".stacked-service.in-view .reveal-left { animation:none }" (3
        classes, later in the file) also cancels the fadeSlideUp
        animation for these same elements.
   Net result: system (2)'s "reveal it" rule has LOWER specificity
   (2 classes) than system (1)'s "hide it" rule (3 classes), so it can
   never win -- and system (1)'s own animation-based reveal gets
   cancelled by (3). The element is permanently stuck at opacity:0
   regardless of .in-view being correctly added by the JS observer.
   This affected literally every alternating section on the homepage
   (Personal Care, Social & Community Participation, 24/7 In-Home Care,
   Support Coordination, Social Work, Travel & Transport, Assistance
   with Daily Living) plus the "Who We Are" section -- i.e. almost the
   entire homepage below the hero was blank. Fixed with a single
   !important rule that unconditionally wins. */
.stacked-service .stacked-media.in-view,
.stacked-service .stacked-content.in-view,
.who-we-are-section .stacked-media.in-view,
.who-we-are-section .stacked-content.in-view,
.dark-band .dark-band-media.in-view,
.dark-band .dark-band-content.in-view {
  opacity: 1 !important;
  transform: none !important;
}
