/*!
Theme Name: Rise2Shine
Theme URI: http://underscores.me/
Author: Maple Leaf
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: rise2shine
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Rise2Shine is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/* =========================================================
   Rise2Shine Care — Homepage Styles
   Modern Healthcare + Corporate · NDIS Provider
   ========================================================= */

/* =========================================================
   Rise2Shine Care — Homepage Styles
   Modern Healthcare + Corporate · NDIS Provider
   ========================================================= */

:root {
  --brand: #f28c28;
  --brand-dark: #d6761a;
  --green: #5baa3c;
  --green-dark: #4a8f30;
  --purple: #5f4696;
  --dark: #1f2937;
  --muted: #5b6573;
  --light: #f8f9fa;
  --cream: #fff7ef;
  --border: #e5e7eb;
  --white: #ffffff;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow-sm: 0 4px 14px rgba(31, 41, 55, 0.06);
  --shadow: 0 14px 40px rgba(31, 41, 55, 0.1);
  --shadow-lg: 0 24px 60px rgba(31, 41, 55, 0.16);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ff-head: "Poppins", system-ui, sans-serif;
  --ff-body: "Inter", system-ui, sans-serif;
}

/* ---------- Base ---------- */
* {
  box-sizing: border-box;
}
/* Layout safety net: grid/flex children never overflow from long unbreakable content, and two-column content rows take natural height (no forced equal heights). */
[class*="col-"] {
  min-width: 0;
}
/* Media column that stays in view while a longer text column scrolls, so an asymmetric two-column section never leaves a dead white gap next to the shorter side. Desktop only; keeps the image at its natural aspect ratio. */
@media (min-width: 992px) {
  .col-sticky {
    position: sticky;
    top: 135px;
    align-self: flex-start;
  }
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 120px;
}
/* Force a classic, always-visible scrollbar. Some Chromium builds / Brave (shields on) default to auto-hiding overlay scrollbars that stay invisible until you scroll; defining these makes the bar persistent and consistent across browsers. */
html {
  scrollbar-width: auto;
  scrollbar-color: var(--muted) rgba(31, 41, 55, 0.08);
}
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}
::-webkit-scrollbar-track {
  background: rgba(31, 41, 55, 0.06);
}
::-webkit-scrollbar-thumb {
  background: var(--muted);
  border-radius: 999px;
  border: 3px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--brand);
  background-clip: padding-box;
}
body {
  font-family: var(--ff-body);
  color: var(--dark);
  background: var(--white);
  line-height: 1.7;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: var(--ff-head);
  font-weight: 700;
  line-height: 1.18;
  color: var(--dark);
  letter-spacing: -0.01em;
}
.h1 {
  font-size: clamp(1.9rem, 1.2rem + 2.6vw, 2.9rem);
}
.h4 {
  font-size: 1.35rem;
}
.h5 {
  font-size: 1.15rem;
}
.h6 {
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
p {
  margin: 0 0 1rem;
  color: var(--muted);
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
a {
  color: var(--brand-dark);
  text-decoration: none;
  transition: color 0.2s var(--ease);
}
a:hover {
  color: var(--brand);
}
:focus-visible {
  outline: 3px solid rgba(242, 140, 40, 0.55);
  outline-offset: 2px;
  border-radius: 4px;
}

.section-pad {
  padding: clamp(3.5rem, 2rem + 6vw, 6.5rem) 0;
}
.bg-cream {
  background: var(--cream);
}
.text-gradient {
  background: linear-gradient(100deg, var(--brand), var(--green));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 2000;
  background: var(--dark);
  color: #fff;
  padding: 0.6rem 1rem;
  border-radius: 8px;
}

/* ---------- Eyebrow + Section head ---------- */
.eyebrow {
  display: inline-block;
  font-family: var(--ff-head);
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-dark);
  background: rgba(242, 140, 40, 0.12);
  padding: 0.35rem 0.85rem;
  border-radius: 50px;
  margin-bottom: 1rem;
}
.eyebrow--light {
  color: #fff;
  background: rgba(255, 255, 255, 0.18);
}
.section-head {
  max-width: 760px;
  margin: 0 auto 3rem;
}
.section-head p {
  font-size: 1.08rem;
}

/* ---------- Buttons ---------- */
.btn {
  font-family: var(--ff-head);
  font-weight: 600;
  border-radius: 50px;
  padding: 0.7rem 1.6rem;
  transition: all 0.25s var(--ease);
  border: 2px solid transparent;
}
.btn-lg {
  padding: 0.85rem 2rem;
  font-size: 1.02rem;
}
.btn-brand {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 8px 22px rgba(242, 140, 40, 0.3);
}
.btn-brand:hover {
  background: var(--brand-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(242, 140, 40, 0.4);
}
.btn-outline-brand {
  border-color: var(--brand);
  color: var(--brand-dark);
  background: transparent;
}
.btn-outline-brand:hover {
  background: var(--brand);
  color: #fff;
  transform: translateY(-2px);
}
.btn-ghost {
  background: rgba(91, 170, 60, 0.1);
  color: var(--green-dark);
}
.btn-ghost:hover {
  background: var(--green);
  color: #fff;
  transform: translateY(-2px);
}
.btn-outline-light {
  border-color: rgba(255, 255, 255, 0.7);
  color: #fff;
}
.btn-outline-light:hover {
  background: #fff;
  color: var(--dark);
  transform: translateY(-2px);
}
.btn-light:hover {
  transform: translateY(-2px);
}

.link-arrow {
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--brand-dark);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.link-arrow i {
  transition: transform 0.25s var(--ease);
}
.link-arrow:hover i {
  transform: translateX(5px);
}

/* ---------- Section 1 · Top bar ---------- */
.topbar {
  background: var(--dark);
  color: #d6dae1;
  font-size: 0.88rem;
}
.topbar a {
  color: #d6dae1;
}
.topbar a:hover {
  color: var(--brand);
}
.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 42px;
  flex-wrap: wrap;
}
.topbar__contacts {
  display: flex;
  gap: 1.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}
.topbar__contacts i {
  color: var(--brand);
}
.topbar__right {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.badge-ndis {
  color: #fff;
  font-weight: 600;
}
.badge-ndis i {
  color: var(--green);
}
.topbar__cta {
  background: var(--brand);
  color: #fff !important;
  padding: 0.3rem 1rem;
  border-radius: 50px;
  font-weight: 600;
}
.topbar__cta:hover {
  background: var(--brand-dark);
}

/* ---------- Section 2 · Header ---------- */
/* Wrapper is display:contents so the sticky header's containing block is <body>, not the short include <div> (otherwise it can't travel and unsticks immediately) */
#site-header {
  display: contents;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.3s var(--ease);
}
.site-header.scrolled {
  box-shadow: 0 8px 30px rgba(31, 41, 55, 0.12);
}
.navbar {
  padding: 0.6rem 0;
}
.navbar-brand img {
  height: 88px;
  width: auto;
}
.navbar-nav .nav-link {
  font-family: var(--ff-head);
  font-weight: 500;
  color: var(--dark);
  padding: 0.5rem 0.8rem !important;
  position: relative;
  border-radius: 8px;
}
.navbar-nav .nav-link::after {
  content: "";
  position: absolute;
  left: 0.8rem;
  right: 0.8rem;
  bottom: 0.3rem;
  height: 3px;
  width: auto;
  border: 0;
  border-radius: 999px;
  background: var(--brand);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s var(--ease);
}
.navbar-nav .nav-item.dropdown .nav-link::after {
  left: 0.2rem !important;
}
/* Persistent highlight only for the current page, an open dropdown, or keyboard focus — NOT lingering hover/tap (which sticks on touch and leaves closed dropdowns looking highlighted) */
.navbar-nav .nav-link.active,
.navbar-nav .nav-item.dropdown.open > .nav-link,
.navbar-nav .nav-link[aria-expanded="true"],
.navbar-nav .nav-link:focus-visible {
  color: var(--brand-dark);
}
.navbar-nav .nav-link.active::after,
.navbar-nav .nav-item.dropdown.open > .nav-link::after,
.navbar-nav .nav-link[aria-expanded="true"]::after,
.navbar-nav .nav-link:focus-visible::after {
  transform: scaleX(1);
}
.navbar-nav .nav-link:focus {
  outline: none;
  box-shadow: none;
}
.navbar-nav .nav-link:focus-visible {
  outline: none;
}
/* Hover highlight only on real pointer devices, so it never sticks after a tap on touch screens */
@media (hover: hover) {
  .navbar-nav .nav-link:hover {
    color: var(--brand-dark);
  }
  .navbar-nav .nav-link:hover::after {
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .navbar-nav .dropdown-menu,
  .nav-caret {
    transition: none;
  }
}

/* Dropdown caret icon */
.nav-caret {
  display: inline-block;
  font-size: 0.7rem;
  margin-left: 0.35rem;
  vertical-align: middle;
  transition: transform 0.25s var(--ease);
}
.navbar-nav .nav-link[aria-expanded="true"] .nav-caret {
  transform: rotate(180deg);
}
/* Chevron toggles the dropdown (click/tap) while the text label navigates */
.navbar-nav .nav-caret {
  padding: 0.35rem;
  margin: -0.35rem -0.2rem -0.35rem 0.1rem;
}
.navbar-nav .nav-item.dropdown.open > .dropdown-menu {
  display: block;
}
.navbar-nav .nav-item.dropdown.open .nav-caret {
  transform: rotate(180deg);
}
.header-cta {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.header-cta .btn {
  padding: 0.55rem 1.15rem;
  font-size: 0.92rem;
}
.nav-ndis-logo {
  height: 46px;
  width: auto;
  flex: 0 0 auto;
}

/* Standard dropdowns */
.navbar-nav .dropdown-menu {
  border: none;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  padding: 0.5rem;
  margin-top: 0.6rem;
  min-width: 240px;
}
.navbar-nav .dropdown-item {
  font-family: var(--ff-head);
  font-weight: 500;
  color: var(--dark);
  padding: 0.6rem 0.9rem;
  border-radius: 8px;
  transition:
    background 0.2s var(--ease),
    color 0.2s var(--ease);
}
.navbar-nav .dropdown-item:hover,
.navbar-nav .dropdown-item:focus {
  background: var(--cream);
  color: var(--brand-dark);
}
/* Invisible bridge over the margin gap so the mouse can travel from tab to menu without leaving */
.navbar-nav .dropdown-menu::before {
  content: "";
  position: absolute;
  top: -0.9rem;
  left: 0;
  right: 0;
  height: 0.9rem;
  background: transparent;
}
/* The wide mega-menu sits further below the tall header row, so it needs a taller bridge */
.navbar-nav .has-mega .mega-menu::before {
  top: -2.8rem;
  height: 2.8rem;
}

/* Mega menu */
.mega-menu {
  border: none;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 1rem;
  margin-top: 0.6rem;
  min-width: 540px;
}
.mega-menu--wide {
  min-width: 760px;
}
.mega-menu__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.25rem;
}
.mega-menu__grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
.mega-menu__grid a {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 0.7rem;
  border-radius: var(--radius-sm);
  color: var(--dark);
  font-weight: 500;
  font-size: 0.92rem;
  line-height: 1.25;
  transition:
    background 0.2s var(--ease),
    color 0.2s var(--ease);
}
.mega-menu__grid a:hover {
  background: var(--cream);
  color: var(--brand-dark);
}
.mega-menu__grid i {
  font-size: 1.2rem;
  color: var(--brand);
  width: 26px;
  flex: 0 0 26px;
  text-align: center;
}
.mega-menu__all {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding: 0.8rem 1rem;
  border-radius: var(--radius-sm);
  background: var(--brand);
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 600;
  transition:
    background 0.2s var(--ease),
    transform 0.2s var(--ease);
}
.mega-menu__all:hover,
.mega-menu__all:focus {
  background: var(--brand-dark);
  color: #fff;
  transform: translateY(-2px);
}
.mega-menu__all i {
  transition: transform 0.25s var(--ease);
}
.mega-menu__all:hover i {
  transform: translateX(5px);
}

/* Keep the wide mega-menu centred inside the container + animate dropdowns open/closed (desktop nav shows at xl+; the full horizontal nav needs ~1200px) */
@media (min-width: 1200px) {
  .navbar > .container {
    position: relative;
  }
  .has-mega {
    position: static;
  }
  /* Always rendered (so it can transition); hidden state fades + slides down slightly */
  .navbar-nav .dropdown-menu {
    display: block;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition:
      opacity 0.24s var(--ease),
      transform 0.24s var(--ease),
      visibility 0.24s var(--ease);
  }
  .has-mega .mega-menu {
    left: 50%;
    right: auto;
    top: 100%;
    transform: translateX(-50%);
  }
  /* Reveal on hover / keyboard focus / click-open — top-level link stays clickable and navigates */
  .navbar-nav .nav-item.dropdown:hover > .dropdown-menu,
  .navbar-nav .nav-item.dropdown:focus-within > .dropdown-menu,
  .navbar-nav .nav-item.dropdown.open > .dropdown-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
  /* Slide only the standard dropdowns (the mega keeps its centring translateX) */
  .navbar-nav .nav-item.dropdown:not(.has-mega):hover > .dropdown-menu,
  .navbar-nav .nav-item.dropdown:not(.has-mega):focus-within > .dropdown-menu,
  .navbar-nav .nav-item.dropdown:not(.has-mega).open > .dropdown-menu {
    transform: translateY(0);
  }
  .navbar-nav .nav-item.dropdown:hover .nav-caret,
  .navbar-nav .nav-item.dropdown:focus-within .nav-caret {
    transform: rotate(180deg);
  }
}

/* ---------- Section 3 · Hero ---------- */
.hero {
  position: relative;
  min-height: clamp(560px, 80vh, 760px);
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero video.hero__bg {
  z-index: 1;
}
.hero__bg--fallback {
  z-index: -1;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      105deg,
      rgba(15, 21, 32, 0.96) 0%,
      rgba(17, 24, 38, 0.88) 45%,
      rgba(54, 38, 92, 0.72) 100%
    ),
    rgba(15, 21, 32, 0.3);
}
.hero .container {
  position: relative;
  z-index: 2;
}
.hero__content {
  max-width: 760px;
  color: #fff;
  padding: 3rem 0;
}
.hero__eyebrow {
  display: inline-block;
  font-family: var(--ff-head);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(91, 170, 60, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 0.4rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.3rem;
}
.hero h1 {
  color: #fff;
  font-size: clamp(2.3rem, 1.3rem + 4vw, 4.1rem);
  font-weight: 800;
  margin-bottom: 1.2rem;
}
.hero__content p {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.18rem;
  max-width: 620px;
  margin-bottom: 1.8rem;
}
.hero__cta {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 2.2rem;
}
.hero__trust {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.6rem;
}
.hero__trust li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
  font-family: var(--ff-head);
  font-size: 0.95rem;
}
.hero__trust i {
  color: var(--green);
  font-size: 1.1rem;
}

/* ---------- Section 4 · Stats ---------- */
.stats {
  margin-top: -3.5rem;
  position: relative;
  z-index: 3;
}
.stat-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.8rem 1rem;
  text-align: center;
  box-shadow: var(--shadow);
  height: 100%;
  transition:
    transform 0.3s var(--ease),
    box-shadow 0.3s var(--ease);
}
.stat-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}
.stat-card__num {
  display: block;
  font-family: var(--ff-head);
  font-weight: 800;
  font-size: clamp(2rem, 1.4rem + 2vw, 2.8rem);
  color: var(--brand);
  line-height: 1;
}
.stat-card__label {
  display: block;
  margin-top: 0.5rem;
  font-weight: 500;
  color: var(--muted);
  font-size: 0.98rem;
}

/* ---------- Section 5 · About ---------- */
.about__media {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.about__media img {
  width: 100%;
  border-radius: var(--radius);
}
.about__badge {
  position: absolute;
  left: 1.2rem;
  bottom: 1.2rem;
  background: #fff;
  border-radius: var(--radius-sm);
  padding: 0.9rem 1.1rem;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  max-width: 200px;
}
.about__badge strong {
  font-family: var(--ff-head);
  font-size: 1.8rem;
  color: var(--green);
  line-height: 1;
}
.about__badge span {
  font-size: 0.82rem;
  color: var(--muted);
}
.about__highlights {
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 1.8rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
}
.about__highlights li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 500;
  font-family: var(--ff-head);
}
.about__highlights i {
  color: var(--green);
  font-size: 1.2rem;
}

/* Read more / less — clamps a text column to the paired image's height (JS-driven), so a tall text block doesn't leave white space beside the image */
.readmore {
  position: relative;
}
.readmore__content {
  position: relative;
  overflow: hidden;
  transition: max-height 0.45s var(--ease);
}
.readmore.is-clamped .readmore__content::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4.5rem;
  background: linear-gradient(rgba(255, 255, 255, 0), var(--white));
  pointer-events: none;
}
.readmore__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1rem;
  padding: 0.4rem 0;
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--dark);
  font-family: var(--ff-head);
  font-weight: 700;
  font-size: 1rem;
  text-decoration: underline;
  text-decoration-color: var(--brand);
  text-underline-offset: 4px;
  transition: color 0.2s var(--ease);
}
.readmore__btn:hover {
  color: var(--brand-dark);
}
.readmore__btn i {
  color: var(--brand);
  transition: transform 0.3s var(--ease);
}
.readmore.is-open .readmore__btn i {
  transform: rotate(180deg);
}
.readmore + .btn {
  margin-top: 1.5rem;
}
/* Reusable per-paragraph Read More / Less: JS truncates a plain-text <p> over 250 chars at a word boundary; the SAME <p> holds the full text (no duplicate markup). The toggle is a subtle inline text button that matches the site type/colours. */
.rm-toggle {
  display: inline;
  margin-left: 0.3rem;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--brand-dark);
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: var(--brand);
  text-underline-offset: 3px;
  transition: color 0.2s var(--ease);
}
.rm-toggle:hover {
  color: var(--brand);
}
.rm-toggle:focus-visible {
  outline: 2px solid var(--brand-dark);
  outline-offset: 2px;
  border-radius: 3px;
}
/* Block-level Read More: a run of consecutive paragraphs collapses under ONE toggle (first paragraph shown, the rest hidden), so reading flow isn't broken by a button on every paragraph. */
.rm-toggle--block {
  display: inline-block;
  margin: 0.2rem 0 0;
}
/* ---------- Section 6 · Services ---------- */
.service-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  height: 100%;
  transition:
    transform 0.35s var(--ease),
    box-shadow 0.35s var(--ease);
  display: flex;
  flex-direction: column;
}
.service-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}
.service-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/10;
}
.service-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.service-card:hover .service-card__media img {
  transform: scale(1.07);
}
.service-card__body {
  padding: 1.4rem 1.4rem 1.6rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.service-card__body h3 {
  font-size: 1.2rem;
  margin-bottom: 0.75rem;
}
.service-card__body p {
  font-size: 0.96rem;
  flex: 1;
}
.service-card__list {
  list-style: none;
  margin: 0 0 1.1rem;
  padding: 0;
  flex: 1;
}
.service-card__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--muted);
  margin-bottom: 0.55rem;
}
.service-card__list li:last-child {
  margin-bottom: 0;
}
.service-card__list i {
  color: var(--green);
  font-size: 1rem;
  flex: 0 0 auto;
  margin-top: 0.15rem;
}

/* ---------- Section 7 · Why ---------- */
.feature {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.8rem;
  height: 100%;
  transition:
    transform 0.3s var(--ease),
    box-shadow 0.3s var(--ease),
    border-color 0.3s var(--ease);
}
.feature:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
  border-color: rgba(242, 140, 40, 0.4);
}
.feature__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    rgba(242, 140, 40, 0.15),
    rgba(91, 170, 60, 0.15)
  );
  color: var(--brand-dark);
  font-size: 1.6rem;
  margin-bottom: 1.1rem;
}

.feature .feature__icon img {
  width: 30px;
  filter: brightness(0) saturate(100%) invert(51%) sepia(76%) saturate(979%)
    hue-rotate(352deg) brightness(88%) contrast(89%);
}

.feature .feature__icon svg {
  width: 26px;
  height: auto;
}
.feature h3 {
  margin-bottom: 0.5rem;
}
.feature p {
  margin: 0;
  font-size: 0.96rem;
}

/* ---------- Section 8 · SIL ---------- */
.property-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  height: 100%;
  transition:
    transform 0.35s var(--ease),
    box-shadow 0.35s var(--ease);
  display: flex;
  flex-direction: column;
}
.property-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}
.property-card__media {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.property-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.property-card:hover .property-card__media img {
  transform: scale(1.06);
}
.property-card__tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: var(--green);
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 600;
  font-size: 0.76rem;
  padding: 0.3rem 0.8rem;
  border-radius: 50px;
}
.property-card__body {
  padding: 1.4rem;
}
.property-card__body > p {
  font-weight: 500;
  color: var(--brand-dark);
  margin-bottom: 0.9rem;
}
.property-card__features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.1rem;
}
.property-card__features li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.92rem;
  color: var(--muted);
  margin-bottom: 0.35rem;
}
.property-card__features i {
  color: var(--green);
}

/* ---------- Section 9 · Mission/Vision/Values ---------- */
.mvv {
  position: relative;
  overflow: hidden;
}
.mvv__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    125deg,
    var(--purple) 0%,
    #3d2c6b 55%,
    var(--green-dark) 130%
  );
}
.mvv__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 18% 22%,
      rgba(242, 140, 40, 0.3),
      transparent 42%
    ),
    radial-gradient(circle at 82% 80%, rgba(91, 170, 60, 0.3), transparent 45%);
}
.mvv .container {
  position: relative;
  z-index: 2;
}
.mvv .section-head h2,
.mvv .section-head .h1 {
  color: #fff;
}
.glass-card {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: var(--radius);
  padding: 2rem;
  height: 100%;
  color: #fff;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition:
    transform 0.3s var(--ease),
    background 0.3s var(--ease);
}
.glass-card:hover {
  transform: translateY(-6px);
  background: rgba(255, 255, 255, 0.16);
}
.glass-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 1.7rem;
  margin-bottom: 1.2rem;
}
.glass-card h3 {
  color: #fff;
  margin-bottom: 0.7rem;
}
.glass-card p {
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}
.glass-card__values {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.glass-card__values li {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 0.4rem 0.9rem;
  border-radius: 50px;
  font-family: var(--ff-head);
  font-weight: 500;
  font-size: 0.92rem;
}

/* "Show more / less" toggle for a long list of value badges (JS-added when the list exceeds its limit) */
.badge-toggle {
  display: inline-block;
  margin-top: 0.9rem;
  padding: 0.35rem 0.95rem;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50px;
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 600;
  font-size: 0.82rem;
  transition: background 0.2s var(--ease);
}

.badge-toggle:hover {
  background: rgba(255, 255, 255, 0.3);
}

.badge-toggle:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Per-paragraph Read More toggle sits on the dark purple band here, so make it light */
.mvv .rm-toggle {
  color: #fff;
  text-decoration-color: rgba(255, 255, 255, 0.7);
}

.mvv .rm-toggle:hover {
  color: rgba(255, 255, 255, 0.85);
}

/* CTA banner has an orange gradient background — make the Read More toggle white so it stands out instead of blending in */
.cta-banner .rm-toggle {
  color: #fff;
  text-decoration-color: rgba(255, 255, 255, 0.8);
}

.cta-banner .rm-toggle:hover {
  color: rgba(255, 255, 255, 0.85);
}

/* ---------- Section 10 · Timeline ---------- */
.timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  position: relative;
  counter-reset: step;
}
.timeline::before {
  content: "";
  position: absolute;
  top: 28px;
  left: 12%;
  right: 12%;
  height: 3px;
  background: linear-gradient(90deg, var(--brand), var(--green));
  border-radius: 4px;
  z-index: 0;
}
.timeline__step {
  position: relative;
  text-align: center;
  padding-top: 4.6rem;
  z-index: 1;
}
.timeline__num {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--brand);
  color: var(--brand-dark);
  font-family: var(--ff-head);
  font-weight: 800;
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm);
}
.timeline__step h3 {
  margin-bottom: 0.5rem;
}
.timeline__step p {
  font-size: 0.94rem;
  margin: 0;
}

/* ---------- Section 11 · Testimonials ---------- */
.testi-slider {
  max-width: 900px;
  margin: 0 auto;
  overflow: hidden;
}
.testi-track {
  display: flex;
  transition: transform 0.55s var(--ease);
}
.testi-card {
  flex: 0 0 100%;
  padding: 2.4rem;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-align: center;
}
.testi-card__stars {
  color: var(--brand);
  font-size: 1.1rem;
  margin-bottom: 1rem;
}
.testi-card blockquote {
  margin: 0 0 1.4rem;
}
.testi-card blockquote p {
  font-family: var(--ff-head);
  font-weight: 500;
  font-size: clamp(1.05rem, 0.9rem + 0.6vw, 1.35rem);
  color: var(--dark);
  line-height: 1.55;
}
.testi-card__author {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
}
.testi-card__author img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}
.testi-card__author span {
  display: flex;
  flex-direction: column;
  text-align: left;
  font-size: 0.9rem;
  color: var(--muted);
}
.testi-card__author strong {
  font-family: var(--ff-head);
  color: var(--dark);
}
.testi-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  margin-top: 1.6rem;
}
.testi-btn {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid var(--border);
  background: #fff;
  color: var(--dark);
  font-size: 1.1rem;
  cursor: pointer;
  transition: all 0.2s var(--ease);
}
.testi-btn:hover {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}
.testi-dots {
  display: flex;
  gap: 0.5rem;
}
.testi-dots button {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: var(--border);
  cursor: pointer;
  padding: 0;
  transition: all 0.2s var(--ease);
}
.testi-dots button.active {
  background: var(--brand);
  width: 26px;
  border-radius: 50px;
}

/* ---------- Section 12 · FAQ ---------- */
.faq-accordion .accordion-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm) !important;
  margin-bottom: 0.9rem;
  overflow: hidden;
  background: #fff;
}
.faq-accordion .accordion-button {
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--dark);
  padding: 1.15rem 1.3rem;
  box-shadow: none;
}
.faq-accordion .accordion-button:not(.collapsed) {
  background: var(--brand);
  color: #fff;
}
.faq-accordion .accordion-button:not(.collapsed)::after {
  filter: brightness(0) invert(1);
}
.faq-accordion .accordion-button:focus {
  box-shadow: 0 0 0 0.2rem rgba(242, 140, 40, 0.25);
}
.faq-accordion .accordion-body {
  color: var(--muted);
  padding: 1.1rem 1.3rem 1.4rem;
}
.faq-accordion .accordion-body p:last-child {
  margin: 0;
}

/* ---------- Section 13 · Blog ---------- */
.post-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  height: 100%;
  transition:
    transform 0.35s var(--ease),
    box-shadow 0.35s var(--ease);
}
.post-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}
.post-card__media {
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
}
.post-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.post-card:hover .post-card__media img {
  transform: scale(1.06);
}
.post-card__body {
  padding: 1.4rem;
}
.post-card__meta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  color: var(--green-dark);
  font-weight: 600;
  font-family: var(--ff-head);
  margin-bottom: 0.6rem;
}
.post-card__body h3 {
  margin-bottom: 0.6rem;
}
.post-card__body h3 a {
  color: var(--dark);
}
.post-card__body h3 a:hover {
  color: var(--brand-dark);
}
.post-card__body p {
  font-size: 0.95rem;
}

/* ---------- Section 14 · CTA banner ---------- */
.cta-banner {
  background: linear-gradient(
    120deg,
    var(--brand) 0%,
    var(--brand-dark) 60%,
    var(--purple) 130%
  );
  padding: clamp(4rem, 3rem + 5vw, 6.5rem) 0;
  position: relative;
  overflow: hidden;
}
.cta-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 85% 30%,
    rgba(255, 255, 255, 0.18),
    transparent 45%
  );
}
.cta-banner__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.cta-banner__inner > div:first-child {
  max-width: 600px;
}
.cta-banner p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 1.12rem;
  margin: 0;
}
.cta-banner__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ---------- Section 15 · Footer ---------- */
.site-footer {
  background: var(--dark);
  color: #b9c0cc;
  padding-top: 4rem;
}
.site-footer h3,
.site-footer .title-foot {
  color: #fff;
  margin-bottom: 1.1rem;
}
.site-footer p {
  color: #9aa3b2;
}
.site-footer__logo {
  width: 120px;
  height: auto;
  background: #fff;
  padding: 0.7rem;
  border-radius: 12px;
  margin-bottom: 1.2rem;
}
.site-footer__social {
  display: flex;
  gap: 0.6rem;
  margin-top: 1.2rem;
}
.site-footer__social a {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  transition: all 0.25s var(--ease);
}
.site-footer__social a:hover {
  background: var(--brand);
  transform: translateY(-3px);
}
.site-footer__badges {
  display: block;
  width: 100%;
  max-width: 240px;
  height: auto;
  margin-top: 1.4rem;
  background: transparent;
  padding: 0.55rem 0.7rem;
  border-radius: 12px;
}
.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-links li {
  margin-bottom: 0.6rem;
}
.footer-links a {
  color: #b9c0cc;
  display: inline-block;
  transition:
    color 0.25s var(--ease),
    padding-left 0.25s var(--ease);
}
.footer-links a:hover {
  color: var(--brand);
  padding-left: 4px;
}
.footer-links--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.9rem;
}
.footer-links--inline li {
  margin: 0;
}
.footer-contact {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-contact li {
  display: flex;
  gap: 0.7rem;
  margin-bottom: 0.8rem;
  align-items: flex-start;
}
.footer-contact i {
  color: var(--brand);
  margin-top: 0.25rem;
}
.footer-contact a {
  color: #b9c0cc;
  transition: color 0.25s var(--ease);
}
.footer-contact a:hover {
  color: var(--brand);
}
.footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
}
.footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 0.4rem 0.8rem;
  border-radius: 50px;
  font-size: 0.82rem;
  color: #fff;
}
.footer-badge i {
  color: var(--green);
}
.site-footer__bottom {
  margin-top: 3rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 1.2rem 0;
}
.site-footer__bottom p {
  margin: 0;
  font-size: 0.9rem;
  color: #8d96a5;
}
.site-footer__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  flex-wrap: wrap;
}
.site-footer__credit {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: #8d96a5;
  font-family: var(--ff-head);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: color 0.2s var(--ease);
}
.site-footer__credit:hover {
  color: #fff;
}
.site-footer__credit img {
  height: 30px;
  width: auto;
  display: block;
  flex: 0 0 auto;
}
@media (max-width: 575.98px) {
  .site-footer__bottom-inner {
    flex-direction: column;
    text-align: center;
    gap: 0.9rem;
  }
}

/* ---------- Back to top ---------- */
.to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  z-index: 1040;
  box-shadow: 0 8px 22px rgba(242, 140, 40, 0.4);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: all 0.3s var(--ease);
}
.to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.to-top:hover {
  background: var(--brand-dark);
  transform: translateY(-3px);
}

/* ---------- Animations ---------- */
[data-animate] {
  opacity: 0;
  transform: translateY(34px);
  transition:
    opacity 0.7s var(--ease),
    transform 0.7s var(--ease);
}
[data-animate].in-view {
  opacity: 1;
  transform: none;
}

/* ============================================================
   CONTACT PAGE
============================================================ */
/* Page hero banner */
.page-hero {
  position: relative;
  text-align: center;
  color: #fff;
  padding: clamp(5rem, 4rem + 6vw, 8.5rem) 0 clamp(4rem, 3rem + 5vw, 7rem);
  /* background:
    linear-gradient(rgba(31, 41, 55, 0.62), rgba(31, 41, 55, 0.52)),
    url("./assets/images/contact-bg.webp") center/cover no-repeat; */
  background:
    linear-gradient(rgba(31, 41, 55, 0.62), rgba(31, 41, 55, 0.52)),
    url("./assets/images/default-banner.webp") center/cover no-repeat;
}
.page-hero h1 {
  color: #fff;
  margin-bottom: 0.6rem;
}
/* Hero banner title is a non-heading element (the real <h1> is the main content heading below), styled to match the old hero <h1> */
.page-hero__title {
  font-family: var(--ff-head);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.01em;
  font-size: calc(1.375rem + 1.5vw);
  color: #fff;
  margin-bottom: 0.6rem;
}
.page-hero p {
  color: rgba(255, 255, 255, 0.94);
  font-size: 1.12rem;
  max-width: 620px;
  margin: 0 auto;
}

/* Orange quick-contact strip */
.contact-strip {
  background: var(--brand);
  color: #fff;
  padding: clamp(2rem, 1.4rem + 2vw, 2.8rem) 0;
}
.contact-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  justify-content: flex-start;
  text-align: left;
  max-width: 260px;
  margin-inline: auto;
}
.contact-card__icon {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
}
.contact-card__body {
  display: flex;
  flex-direction: column;
}
.contact-card__label {
  font-family: var(--ff-head);
  font-weight: 700;
  font-size: 1.05rem;
}
.contact-card__body a {
  color: #fff;
  font-weight: 600;
}
.contact-card__body a:hover {
  color: #fff;
  text-decoration: underline;
}
.contact-card__note {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 0.15rem;
}

/* Enquiry intro + form */
.enquiry-intro {
  max-width: 760px;
  margin: 0 auto 2.5rem;
  text-align: center;
}
.enquiry-intro p {
  font-size: 1.06rem;
}
.enquiry-form-wrap {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(1.5rem, 1rem + 2vw, 2.75rem);
}
.enquiry-form .form-label {
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--dark);
  margin-bottom: 0.35rem;
}
.enquiry-form .form-label .req {
  color: var(--brand);
}
.enquiry-form .form-control {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0.7rem 0.9rem;
  font-size: 0.98rem;
}
.enquiry-form .form-control:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 0.2rem rgba(242, 140, 40, 0.18);
}
.enquiry-form .form-text {
  color: var(--muted);
}
.enquiry-note {
  text-align: center;
  margin-top: 1.4rem;
  color: var(--muted);
  font-size: 0.95rem;
}
.enquiry-note i {
  color: var(--green);
}

/* Map */
.contact-map iframe {
  display: block;
  width: 100%;
  height: clamp(320px, 40vh, 460px);
  border: 0;
}

/* ============================================================
   ABOUT PAGE
============================================================ */
/* .page-hero--about {
  background:
    linear-gradient(rgba(31, 41, 55, 0.68), rgba(31, 41, 55, 0.5)),
    url("../images/senior-man-with-disability-wheelchair-doing-recovery-exercise-with-resistance-band.webp")
      center/cover no-repeat;
} */

/* "What We Are For" callout */
.about-callout {
  background: var(--cream);
  border: 1px solid var(--border);
  border-left: 4px solid var(--brand);
  border-radius: var(--radius-sm);
  padding: 1.4rem 1.5rem;
  margin-top: 1.6rem;
}
.about-callout h3 {
  font-size: 1.2rem;
  margin-bottom: 0.55rem;
}
.about-callout p {
  margin: 0;
  font-size: 0.96rem;
}

/* Services-we-provide grid */
.provide-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.9rem;
}
.provide-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0.95rem 1.05rem;
  font-family: var(--ff-head);
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--dark);
  transition:
    transform 0.25s var(--ease),
    box-shadow 0.25s var(--ease),
    border-color 0.25s var(--ease),
    color 0.25s var(--ease);
}
.provide-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: rgba(242, 140, 40, 0.4);
  color: var(--brand-dark);
}
.provide-item i {
  color: var(--green);
  font-size: 1.2rem;
  flex: 0 0 auto;
}

/* Help / call-us band */
.help-band__media {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.help-band__media img {
  width: 100%;
  height: auto;
  display: block;
}
.help-band h2 {
  margin-bottom: 1.1rem;
}
.help-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.7rem;
}

/* ============================================================
   FEEDBACK & COMPLAINTS PAGE
============================================================ */
/* .page-hero--feedback {
  background:
    linear-gradient(rgba(31, 41, 55, 0.66), rgba(31, 41, 55, 0.5)),
    url("../images/african-man-playing-chess-together-with-his-friend-with-disability-they-sitting-room.webp")
      center/cover no-repeat;
}
.page-hero--careers {
  background:
    linear-gradient(rgba(31, 41, 55, 0.62), rgba(31, 41, 55, 0.5)),
    url("../images/woman-who-use-wheelchair-desk-office-across-from-her-employer-is-holds-out-hand-1.webp")
      center/cover no-repeat;
} */
/* File input inside the application form */
.enquiry-form .form-control[type="file"] {
  padding: 0.55rem 0.9rem;
  cursor: pointer;
}
.enquiry-form .form-control[type="file"]::file-selector-button {
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--brand-dark);
  background: rgba(242, 140, 40, 0.12);
  border: 0;
  border-radius: 50px;
  padding: 0.4rem 1rem;
  margin-right: 0.9rem;
  cursor: pointer;
  transition:
    background 0.2s var(--ease),
    color 0.2s var(--ease);
}
.enquiry-form .form-control[type="file"]::file-selector-button:hover {
  background: var(--brand);
  color: #fff;
}

/* Chosen-file chip with a remove (×) button, shown by JS when a file is attached */

.file-chosen {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  max-width: 100%;
  margin-top: 0.6rem;
  padding: 0.4rem 0.5rem 0.4rem 0.8rem;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 50px;
  font-size: 0.88rem;
  color: var(--dark);
}

.file-chosen > i {
  color: var(--brand);
  flex: 0 0 auto;
}

.file-chosen__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--ff-head);
  font-weight: 500;
}

.file-chosen__remove {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(31, 41, 55, 0.1);
  color: var(--dark);
  font-size: 0.8rem;
  cursor: pointer;
  transition:
    background 0.2s var(--ease),
    color 0.2s var(--ease);
}

.file-chosen__remove:hover {
  background: var(--brand);
  color: #fff;
}

.file-chosen__remove:focus-visible {
  outline: 2px solid var(--brand-dark);
  outline-offset: 2px;
}

/* Referral form — section headings + wider option grids */
.form-section {
  border-bottom: 2px solid var(--border);
  padding-bottom: 0.6rem;
  margin: 2.4rem 0 1.7rem;
}
.form-section:first-of-type {
  margin-top: 0;
}
.form-section h3 {
  font-size: 1.3rem;
  margin: 0;
  color: var(--brand-dark);
}
.choice-grid--2 {
  grid-template-columns: 1fr 1fr;
}
.enquiry-form-wrap--wide {
  max-width: 900px;
}

/* ============================================================
   GALLERY PAGE
============================================================ */
/* .page-hero--gallery {
  background:
    linear-gradient(rgba(31, 41, 55, 0.55), rgba(31, 41, 55, 0.5)),
    url("../images/about.webp") center/cover no-repeat;
} */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.gallery-item {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  margin: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  background: var(--cream);
}
.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.gallery-item__zoom {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  color: #fff;
  background: rgba(31, 41, 55, 0.45);
  opacity: 0;
  transition: opacity 0.3s var(--ease);
}
.gallery-item:hover img,
.gallery-item:focus-visible img {
  transform: scale(1.08);
}
.gallery-item:hover .gallery-item__zoom,
.gallery-item:focus-visible .gallery-item__zoom {
  opacity: 1;
}
.gallery-more {
  text-align: center;
  margin-top: 2rem;
}

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 21, 32, 0.92);
  padding: 2rem;
}
.lightbox.open {
  display: flex;
}
.lightbox__stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
}
.lightbox__img {
  max-width: 92vw;
  max-height: 78vh;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
}
.lightbox__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
}
.lightbox__btn {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  font-size: 1.4rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    background 0.2s var(--ease),
    border-color 0.2s var(--ease);
}
.lightbox__btn:hover {
  background: var(--brand);
  border-color: var(--brand);
}
.lightbox__btn--close {
  position: absolute;
  top: 1.4rem;
  right: 1.4rem;
}
.lightbox__count {
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ff-head);
  font-size: 0.95rem;
  min-width: 3.5rem;
  text-align: center;
}
.feedback-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.feedback-fieldset legend {
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--dark);
  font-size: 1rem;
  margin-bottom: 0.75rem;
  float: none;
  padding: 0;
}
.choice-grid {
  display: grid;
  gap: 0.55rem;
}
.choice {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  padding: 0.7rem 0.95rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: var(--ff-head);
  font-weight: 500;
  color: var(--dark);
  transition:
    border-color 0.2s var(--ease),
    background 0.2s var(--ease),
    color 0.2s var(--ease);
}
.choice input {
  accent-color: var(--brand);
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  margin: 0;
  cursor: pointer;
}
/* Replace the browser's default black focus ring with a brand one (keyboard only); mouse/tap relies on the row highlight */
.choice input:focus {
  outline: none;
}
.choice input:focus-visible {
  outline: 2px solid var(--brand-dark);
  outline-offset: 2px;
}
.choice:hover {
  border-color: rgba(242, 140, 40, 0.5);
  background: var(--cream);
}
.choice:has(input:checked) {
  border-color: var(--brand);
  background: rgba(242, 140, 40, 0.08);
  color: var(--brand-dark);
}
.enquiry-form .form-select {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0.7rem 0.9rem;
  font-size: 0.98rem;
  font-family: var(--ff-body);
  color: var(--dark);
}
.enquiry-form .form-select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 0.2rem rgba(242, 140, 40, 0.18);
}

/* ============================================================
   WHAT IS NDIS PAGE
============================================================ */
/* .page-hero--ndis {
  background:
    linear-gradient(rgba(31, 41, 55, 0.66), rgba(31, 41, 55, 0.5)),
    url("../images/contact-bg.webp") center/cover no-repeat;
} */

/* Intro "The National Disability Insurance Scheme" cards */
.ndis-card {
  height: 100%;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2rem 1.7rem;
  box-shadow: var(--shadow-sm);
  transition:
    transform 0.25s var(--ease),
    box-shadow 0.25s var(--ease),
    border-color 0.25s var(--ease);
}
.ndis-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
  border-color: rgba(242, 140, 40, 0.4);
}
.ndis-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: var(--brand);
  background: rgba(242, 140, 40, 0.12);
  margin-bottom: 1.1rem;
}
.ndis-card__icon svg {
  width: 28px;
  height: auto;
}
.ndis-card h3 {
  font-size: 1.25rem;
  margin-bottom: 0.7rem;
}
.ndis-card p {
  margin: 0;
  font-size: 0.96rem;
}

/* Split colour bands (image + coloured content) */
.ndis-band {
  overflow: hidden;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.ndis-band__media {
  min-height: 320px;
  height: 100%;
}
.ndis-band__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ndis-band__body {
  padding: clamp(1.8rem, 4vw, 3.2rem);
}
.ndis-band--brand .ndis-band__body {
  background: var(--brand);
}
.ndis-band--green .ndis-band__body {
  background: var(--green);
}
.ndis-band__body h2 {
  color: #fff;
  margin-bottom: 1.1rem;
}
.ndis-band__body > p,
.ndis-band__body__inner > p {
  color: rgba(255, 255, 255, 0.94);
}
.ndis-band__body > p:first-of-type,
.ndis-band__body__inner > p:first-of-type {
  margin-bottom: 1rem;
}

/* Numbered steps */
.ndis-steps,
.default-ol ol {
  list-style: none;
  counter-reset: step;
  padding: 0;
  margin: 1.2rem 0;
  display: grid;
  gap: 0.8rem;
}
.ndis-steps li,
.default-ol ol li {
  position: relative;
  padding-left: 2.9rem;
  color: rgba(255, 255, 255, 0.96);
  font-family: var(--ff-body);
  line-height: 1.5;
}
.ndis-steps li::before,
.default-ol ol li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: -0.1rem;
  width: 2rem;
  height: 2rem;
  background: rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-head);
  font-weight: 700;
  font-size: 0.95rem;
  color: #fff;
}

/* Checklist (green band) */
.ndis-check {
  list-style: none;
  padding: 0;
  margin: 1rem 0 1.4rem;
  display: grid;
  gap: 0.55rem;
}
.ndis-check li {
  position: relative;
  padding-left: 2rem;
  color: rgba(255, 255, 255, 0.96);
  font-family: var(--ff-head);
  font-weight: 500;
}
.ndis-check li i {
  position: absolute;
  left: 0;
  top: 0.15rem;
  color: #fff;
  font-size: 1.1rem;
}

/* Contact lines inside band */
.ndis-band__contact {
  margin: 1.2rem 0 1.4rem;
  display: grid;
  gap: 0.5rem;
}
.ndis-band__contact a,
.ndis-band__contact span {
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 600;
  text-decoration: none;
}
.ndis-band__contact li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  list-style: none;
}
.ndis-band__contact i {
  color: #fff;
}
.ndis-band__contact {
  padding: 0;
}

/* Registered provider band */
.ndis-provider {
  text-align: center;
}
.ndis-provider__logo {
  display: block;
  max-width: 160px;
  height: auto;
  margin: 1.5rem auto 0;
}

/* ============================================================
   NDIS PRICE GUIDE PAGE
============================================================ */
/* .page-hero--price {
  background:
    linear-gradient(rgba(31, 41, 55, 0.62), rgba(31, 41, 55, 0.5)),
    url("../images/about.webp") center/cover no-repeat;
} */
.price-card {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(2rem, 5vw, 3.5rem);
}
.price-card__icon {
  width: 76px;
  height: 76px;
  margin: 0 auto 1.6rem;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.1rem;
  color: var(--brand);
  background: rgba(242, 140, 40, 0.12);
}
.price-card__icon svg {
  width: 40px;
  height: auto;
}
.price-card p {
  font-size: 1.08rem;
  color: var(--muted);
}
.price-card p:last-of-type {
  margin-bottom: 2rem;
}
.price-note {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 1.8rem;
  color: var(--muted);
  font-size: 0.92rem;
}
.price-note i {
  color: var(--green);
  font-size: 1.1rem;
}

/* Supporting highlight chips */
.price-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 2.4rem;
}
.price-point {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 1.4rem 1.2rem;
  text-align: center;
}
.price-point svg {
  color: #f28c28;
  width: 30px;
  height: auto;
}
.price-point i {
  font-size: 1.6rem;
  color: var(--brand);
}
.price-point h3 {
  font-size: 1.05rem;
  margin: 0.7rem 0 0.35rem;
}
.price-point p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--muted);
}

/* ============================================================
   OUR SERVICES PAGE
============================================================ */
/* .page-hero--services {
  background:
    linear-gradient(rgba(31, 41, 55, 0.6), rgba(31, 41, 55, 0.45)),
    url("../images/contact.webp") center/cover no-repeat;
} */

/* ============================================================
   SERVICE DETAIL PAGE
============================================================ */
/* .page-hero--employ {
  background:
    linear-gradient(rgba(31, 41, 55, 0.6), rgba(31, 41, 55, 0.5)),
    url("../images/woman-who-use-wheelchair-desk-office-across-from-her-employer-is-holds-out-hand-1.webp")
      center/cover no-repeat;
} */
/* .page-hero--holiday {
  background:
    linear-gradient(rgba(31, 41, 55, 0.62), rgba(31, 41, 55, 0.52)),
    url("../images/african-man-playing-chess-together-with-his-friend-with-disability-they-sitting-room.webp")
      center/cover no-repeat;
} */
/* .page-hero--frankston {
  background:
    linear-gradient(rgba(31, 41, 55, 0.62), rgba(31, 41, 55, 0.52)),
    url("../images/contact.webp") center/cover no-repeat;
} */

/* ---------- Location landing page (Frankston) ---------- */
/* Brand/badge figure (holds a logo rather than a photo) */
.brand-figure {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: clamp(1.6rem, 3vw, 3rem);
}
.brand-figure img {
  width: 100%;
  max-width: 320px;
  height: auto;
}
/* Bulleted approach / contact list with strong labels */
.approach-list,
.approach-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.9rem;
}
.approach-list li {
  /* display: flex;
  align-items: flex-start;
  gap: 0.75rem; */
  color: var(--muted);
  padding-left: 33px;
  position: relative;
}
.approach-list li::before {
  content: "\f26a";
  position: absolute;
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-style: normal;
  font-weight: 400 !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  left: 0;
  top: 3px;
  vertical-align: -0.125em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--green);
  margin-right: 10px;
  font-size: 1.25rem;
}
.approach-list.no-change li::before{
  display: none;
}
.approach-list.no-change li{
  padding-left: 0;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.approach-list i {
  color: var(--green);
  font-size: 1.25rem;
  margin-top: 0.12rem;
  flex: 0 0 auto;
}
.approach-list strong {
  font-family: var(--ff-head);
  color: var(--dark);
}
/* Simple testimonial quote cards (light section) */
.quote-card {
  height: 100%;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.8rem;
  box-shadow: var(--shadow-sm);
}
.quote-card > i {
  color: var(--brand);
  font-size: 1.9rem;
  line-height: 1;
}
.quote-card blockquote {
  margin: 0.5rem 0 1rem;
}
.quote-card blockquote p {
  color: var(--dark);
  font-family: var(--ff-head);
  font-weight: 500;
  font-size: 1.06rem;
  line-height: 1.55;
  margin: 0;
}
.quote-card figcaption {
  color: var(--muted);
  font-size: 0.9rem;
  font-family: var(--ff-head);
  font-weight: 600;
}

/* ---------- NDIS School Holiday Program ---------- */
/* Activity schedule fact cards */
.schedule-facts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.2rem;
}
.schedule-facts li {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  flex: 1 1 260px;
  max-width: 360px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 1.1rem 1.3rem;
  box-shadow: var(--shadow-sm);
}
.schedule-facts i {
  color: var(--brand);
  font-size: 1.4rem;
  margin-top: 0.15rem;
  flex: 0 0 auto;
}
.schedule-facts strong {
  display: block;
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--dark);
  margin-bottom: 0.1rem;
}
.schedule-facts span {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

/* Weekly activities band (purple gradient + glass cards) */
.weeks-band {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    125deg,
    var(--purple) 0%,
    #3d2c6b 55%,
    var(--green-dark) 130%
  );
}
.weeks-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 16% 20%,
      rgba(242, 140, 40, 0.3),
      transparent 44%
    ),
    radial-gradient(circle at 84% 82%, rgba(91, 170, 60, 0.3), transparent 46%);
}
.weeks-band > .container {
  position: relative;
  z-index: 2;
}
.weeks-band .section-head h2,
.weeks-band .section-head p {
  color: #fff;
}
.week-card__title {
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 700;
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 1.3rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}
.week-list,
.week-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.8rem;
}
.week-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  color: rgba(255, 255, 255, 0.95);
}
.week-list li::before {
  content: "\f586";
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-style: normal;
  font-weight: 400 !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1.6;
}
.week-list i {
  color: #fff;
  font-size: 0.95rem;
  margin-top: 0.28rem;
  flex: 0 0 auto;
}
.week-list strong {
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 700;
}

/* Testimonial band */
.holiday-testi {
  background: linear-gradient(120deg, var(--brand) 0%, var(--brand-dark) 100%);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.holiday-testi .section-head h2 {
  color: #fff;
}
.holiday-testi .section-head p {
  color: rgba(255, 255, 255, 0.92);
}
.holiday-testi__quote {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}
.holiday-testi__mark {
  font-size: 2.6rem;
  color: rgba(255, 255, 255, 0.55);
}
.holiday-testi__quote blockquote {
  margin: 0.4rem 0 1.2rem;
}
.holiday-testi__quote blockquote p {
  color: #fff;
  font-family: var(--ff-head);
  font-weight: 500;
  font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.3rem);
  line-height: 1.6;
  margin: 0;
}
.holiday-testi__quote figcaption {
  font-family: var(--ff-head);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}
.svc-intro h2 {
  margin-bottom: 1.2rem;
}
.svc-intro__lead {
  font-size: 1.06rem;
}
.svc-accordion .accordion-button.acc--green:not(.collapsed) {
  background: var(--green);
}
.svc-accordion .accordion-body ul {
  list-style: none;
  padding: 0;
  /* margin: 0; */
  display: grid;
  gap: 0.55rem;
}
.svc-accordion .accordion-body ul li {
  position: relative;
  padding-left: 1.8rem;
}
.svc-accordion .accordion-body ul li i {
  position: absolute;
  left: 0;
  top: 0.2rem;
  color: var(--green);
}

/* Explore Our Services — brand band with 3-column checklist */
.explore-band {
  background: linear-gradient(
    120deg,
    var(--brand) 0%,
    var(--brand-dark) 70%,
    var(--purple) 140%
  );
  color: #fff;
  position: relative;
  overflow: hidden;
}
.explore-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 12% 20%,
    rgba(255, 255, 255, 0.16),
    transparent 45%
  );
}
.explore-band > .container {
  position: relative;
  z-index: 2;
}
.explore-band h2 {
  color: #fff;
}
.explore-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem 2rem;
}
.explore-list a {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  color: rgba(255, 255, 255, 0.96);
  font-family: var(--ff-head);
  font-weight: 500;
  padding: 0.35rem 0;
}
.explore-list a:hover {
  color: #fff;
}
.explore-list a:hover span {
  text-decoration: underline;
}
.explore-list a.is-current {
  color: #fff;
  font-weight: 700;
}
.explore-list i {
  color: #fff;
  font-size: 1.05rem;
  margin-top: 0.12rem;
  flex: 0 0 auto;
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .explore-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767.98px) {
  .explore-list {
    grid-template-columns: 1fr;
  }
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2.1rem 1.8rem;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  text-decoration: none;
  transition:
    transform 0.3s var(--ease),
    box-shadow 0.3s var(--ease),
    border-color 0.3s var(--ease);
}
.service-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: var(--brand);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s var(--ease);
}
.service-card:hover,
.service-card:focus-visible {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}
.service-card:hover::before,
.service-card:focus-visible::before {
  transform: scaleX(1);
}
.service-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  color: var(--brand);
  background: rgba(242, 140, 40, 0.12);
  margin-bottom: 1.3rem;
  transition:
    background 0.3s var(--ease),
    color 0.3s var(--ease),
    transform 0.3s var(--ease);
}
.service-card__icon svg {
  width: 30px;
  height: auto;
}
.service-card:hover .service-card__icon,
.service-card:focus-visible .service-card__icon {
  background: var(--brand);
  color: #fff;
  transform: rotate(-6deg) scale(1.05);
}
.service-card h3 {
  font-size: 1.2rem;
  margin-bottom: 0.6rem;
  color: var(--dark);
}
.service-card__desc {
  color: var(--muted);
  font-size: 0.95rem;
  margin-bottom: 1.3rem;
  line-height: 1.55;
}
.service-card__link {
  margin-top: auto;
  font-family: var(--ff-head);
  font-weight: 600;
  color: var(--brand-dark);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  align-self: flex-start;
}
.service-card__link i {
  transition: transform 0.25s var(--ease);
}
.service-card:hover .service-card__link i,
.service-card:focus-visible .service-card__link i {
  transform: translateX(4px);
}

/* Colour variants */
.service-card--green::before {
  background: var(--green);
}
.service-card--green .service-card__icon {
  color: var(--green);
  background: rgba(91, 170, 60, 0.12);
}
.service-card--green:hover .service-card__icon,
.service-card--green:focus-visible .service-card__icon {
  background: var(--green);
  color: #fff;
}
.service-card--green .service-card__link {
  color: var(--green-dark);
}
.service-card--purple::before {
  background: var(--purple);
}
.service-card--purple .service-card__icon {
  color: var(--purple);
  background: rgba(95, 70, 150, 0.12);
}
.service-card--purple:hover .service-card__icon,
.service-card--purple:focus-visible .service-card__icon {
  background: var(--purple);
  color: #fff;
}
.service-card--purple .service-card__link {
  color: var(--purple);
}

/* ---------- Responsive ---------- */
@media (max-width: 1199.98px) {
  .mega-menu {
    min-width: 460px;
  }
}
/* Collapsed hamburger nav below xl (the full horizontal nav needs ~1200px, so it overflows between 992–1199) */
@media (max-width: 1199.98px) {
  /* g-5 rows (3rem gutter → -24px side margins) poke ~12px past a .container that only has 12px padding; cap the horizontal gutter to avoid horizontal scroll (2-col gap shrinks 48px→24px, or none once stacked) */
  .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
  .navbar-collapse {
    background: #fff;
    margin-top: 0.8rem;
    padding: 1rem;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    max-height: calc(100vh - 118px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .navbar-nav {
    margin-bottom: 1rem;
  }
  .header-cta {
    flex-direction: column;
    align-items: stretch;
  }
  .header-cta .btn {
    width: 100%;
  }
  .nav-ndis-logo {
    align-self: center;
    margin-bottom: 0.4rem;
  }
  .mega-menu {
    min-width: 100%;
    box-shadow: none;
    border: 1px solid var(--border);
  }
  .mega-menu__grid {
    grid-template-columns: 1fr;
  }
  /* Smooth open/close for the in-flow collapsed-nav dropdowns (collapse height + fade instead of instant display toggle) */
  .navbar-nav .dropdown-menu {
    display: block;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin-top: 0;
    transition:
      max-height 0.32s var(--ease),
      opacity 0.26s var(--ease),
      margin-top 0.32s var(--ease);
  }
  .navbar-nav .nav-item.dropdown.open > .dropdown-menu {
    max-height: 1500px;
    opacity: 1;
    margin-top: 0.4rem;
  }
}
@media (max-width: 991.98px) {
  .topbar {
    display: none;
  }
  .provide-list {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
  }
  .price-points {
    grid-template-columns: 1fr;
  }
  .services-grid {
    grid-template-columns: 1fr 1fr;
  }
  .timeline {
    grid-template-columns: 1fr 1fr;
    gap: 2.2rem 1.5rem;
  }
  .timeline::before {
    display: none;
  }
  .stats {
    margin-top: -2rem;
  }
}
@media (max-width: 767.98px) {
  .topbar__contacts {
    gap: 0.9rem;
    font-size: 0.82rem;
  }
  .hero {
    text-align: left;
  }
  .hero__cta .btn,
  .cta-banner__actions .btn {
    width: 100%;
  }
  .hero__cta,
  .cta-banner__actions {
    width: 100%;
  }
  .about__highlights {
    grid-template-columns: 1fr;
  }
  .provide-list {
    grid-template-columns: 1fr;
  }
  .services-grid {
    grid-template-columns: 1fr;
  }
  .choice-grid--2 {
    grid-template-columns: 1fr;
  }
  .choice-grid .wpcf7-checkbox,
  .choice-grid .wpcf7-radio {
    grid-template-columns: 1fr !important;
  }
  .help-band__actions .btn {
    width: 100%;
  }
  .timeline {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }
  .timeline__step {
    padding-top: 0;
    padding-left: 4.4rem;
    text-align: left;
    min-height: 58px;
  }
  .timeline__num {
    left: 0;
    transform: none;
  }
  .cta-banner__inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem;
  }
  .lightbox__btn {
    width: 44px;
    height: 44px;
    font-size: 1.2rem;
  }
}
@media (max-width: 575.98px) {
  .topbar__contacts li:nth-child(2) {
    display: none;
  }
  .stat-card {
    padding: 1.3rem 0.6rem;
  }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  [data-animate] {
    opacity: 1;
    transform: none;
  }
}

img.has-margin {
  margin-top: 20px;
}

.enquiry-form br {
  display: none;
}

.wpcf7-spinner {
  display: none !important;
}

.wpcf7-submit {
  position: relative;
}

.wpcf7-form.submitting .wpcf7-submit {
  opacity: 0.8;
  pointer-events: none;
}

.wpcf7-form.submitting .wpcf7-submit::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 10px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  vertical-align: -3px;
  animation: cf7-spin 0.7s linear infinite;
}

@keyframes cf7-spin {
  to {
    transform: rotate(360deg);
  }
}

.wpcf7 p {
  margin: 0 !important;
  padding: 0 !important;
}

.checkmark-list ul {
  list-style: none;
  padding: 0;
}

.checkmark-list ul li {
  position: relative;
  padding-left: 30px;
}

.checkmark-list ul li::before {
  content: "\F26A";
  font-family: "bootstrap-icons";
  position: absolute;
  left: 0;
  top: -2px;
  font-size: 18px;
}

.checkmark-list.small-icons ul li::before {
  top: 0px;
  font-size: 17px;
  color: var(--green);
}

.choice-grid .wpcf7-list-item {
  margin: 0;
}

.choice-grid .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  padding: 0.7rem 0.95rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: var(--ff-head);
  font-weight: 500;
  color: var(--dark);
  transition:
    border-color 0.2s var(--ease),
    background 0.2s var(--ease),
    color 0.2s var(--ease);
}

.choice-grid .wpcf7-list-item label:hover {
  border-color: rgba(242, 140, 40, 0.5);
  background: var(--cream);
}

.choice-grid .wpcf7-checkbox,
.choice-grid .wpcf7-radio {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 1fr 1fr;
}
.enquiry-form .wpcf7-textarea {
  height: 95px;
}
.choice-grid .wpcf7-list-item input {
  accent-color: var(--brand);
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  margin: 0;
  cursor: pointer;
}

.choice-grid .wpcf7-checkbox .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

/* ---------- FLOATING ACTIONS ---------- */
.floating-call {
  position: fixed;
  left: 18px;
  right: auto;
  bottom: 18px;
  z-index: 1000;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #25ad25;
  box-shadow: 1px 2px 4px 5px #25ad25;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 1.3rem;
  animation: callPulse 2s infinite;
}
.floating-call:hover {
  color: #fff;
  transform: scale(1.06);
}
@keyframes callPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 173, 37, 0.514);
  }
  70% {
    box-shadow: 0 0 0 16px rgba(227, 34, 34, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(227, 34, 34, 0);
  }
}

.mega-menu__grid.mega-menu__grid--3 a img {
  width: 22px;
  height: auto;
  filter: brightness(0) saturate(100%) invert(64%) sepia(67%) saturate(2029%)
    hue-rotate(343deg) brightness(99%) contrast(92%);
}

.hero__bg--vimeo {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.hero__bg--vimeo iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border: 0;
  transform: translate(-50%, -50%);
}

.choice-grid.choice-grid-single .wpcf7-radio {
  grid-template-columns: 1fr;
}

.default-textarea .wpcf7-textarea {
  height: 100%;
}
.ndis-band__contact li{
	padding-left: 0 !important;
}
.ndis-band__contact li::before{
	display: none;
}
.req{
	color: var(--brand);
}
#loadMore {
  text-align: center;
  transition: 200ms all cubic-bezier(0.445, 0.05, 0.55, 0.95);
  background: #f28c28;
border: 0;
  padding: 9px 30px;
  border-radius: 5px;
  color: #fff;
  font-weight: 700;
}
#loadMore:hover {
background: var(--brand-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(242, 140, 40, 0.4);
}
#loadMore .loading-msg {
  display: none;
}
#loadMore.loading .default-msg {
  display: none;
  animation: FadeOut 1.5s linear forwards;
}
#loadMore.loading .arrow {
  display: none;
}
#loadMore.loading .loading-msg {
  display: inline-block;
  animation: fadeIn 1.5s linear forwards;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0.2;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
  }
}