
: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(max-width:768px){
  .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(max-width:900px){
  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(max-width:900px){
  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(max-width:768px){
  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(32px)}
  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. */
.about-section .about-inner > *,
.what-section .what-inner > *,
.how-section .how-title,
.how-section .how-sub,
.how-section .steps-grid,
.tac-section .tac-inner > *,
.why-section .why-inner > *,
.team-section .team-title,
.team-section .team-sub,
.team-section .team-grid,
.testimonial-section .testi-header,
.testimonial-section .testi-track-wrap,
.accom-section .accom-inner > *,
.cta-section .cta-inner,
#about > div > *,
.stacked-service .stacked-media,
.stacked-service .stacked-content,
.who-we-are-section .who-we-are-inner > *,
.icon-grid-dark .icon-grid,
.core-services-section .core-services-grid,
.video-playlist-section .video-playlist,
.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 .7s 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(max-width:768px){.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(max-width:1100px){
  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(max-width:820px){
  .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(max-width:520px){
  .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}
}

/* Prestidge 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(max-width:820px){
  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(max-width:520px){
  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(max-width:900px){
  .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(max-width:560px){
  .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(max-width:1000px){
  .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(max-width:720px){
  .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(max-width:900px){
  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(max-width:720px){
  .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(max-width:768px){
  .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(max-width:900px){
  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;
}
.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 (max-width: 640px) {
  .page-hero.page-hero-photo {
    min-height: 48vh;
  }
  .page-hero.page-hero-photo .page-hero-inner {
    padding: 2.5rem 1.25rem;
  }
}

@media (max-width: 768px) {
  .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 (max-width: 768px) {
  .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 (max-width: 900px) {
  .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 (max-width: 900px) {
  #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 (max-width: 900px) {
  #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 (max-width: 900px) {
  .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; }
.about-intro-inner, .ndis-info-inner, .careers-inner { display: grid; grid-template-columns: 1fr 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 (max-width: 900px) { .contact-inner { grid-template-columns: 1fr; gap: 2.5rem; } }
@media (max-width: 600px) { .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 (max-width: 900px) { .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 (max-width: 600px) { .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 (max-width: 600px) {
  .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 (max-width: 900px) {
  .testi-track-new {
    grid-template-columns: repeat(4, 85vw);
    gap: 1rem;
  }
  .testi-header-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 600px) {
  .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 (max-width: 640px) {
  .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 (max-width: 768px) {
  .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 (max-width: 640px) {
  .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 (max-width: 900px) {
  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 (max-width: 640px) {
  .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 (max-width: 768px) {
  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 Prestidge 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 (max-width: 980px) {
  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 (max-width: 720px) {
  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 (max-width: 980px) {
  .services-page .steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .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);
}

/* 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;
}
.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;
}
@media (max-width: 860px) {
  .service-detail-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* 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-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);
}

.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;
}
/* 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 (max-width: 980px) {
  .service-support-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .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). */
.reveal, .reveal-left, .reveal-right, .reveal-scale {
  opacity: 0;
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal {
  transform: translateY(28px);
}
.reveal-left {
  transform: translateX(-32px);
}
.reveal-right {
  transform: translateX(32px);
}
.reveal-scale {
  transform: scale(0.94);
}
.reveal.in-view,
.reveal-left.in-view,
.reveal-right.in-view,
.reveal-scale.in-view {
  opacity: 1;
  transform: none;
}

/* 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 (max-width: 640px) {
  .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 (max-width: 860px) {
  .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 (max-width: 900px) {
  .icon-grid-dark .icon-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px) {
  .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 (max-width: 860px) {
  .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;
}
.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: 960px) {
  .core-services-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px) {
  .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 (max-width: 860px) {
  .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 (max-width: 1100px) {
  .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 (max-width: 860px) {
  .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 (max-width: 860px) {
  .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;
}
@media (max-width: 860px) {
  .team-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* 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;
}