/* Ruhil Care — static clone custom styles (from src/styles.css) */

:root {
 --radius: 1rem;
 --background: oklch(1 0 0);
 --foreground: oklch(0.18 0.06 255);
 --card: oklch(1 0 0);
 --card-foreground: oklch(0.18 0.06 255);
 --popover: oklch(1 0 0);
 --popover-foreground: oklch(0.18 0.06 255);
 --primary: oklch(0.22 0.14 255);
 --primary-foreground: oklch(1 0 0);
 --secondary: oklch(0.93 0.03 255);
 --secondary-foreground: oklch(0.22 0.14 255);
 --muted: oklch(0.94 0.02 255);
 --muted-foreground: oklch(0.50 0.04 255);
 --accent: oklch(0.66 0.22 40);
 --accent-foreground: oklch(1 0 0);
 --destructive: oklch(0.55 0.2 27);
 --destructive-foreground: oklch(0.98 0.01 85);
 --border: oklch(0.88 0.02 255);
 --input: oklch(0.88 0.02 255);
 --ring: oklch(0.22 0.14 255);
 --cream: oklch(0.96 0.015 250);
 --clay: oklch(0.22 0.14 255);
 --sage: oklch(0.60 0.08 255);
 --forest: oklch(0.16 0.10 255);
 --ember: oklch(0.66 0.22 40);
 --gradient-warm: linear-gradient(135deg, oklch(1 0 0) 0%, oklch(0.92 0.02 255) 100%);
 --gradient-sage: linear-gradient(160deg, oklch(0.18 0.10 255) 0%, oklch(0.12 0.08 255) 100%);
 --gradient-ember: linear-gradient(135deg, oklch(0.22 0.14 255) 0%, oklch(0.66 0.22 40) 100%);
 --shadow-soft: 0 30px 60px -30px color-mix(in oklab, var(--forest) 45%, transparent);
 --shadow-card: 0 12px 30px -18px color-mix(in oklab, var(--forest) 30%, transparent);
 --shadow-glow: 0 20px 50px -20px color-mix(in oklab, var(--accent) 50%, transparent);
 --site-bold-divider: 25px;
}

@media (min-width: 768px) {
 :root {
 --site-bold-divider: 30px;
 }
}

* { border-color: var(--border); }

body {
 background-color: var(--background);
 color: var(--foreground);
 font-family: "Manrope", system-ui, sans-serif;
 font-feature-settings: "ss01", "cv11";
 -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
 font-family: "Manrope", system-ui, sans-serif;
 font-weight: 500;
 letter-spacing: -0.02em;
}

/* Light surfaces — default heading color when no utility is set */
h1:not([class*="text-"]),
h2:not([class*="text-"]),
h3:not([class*="text-"]),
h4:not([class*="text-"]) {
 color: var(--foreground);
}

/* Dark surfaces — inherit readable light text from parent */
.bg-primary.text-primary-foreground :is(h1, h2, h3, h4, a, p, li),
.bg-primary > .text-primary-foreground :is(h1, h2, h3, h4, a, p, li),
section.bg-primary .text-primary-foreground :is(h1, h2, h3, h4, a),
.bg-gradient-sage :is(h1, h2, h3, h4, a, p, li),
.text-primary-foreground > :is(h1, h2, h3, h4):not([class*="text-accent"]):not([class*="text-white"]):not([class*="text-primary"]) {
 color: inherit;
}

footer.bg-primary a:not([class*="text-"]) {
 color: inherit;
}

footer.bg-primary a:hover {
 color: var(--accent);
}

/* Hero & banner content stays above overlays */
#hero-content {
 position: relative;
 z-index: 1;
}

img {
 max-width: 100%;
 height: auto;
}

.bg-gradient-warm { background-image: var(--gradient-warm); }
.bg-gradient-sage { background-image: var(--gradient-sage); }
.bg-gradient-ember { background-image: var(--gradient-ember); }
.shadow-soft { box-shadow: var(--shadow-soft); }
.shadow-card { box-shadow: var(--shadow-card); }
.shadow-glow { box-shadow: var(--shadow-glow); }
.container-prose { max-width: 72rem; margin-inline: auto; padding-inline: clamp(1rem, 4vw, 1.5rem); }

.field {
 display: block;
 width: 100%;
 border-radius: 0.75rem;
 border: 1px solid var(--border);
 background-color: var(--card);
 color: var(--foreground);
 padding: 0.65rem 0.9rem;
 font-size: 0.95rem;
 line-height: 1.4;
 transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field::placeholder { color: color-mix(in oklab, var(--foreground) 45%, transparent); }
.field:hover { border-color: color-mix(in oklab, var(--accent) 45%, var(--border)); }
.field:focus, .field:focus-visible {
 outline: none;
 border-color: var(--accent);
 box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 22%, transparent);
}

::selection {
 background-color: color-mix(in oklab, var(--accent) 35%, transparent);
 color: var(--foreground);
}
a, button { -webkit-tap-highlight-color: transparent; }

.perspective-1000 { perspective: 1000px; }
.preserve-3d { transform-style: preserve-3d; }

.card-3d {
 transform-style: preserve-3d;
 transition: transform 500ms cubic-bezier(.2,.8,.2,1), box-shadow 500ms ease;
 will-change: transform;
}
.card-3d:hover {
 transform: translateY(-8px) rotateX(6deg) rotateY(-6deg) scale(1.02);
 box-shadow: 0 30px 60px -20px color-mix(in oklab, var(--accent) 35%, transparent);
}

@keyframes float-y {
 0%, 100% { transform: translateY(0); }
 50% { transform: translateY(-14px); }
}
.animate-float { animation: float-y 6s ease-in-out infinite; }

@keyframes spin-slow { to { transform: rotate(360deg); } }
.animate-spin-slow { animation: spin-slow 22s linear infinite; }

@keyframes fade-up {
 from { opacity: 0; transform: translateY(24px); }
 to { opacity: 1; transform: translateY(0); }
}
.animate-fade-up { animation: fade-up .9s cubic-bezier(.2,.8,.2,1) both; }

@keyframes pulse-ring {
 0% { transform: scale(.9); opacity: .55; }
 100% { transform: scale(1.35); opacity: 0; }
}
.animate-pulse-ring { animation: pulse-ring 2.6s cubic-bezier(.2,.8,.2,1) infinite; }

.reveal-init {
 opacity: 0;
 transform: translateY(28px);
 will-change: opacity, transform;
 transition: opacity 800ms cubic-bezier(.2,.8,.2,1), transform 800ms cubic-bezier(.2,.8,.2,1);
 transition-delay: var(--reveal-delay, 0ms);
}
.reveal-init.reveal-in { opacity: 1; transform: translateY(0); }

@keyframes page-fade-in {
 from { opacity: 0; transform: translateY(10px); }
 to { opacity: 1; transform: translateY(0); }
}
main.page-transition-in { animation: page-fade-in 480ms cubic-bezier(.2,.8,.2,1) both; }

a, button {
 transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease,
 transform 200ms ease, box-shadow 200ms ease, opacity 200ms ease;
}

/* Hero slide transitions */
.hero-slide { transition: opacity 1200ms ease-out; }
.hero-slide-img { transition: transform 8000ms ease-out; }
.hero-slide.is-active .hero-slide-img { transform: scale(1.04); }
@media (min-width: 640px) {
 .hero-slide.is-active .hero-slide-img { transform: scale(1.1); }
}

/* FAQ accordion */
.faq-panel {
 overflow: hidden;
 border-radius: 1rem;
 border: 1px solid color-mix(in oklab, var(--border) 85%, transparent);
 background: #fff;
 box-shadow: var(--shadow-card);
}

.faq-item + .faq-item {
 border-top: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
}

.faq-trigger {
 width: 100%;
 padding: 0.875rem 1.25rem;
 text-align: left;
 font: inherit;
 color: var(--primary);
 transition: background-color 180ms ease;
}

@media (min-width: 768px) {
 .faq-trigger {
 padding: 1rem 1.5rem;
 }
}

.faq-trigger:hover {
 background: color-mix(in oklab, var(--secondary) 35%, white);
}

.faq-trigger__row {
 display: grid;
 grid-template-columns: 2rem minmax(0, 1fr) 1.125rem;
 align-items: center;
 column-gap: 0.875rem;
 width: 100%;
}

.faq-number {
 display: grid;
 flex-shrink: 0;
 place-items: center;
 width: 2rem;
 height: 2rem;
 border-radius: 0.5rem;
 border: 1px solid color-mix(in oklab, var(--accent) 25%, transparent);
 background: color-mix(in oklab, var(--accent) 8%, white);
 font-size: 0.6875rem;
 font-weight: 700;
 line-height: 1;
 color: var(--accent);
 transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.faq-question {
 min-width: 0;
 font-size: 0.9375rem;
 font-weight: 600;
 line-height: 1.4;
}

@media (min-width: 768px) {
 .faq-question {
 font-size: 1rem;
 }
}

.faq-content {
 display: grid;
 grid-template-rows: 0fr;
 overflow: hidden;
 min-height: 0;
 transition: grid-template-rows 260ms ease;
}

.faq-item.is-open .faq-content {
 grid-template-rows: 1fr;
}

.faq-content-inner {
 overflow: hidden;
 min-height: 0;
 padding: 0 1.25rem 0 calc(1.25rem + 2rem + 0.875rem);
 font-size: 0.875rem;
 line-height: 1.65;
 color: color-mix(in oklab, var(--foreground) 72%, transparent);
}

.faq-item:not(.is-open) .faq-content-inner {
 padding-top: 0;
 padding-bottom: 0;
}

.faq-item.is-open .faq-content-inner {
 padding-top: 0.125rem;
 padding-bottom: 1rem;
}

@media (min-width: 768px) {
 .faq-content-inner {
 padding-left: calc(1.5rem + 2rem + 0.875rem);
 padding-right: 1.5rem;
 }

 .faq-item.is-open .faq-content-inner {
 padding-bottom: 1.125rem;
 }
}

.faq-chevron {
 justify-self: end;
 flex-shrink: 0;
 width: 1.125rem;
 height: 1.125rem;
 color: var(--accent);
 transition: transform 200ms ease;
}

.faq-item.is-open .faq-chevron { transform: rotate(180deg); }

.faq-item.is-open {
 background: color-mix(in oklab, var(--secondary) 28%, white);
}

.faq-item.is-open .faq-number {
 background: linear-gradient(to bottom right, var(--accent), color-mix(in oklab, var(--accent) 82%, transparent));
 color: var(--accent-foreground);
 border-color: var(--accent);
}

/* Testimonials */
.home-testimonials {
 background: oklch(0.98 0.005 240);
}

.testimonials-viewport {
 touch-action: pan-y pinch-zoom;
}

#testimonials-track .testimonial-slide {
 flex: 0 0 100%;
 width: 100%;
 box-sizing: border-box;
}

@media (min-width: 768px) {
 #testimonials-track .testimonial-slide {
 flex: 0 0 50%;
 width: 50%;
 padding-inline: 0.625rem;
 }

 #testimonials-track .testimonial-slide:first-child {
 padding-left: 0;
 }

 #testimonials-track .testimonial-slide:last-child {
 padding-right: 0;
 }
}

.home-testimonials::before {
 content: "";
 position: absolute;
 inset: 0;
 opacity: 0.04;
 pointer-events: none;
 background-image: radial-gradient(circle at 1px 1px, oklch(0.2 0.08 260) 1px, transparent 0);
 background-size: 24px 24px;
}

.testimonial-card {
 display: flex;
 flex-direction: column;
 height: 100%;
 padding: 1.25rem 1.375rem;
 border-radius: 1rem;
 border: 1px solid color-mix(in oklab, var(--primary) 10%, transparent);
 background: #fff;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.06), 0 4px 16px rgba(15, 42, 72, 0.05);
 transition: border-color 200ms ease, box-shadow 200ms ease;
}

.testimonial-card:hover {
 border-color: color-mix(in oklab, var(--accent) 22%, transparent);
 box-shadow: 0 2px 6px rgba(15, 42, 72, 0.07), 0 8px 24px rgba(15, 42, 72, 0.07);
}

.testimonial-card__header {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
}

.testimonial-stars [data-lucide="star"] {
 width: 0.875rem;
 height: 0.875rem;
}

.testimonial-badge {
 display: inline-flex;
 align-items: center;
 gap: 0.375rem;
 border-radius: 9999px;
 border: 1px solid color-mix(in oklab, var(--primary) 10%, transparent);
 background: color-mix(in oklab, var(--primary) 3%, white);
 padding: 0.25rem 0.625rem;
 font-size: 0.625rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--primary) 65%, transparent);
}

.testimonial-card__quote {
 margin-top: 0.875rem;
 flex: 1;
 font-size: 0.875rem;
 line-height: 1.65;
 color: color-mix(in oklab, var(--primary) 78%, transparent);
}

.testimonial-card__author {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 margin-top: 1rem;
 padding-top: 0.875rem;
 border-top: 1px solid color-mix(in oklab, var(--primary) 8%, transparent);
}

.testimonial-card__avatar {
 display: grid;
 flex-shrink: 0;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 9999px;
 font-family: var(--font-display, Manrope, sans-serif);
 font-size: 0.8125rem;
 font-weight: 700;
 color: #fff;
}

.testimonial-card__name {
 font-family: var(--font-display, Manrope, sans-serif);
 font-size: 0.9375rem;
 font-weight: 700;
 line-height: 1.25;
 color: var(--primary);
}

.testimonial-card__source {
 margin-top: 0.125rem;
 font-size: 0.625rem;
 font-weight: 500;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--primary) 48%, transparent);
}

.testimonial-nav__btn {
 display: grid;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 9999px;
 border: 1px solid color-mix(in oklab, var(--primary) 18%, transparent);
 background: #fff;
 color: var(--primary);
 box-shadow: 0 1px 4px rgba(15, 42, 72, 0.08);
 transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.testimonial-nav__btn:hover {
 background: var(--primary);
 border-color: var(--primary);
 color: var(--primary-foreground);
}

.testimonial-nav__dot {
 width: 0.5rem;
 height: 0.5rem;
 border-radius: 9999px;
 background: color-mix(in oklab, var(--primary) 28%, transparent);
 transition: width 220ms ease, background 220ms ease;
}

.testimonial-nav__dot.is-active {
 width: 2rem;
 background: var(--accent);
}

@media (max-width: 767px) {
 #testimonial-dots {
 gap: 0.35rem !important;
 max-width: 12rem;
 flex-wrap: wrap;
 justify-content: center;
 }

 #testimonial-dots .testimonial-nav__dot {
 width: 0.375rem;
 height: 0.375rem;
 }

 #testimonial-dots .testimonial-nav__dot.is-active {
 width: 1.25rem;
 }
}

/* Line clamp (Tailwind CDN fallback) */
.line-clamp-2 {
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}
.line-clamp-3 {
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

/* Back to top */
.back-to-top {
 position: fixed;
 bottom: 5.5rem;
 right: 1rem;
 z-index: 55;
 opacity: 0;
 pointer-events: none;
 transform: translateY(8px);
 transition: opacity 200ms ease, transform 200ms ease;
}
.back-to-top.is-visible {
 opacity: 1;
 pointer-events: auto;
 transform: translateY(0);
}
@media (min-width: 640px) {
 .back-to-top {
 bottom: 1.5rem;
 right: 5.5rem;
 }
}

/* Floating site widgets */
.site-widget-a11y {
 position: fixed;
 bottom: 1rem;
 right: 1rem;
 z-index: 60;
 display: grid;
 place-items: center;
 width: 3rem;
 height: 3rem;
 border-radius: 9999px;
 border: 2px solid white;
 background: var(--accent);
 color: white;
 box-shadow: 0 10px 30px color-mix(in oklab, var(--accent) 45%, transparent);
 transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.site-widget-a11y:hover {
 transform: scale(1.05);
 box-shadow: 0 14px 36px color-mix(in oklab, var(--accent) 50%, transparent);
}
.site-widget-a11y:focus-visible {
 outline: 2px solid var(--accent);
 outline-offset: 2px;
}
@media (min-width: 640px) {
 .site-widget-a11y {
 width: 3.5rem;
 height: 3.5rem;
 }
}

.site-widget-contact {
 position: fixed;
 bottom: 1rem;
 left: 1rem;
 right: auto;
 z-index: 60;
 display: inline-grid;
 place-items: center;
 width: 3rem;
 height: 3rem;
 gap: 0;
 border: 2px solid white;
 border-radius: 9999px;
 background: var(--accent);
 padding: 0;
 font-size: 0.875rem;
 font-weight: 600;
 color: var(--accent-foreground);
 text-decoration: none;
 cursor: pointer;
 font-family: inherit;
 box-shadow: 0 10px 30px color-mix(in oklab, var(--accent) 45%, transparent);
 transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.site-widget-contact:hover {
 transform: translateY(-2px);
 box-shadow: 0 14px 36px color-mix(in oklab, var(--accent) 50%, transparent);
}
.site-widget-contact__label {
 display: none;
}
@media (min-width: 640px) {
 .site-widget-contact {
 bottom: 1.5rem;
 left: 1rem;
 display: inline-flex;
 align-items: center;
 width: auto;
 height: auto;
 gap: 0.5rem;
 padding: 0.8rem 1.15rem;
 }
 .site-widget-contact__label {
 display: inline;
 }
}

/* Nav dropdown */
.nav-dropdown {
 display: none;
 background-color: var(--background) !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
 box-shadow: var(--shadow-soft), 0 16px 40px -12px color-mix(in oklab, var(--forest) 35%, transparent);
 z-index: 100;
}

.nav-dropdown.is-open { display: block; }

/* Solid panel + readable labels (hero must not bleed through glass effect) */
.nav-dropdown a:not(.bg-gradient-to-r):not([class*="from-accent"]) {
 color: var(--primary);
}

.nav-dropdown .grid a span,
.nav-dropdown .flex.flex-col a {
 color: inherit;
}

.nav-dropdown .grid a:hover,
.nav-dropdown .grid a:hover span,
.nav-dropdown .flex.flex-col a:hover {
 color: var(--accent);
}

.nav-dropdown .grid a:hover {
 background-color: color-mix(in oklab, var(--accent) 10%, transparent);
}

/* Active nav — mobile & dropdown panels only (desktop uses plain orange text) */
.mobile-nav-panel .nav-link.is-active-nav,
.mobile-nav-panel .nav-link[aria-current="page"],
.mobile-nav-panel .mobile-nav-panel__item.is-active-nav,
.mobile-nav-panel .mobile-nav-panel__item[aria-current="page"],
.mobile-nav-panel .mobile-nav-panel__row.is-active-nav,
.mobile-nav-panel .mobile-nav-panel__subitem.is-active-nav,
.mobile-nav-panel a.bg-secondary.text-accent {
 background: color-mix(in oklab, var(--accent) 14%, var(--secondary));
 color: var(--accent);
 font-weight: var(--site-nav-active-weight);
}

.nav-dropdown .nav-link.is-active-nav,
.nav-dropdown .nav-link[aria-current="page"] {
 background: color-mix(in oklab, var(--accent) 14%, transparent) !important;
 color: var(--accent) !important;
 font-weight: 600;
}

/* ── Site nav tokens (same size on every page, mobile + desktop) ── */
:root {
 --site-nav-font-size: 0.875rem;
 --site-nav-line-height: 1.25;
 --site-nav-font-weight: 400;
 --site-nav-active-weight: 600;
 --site-nav-item-min-height: 2.75rem;
 --site-nav-link-padding-x: 0.75rem;
 --site-nav-link-padding-y: 0.625rem;
 --site-nav-gap: 1.75rem;
 --site-brand-gap: 0.625rem;
 --site-logo-height: 2.75rem;
 --site-badge-height: 2.125rem;
 --site-header-height: 3.5rem;
 --site-header-bar-padding-y: 0.375rem;
}

@media (min-width: 640px) {
 :root {
 --site-logo-height: 3.25rem;
 --site-badge-height: 2.5rem;
 --site-header-height: 4rem;
 --site-brand-gap: 0.75rem;
 }
}

@media (min-width: 1024px) {
 :root {
 --site-logo-height: 4rem;
 --site-badge-height: 2.875rem;
 --site-header-height: 5rem;
 --site-header-bar-padding-y: 0;
 --site-brand-gap: 0.875rem;
 }
}

.site-header__nav-link {
 font-size: var(--site-nav-font-size);
 line-height: var(--site-nav-line-height);
 font-weight: var(--site-nav-font-weight);
 color: color-mix(in oklab, var(--foreground) 80%, transparent);
 transition: color 0.15s ease;
}

.site-header__nav-link:hover {
 color: var(--accent);
}

.site-header__nav-link.is-active-nav,
.site-header__nav-link[aria-current="page"] {
 color: var(--accent);
 font-weight: var(--site-nav-active-weight);
}

/* ── Desktop header (matches reference layout) ── */
.site-header__bar {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 min-height: var(--site-header-height);
 padding-block: var(--site-header-bar-padding-y);
}

.site-header__brand {
 display: flex;
 shrink: 0;
 align-items: center;
 gap: var(--site-brand-gap);
}

.site-header__logo-link {
 display: inline-flex;
 shrink: 0;
 align-items: center;
 justify-content: center;
 line-height: 0;
 padding: 0.25rem 0.5rem;
 background: #ffffff;
 border: none;
 border-radius: 0.625rem;
 box-shadow: none;
 transition: opacity 0.2s ease;
}

.site-header__logo-link:hover {
 opacity: 0.92;
}

.site-header__logo {
 display: block;
 height: var(--site-logo-height);
 width: auto;
 aspect-ratio: 100 / 85;
 object-fit: contain;
 object-position: center;
}

.site-header__badge {
 display: block;
 shrink: 0;
 height: var(--site-badge-height);
 width: auto;
 object-fit: contain;
 object-position: center;
 filter: drop-shadow(0 1px 1px rgba(15, 23, 42, 0.06));
}

.site-header__nav {
 display: none;
}

.site-header__actions {
 display: none;
}

.site-header__toggle {
 display: grid;
 shrink: 0;
 place-items: center;
 margin-left: auto;
 min-width: var(--site-nav-item-min-height);
 min-height: var(--site-nav-item-min-height);
}

@media (max-width: 1023px) {
 .site-header__bar {
 align-items: center;
 }

 .site-header__brand {
 align-items: center;
 flex-wrap: nowrap;
 max-width: calc(100% - 3rem);
 }
}

 @media (max-width: 380px) {
 :root {
 --site-logo-height: 2.375rem;
 --site-badge-height: 1.875rem;
 --site-brand-gap: 0.4375rem;
 }

 .site-header__logo-link {
 padding: 0.1875rem 0.4375rem;
 }
}

@media (min-width: 1024px) {
 .site-header__bar {
 display: grid;
 grid-template-columns: 1fr auto 1fr;
 align-items: center;
 column-gap: 2rem;
 min-height: var(--site-header-height);
 padding-block: var(--site-header-bar-padding-y);
 }

 .site-header__brand {
 grid-column: 1;
 justify-self: start;
 }

 .site-header__nav {
 grid-column: 2;
 display: flex;
 align-items: center;
 justify-content: center;
 gap: var(--site-nav-gap);
 justify-self: center;
 white-space: nowrap;
 }

 .site-header__nav > a,
 .site-header__nav .site-header__dropdown-btn {
 flex-shrink: 0;
 font-size: var(--site-nav-font-size);
 line-height: var(--site-nav-line-height);
 font-weight: var(--site-nav-font-weight);
 background: transparent !important;
 box-shadow: none !important;
 border-radius: 0;
 padding: 0;
 }

 .site-header__nav > a[aria-current="page"],
 .site-header__nav .site-header__dropdown-btn[aria-current="page"] {
 color: var(--accent);
 font-weight: var(--site-nav-active-weight);
 }

 .site-header__nav .nav-chevron {
 width: 1rem;
 height: 1rem;
 flex-shrink: 0;
 }

 .site-header__actions {
 grid-column: 3;
 display: flex;
 align-items: center;
 justify-content: flex-end;
 gap: 0.75rem;
 justify-self: end;
 }

 .site-header__phone {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 font-size: var(--site-nav-font-size);
 line-height: var(--site-nav-line-height);
 color: color-mix(in oklab, var(--foreground) 70%, transparent);
 white-space: nowrap;
 transition: color 0.15s ease;
 }

 .site-header__phone:hover {
 color: var(--foreground);
 }

 .site-header__cta {
 display: inline-flex;
 shrink: 0;
 align-items: center;
 justify-content: center;
 border-radius: 9999px;
 background: var(--accent);
 padding: 0.625rem 1.25rem;
 font-size: var(--site-nav-font-size);
 font-weight: 500;
 line-height: var(--site-nav-line-height);
 color: var(--accent-foreground);
 white-space: nowrap;
 box-shadow: var(--shadow-card);
 transition: transform 0.15s ease;
 }

 .site-header__cta:hover {
 transform: translateY(-2px);
 }

 .site-header__toggle {
 display: none !important;
 }
}

/* Solid site header — no glass / transparency over hero */
body > header {
 background-color: var(--background) !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
}

header:has(.nav-dropdown.is-open) {
 background-color: var(--background) !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
}

/* Service page process steps — equal-height cards in each row */
ol.grid > li.group {
 display: flex;
 flex-direction: column;
 height: 100%;
}

ol.grid > li.group > .rounded-2xl {
 flex: 1 1 auto;
 display: flex;
 flex-direction: column;
}

ol.grid > li.group > .rounded-2xl {
 flex: 1 1 auto;
 display: flex;
 flex-direction: column;
}

/* Home page — card hover (header uses global nav tokens) */
.home-page [data-core-card]:hover {
 transform: translateY(-3px);
 box-shadow: var(--shadow-card);
}

.home-page .card-3d:hover {
 transform: translateY(-4px);
 box-shadow: var(--shadow-card);
}

@media (prefers-reduced-motion: reduce) {
 .animate-float, .animate-spin-slow, .animate-pulse-ring, .animate-fade-up,
 .reveal-init, main.page-transition-in {
 animation: none !important;
 transition: none !important;
 opacity: 1 !important;
 transform: none !important;
 }
 .card-3d:hover { transform: none; }
}

html.a11y-stop-motion .reveal-init { opacity: 1 !important; transform: none !important; }

html.a11y-active body {
 font-size: calc(1rem * var(--a11y-font-scale, 1));
 letter-spacing: var(--a11y-letter-spacing, normal);
 line-height: var(--a11y-line-height, 1.5);
}
html.a11y-dyslexia body, html.a11y-dyslexia body * {
 font-family: "Comic Sans MS", "OpenDyslexic", Verdana, sans-serif !important;
 letter-spacing: 0.05em;
}
html.a11y-adhd::before {
 content: "";
 position: fixed;
 inset: 0;
 pointer-events: none;
 z-index: 50;
 background: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55) 35vh, transparent 35vh, transparent 55vh, rgba(0,0,0,0.55) 55vh);
}
html.a11y-grayscale { filter: grayscale(1); }
html.a11y-invert { filter: invert(1) hue-rotate(180deg); }
html.a11y-grayscale.a11y-invert { filter: grayscale(1) invert(1) hue-rotate(180deg); }
html.a11y-dark body { background: #0b1220 !important; color: #f5f7fb !important; }
html.a11y-links a {
 text-decoration: underline !important;
 text-underline-offset: 3px;
 color: #1d4ed8 !important;
 background: #fff59d33;
}
html.a11y-big-cursor, html.a11y-big-cursor * {
 cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='black' stroke='white' stroke-width='1.5'><path d='M3 2l7 18 2-8 8-2z'/></svg>") 4 4, auto !important;
}
html.a11y-stop-motion *, html.a11y-stop-motion *::before, html.a11y-stop-motion *::after {
 animation: none !important;
 transition: none !important;
}
html.a11y-hide-images img, html.a11y-hide-images video {
 visibility: hidden !important;
}

/* Price guide tables */
.price-table-wrap {
 position: relative;
 overflow-x: auto;
 -webkit-overflow-scrolling: touch;
 scroll-padding-inline: 1rem;
}

.price-table-scroll-hint {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.35rem;
 padding: 0.625rem 1rem;
 font-size: 0.75rem;
 font-weight: 600;
 color: color-mix(in oklab, var(--foreground) 55%, transparent);
 background: color-mix(in oklab, var(--secondary) 40%, var(--card));
 border-top: 1px solid var(--border);
}

.price-table-scroll-hint svg {
 flex-shrink: 0;
 color: var(--accent);
}

@media (min-width: 640px) {
 .price-table-scroll-hint {
 display: none;
 }
}

.price-table {
 width: 100%;
 min-width: 36rem;
 border-collapse: collapse;
 font-size: 0.875rem;
}

.price-table th,
.price-table td {
 padding: 0.875rem 1.125rem;
 text-align: left;
 vertical-align: top;
 border-bottom: 1px solid color-mix(in oklab, var(--border) 80%, transparent);
}

.price-table thead th {
 background: color-mix(in oklab, var(--secondary) 55%, white);
 font-size: 0.6875rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--primary) 75%, transparent);
}

.price-table tbody tr:last-child td {
 border-bottom: none;
}

.price-table tbody tr:hover {
 background: color-mix(in oklab, var(--secondary) 30%, white);
}

.price-table code {
 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
 font-size: 0.75rem;
 color: color-mix(in oklab, var(--primary) 72%, transparent);
 word-break: break-all;
}

.price-table td:last-child {
 white-space: nowrap;
}

/* ── Price guide page ── */
.price-guide-hero {
 background: var(--primary);
}

.price-guide-hero__content {
 position: relative;
 z-index: 1;
}

.price-glance {
 border-radius: 1.25rem;
 border: 1px solid color-mix(in oklab, var(--accent) 28%, var(--border));
 background: linear-gradient(155deg, var(--card) 0%, color-mix(in oklab, var(--primary) 4%, var(--card)) 55%, color-mix(in oklab, var(--accent) 7%, var(--card)) 100%);
 box-shadow: var(--shadow-card);
}

.price-step-card {
 height: 100%;
 position: relative;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.75rem 1.5rem 1.5rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.price-step-card:hover {
 border-color: color-mix(in oklab, var(--accent) 35%, var(--border));
 box-shadow: var(--shadow-card);
 transform: translateY(-2px);
}

.price-step-card__num {
 display: grid;
 place-items: center;
 width: 2.25rem;
 height: 2.25rem;
 border-radius: 9999px;
 background: var(--accent);
 font-size: 0.8125rem;
 font-weight: 800;
 color: var(--accent-foreground);
}

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

@media (min-width: 640px) {
 .price-rate-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (min-width: 1024px) {
 .price-rate-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

.price-rate-card {
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.25rem 1.35rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.price-rate-card:hover {
 border-color: color-mix(in oklab, var(--accent) 30%, var(--border));
 box-shadow: var(--shadow-card);
 transform: translateY(-2px);
}

.price-rate-card--peak {
 border-color: color-mix(in oklab, var(--accent) 40%, var(--border));
 background: linear-gradient(145deg, var(--card) 0%, color-mix(in oklab, var(--accent) 8%, var(--card)) 100%);
}

.price-rate-card__period {
 font-family: var(--font-display, inherit);
 font-size: 0.9375rem;
 font-weight: 700;
 color: var(--primary);
 line-height: 1.3;
}

.price-rate-card__badge {
 display: inline-flex;
 margin-top: 0.5rem;
 border-radius: 9999px;
 background: color-mix(in oklab, var(--secondary) 70%, white);
 padding: 0.15rem 0.55rem;
 font-size: 0.625rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--primary) 70%, transparent);
}

.price-rate-card--peak .price-rate-card__badge {
 background: color-mix(in oklab, var(--accent) 18%, white);
 color: var(--accent);
}

.price-rate-card__prices {
 margin-top: 1rem;
 display: grid;
 gap: 0.65rem;
}

.price-rate-card__price-row {
 display: flex;
 align-items: baseline;
 justify-content: space-between;
 gap: 0.75rem;
 font-size: 0.8125rem;
}

.price-rate-card__price-label {
 color: color-mix(in oklab, var(--foreground) 62%, transparent);
}

.price-rate-card__price-value {
 font-family: var(--font-display, inherit);
 font-size: 1.0625rem;
 font-weight: 700;
 color: var(--primary);
 white-space: nowrap;
}

.price-rate-card--peak .price-rate-card__price-value {
 color: var(--accent);
}

.price-table--premium {
 border-radius: 1.25rem;
 overflow: hidden;
}

.price-table--premium thead th {
 background: linear-gradient(90deg, var(--primary) 0%, color-mix(in oklab, var(--primary) 82%, var(--accent)) 100%);
 color: white;
 font-size: 0.6875rem;
 letter-spacing: 0.08em;
 border-bottom: none;
 padding: 1rem 1.125rem;
}

.price-table--premium tbody tr {
 transition: background 0.15s ease;
}

.price-table--premium tbody tr:hover {
 background: color-mix(in oklab, var(--accent) 6%, white);
}

.price-table--premium .price-table__amount {
 font-family: var(--font-display, inherit);
 font-size: 1rem;
 font-weight: 700;
 color: var(--accent);
}

.price-table--premium .price-table__service-link {
 font-weight: 600;
 color: var(--primary);
 transition: color 0.15s ease;
}

.price-table--premium .price-table__service-link:hover {
 color: var(--accent);
}

.price-table--premium code {
 display: inline-block;
 border-radius: 0.375rem;
 background: color-mix(in oklab, var(--secondary) 55%, white);
 padding: 0.15rem 0.45rem;
 font-size: 0.6875rem;
}

.price-info-card {
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.75rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.price-info-card:hover {
 border-color: color-mix(in oklab, var(--accent) 35%, var(--border));
 box-shadow: var(--shadow-card);
 transform: translateY(-2px);
}

.price-info-card__icon {
 display: grid;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 0.75rem;
 background: color-mix(in oklab, var(--accent) 14%, white);
 color: var(--accent);
}

.price-resource-card {
 display: flex;
 align-items: flex-start;
 gap: 1rem;
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.35rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.price-resource-card:hover {
 border-color: color-mix(in oklab, var(--accent) 40%, var(--border));
 box-shadow: var(--shadow-card);
 transform: translateY(-2px);
}

.price-resource-card__icon {
 display: grid;
 flex-shrink: 0;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 0.875rem;
 background: color-mix(in oklab, var(--primary) 10%, white);
 color: var(--primary);
 transition: background 0.2s ease, color 0.2s ease;
}

.price-resource-card:hover .price-resource-card__icon {
 background: color-mix(in oklab, var(--accent) 16%, white);
 color: var(--accent);
}

.price-commit-card {
 display: flex;
 align-items: flex-start;
 gap: 1rem;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.35rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.price-commit-card:hover {
 border-color: color-mix(in oklab, var(--accent) 30%, var(--border));
 box-shadow: var(--shadow-card);
 transform: translateY(-2px);
}

.price-commit-card__icon {
 display: grid;
 flex-shrink: 0;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 0.875rem;
 background: color-mix(in oklab, var(--accent) 14%, white);
 color: var(--accent);
}

.site-footer {
 border-top: var(--site-bold-divider) solid #fff;
 margin-top: 0 !important;
}

/* Bold white divider between dark bands and the next section (site-wide) */
.about-headline,
.services-trust-strip,
main > section.bg-primary.text-primary-foreground:not(:last-child) {
 border-bottom: var(--site-bold-divider) solid #fff;
}

.site-footer a:hover {
 color: var(--accent);
}

.site-footer .text-primary {
 color: var(--primary) !important;
}

.site-footer-social a {
 display: grid;
 place-items: center;
 width: 2rem;
 height: 2rem;
 color: var(--primary-foreground);
}

.site-footer-social a svg {
 display: block;
 width: 0.875rem;
 height: 0.875rem;
 fill: currentColor;
}

/* Feature / info card icons (service pages, NDIS, etc.) */
@media (max-width: 767px) {
 .inline-flex.h-11.w-11.items-center.justify-center.rounded-xl {
 width: 3.5rem !important;
 height: 3.5rem !important;
 }

 .inline-flex.h-11.w-11.items-center.justify-center.rounded-xl [data-lucide],
 .inline-flex.h-11.w-11.items-center.justify-center.rounded-xl svg {
 width: 1.75rem !important;
 height: 1.75rem !important;
 }
}

@media (min-width: 768px) {
 .inline-flex.h-11.w-11.items-center.justify-center.rounded-xl {
 width: 4.55rem !important;
 height: 4.55rem !important;
 }

 .inline-flex.h-11.w-11.items-center.justify-center.rounded-xl [data-lucide],
 .inline-flex.h-11.w-11.items-center.justify-center.rounded-xl svg {
 width: 2.275rem !important;
 height: 2.275rem !important;
 }
}

/* Center-aligned icon + content cards — mobile & tablet only */
@media (max-width: 767px) {
 .flex.items-start.gap-4.rounded-2xl.border.border-border.bg-card {
 flex-direction: column !important;
 align-items: center !important;
 justify-content: center !important;
 text-align: center !important;
 gap: 1rem !important;
 }

 .rounded-2xl.border.border-border.bg-card.p-6:has(> .inline-flex.items-center.justify-center.rounded-xl) {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
 }
}

.services-why-card {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
}

.services-why-card__icon {
 margin-inline: auto;
}

/* Center-aligned checklist grids (match stat card alignment) */
ul.grid > li.flex:has([data-lucide="check-circle-2"]),
ul.grid > li.flex:has([data-lucide="check"]) {
 flex-direction: column;
 align-items: center;
 justify-content: center;
 text-align: center;
 gap: 0.625rem;
 padding: 1.25rem 1rem;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 min-height: 100%;
}

ul.grid > li.flex:has([data-lucide="check-circle-2"]) [data-lucide="check-circle-2"],
ul.grid > li.flex:has([data-lucide="check"]) [data-lucide="check"] {
 margin-top: 0 !important;
 width: 1.25rem !important;
 height: 1.25rem !important;
 flex-shrink: 0;
}

ul.grid:has(> li.flex [data-lucide="check-circle-2"]),
ul.grid:has(> li.flex [data-lucide="check"]) {
 align-items: stretch;
}

.site-footer-social a:hover {
 color: var(--accent);
}

.footer-newsletter {
 margin-top: 1.25rem;
 max-width: 18rem;
}

.footer-newsletter__title {
 margin: 0;
 font-size: 0.75rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--primary-foreground) 60%, transparent);
}

.footer-newsletter__desc {
 margin: 0.25rem 0 0.625rem;
 font-size: 0.75rem;
 line-height: 1.45;
 color: color-mix(in oklab, var(--primary-foreground) 68%, transparent);
}

.footer-newsletter__form {
 min-width: 0;
}

.footer-newsletter__controls {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
}

@media (min-width: 400px) {
 .footer-newsletter__controls {
 flex-direction: row;
 align-items: stretch;
 }
}

.footer-newsletter__input {
 min-width: 0;
 flex: 1;
 width: 100%;
 padding: 0.4375rem 0.625rem;
 border: 1px solid color-mix(in oklab, var(--primary-foreground) 18%, transparent);
 border-radius: 0.25rem;
 background: color-mix(in oklab, var(--primary-foreground) 6%, transparent);
 font-size: 0.75rem;
 color: var(--primary-foreground);
 outline: none;
 transition: border-color 0.2s ease, background 0.2s ease;
}

.footer-newsletter__input::placeholder {
 color: color-mix(in oklab, var(--primary-foreground) 42%, transparent);
}

.footer-newsletter__input:focus {
 border-color: color-mix(in oklab, var(--accent) 55%, transparent);
 background: color-mix(in oklab, var(--primary-foreground) 9%, transparent);
}

.footer-newsletter__btn {
 flex-shrink: 0;
 padding: 0.4375rem 0.875rem;
 border: 0;
 border-radius: 0.25rem;
 font-size: 0.75rem;
 font-weight: 600;
 color: var(--accent-foreground);
 background: var(--accent);
 transition: background 0.2s ease, opacity 0.2s ease;
 cursor: pointer;
}

.footer-newsletter__btn:hover {
 background: color-mix(in oklab, var(--accent) 88%, white);
}

.footer-newsletter__btn:active {
 opacity: 0.92;
}

.footer-newsletter__note {
 margin: 0.375rem 0 0;
 font-size: 0.6875rem;
 line-height: 1.4;
 color: color-mix(in oklab, var(--primary-foreground) 72%, transparent);
}

.seo-highlight,
mark.seo-highlight {
 background: color-mix(in oklab, var(--accent) 18%, transparent);
 color: inherit;
 font-weight: 600;
 padding: 0.05em 0.2em;
 border-radius: 0.2em;
}

.seo-speakable {
 font-size: 0.875rem;
 line-height: 1.6;
 color: color-mix(in oklab, var(--foreground) 72%, transparent);
}

/* Service page — key highlights grid */
.service-highlights ul {
 list-style: none;
 margin: 0;
 padding: 0;
}

.service-highlight-card {
 display: flex;
 align-items: flex-start;
 gap: 0.875rem;
 height: 100%;
 padding: 1rem 1.125rem;
 border-radius: 0.875rem;
 border: 1px solid color-mix(in oklab, var(--border) 85%, transparent);
 background: linear-gradient(135deg, #fff 0%, color-mix(in oklab, var(--secondary) 35%, #fff) 100%);
 box-shadow: 0 1px 2px rgba(15, 42, 72, 0.04);
 transition: border-color 180ms ease, box-shadow 180ms ease;
}

.service-highlight-card:hover {
 border-color: color-mix(in oklab, var(--accent) 28%, var(--border));
 box-shadow: var(--shadow-card);
}

.service-highlight-card__icon {
 display: grid;
 flex-shrink: 0;
 place-items: center;
 width: 2.25rem;
 height: 2.25rem;
 border-radius: 0.625rem;
 background: color-mix(in oklab, var(--accent) 12%, white);
 color: var(--accent);
}

.service-highlight-card__icon [data-lucide] {
 width: 1.125rem;
 height: 1.125rem;
}

.service-highlight-card__text {
 font-size: 0.875rem;
 line-height: 1.55;
 color: color-mix(in oklab, var(--foreground) 82%, transparent);
}

/* Service enquiry — form on dark section (fix inherited light text) */
.service-enquiry {
 background: linear-gradient(180deg, var(--primary) 0%, color-mix(in oklab, var(--primary) 92%, black) 100%);
 padding-block: 3rem 2rem !important;
}

@media (min-width: 768px) {
 .service-enquiry {
 padding-block: 3.5rem 2.25rem !important;
 }
}

.service-enquiry-badges {
 margin-top: 1.5rem !important;
}

.service-enquiry-badges > span {
 flex-shrink: 0;
}

@media (max-width: 767px) {
 .service-enquiry-badges {
 display: grid !important;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.375rem;
 align-items: stretch;
 }

 .service-enquiry-badges > span {
 flex-direction: column;
 gap: 0.25rem;
 justify-content: center;
 text-align: center;
 padding: 0.5rem 0.35rem;
 font-size: 0.5625rem;
 line-height: 1.3;
 white-space: normal;
 border-radius: 0.75rem;
 }

 .service-enquiry-badges > span [data-lucide] {
 width: 0.75rem !important;
 height: 0.75rem !important;
 flex-shrink: 0;
 }
}

.service-enquiry__grid {
 align-items: start;
 gap: 1.5rem;
 margin-top: 2rem !important;
}

@media (min-width: 1024px) {
 .service-enquiry__grid {
 gap: 2rem;
 }
}

.service-enquiry-form {
 color: var(--foreground);
 isolation: isolate;
 padding: 1.5rem !important;
}

@media (min-width: 1024px) {
 .service-enquiry-form {
 padding: 2rem !important;
 }
}

.service-enquiry-form > .grid {
 gap: 1.25rem;
}

@media (min-width: 768px) {
 .service-enquiry-form > .grid {
 gap: 1.5rem;
 }
}

.service-enquiry-form :is(p, span, label, input, select, textarea, option) {
 color: var(--foreground);
}

.service-enquiry-form__header {
 margin-bottom: 1.25rem;
 display: flex;
 align-items: center;
 gap: 0.875rem;
 border-bottom: 1px solid var(--border);
 padding-bottom: 1rem;
}

.service-enquiry-form__header-icon {
 display: grid;
 place-items: center;
 border-radius: 0.625rem;
 background: color-mix(in oklab, var(--accent) 12%, white);
 padding: 0.625rem;
 color: var(--accent);
}

.service-enquiry-form__title {
 font-size: 1.05rem;
 font-weight: 600;
 color: var(--primary);
 line-height: 1.35;
}

.service-enquiry-field__label {
 display: block;
 margin-bottom: 0.4rem;
 font-size: 0.6875rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--foreground) 58%, transparent);
}

.service-enquiry-input {
 display: block;
 width: 100%;
 border-radius: 0.75rem;
 border: 1px solid var(--border);
 background: color-mix(in oklab, var(--muted) 65%, white);
 color: var(--foreground);
 padding: 0.8rem 1rem;
 font-size: 0.875rem;
 line-height: 1.4;
 transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.service-enquiry-input::placeholder {
 color: color-mix(in oklab, var(--foreground) 42%, transparent);
}

.service-enquiry-input:hover {
 border-color: color-mix(in oklab, var(--accent) 35%, var(--border));
}

.service-enquiry-input:focus,
.service-enquiry-input:focus-visible {
 outline: none;
 border-color: var(--accent);
 background: var(--card);
 box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 18%, transparent);
}

.service-enquiry-form__actions {
 display: flex;
 flex-direction: column;
 gap: 0.875rem;
 margin-top: 0.5rem;
}

@media (min-width: 640px) {
 .service-enquiry-form__actions {
 flex-direction: row;
 align-items: center;
 justify-content: space-between;
 gap: 1.25rem;
 }
}

.service-enquiry-form__disclaimer {
 font-size: 0.75rem;
 line-height: 1.5;
 color: color-mix(in oklab, var(--foreground) 58%, transparent);
}

.service-enquiry-contact {
 display: flex;
 flex-direction: column;
 border-radius: 1.5rem;
 border: 1px solid color-mix(in oklab, white 14%, transparent);
 background: color-mix(in oklab, white 7%, transparent);
 padding: 1.5rem;
 backdrop-filter: blur(24px);
}

@media (min-width: 1024px) {
 .service-enquiry-contact {
 padding: 1.75rem;
 }
}

.service-enquiry-contact > .mb-8 {
 margin-bottom: 1.25rem !important;
}

.service-enquiry-contact > .space-y-4 {
 gap: 0.75rem;
}

.service-enquiry-contact > .mt-auto {
 margin-top: 1.25rem !important;
 padding-top: 1.25rem !important;
}

.service-enquiry-contact__card {
 display: flex;
 align-items: center;
 gap: 0.875rem;
 border-radius: 1rem;
 border: 1px solid color-mix(in oklab, white 8%, transparent);
 background: color-mix(in oklab, white 6%, transparent);
 padding: 0.875rem 1rem;
 transition: background-color 0.15s ease, border-color 0.15s ease;
}

a.service-enquiry-contact__card:hover {
 background: color-mix(in oklab, white 12%, transparent);
 border-color: color-mix(in oklab, white 18%, transparent);
}

.service-enquiry-contact__icon {
 display: grid;
 flex-shrink: 0;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 0.75rem;
 background: color-mix(in oklab, var(--accent) 18%, transparent);
 color: var(--accent);
}

.service-enquiry-contact__label {
 font-size: 0.625rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: color-mix(in oklab, white 55%, transparent);
}

.service-enquiry-contact__value {
 font-weight: 500;
 color: white;
}

.service-enquiry-success {
 color: var(--foreground);
}

.service-enquiry-success :is(h3, p) {
 color: var(--foreground);
}

/* Shared page utilities */
.services-trust-stat {
 text-align: center;
 padding: 0.5rem;
}

.services-trust-stat__value {
 font-family: var(--font-display, inherit);
 font-size: 1.75rem;
 font-weight: 700;
 color: white;
 line-height: 1.1;
}

.services-trust-stat__label {
 margin-top: 0.25rem;
 font-size: 0.6875rem;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: color-mix(in oklab, white 65%, transparent);
}

/* Three-up trust strip (About page) — always one row */
.trust-strip-3col {
 grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
 text-align: center;
}

@media (max-width: 639px) {
 .trust-strip-3col {
 gap: 0.5rem !important;
 }

 .trust-strip-3col .services-trust-stat {
 padding: 0.25rem 0.125rem;
 }

 .trust-strip-3col .services-trust-stat__value {
 font-size: 1.375rem;
 }

 .trust-strip-3col .services-trust-stat__label {
 font-size: 0.5625rem;
 letter-spacing: 0.06em;
 line-height: 1.35;
 }
}

/* Four-up trust strip — always one row */
.core-trust-strip .trust-strip-4col,
.services-trust-strip .trust-strip-4col {
 display: grid !important;
 grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
 text-align: center;
 width: 100%;
}

.core-trust-strip .trust-strip-4col .services-trust-stat,
.services-trust-strip .trust-strip-4col .services-trust-stat {
 min-width: 0;
}

@media (max-width: 767px) {
 .trust-strip-4col {
 gap: 0.35rem !important;
 }

 .trust-strip-4col .services-trust-stat {
 padding: 0.25rem 0.0625rem;
 }

 .trust-strip-4col .services-trust-stat__value {
 font-size: 1.125rem;
 }

 .trust-strip-4col .services-trust-stat__label {
 font-size: 0.5rem;
 letter-spacing: 0.04em;
 line-height: 1.3;
 }
}

@media (min-width: 768px) {
 .trust-strip-4col {
 gap: 1rem !important;
 }

 .trust-strip-4col .services-trust-stat__value {
 font-size: 1.75rem;
 }

 .trust-strip-4col .services-trust-stat__label {
 font-size: 0.6875rem;
 }
}

.services-glance {
 border-radius: 1.25rem;
 border: 1px solid color-mix(in oklab, var(--accent) 30%, var(--border));
 background: linear-gradient(145deg, var(--card) 0%, color-mix(in oklab, var(--accent) 6%, var(--card)) 100%);
 box-shadow: var(--shadow-card);
}

.services-step-card {
 height: 100%;
 position: relative;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.75rem 1.75rem 1.75rem 1.5rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
}

.services-step-card__num {
 position: absolute;
 top: -0.75rem;
 left: 1.25rem;
 border-radius: 9999px;
 background: var(--accent);
 padding: 0.2rem 0.65rem;
 font-size: 0.6875rem;
 font-weight: 800;
 letter-spacing: 0.05em;
 color: var(--accent-foreground);
}

/* ── Services catalog page ── */
.services-hero {
 background: var(--primary);
}

.services-hero__content {
 position: relative;
 z-index: 1;
}

.services-trust-strip {
 background: linear-gradient(90deg, var(--primary) 0%, color-mix(in oklab, var(--primary) 88%, var(--accent)) 100%);
}

.services-jump-nav {
 position: sticky;
 top: 4rem;
 z-index: 40;
 border-bottom: 1px solid var(--border);
 background: color-mix(in oklab, var(--card) 94%, transparent);
 backdrop-filter: blur(14px);
 -webkit-backdrop-filter: blur(14px);
}

@media (min-width: 768px) {
 .services-jump-nav {
 top: 5.25rem;
 }
}

.services-jump-nav__inner {
 display: flex;
 gap: 0.5rem;
 overflow-x: auto;
 padding-block: 0.875rem;
 scrollbar-width: none;
}

.services-jump-nav__inner::-webkit-scrollbar {
 display: none;
}

.services-jump-nav__link {
 flex-shrink: 0;
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 border-radius: 9999px;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 0.45rem 1rem;
 font-size: 0.75rem;
 font-weight: 600;
 color: color-mix(in oklab, var(--foreground) 75%, transparent);
 text-decoration: none;
 transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.services-jump-nav__link:hover,
.services-jump-nav__link:focus-visible {
 border-color: color-mix(in oklab, var(--accent) 40%, var(--border));
 color: var(--primary);
 box-shadow: var(--shadow-card);
}

.services-jump-nav__link.is-active {
 background: var(--accent);
 border-color: var(--accent);
 color: var(--accent-foreground);
 box-shadow: var(--shadow-card);
}

.services-jump-nav__link.is-active [data-lucide] {
 color: var(--accent-foreground);
}

.services-jump-nav__link [data-lucide] {
 width: 0.875rem;
 height: 0.875rem;
 color: var(--accent);
}

.services-category {
 scroll-margin-top: 8.5rem;
}

.services-category__header {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 border-bottom: 1px solid var(--border);
 padding-bottom: 1.25rem;
}

@media (min-width: 768px) {
 .services-category__header {
 flex-direction: row;
 align-items: flex-end;
 justify-content: space-between;
 }
}

.services-category__count {
 font-size: 0.6875rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--foreground) 48%, transparent);
}

.services-catalog-grid {
 display: grid;
 gap: 1.5rem;
}

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

@media (min-width: 1024px) {
 .services-catalog-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

.services-catalog-card {
 display: flex;
 flex-direction: column;
 overflow: hidden;
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 box-shadow: var(--shadow-card);
 text-decoration: none;
 color: inherit;
 transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.services-catalog-card:hover {
 transform: translateY(-6px);
 border-color: color-mix(in oklab, var(--accent) 38%, var(--border));
 box-shadow: 0 22px 44px -18px color-mix(in oklab, var(--primary) 28%, transparent);
}

.services-catalog-card__media {
 position: relative;
 aspect-ratio: 16 / 10;
 overflow: hidden;
 background: var(--muted);
}

.services-catalog-card__media img {
 height: 100%;
 width: 100%;
 object-fit: cover;
 transition: transform 0.55s ease;
}

.services-catalog-card:hover .services-catalog-card__media img {
 transform: scale(1.07);
}

.services-catalog-card__scrim {
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, transparent 40%, color-mix(in oklab, var(--primary) 18%, transparent) 100%);
 pointer-events: none;
}

.services-catalog-card__badge {
 position: absolute;
 left: 0.875rem;
 top: 0.875rem;
 z-index: 1;
 max-width: calc(100% - 1.75rem);
 border-radius: 9999px;
 background: var(--primary);
 padding: 0.35rem 0.75rem;
 font-size: 0.625rem;
 font-weight: 700;
 line-height: 1.35;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--primary-foreground);
 box-shadow: 0 4px 12px color-mix(in oklab, var(--primary) 45%, transparent);
}

.services-catalog-card__body {
 display: flex;
 flex: 1;
 flex-direction: column;
 padding: 1.375rem 1.5rem 1.25rem;
}

.services-catalog-card__title {
 font-family: var(--font-display, inherit);
 font-size: 1.25rem;
 font-weight: 700;
 line-height: 1.25;
 color: var(--primary);
 transition: color 0.15s ease;
}

.services-catalog-card:hover .services-catalog-card__title {
 color: var(--accent);
}

.services-catalog-card__desc {
 margin-top: 0.5rem;
 flex: 1;
 font-size: 0.875rem;
 line-height: 1.6;
 color: color-mix(in oklab, var(--foreground) 74%, transparent);
}

.services-catalog-card__footer {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 margin-top: 1.25rem;
 padding-top: 1rem;
 border-top: 1px solid var(--border);
}

.services-catalog-card__location {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 font-size: 0.6875rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--foreground) 58%, transparent);
}

.services-catalog-card__location [data-lucide] {
 width: 0.75rem;
 height: 0.75rem;
}

.services-catalog-card__cta {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 font-size: 0.8125rem;
 font-weight: 700;
 color: var(--accent);
 transition: gap 0.15s ease;
}

.services-catalog-card:hover .services-catalog-card__cta {
 gap: 0.55rem;
}

.services-why-card {
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.75rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.services-why-card:hover {
 transform: translateY(-4px);
 border-color: color-mix(in oklab, var(--accent) 28%, var(--border));
 box-shadow: var(--shadow-card);
}

.services-why-card__icon {
 display: grid;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 0.75rem;
 background: color-mix(in oklab, var(--accent) 14%, white);
 color: var(--accent);
}

.services-core-banner {
 border-radius: 1.5rem;
 border: 1px solid color-mix(in oklab, var(--accent) 28%, var(--border));
 background: linear-gradient(135deg, color-mix(in oklab, var(--primary) 6%, var(--card)) 0%, color-mix(in oklab, var(--accent) 8%, var(--card)) 100%);
 padding: 2rem;
}

@media (min-width: 768px) {
 .services-core-banner {
 padding: 2.5rem;
 }
}

/* ── Core Supports page ── */
.core-hero {
 background: #0f0f0f;
}

.core-hero__content {
 position: relative;
 z-index: 1;
}

.core-trust-strip {
 background: linear-gradient(90deg, var(--primary) 0%, color-mix(in oklab, var(--primary) 88%, var(--accent)) 100%);
}

.core-support-card {
 display: flex;
 flex-direction: column;
 overflow: hidden;
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 box-shadow: var(--shadow-card);
 text-decoration: none;
 color: inherit;
 transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.core-support-card:hover {
 transform: translateY(-5px);
 border-color: color-mix(in oklab, var(--accent) 35%, var(--border));
 box-shadow: 0 18px 36px -14px color-mix(in oklab, var(--primary) 22%, transparent);
}

.core-support-card__media {
 position: relative;
 aspect-ratio: 16 / 10;
 overflow: hidden;
 background: var(--muted);
}

.core-support-card__media img {
 height: 100%;
 width: 100%;
 object-fit: cover;
 transition: transform 0.55s ease;
}

.core-support-card:hover .core-support-card__media img {
 transform: scale(1.06);
}

.core-support-card__badge {
 position: absolute;
 left: 0.875rem;
 top: 0.875rem;
 border-radius: 9999px;
 background: color-mix(in oklab, var(--card) 92%, transparent);
 padding: 0.3rem 0.7rem;
 font-size: 0.625rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--primary);
 backdrop-filter: blur(8px);
}

.core-support-card__body {
 display: flex;
 flex: 1;
 flex-direction: column;
 padding: 1.375rem 1.5rem 1.5rem;
}

.core-support-card__title {
 font-family: var(--font-display, inherit);
 font-size: 1.125rem;
 font-weight: 700;
 color: var(--primary);
 transition: color 0.15s ease;
}

.core-support-card:hover .core-support-card__title {
 color: var(--accent);
}

.core-support-card__desc {
 margin-top: 0.5rem;
 flex: 1;
 font-size: 0.875rem;
 line-height: 1.55;
 color: color-mix(in oklab, var(--foreground) 68%, transparent);
}

.core-support-card__list {
 margin-top: 0.875rem;
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 list-style: none;
 padding: 0;
}

.core-support-card__list li {
 display: flex;
 align-items: flex-start;
 gap: 0.4rem;
 font-size: 0.75rem;
 line-height: 1.4;
 color: color-mix(in oklab, var(--foreground) 62%, transparent);
}

.core-support-card__list [data-lucide] {
 margin-top: 0.1rem;
 flex-shrink: 0;
 width: 0.75rem;
 height: 0.75rem;
 color: var(--accent);
}

.core-support-card__link {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 margin-top: 1rem;
 font-size: 0.8125rem;
 font-weight: 700;
 color: var(--accent);
}

.core-support-card:hover .core-support-card__link {
 gap: 0.55rem;
}

.core-budget-card {
 border-radius: 1rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.25rem 1.375rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
}

.core-budget-card__icon {
 display: grid;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 0.625rem;
 background: color-mix(in oklab, var(--accent) 12%, white);
 color: var(--accent);
}

.core-area-card {
 display: flex;
 gap: 1rem;
 align-items: flex-start;
 border-radius: 1rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.25rem;
 transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.core-area-card:hover {
 border-color: color-mix(in oklab, var(--accent) 28%, var(--border));
 box-shadow: var(--shadow-card);
}

.careers-role-card {
 display: flex;
 flex-direction: column;
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.5rem;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.careers-role-card:hover {
 transform: translateY(-3px);
 border-color: color-mix(in oklab, var(--accent) 30%, var(--border));
 box-shadow: var(--shadow-card);
}

.careers-role-card__type {
 display: inline-flex;
 width: fit-content;
 border-radius: 9999px;
 background: color-mix(in oklab, var(--accent) 12%, white);
 padding: 0.3rem 0.7rem;
 font-size: 0.625rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--accent);
}

.careers-role-card__meta {
 margin-top: 1rem;
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 font-size: 0.75rem;
 color: color-mix(in oklab, var(--foreground) 58%, transparent);
}

.careers-role-card__meta span {
 display: inline-flex;
 align-items: center;
 gap: 0.3rem;
}

.careers-role-card__meta [data-lucide] {
 width: 0.8rem;
 height: 0.8rem;
 color: var(--accent);
}

.about-stat-card {
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.5rem;
 text-align: center;
 box-shadow: 0 1px 3px rgba(15, 42, 72, 0.04);
}

.about-stat-card__value {
 font-family: var(--font-display, inherit);
 font-size: 2rem;
 font-weight: 700;
 color: var(--primary);
 line-height: 1.1;
}

.about-stat-card__label {
 margin-top: 0.35rem;
 font-size: 0.75rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: color-mix(in oklab, var(--foreground) 58%, transparent);
}

.about-value-card {
 height: 100%;
 border-radius: 1.25rem;
 border: 1px solid var(--border);
 background: var(--card);
 padding: 1.75rem;
 box-shadow: var(--shadow-card);
}

.about-value-card__icon {
 display: grid;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 0.75rem;
 background: color-mix(in oklab, var(--accent) 14%, white);
 color: var(--accent);
}

.about-hub-panel {
 overflow: hidden;
 border-radius: 1.5rem;
 border: 1px solid var(--border);
 background: var(--card);
 box-shadow: var(--shadow-card);
}

/* ── Mobile responsive (site-wide) ── */
html,
body {
 overflow-x: clip;
}

body.nav-open {
 overflow: hidden;
 touch-action: none;
}

/* Header — shared height for mobile nav offset */
#site-header {
 overflow: visible;
}

#site-header .site-header__bar,
#site-header .container-prose {
 height: auto;
 min-height: var(--site-header-height);
}

#site-header .site-header__bar {
 position: relative;
 z-index: 52;
 background: color-mix(in oklab, var(--background) 92%, transparent);
}

#site-header.is-nav-open {
 z-index: 65;
}

#nav-toggle {
 min-width: var(--site-nav-item-min-height);
 min-height: var(--site-nav-item-min-height);
 padding: 0.375rem;
 border-radius: 0.5rem;
 transition: background 0.15s ease;
}

@media (max-width: 1023px) {
 #nav-toggle {
 display: grid;
 place-items: center;
 }
}

@media (min-width: 1024px) {
 #nav-toggle {
 display: none !important;
 }
}

#nav-toggle:hover {
 background: color-mix(in oklab, var(--secondary) 65%, transparent);
}

#nav-toggle:focus-visible {
 outline: 2px solid var(--accent);
 outline-offset: 2px;
}

.mobile-nav-backdrop {
 position: fixed;
 inset: 0;
 z-index: 48;
 background: rgba(15, 23, 42, 0.45);
 backdrop-filter: blur(2px);
 -webkit-backdrop-filter: blur(2px);
}

.mobile-nav-panel {
 position: fixed;
 top: var(--site-header-height);
 left: 0;
 right: 0;
 z-index: 49;
 height: calc(100dvh - var(--site-header-height));
 max-height: calc(100dvh - var(--site-header-height));
 overflow-y: auto;
 overscroll-behavior: contain;
 -webkit-overflow-scrolling: touch;
 background: var(--background);
 box-shadow: 0 16px 48px rgba(15, 42, 72, 0.14);
 padding-bottom: env(safe-area-inset-bottom, 0px);
}

.mobile-nav-panel__inner {
 padding-block: 0.75rem 1.5rem;
}

.mobile-nav-panel__list {
 display: flex;
 flex-direction: column;
 gap: 0.125rem;
}

.mobile-nav-panel__item,
.mobile-nav-panel__subitem {
 display: flex;
 align-items: center;
 min-height: var(--site-nav-item-min-height);
 padding: var(--site-nav-link-padding-y) var(--site-nav-link-padding-x);
 font-size: var(--site-nav-font-size);
 line-height: var(--site-nav-line-height);
 font-weight: var(--site-nav-font-weight);
 color: color-mix(in oklab, var(--foreground) 82%, transparent);
 border-radius: 0.375rem;
 transition: background 0.15s ease, color 0.15s ease;
}

.mobile-nav-panel__item--solo {
 width: 100%;
}

.mobile-nav-panel__item:hover,
.mobile-nav-panel__subitem:hover {
 background: color-mix(in oklab, var(--accent) 8%, transparent);
 color: var(--accent);
}

.mobile-nav-panel__row {
 display: flex;
 align-items: center;
 width: 100%;
 min-height: var(--site-nav-item-min-height);
 border-radius: 0.375rem;
}

.mobile-nav-panel__row .mobile-nav-panel__item {
 flex: 0 1 auto;
 min-width: 0;
 padding-right: 0.25rem;
 background: transparent;
}

.mobile-nav-panel__row.is-active-nav {
 background: color-mix(in oklab, var(--accent) 14%, var(--secondary));
}

.mobile-nav-panel__row.is-active-nav .mobile-nav-panel__item {
 color: var(--accent);
 font-weight: 600;
 background: transparent;
}

.mobile-nav-panel__row .mobile-nav-panel__item.is-active-nav {
 background: transparent;
 box-shadow: none;
}

.mobile-nav-panel__chevron {
 flex: 0 0 2.25rem;
 display: grid;
 place-items: center;
 align-self: stretch;
 margin: 0;
 padding: 0;
 border: 0;
 border-radius: 0.375rem;
 background: transparent;
 color: color-mix(in oklab, var(--foreground) 55%, transparent);
 cursor: pointer;
 transition: background 0.15s ease, color 0.15s ease;
}

.mobile-nav-panel__chevron:hover {
 background: color-mix(in oklab, var(--accent) 8%, transparent);
 color: var(--accent);
}

.mobile-nav-panel__row-fill {
 flex: 1 1 auto;
 align-self: stretch;
 min-width: 0;
}

.mobile-nav-panel__group {
 display: flex;
 flex-direction: column;
 gap: 0.125rem;
}

.mobile-nav-panel__sub {
 display: flex;
 flex-direction: column;
 gap: 0.125rem;
 margin-left: 0.75rem;
 padding-left: 0.75rem;
 border-left: 1px solid color-mix(in oklab, var(--border) 75%, transparent);
}

.mobile-nav-panel__subitem {
 padding-left: var(--site-nav-link-padding-x);
}

.mobile-nav-panel__footer {
 display: flex;
 flex-direction: column;
 gap: 0.625rem;
 margin-top: 1rem;
 padding-top: 1rem;
 border-top: 1px solid color-mix(in oklab, var(--border) 80%, transparent);
}

.mobile-nav-panel__cta {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 100%;
 min-height: var(--site-nav-item-min-height);
 padding: 0.625rem 1.25rem;
 border-radius: 9999px;
 background: var(--accent);
 font-size: var(--site-nav-font-size);
 font-weight: 500;
 line-height: var(--site-nav-line-height);
 color: var(--accent-foreground);
 text-align: center;
 box-shadow: var(--shadow-card);
 transition: transform 0.15s ease;
}

.mobile-nav-panel__cta:hover {
 transform: translateY(-1px);
}

.mobile-nav-panel__phone {
 display: flex;
 align-items: center;
 min-height: var(--site-nav-item-min-height);
 padding-inline: var(--site-nav-link-padding-x);
 font-size: var(--site-nav-font-size);
 line-height: var(--site-nav-line-height);
 color: color-mix(in oklab, var(--foreground) 55%, transparent);
}

.mobile-nav-panel__phone:hover {
 color: var(--foreground);
}

.mobile-nav-panel a,
.mobile-nav-panel button[data-mobile-dropdown-toggle] {
 min-height: var(--site-nav-item-min-height);
}

.mobile-nav-panel a.rounded-md,
.mobile-nav-panel a.rounded-lg {
 padding-top: 0.625rem;
 padding-bottom: 0.625rem;
}

@media (min-width: 1024px) {
 .mobile-nav-backdrop,
 .mobile-nav-panel {
 display: none !important;
 }
}

/* Service page heroes — first section on service pages */
main.flex-1 > section.relative.overflow-hidden:first-of-type,
.service-hero {
 min-height: 22.5rem;
}

@media (min-width: 640px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type,
 .service-hero {
 min-height: 26rem;
 }
}

@media (min-width: 768px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type,
 .service-hero {
 min-height: 28rem;
 }
}

main.flex-1 > section.relative.overflow-hidden:first-of-type > .absolute.inset-0,
.service-hero > .absolute.inset-0 {
 min-height: inherit;
}

main.flex-1 > section.relative.overflow-hidden:first-of-type .container-prose,
.service-hero .container-prose {
 padding-top: 3.5rem;
 padding-bottom: 3.5rem;
}

@media (min-width: 768px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type .container-prose,
 .service-hero .container-prose {
 padding-top: 6rem;
 padding-bottom: 8rem;
 }
}

/* Uniform 60% black overlay on all page banners */
#hero-carousel .hero-slide > .absolute.inset-0:not(:has(img)),
.services-hero > .absolute.inset-0:not(:has(img)),
.core-hero > .absolute.inset-0:not(:has(img)),
.price-guide-hero > .absolute.inset-0:not(:has(img)),
main.flex-1 > section:first-of-type > .absolute.inset-0:not(:has(img)),
main.flex-1 > section:first-of-type > .absolute.inset-0 > .absolute.inset-0:not(:has(img)) {
 background: rgba(0, 0, 0, 0.6) !important;
 background-image: none !important;
}

/* Home hero carousel */
#hero-carousel {
 min-height: 26rem;
}

@media (min-width: 640px) {
 #hero-carousel {
 min-height: 32rem;
 }
}

@media (min-width: 768px) {
 #hero-carousel {
 min-height: 40rem;
 }
}

@media (min-width: 1024px) {
 #hero-carousel {
 min-height: 44rem;
 }
}

#hero-carousel .container-prose {
 padding-top: 4.5rem;
 padding-bottom: 4.5rem;
}

@media (max-width: 639px) {
 #hero-carousel {
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 min-height: min(92vh, 38rem);
 }

 #hero-carousel .hero-slide > .absolute.inset-0:not(:has(img)) {
 background: linear-gradient(
 180deg,
 rgba(15, 23, 42, 0.35) 0%,
 rgba(15, 23, 42, 0.55) 45%,
 rgba(15, 23, 42, 0.92) 100%
 ) !important;
 }

 #hero-carousel .container-prose {
 position: relative;
 z-index: 2;
 flex-shrink: 0;
 width: 100%;
 padding-top: 1.5rem;
 padding-bottom: calc(6.75rem + env(safe-area-inset-bottom, 0px));
 }

 #hero-content h1 {
 text-shadow: 0 2px 18px rgba(0, 0, 0, 0.5);
 font-size: clamp(1.75rem, 7vw, 2.25rem) !important;
 line-height: 1.08 !important;
 }

 #hero-content p {
 color: rgba(255, 255, 255, 0.96);
 text-shadow: 0 1px 10px rgba(0, 0, 0, 0.4);
 }

 #hero-content .hero-meta {
 display: none;
 }

 #hero-carousel .hero-slide-img {
 object-position: center center;
 }

 #hero-content > span:first-child {
 background: rgba(0, 0, 0, 0.28);
 border-color: rgba(255, 255, 255, 0.35);
 }
}

@media (min-width: 768px) {
 #hero-carousel .container-prose {
 padding-top: 6rem;
 padding-bottom: 6rem;
 }
}

@media (min-width: 1024px) {
 #hero-carousel .container-prose {
 padding-top: 6.5rem;
 padding-bottom: 6.5rem;
 }
}

/* Footer layout */
.site-footer__grid {
 display: grid;
 gap: 2.5rem;
}

@media (min-width: 768px) {
 .site-footer__grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 2.5rem 2rem;
 }
}

@media (min-width: 1024px) {
 .site-footer__grid {
 grid-template-columns: 2fr 1fr 1fr;
 gap: 3rem;
 }
}

.site-footer__brand {
 grid-column: 1 / -1;
}

.site-footer__logo-link {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 0.5rem 0.75rem;
 background: #ffffff;
 border: none;
 border-radius: 0.5rem;
 box-shadow: none;
}

.site-footer__logo {
 height: 3.5rem;
 width: auto;
 aspect-ratio: 100 / 85;
 max-width: 100%;
 object-fit: contain;
}

@media (min-width: 640px) {
 .site-footer__logo {
 height: 4.25rem;
 }
}

@media (min-width: 1024px) {
 .site-footer__logo {
 height: 5rem;
 }
}

@media (min-width: 768px) {
 .site-footer__brand {
 grid-column: span 2;
 }
}

@media (min-width: 1024px) {
 .site-footer__brand {
 grid-column: span 1;
 }
}


/* Floating widgets — safe area */
@supports (padding: env(safe-area-inset-bottom)) {
 .site-widget-a11y {
 bottom: calc(1rem + env(safe-area-inset-bottom));
 right: calc(1rem + env(safe-area-inset-right));
 }

 .site-widget-contact {
 bottom: calc(1rem + env(safe-area-inset-bottom));
 left: calc(1rem + env(safe-area-inset-left));
 }
}

@media (min-width: 640px) {
 @supports (padding: env(safe-area-inset-bottom)) {
 .site-widget-contact {
 bottom: calc(1.5rem + env(safe-area-inset-bottom));
 }

 .back-to-top {
 bottom: calc(1.5rem + env(safe-area-inset-bottom));
 right: calc(5.5rem + env(safe-area-inset-right));
 }
 }
}

/* Floating widgets — mobile stack (back-to-top above a11y) */
@media (max-width: 639px) {
 :root {
 --fab-stack-size: 3rem;
 --fab-stack-gap: 0.75rem;
 --fab-stack-inset: 1rem;
 }

 .site-widget-a11y {
 bottom: calc(var(--fab-stack-inset) + env(safe-area-inset-bottom, 0px));
 right: calc(var(--fab-stack-inset) + env(safe-area-inset-right, 0px));
 width: var(--fab-stack-size);
 height: var(--fab-stack-size);
 box-sizing: border-box;
 }

 body.ai-chat-open .back-to-top,
 body.ai-chat-open .site-widget-a11y,
 body.ai-chat-open .site-widget-contact {
 opacity: 0 !important;
 pointer-events: none !important;
 transform: translateY(0.5rem);
 }

 .back-to-top {
 bottom: calc(var(--fab-stack-inset) + var(--fab-stack-size) + var(--fab-stack-gap) + env(safe-area-inset-bottom, 0px));
 right: calc(var(--fab-stack-inset) + env(safe-area-inset-right, 0px));
 width: var(--fab-stack-size) !important;
 height: var(--fab-stack-size) !important;
 min-width: var(--fab-stack-size);
 padding: 0;
 box-sizing: border-box;
 border: 2px solid white;
 box-shadow: 0 10px 30px color-mix(in oklab, var(--accent) 45%, transparent);
 }

 .back-to-top svg {
 width: 1.125rem;
 height: 1.125rem;
 }
}

/* Service enquiry CTA band */
.service-enquiry h2 {
 font-size: 1.5rem;
 line-height: 1.2;
}

@media (min-width: 640px) {
 .service-enquiry h2 {
 font-size: 1.875rem;
 }
}

@media (min-width: 768px) {
 .service-enquiry h2 {
 font-size: 2.25rem;
 }
}

@media (min-width: 1024px) {
 .service-enquiry h2 {
 font-size: 3rem;
 }
}

/* Process / journey section headings */
.service-process h2 {
 font-size: 1.875rem;
 line-height: 1.1;
}

@media (min-width: 640px) {
 .service-process h2 {
 font-size: 2.25rem;
 }
}

@media (min-width: 768px) {
 .service-process h2 {
 font-size: 3rem;
 }
}

@media (min-width: 1024px) {
 .service-process h2 {
 font-size: 3.75rem;
 }
}

/* About headline band */
.about-headline__grid {
 display: grid;
 gap: 2rem;
 align-items: start;
 padding-block: 3rem;
}

@media (min-width: 768px) {
 .about-headline__grid {
 grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
 gap: 2.5rem;
 padding-block: 3.5rem;
 }
}

@media (min-width: 1024px) {
 .about-headline__grid {
 gap: 3rem;
 padding-block: 4rem;
 }
}

.about-headline__copy {
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
}

.about-contact-card {
 overflow: hidden;
 border-radius: 1rem;
 background: color-mix(in oklab, var(--primary-foreground) 10%, transparent);
 backdrop-filter: blur(8px);
 -webkit-backdrop-filter: blur(8px);
}

.about-contact-card--plain .about-contact-card__body {
 padding-block: 1.75rem;
}

.about-contact-card__media {
 display: block;
 width: 100%;
 aspect-ratio: 16 / 10;
 object-fit: cover;
 object-position: center;
}

.about-contact-card__body {
 padding: 1.25rem 1.5rem 1.5rem;
}

@media (min-width: 768px) {
 .about-contact-card__body {
 padding: 1.5rem 1.75rem 1.75rem;
 }
}

.about-contact-card__phone {
 font-size: 1.75rem;
 line-height: 1.15;
}

@media (min-width: 768px) {
 .about-contact-card__phone {
 font-size: 2rem;
 }
}

.about-contact-card__cta {
 margin-top: 1.25rem;
}

.about-headline h2 {
 font-size: 1.75rem;
 line-height: 1.15;
}

@media (min-width: 640px) {
 .about-headline h2 {
 font-size: 2.25rem;
 }
}

@media (min-width: 768px) {
 .about-headline h2 {
 font-size: 2.5rem;
 }
}

@media (min-width: 1024px) {
 .about-headline h2 {
 font-size: 3rem;
 }
}

/* FAQ details — comfortable tap targets */
details.faq-item summary {
 min-height: 2.75rem;
 display: flex;
 align-items: center;
}

/* Price tables already scroll; tighten on very small screens */
@media (max-width: 479px) {
 .price-table {
 min-width: 32rem;
 font-size: 0.8125rem;
 }

 .price-table th,
 .price-table td {
 padding: 0.625rem 0.75rem;
 }
}

/* ── AI Live Agent Chat ── */
.sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

body.ai-chat-open {
 overflow: hidden;
}

.ai-chat {
 position: fixed;
 inset: 0;
 z-index: 65;
}

.ai-chat.hidden {
 display: none;
}

.ai-chat__backdrop {
 position: absolute;
 inset: 0;
 background: color-mix(in oklab, var(--forest) 45%, transparent);
 backdrop-filter: blur(2px);
}

.ai-chat__panel {
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 display: flex;
 flex-direction: column;
 max-height: min(32rem, calc(100dvh - 1rem));
 margin: 0.5rem;
 border-radius: 1.25rem;
 border: 1px solid color-mix(in oklab, var(--border) 80%, transparent);
 background: var(--background);
 box-shadow: 0 24px 64px color-mix(in oklab, black 28%, transparent);
 overflow: hidden;
}

@media (min-width: 640px) {
 .ai-chat__panel {
 left: auto;
 right: 1rem;
 bottom: 5.5rem;
 width: 22rem;
 max-width: calc(100vw - 2rem);
 margin: 0;
 max-height: min(36rem, calc(100dvh - 7rem));
 }
}

.ai-chat__header {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 padding: 0.875rem 1rem;
 background: var(--primary);
 color: var(--primary-foreground);
}

.ai-chat__header-info {
 display: flex;
 align-items: center;
 gap: 0.625rem;
 min-width: 0;
}

.ai-chat__status {
 flex-shrink: 0;
 width: 0.625rem;
 height: 0.625rem;
 border-radius: 9999px;
 background: #4ade80;
 box-shadow: 0 0 0 3px color-mix(in oklab, #4ade80 35%, transparent);
 animation: ai-chat-pulse 2s ease-in-out infinite;
}

@keyframes ai-chat-pulse {
 0%, 100% { opacity: 1; }
 50% { opacity: 0.65; }
}

.ai-chat__title {
 font-family: var(--font-display, Manrope, sans-serif);
 font-size: 0.9375rem;
 font-weight: 700;
 line-height: 1.2;
}

.ai-chat__subtitle {
 margin-top: 0.125rem;
 font-size: 0.6875rem;
 color: color-mix(in oklab, var(--primary-foreground) 72%, transparent);
}

.ai-chat__close {
 display: grid;
 place-items: center;
 width: 2.25rem;
 height: 2.25rem;
 border: 0;
 border-radius: 0.5rem;
 background: transparent;
 color: inherit;
 cursor: pointer;
 transition: background 0.15s ease;
}

.ai-chat__close:hover {
 background: color-mix(in oklab, white 12%, transparent);
}

.ai-chat__messages {
 flex: 1 1 auto;
 min-height: 10rem;
 max-height: 18rem;
 overflow-y: auto;
 padding: 1rem;
 display: flex;
 flex-direction: column;
 gap: 0.75rem;
 overscroll-behavior: contain;
 -webkit-overflow-scrolling: touch;
}

.ai-chat__msg {
 display: flex;
 flex-direction: column;
 max-width: 92%;
}

.ai-chat__msg--user {
 align-self: flex-end;
 align-items: flex-end;
}

.ai-chat__msg--agent {
 align-self: flex-start;
 align-items: flex-start;
}

.ai-chat__bubble {
 padding: 0.625rem 0.875rem;
 border-radius: 1rem;
 font-size: 0.8125rem;
 line-height: 1.5;
 word-break: break-word;
}

.ai-chat__msg--user .ai-chat__bubble {
 background: var(--primary);
 color: var(--primary-foreground);
 border-bottom-right-radius: 0.25rem;
}

.ai-chat__msg--agent .ai-chat__bubble {
 background: color-mix(in oklab, var(--secondary) 70%, white);
 color: var(--foreground);
 border-bottom-left-radius: 0.25rem;
}

.ai-chat__link {
 color: var(--accent);
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 2px;
}

.ai-chat__link:hover {
 color: color-mix(in oklab, var(--accent) 85%, black);
}

.ai-chat__time {
 margin-top: 0.2rem;
 font-size: 0.625rem;
 color: color-mix(in oklab, var(--foreground) 45%, transparent);
}

.ai-chat__typing {
 display: flex;
 align-items: center;
 gap: 0.35rem;
 padding: 0 1rem 0.5rem;
}

.ai-chat__typing.hidden {
 display: none;
}

.ai-chat__typing-dot {
 width: 0.4rem;
 height: 0.4rem;
 border-radius: 9999px;
 background: color-mix(in oklab, var(--foreground) 35%, transparent);
 animation: ai-chat-bounce 1.2s ease-in-out infinite;
}

.ai-chat__typing-dot:nth-child(2) { animation-delay: 0.15s; }
.ai-chat__typing-dot:nth-child(3) { animation-delay: 0.3s; }

@keyframes ai-chat-bounce {
 0%, 80%, 100% { transform: translateY(0); opacity: 0.5; }
 40% { transform: translateY(-4px); opacity: 1; }
}

.ai-chat__typing-label {
 margin-left: 0.35rem;
 font-size: 0.6875rem;
 color: color-mix(in oklab, var(--foreground) 50%, transparent);
}

.ai-chat__quick {
 display: flex;
 flex-wrap: wrap;
 gap: 0.375rem;
 padding: 0 1rem 0.625rem;
}

.ai-chat__chip {
 border: 1px solid color-mix(in oklab, var(--accent) 35%, transparent);
 border-radius: 9999px;
 background: color-mix(in oklab, var(--accent) 8%, white);
 padding: 0.35rem 0.7rem;
 font-size: 0.6875rem;
 font-weight: 600;
 color: var(--primary);
 cursor: pointer;
 transition: background 0.15s ease, border-color 0.15s ease;
}

.ai-chat__chip:hover {
 background: color-mix(in oklab, var(--accent) 16%, white);
 border-color: var(--accent);
}

.ai-chat__form {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 padding: 0.625rem 0.75rem;
 border-top: 1px solid var(--border);
 background: color-mix(in oklab, var(--secondary) 35%, white);
}

.ai-chat__form input {
 flex: 1;
 min-width: 0;
 border: 1px solid var(--border);
 border-radius: 9999px;
 background: var(--background);
 padding: 0.55rem 0.875rem;
 font-size: 0.8125rem;
 outline: none;
}

.ai-chat__form input:focus {
 border-color: var(--accent);
 box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 18%, transparent);
}

.ai-chat__send {
 display: grid;
 place-items: center;
 flex-shrink: 0;
 width: 2.25rem;
 height: 2.25rem;
 border: 0;
 border-radius: 9999px;
 background: var(--accent);
 color: var(--accent-foreground);
 cursor: pointer;
 transition: transform 0.15s ease, filter 0.15s ease;
}

.ai-chat__send:hover {
 filter: brightness(1.05);
 transform: scale(1.04);
}

.ai-chat__footer {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.35rem 0.5rem;
 padding: 0.5rem 0.75rem 0.75rem;
 font-size: 0.6875rem;
 background: color-mix(in oklab, var(--secondary) 25%, white);
}

.ai-chat__footer-link {
 display: inline-flex;
 align-items: center;
 gap: 0.25rem;
 color: var(--primary);
 font-weight: 600;
 text-decoration: none;
}

.ai-chat__footer-link:hover {
 color: var(--accent);
}

.ai-chat__footer-sep {
 color: color-mix(in oklab, var(--foreground) 35%, transparent);
}

@supports (padding: env(safe-area-inset-bottom)) {
 .ai-chat__panel {
 margin-bottom: calc(0.5rem + env(safe-area-inset-bottom));
 }

 @media (min-width: 640px) {
 .ai-chat__panel {
 bottom: calc(5.5rem + env(safe-area-inset-bottom));
 }
 }
}

/* ── Feedback page ── */
.feedback-hero {
 background: var(--primary);
}

.feedback-trust-strip {
 border-bottom: 1px solid var(--border);
 background: var(--card);
}

.feedback-trust-stat {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
 gap: 0.35rem;
}

.feedback-trust-stat__icon {
 display: grid;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 0.875rem;
 background: color-mix(in oklab, var(--accent) 14%, var(--card));
 color: var(--accent);
}

.feedback-trust-stat__label {
 font-size: 0.9375rem;
 font-weight: 700;
 color: var(--primary);
}

.feedback-trust-stat__desc {
 font-size: 0.8125rem;
 line-height: 1.45;
 color: color-mix(in oklab, var(--foreground) 68%, transparent);
 max-width: 14rem;
}

.feedback-form-card {
 background: linear-gradient(
 165deg,
 var(--card) 0%,
 color-mix(in oklab, var(--primary) 3%, var(--card)) 100%
 );
}

.feedback-type-grid {
 margin-bottom: 0.25rem;
}

.feedback-type-chip {
 display: inline-flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 0.35rem;
 min-height: 4.25rem;
 padding: 0.65rem 0.5rem;
 border-radius: 0.875rem;
 border: 1px solid var(--border);
 background: var(--card);
 font-size: 0.75rem;
 font-weight: 600;
 color: color-mix(in oklab, var(--foreground) 82%, transparent);
 transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
 cursor: pointer;
}

.feedback-type-chip:hover {
 border-color: color-mix(in oklab, var(--accent) 45%, var(--border));
 background: color-mix(in oklab, var(--accent) 6%, var(--card));
 color: var(--primary);
}

.feedback-type-chip.is-active {
 border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
 background: color-mix(in oklab, var(--accent) 12%, var(--card));
 color: var(--primary);
 box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 22%, transparent);
}

.feedback-type-chip i {
 color: var(--accent);
}

.feedback-step {
 display: flex;
 align-items: flex-start;
 gap: 0.75rem;
 font-size: 0.875rem;
 line-height: 1.5;
 color: color-mix(in oklab, var(--foreground) 85%, transparent);
}

.feedback-step__icon {
 display: grid;
 place-items: center;
 flex-shrink: 0;
 width: 2rem;
 height: 2rem;
 border-radius: 0.5rem;
 background: color-mix(in oklab, var(--accent) 12%, var(--card));
 color: var(--accent);
}

.feedback-page .sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

@media (max-width: 639px) {
 .feedback-hero__content .inline-flex.rounded-full.border {
 font-size: 0.65rem;
 letter-spacing: 0.16em;
 }
}

/* ── Responsive system (mobile + tablet) ── */

/* Fixed-aspect heroes — content-driven height on phones */
@media (max-width: 767px) {
 section.relative.aspect-\[16\/7\] {
 aspect-ratio: auto !important;
 min-height: 20rem;
 }

 section.relative.aspect-\[16\/7\] > img {
 position: absolute;
 inset: 0;
 height: 100%;
 min-height: 20rem;
 }

 section.relative.aspect-\[16\/7\] > .container-prose {
 position: relative !important;
 inset: auto !important;
 min-height: 20rem;
 justify-content: center;
 padding-top: 3.5rem;
 padding-bottom: 3.5rem;
 }
}

/* Trust strips — single column on small phones (except multi-col strips) */
@media (max-width: 479px) {
 .services-trust-strip .container-prose:not(.trust-strip-3col):not(.trust-strip-4col),
 .core-trust-strip .container-prose:not(.trust-strip-4col) {
 grid-template-columns: 1fr !important;
 gap: 1.25rem !important;
 text-align: center;
 }

 .trust-strip-4col {
 display: grid !important;
 grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
 }

 .services-trust-stat__value {
 font-size: 1.5rem;
 }

 .services-trust-stat__label {
 font-size: 0.625rem;
 letter-spacing: 0.08em;
 }

 .feedback-trust-strip .container-prose {
 grid-template-columns: 1fr !important;
 gap: 1.5rem !important;
 }
}

/* Service page hero padding */
@media (max-width: 639px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type .container-prose.py-24,
 main.flex-1 > section.relative.overflow-hidden:first-of-type .container-prose[class*="py-"] {
 padding-top: 3.5rem !important;
 padding-bottom: 3.5rem !important;
 }
}

/* Service & page hero typography */
main.flex-1 > section.relative.overflow-hidden:first-of-type h1,
section.relative.w-full.overflow-hidden h1 {
 font-size: clamp(1.75rem, 5.5vw, 2.25rem);
 line-height: 1.12;
}

@media (min-width: 640px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type h1,
 section.relative.w-full.overflow-hidden h1 {
 font-size: clamp(2rem, 4vw, 2.5rem);
 }
}

@media (min-width: 768px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type h1,
 section.relative.w-full.overflow-hidden h1 {
 font-size: clamp(2.5rem, 3.5vw, 3rem);
 }
}

@media (min-width: 1024px) {
 main.flex-1 > section.relative.overflow-hidden:first-of-type h1,
 section.relative.w-full.overflow-hidden h1 {
 font-size: clamp(3rem, 3vw, 3.75rem);
 }
}

/* Journey & CTA band headings on service pages */
section.bg-primary.text-primary-foreground h2.text-5xl,
section.bg-primary.text-primary-foreground h2.text-4xl {
 font-size: clamp(1.5rem, 4.5vw, 2rem);
 line-height: 1.15;
}

@media (min-width: 640px) {
 section.bg-primary.text-primary-foreground h2.text-5xl,
 section.bg-primary.text-primary-foreground h2.text-4xl {
 font-size: clamp(1.75rem, 3.5vw, 2.25rem);
 }
}

@media (min-width: 768px) {
 section.bg-primary.text-primary-foreground h2.text-5xl,
 section.bg-primary.text-primary-foreground h2.text-4xl {
 font-size: clamp(2rem, 3vw, 2.75rem);
 }
}

@media (min-width: 1024px) {
 section.bg-primary.text-primary-foreground h2.text-5xl,
 section.bg-primary.text-primary-foreground h2.text-4xl {
 font-size: clamp(2.5rem, 2.5vw, 3rem);
 }
}

/* Primary journey band padding */
@media (max-width: 639px) {
 .core-hero,
 .core-hero__content {
 min-height: 20rem;
 }

 section.bg-primary.text-primary-foreground .container-prose.py-24 {
 padding-top: 3.5rem !important;
 padding-bottom: 3.5rem !important;
 }
}

/* Home gallery — single column on very small screens */
@media (max-width: 479px) {
 .home-gallery-grid {
 grid-template-columns: 1fr !important;
 }
}

/* Contact stats — stack on small phones */
@media (max-width: 399px) {
 .home-contact-stats {
 grid-template-columns: 1fr !important;
 }
}

/* Form cards — tighter padding on mobile */
@media (max-width: 639px) {
 .feedback-form-card,
 #register-interest-form,
 #careers-form,
 #feedback-form {
 padding: 1.5rem !important;
 }

 .feedback-type-chip {
 min-height: 3.75rem;
 font-size: 0.6875rem;
 }
}

/* Section rhythm — reduce vertical padding on mobile */
@media (max-width: 639px) {
 .container-prose.py-20,
 .container-prose.py-16 {
 padding-top: 3rem;
 padding-bottom: 3rem;
 }
}

/* Tablet portrait (768–1023) — nav & jump links */
@media (min-width: 768px) and (max-width: 1023px) {
 .services-jump-nav__link {
 font-size: 0.8125rem;
 padding: 0.5rem 1.125rem;
 }
}

/* Tablet — chat panel clear of widgets */
@media (min-width: 640px) and (max-width: 1023px) {
 .ai-chat__panel {
 bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
 max-height: min(28rem, calc(100dvh - 7rem));
 }
}

/* Touch targets — minimum 44px for interactive controls */
@media (max-width: 1023px) {
 .field,
 button[type="submit"],
 .services-jump-nav__link,
 .faq-trigger,
 .mobile-nav-panel a,
 .mobile-nav-panel button {
 min-height: var(--site-nav-item-min-height);
 }

 textarea.field {
 min-height: 6rem;
 }
}

/* Mosaic grids on service pages */
@media (max-width: 479px) {
 .services-mosaic-grid {
 grid-template-columns: 1fr !important;
 }
}

/* Blog cards — full width stack until sm */
@media (max-width: 639px) {
 .blog-card-grid article h2,
 .blog-card-grid a h2 {
 font-size: 1.25rem;
 }
}
