/* ATOC property services: consistent typography and responsive layouts. */

/* Local font */
@font-face {font-family: Manrope; src: url('./fonts/manrope-variable.woff') format('woff'); font-style: normal; font-weight: 400 800; font-display: swap;}

/* Design tokens and foundations */
/* Dark blue foundation with green accents, inspired by the client's reference. */
:root {
  --navy: #103b63; --deep: #092943; --blue: #0a568d; --green: #247849;
  --royal: #155daf; --emerald: #187b4c; --teal: #0c6d78;
  --blue-tint: #e8f2ff; --green-tint: #e7f5ec; --teal-tint: #e5f4f4;
  --mint: #e4f1e9; --lime: #d9edc8; --ink: #18384d; --text: #526779;
  --cream: #f5f8fa; --paper: #fff; --line: #dae4ec; --radius: 18px;
  --shadow: 0 16px 48px rgba(9,41,67,.1);
  --brand-gradient: linear-gradient(110deg,#145da8 0%,#126e8b 55%,#177a4b 100%);
  --brand-gradient-hover: linear-gradient(110deg,#104b8a 0%,#0f5b76 55%,#12613c 100%);
  --hero-wash: linear-gradient(115deg,#dceeff 0%,#edf6fb 50%,#dff2e6 100%);
  --section-gradient: linear-gradient(115deg,#103b63 0%,#123f63 65%,#164e51 100%);
  --cta-gradient: linear-gradient(115deg,#103b63 0%,#174d64 52%,#247849 100%);
}
* {box-sizing: border-box;}
html {scroll-behavior: smooth; scroll-padding-top: 104px; scrollbar-gutter: stable;}
body {margin: 0; background: var(--paper); color: var(--ink); font-family: Manrope,Arial,sans-serif; font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased;}
body,button,input,select,textarea {font-family: Manrope,Arial,sans-serif;}
button,input,select,textarea {font-size: inherit;}
button,a,input,textarea,select {-webkit-tap-highlight-color: transparent;}
button {cursor: pointer;}
a {color: inherit; text-decoration: none;}
img {max-width: 100%; display: block;}
button {color: inherit;}
button:disabled {cursor: default;}
p,h1,h2,h3,h4 {margin: 0;}
h1,h2,h3,h4 {line-height: 1.2; letter-spacing: -.04em;}
h1 {font-size: clamp(44px,4.65vw,68px); font-weight: 700;}
h2 {font-size: clamp(36px,3.15vw,44px); font-weight: 700;}
h3 {font-size: 22px; font-weight: 700; line-height: 1.3;}
p {color: var(--text);}
ul,ol {margin: 0; padding: 0; list-style: none;}
[hidden] {display: none!important;}
svg {width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle;}
::selection {background: var(--mint); color: var(--deep);}
:focus-visible {outline: 3px solid #0a568d; outline-offset: 5px; border-radius: 4px;}
:is(.section-dark,.cta-banner,.site-footer,.scope-callout) :focus-visible {outline-color: var(--lime);}
.container {width: calc(100% - 112px); max-width: 1280px; margin-inline: auto;}
.section {padding-block: 88px;}
.section-sm {padding-block: 60px;}
.section-cream {background: var(--cream);}
.section-dark {background: var(--section-gradient); color: white;}
.eyebrow {display: flex; align-items: center; gap: 9px; color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 18px; line-height: 1.5;}
.eyebrow:before {content: ''; width: 19px; height: 2px; background: currentColor;}
.section-dark .eyebrow {color: var(--lime);}
.section-head {display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 36px;}
.section-head>div {max-width: 650px;}
.section-head>p {max-width: 370px; font-size: 16px;}
.section-intro {font-size: 17px; margin-top: 18px; max-width: 660px;}
.section-dark p {color: #cbdce8;}
.section-dark h2 {color: #fff;}
.btn {display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 14px 22px; border: 1px solid transparent; border-radius: 8px; background: var(--brand-gradient); color: #fff; font-size: 15px; font-weight: 700; line-height: 1.4; transition: background .18s,transform .18s;}
.btn:hover {background: var(--brand-gradient-hover); transform: translateY(-2px);}
.btn svg {width: 18px; height: 18px;}
.btn-light {background: var(--lime); color: var(--deep);}
.btn-light:hover {background: #e8f4de;}
.btn-outline {background: transparent; border-color: #bdcfdc; color: var(--navy);}
.btn-outline:hover {background: var(--mint); color: var(--navy);}
.btn-white {background: #fff; color: var(--navy);}
.btn-white:hover {background: var(--mint);}
.text-link {display: inline-flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 700; color: var(--navy); line-height: 1.5; min-height: 48px;}
.text-link svg {width: 18px; height: 18px; transition: transform .18s;}
.text-link:hover svg {transform: translateX(4px);}
.text-link:hover {text-decoration: underline; text-underline-offset: 5px;}
.button-row {display: flex; gap: 14px; flex-wrap: wrap; align-items: center;}
.muted {color: var(--text);}
.skip-link {position: fixed; top: -80px; left: 18px; background: var(--navy); color: white; padding: 12px 20px; z-index: 200;}
.skip-link:focus {top: 12px;}

/* Vendor introduction and embedded information form. */
.vendor-hero {position: relative; overflow: hidden; padding-bottom: 64px; background: linear-gradient(118deg,#092943 0%,#103b63 57%,#17664e 100%); color: white;}
.vendor-hero:after {content: ''; position: absolute; pointer-events: none; width: 580px; height: 580px; right: -170px; top: -190px; border: 1px solid #ffffff14; border-radius: 50%; box-shadow: 0 0 0 90px #ffffff05,0 0 0 180px #ffffff04;}
.vendor-hero .breadcrumbs {position: relative; z-index: 1; color: #d3e2ec; padding-block: 25px;}
.vendor-hero .breadcrumbs a,.vendor-hero .breadcrumbs span {color: #d3e2ec;}
.vendor-hero-grid {position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.75fr) minmax(260px,.8fr); align-items: center; gap: 72px; padding-top: 25px;}
.vendor-hero .eyebrow {color: var(--lime);}
.vendor-hero h1 {font-size: clamp(38px,4.25vw,58px); line-height: 1.13; letter-spacing: -.045em;}
.vendor-hero h1 span {color: #d9edc8;}
.vendor-hero-copy>p {max-width: 610px; color: #d6e5ee; font-size: 16px; line-height: 1.8; margin-top: 22px;}
.vendor-hero-copy>.btn {margin-top: 28px;}
.vendor-intro-card {padding: 30px; border: 1px solid #ffffff36; background: #ffffff0c; border-radius: 18px; backdrop-filter: blur(6px);}
.vendor-intro-icon {display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: #d9edc8; color: var(--deep); margin-bottom: 24px;}
.vendor-intro-icon svg {width: 28px; height: 28px;}
.vendor-overline {display: block; font-size: 11px; line-height: 1.5; letter-spacing: .12em; font-weight: 800; text-transform: uppercase; color: var(--green);}
.vendor-intro-card .vendor-overline {color: #d9edc8; margin-bottom: 12px;}
.vendor-intro-card h2 {font-size: 29px; line-height: 1.18;}
.vendor-intro-card>p:not(.vendor-overline) {color: #d6e5ee; font-size: 14px; margin-top: 14px;}
.vendor-intro-card>a {display: flex; align-items: center; gap: 12px; min-height: 48px; font-size: 13px; font-weight: 700; margin-top: 20px; border-top: 1px solid #ffffff2b; padding-top: 12px;}
.vendor-intro-card>a svg {width: 17px; height: 17px;}
.vendor-hero :focus-visible {outline-color: #d9edc8;}
.vendor-content {padding: 56px 0 80px; background: linear-gradient(135deg,#edf4fb 0%,#f6f9fc 45%,#eef7f0 100%);}
.vendor-layout {display: grid; grid-template-columns: minmax(230px,.8fr) minmax(0,2fr); gap: 30px; align-items: start;}
.vendor-sidebar {display: grid; gap: 22px; min-width: 0;}
.vendor-guidance {padding: 27px; border: 1px solid #d7e5f0; background: #fff; border-radius: 16px;}
.vendor-guidance .eyebrow {font-size: 10px; margin-bottom: 14px;}
.vendor-guidance h2 {font-size: 25px; line-height: 1.25;}
.vendor-guidance ol {margin-top: 26px; display: grid; gap: 23px;}
.vendor-guidance li {display: flex; gap: 12px; align-items: start;}
.vendor-guidance li>span {flex: none; display: grid; place-items: center; width: 31px; height: 31px; background: var(--green-tint); color: var(--green); font-size: 11px; font-weight: 800; border-radius: 9px;}
.vendor-guidance h3 {font-size: 14px; line-height: 1.5; letter-spacing: -.015em;}
.vendor-guidance li p {font-size: 13px; line-height: 1.7; margin-top: 5px;}
.vendor-help {padding: 27px; background: var(--section-gradient); color: white; border-radius: 16px;}
.vendor-help-icon {display: flex; color: #d9edc8; margin-bottom: 16px;}
.vendor-help h2 {font-size: 24px;}
.vendor-help p {color: #d6e5ee; font-size: 13px; margin-top: 12px; margin-bottom: 16px;}
.vendor-help a {display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; font-weight: 600; overflow-wrap: anywhere;}
.vendor-help a svg {width: 17px; height: 17px; color: #d9edc8;}
.vendor-help :focus-visible {outline-color: #d9edc8;}
.vendor-employment {padding: 4px 6px;}
.vendor-employment h2 {font-size: 16px; letter-spacing: -.02em; line-height: 1.5;}
.vendor-employment p {font-size: 13px; margin-top: 5px;}
.vendor-employment a {font-size: 13px;}
.vendor-form-card {min-width: 0; background: white; border: 1px solid #d8e4ec; border-radius: 18px; box-shadow: 0 12px 40px #103b6309; overflow: hidden; scroll-margin-top: 104px;}
.vendor-form-heading {display: flex; align-items: center; gap: 18px; padding: 29px 30px; background: linear-gradient(110deg,#e8f2ff,#f4f9fc 58%,#e7f5ec); border-top: 4px solid var(--green); border-bottom: 1px solid var(--line);}
.vendor-form-icon {display: grid; place-items: center; width: 50px; height: 54px; flex: none; border: 1px solid #d5e3eb; background: white; color: var(--blue); border-radius: 12px;}
.vendor-form-icon svg {width: 26px; height: 26px;}
.vendor-form-heading h2 {font-size: 27px; line-height: 1.25; margin-top: 6px;}
.vendor-form-heading p {font-size: 13px; margin-top: 8px;}
.vendor-form-access {display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 7px 30px; border-bottom: 1px solid #e8eef3; font-size: 12px; color: var(--text);}
.vendor-form-access a {display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--blue); font-weight: 700; white-space: nowrap;}
.vendor-form-access svg,.vendor-form-note svg {width: 14px; height: 14px;}
.vendor-embed {padding: 24px 12px 12px; background: white;}
.vendor-embed iframe {display: block; width: 100%; max-width: 100%; height: 2793px; border: 0; background: white;}
.vendor-form-note {padding: 18px 28px; background: #f4f8fb; border-top: 1px solid var(--line); font-size: 12px; color: var(--text);}
.vendor-form-note a {display: inline-flex; gap: 5px; align-items: center; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; min-height: 44px;}
@media (max-width:1040px) {
  .vendor-hero-grid {gap: 32px; grid-template-columns: minmax(0,1.5fr) minmax(230px,.8fr);}
  .vendor-layout {grid-template-columns: minmax(0,1fr);}
  .vendor-form-card {grid-row: 1; scroll-margin-top: 81px;}
  .vendor-sidebar {grid-template-columns: repeat(2,minmax(0,1fr));}
  .vendor-employment {grid-column: 1/-1;}
}
@media (max-width:700px) {
  .vendor-hero {padding-bottom: 36px;}
  .vendor-hero-grid {grid-template-columns: minmax(0,1fr); gap: 25px; padding-top: 10px;}
  .vendor-hero h1 {font-size: clamp(33px,8.6vw,48px);}
  .vendor-hero h1 br {display: none;}
  .vendor-hero-copy>p {font-size: 15px; margin-top: 18px;}
  .vendor-intro-card {padding: 22px; display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 4px 16px;}
  .vendor-intro-icon {grid-row: 1/3; width: 44px; height: 44px; margin: 0; border-radius: 11px;}
  .vendor-intro-card .vendor-overline {margin: 0; font-size: 10px;}
  .vendor-intro-card h2 {font-size: 22px; grid-column: 2;}
  .vendor-intro-card h2 br {display: none;}
  .vendor-intro-card>p:not(.vendor-overline) {grid-column: 1/-1; margin-top: 8px;}
  .vendor-intro-card>p br {display: none;}
  .vendor-intro-card>a {grid-column: 1/-1; margin-top: 9px;}
  .vendor-content {padding: 30px 0 45px;}
  .vendor-layout.container {width: calc(100% - 16px); gap: 24px;}
  .vendor-sidebar {grid-template-columns: minmax(0,1fr);}
  .vendor-form-heading {padding: 22px 18px; gap: 12px;}
  .vendor-form-heading h2 {font-size: 23px;}
  .vendor-form-icon {width: 40px; height: 46px;}
  .vendor-form-heading p {font-size: 12px;}
  .vendor-form-access {padding: 7px 14px; gap: 8px; font-size: 11px;}
  .vendor-embed {padding: 16px 0 8px;}
  .vendor-form-note {padding: 14px 18px;}
}

/* Header and navigation */
.topbar {background: var(--deep); color: #d9e6ef; font-size: 12px; letter-spacing: .015em; line-height: 1.5;}
.topbar .container {display: flex; justify-content: space-between; align-items: center; min-height: 38px; gap: 24px;}
.topbar-label {font-size: 11px; font-weight: 600; letter-spacing: .1em;}
.topbar-contact {display: flex; gap: 27px;}
.topbar a {display: flex; align-items: center; gap: 7px;}
.topbar svg {width: 14px; height: 14px;}
.site-header {position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.98); border-bottom: 1px solid #e3ebf1;}
.header-inner {height: 84px; display: flex; align-items: center; gap: 28px;}
.brand {display: flex; align-items: center; gap: 15px; flex-shrink: 0;}
.brand img {width: 156px; height: auto;}
.desktop-nav {display: flex; gap: 22px; align-items: center; margin-left: auto; height: 100%; font-size: 14px; font-weight: 600;}
.nav-link,.nav-service-trigger,.nav-team-trigger,.nav-forms-trigger {position: relative; display: inline-flex; gap: 6px; align-items: center; min-height: 48px; white-space: nowrap;}
.nav-link:after,.nav-service-trigger:after,.nav-team-trigger:after,.nav-forms-trigger:after {position: absolute; content: ''; height: 2px; background: var(--green); bottom: 5px; left: 0; right: 0; transform: scaleX(0); transition: transform .2s;}
.nav-link:hover:after,.nav-link[aria-current=page]:after,.nav-link.is-active:after,.nav-service-trigger:hover:after,.nav-service-trigger.is-active:after,.nav-service-trigger[aria-expanded=true]:after,.nav-team-trigger:hover:after,.nav-team-trigger.is-active:after,.nav-team-trigger[aria-expanded=true]:after,.nav-forms-trigger:hover:after,.nav-forms-trigger[aria-expanded=true]:after {transform: scaleX(1);}
.nav-service-trigger,.nav-team-trigger,.nav-forms-trigger {border: 0; background: none; padding: 0; font-weight: 600; font-size: 14px;}
.nav-service-trigger svg,.nav-team-trigger svg,.nav-forms-trigger svg {width: 15px; height: 15px;}
.nav-team,.nav-forms {position: relative; display: flex; align-items: center; height: 100%;}
.team-menu {position: absolute; top: calc(100% - 5px); right: 0; width: 248px; padding: 8px; background: white; border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 12px; box-shadow: 0 16px 40px #09294324;}
.team-menu a {display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 48px; padding: 10px 12px; border-radius: 6px; font-size: 14px; font-weight: 600; line-height: 1.5; white-space: normal;}
.team-menu a:after {content: none;}
.team-menu a:hover,.team-menu a[aria-current=page] {background: var(--green-tint); color: var(--green);}
.team-menu a svg {width: 16px; height: 16px;}
.forms-menu {position: absolute; top: calc(100% - 5px); right: 0; width: min(620px,calc(100vw - 48px)); max-height: calc(100dvh - 140px); overflow-y: auto; overscroll-behavior: contain; padding: 18px; background: white; border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 14px; box-shadow: 0 16px 40px #09294324;}
.forms-menu-heading {display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; color: var(--navy);}
.forms-menu-heading>span {display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700;}
.forms-menu-heading>span svg {color: var(--green); width: 19px; height: 19px;}
.forms-menu-heading small {display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 500; color: var(--text);}
.forms-menu-heading small svg {width: 13px; height: 13px;}
.forms-menu-grid {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px;}
.forms-group {padding: 14px 10px 8px; border: 1px solid #d8e6f4; border-radius: 10px; background: linear-gradient(145deg,#e8f2ff,#f5f9fd);}
.forms-group:last-child {border-color: #d7e8dc; background: linear-gradient(145deg,#e7f5ec,#f5faf6);}
.forms-group-label {font-size: 10px; font-weight: 800; letter-spacing: .09em; line-height: 1.5; text-transform: uppercase; color: var(--navy); padding: 0 8px 9px;}
.forms-group:last-child .forms-group-label {color: var(--green);}
.forms-link {display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 8px; min-height: 48px; border-radius: 6px; font-size: 13px; font-weight: 600; line-height: 1.5;}
.forms-link svg {width: 15px; height: 15px; color: var(--blue);}
.forms-group:last-child .forms-link svg {color: var(--green);}
.forms-link:hover {background: white; color: var(--blue);}
.forms-group:last-child .forms-link:hover {color: var(--green);}
.drawer-forms-note {font-size: 11px; line-height: 1.5; color: var(--text); padding: 4px 12px;}
.resource-form-link>span {flex: 1;}
.resource-form-link>svg {width: 14px; height: 14px;}
.header-cta {font-size: 14px; font-weight: 600; min-height: 44px; padding: 11px 18px; white-space: nowrap;}
.menu-toggle {display: none; margin-left: auto; padding: 9px; background: none; border: 1px solid var(--line); border-radius: 10px; width: 44px; height: 44px; align-items: center; justify-content: center; flex-shrink: 0;}
.menu-toggle svg {width: 24px; height: 24px;}
.mega-menu {position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 20px 35px #09294312;}
.mega-inner {display: grid; grid-template-columns: .9fr 1.05fr 1.2fr; gap: 32px; padding-block: 32px;}
.mega-intro {background: var(--cream); padding: 26px; border-radius: 12px;}
.mega-intro h3 {font-size: 25px; margin-bottom: 12px;}
.mega-intro p {font-size: 15px; margin-bottom: 14px;}
.mega-title {font-size: 12px; letter-spacing: .1em; font-weight: 600; text-transform: uppercase; color: var(--green); margin-bottom: 12px;}
.mega-links a {display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; padding-block: 11px; border-bottom: 1px solid #edf2f6; min-height: 48px; line-height: 1.5;}
.mega-links a:hover {color: var(--green);}
.mega-links svg {width: 17px; height: 17px;}

/* Native mobile drawer: only an open dialog participates in layout. */
.nav-open {overflow: hidden;}
.nav-open body {position: fixed; top: var(--nav-scroll-y,0px); left: 0; right: 0; width: 100%; overflow: hidden;}
.mobile-drawer {position: fixed; inset: 0 0 0 auto; margin: 0 0 0 auto; padding: 0; width: min(390px,calc(100vw - 20px)); max-width: none; height: 100dvh; max-height: none; border: 0; border-radius: 20px 0 0 20px; background: var(--paper); color: var(--ink); overflow: hidden; box-shadow: -16px 0 60px #09294326;}
.mobile-drawer[open] {display: flex; flex-direction: column; animation: drawer-enter 220ms cubic-bezier(.2,.75,.2,1);}
.mobile-drawer::backdrop {background: rgba(9,41,67,.46); backdrop-filter: blur(3px); animation: drawer-backdrop-enter 220ms ease-out;}
.drawer-header {display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-shrink: 0; padding: calc(14px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 14px 22px; border-bottom: 1px solid var(--line);}
.drawer-brand {display: flex; align-items: center; min-height: 44px; min-width: 0;}
.drawer-brand img {width: 130px; height: auto;}
.drawer-close {display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--cream); color: var(--navy);}
.drawer-close svg {width: 22px; height: 22px;}
.drawer-close:hover {background: var(--mint);}
.drawer-scroll {flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 22px max(18px,env(safe-area-inset-right)) 24px 18px; scrollbar-width: thin; scrollbar-color: #b7cad8 transparent; -webkit-overflow-scrolling: touch;}
.drawer-title {margin: 0 12px 14px; color: var(--text); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;}
.drawer-nav {display: flex; flex-direction: column; gap: 5px;}
.drawer-link,.drawer-services>summary {display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 12px; border-radius: 10px; font-size: 16px; font-weight: 600; line-height: 1.45;}
.drawer-link>span {flex: 1; min-width: 0;}
.drawer-link>svg:first-child,.drawer-link-leading>svg {color: var(--green);}
.drawer-link>svg:last-child,.drawer-services>summary>svg {width: 17px; height: 17px; color: #718598;}
.drawer-link:hover,.drawer-services>summary:hover {background: var(--cream);}
.drawer-link[aria-current=page],.drawer-service-links a[aria-current=page] {background: var(--mint); color: var(--navy);}
.drawer-services {border-radius: 12px;}
.drawer-services[open] {background: var(--cream);}
.drawer-services>summary {justify-content: space-between; cursor: pointer; list-style: none;}
.drawer-services>summary::-webkit-details-marker {display: none;}
.drawer-services>summary::marker {content: '';}
.drawer-services>summary>svg {transition: transform .18s;}
.drawer-services[open]>summary>svg {transform: rotate(180deg);}
.drawer-link-leading {display: inline-flex; align-items: center; gap: 12px; min-width: 0;}
.drawer-service-links {padding: 2px 10px 14px;}
.drawer-all-services {display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 10px 12px; border-radius: 8px; color: var(--navy); font-size: 14px; font-weight: 600; line-height: 1.5;}
.drawer-group-label {margin: 16px 12px 5px; font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: #5c7183;}
.drawer-service-link,.drawer-specialist-link {display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 600; line-height: 1.5;}
.drawer-service-link>span,.drawer-specialist-link>span {flex: 1; min-width: 0;}
.drawer-service-link>svg:first-child {width: 18px; height: 18px; color: var(--green);}
.drawer-service-link>svg:last-child,.drawer-specialist-link>svg,.drawer-all-services>svg {width: 16px; height: 16px; color: #718598;}
.drawer-specialist-link {padding-left: 20px; font-weight: 500;}
.drawer-service-links a:hover {background: #eaf2f7; color: var(--navy);}
.drawer-footer {flex-shrink: 0; padding: 16px max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) 20px; border-top: 1px solid var(--line); background: #fff;}
.drawer-footer>p {margin-bottom: 12px; font-size: 12px; line-height: 1.5; color: var(--text);}
.drawer-actions {display: grid; grid-template-columns: 1fr 1fr; gap: 10px;}
.drawer-actions .btn {min-height: 48px; padding: 12px 10px; font-size: 14px; font-weight: 600; gap: 8px;}
@keyframes drawer-enter {from {transform: translateX(100%);} to {transform: translateX(0);}}
@keyframes drawer-backdrop-enter {from {background: rgba(9,41,67,0);} to {background: rgba(9,41,67,.46);}}

/* Persistent mobile shortcuts stay clear of the device home indicator. */
.mobile-dock {display: none; position: fixed; inset: auto 0 0; z-index: 110; grid-template-columns: repeat(5,minmax(0,1fr)); align-items: center; gap: 2px; height: calc(64px + env(safe-area-inset-bottom)); padding: 6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); border-top: 1px solid var(--line); background: rgba(255,255,255,.98); box-shadow: 0 -5px 24px rgba(9,41,67,.06);}
.dock-item {display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; min-width: 0; min-height: 50px; padding: 6px 3px; border: 0; border-radius: 12px; background: transparent; color: #526a7d; font-size: 11px; font-weight: 600; line-height: 1.2; text-align: center;}
.dock-item svg {width: 20px; height: 20px;}
.dock-item:hover {color: var(--navy); background: var(--cream);}
.dock-item[aria-current=page],.dock-item[data-service-active=true],.dock-item[aria-expanded=true] {background: #e5f1e9; color: var(--green);}
.nav-open .mobile-dock,body.has-virtual-keyboard .mobile-dock {visibility: hidden; pointer-events: none;}

/* Home hero and service overview */
.home-hero {background: var(--hero-wash); padding: 48px 0 56px; overflow: hidden;}
.hero-grid {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.04fr); align-items: center; gap: 48px;}
.hero-copy {padding: 20px 0 22px;}
.hero-copy .eyebrow {margin-bottom: 24px; font-size: 12px;}
.hero-copy h1 {font-size: clamp(44px,4.65vw,68px); line-height: 1.1; letter-spacing: -.045em; margin-bottom: 24px;}
.hero-copy h1 span {display: block; color: var(--green);}
.hero-copy>p {font-size: 17px; line-height: 1.75; max-width: 480px; margin-bottom: 30px;}
.hero-proof {display: flex; align-items: center; gap: 10px; font-size: 13px; color: #607386; margin-top: 24px; line-height: 1.5;}
.hero-proof svg {width: 18px; height: 18px; color: var(--green);}
.hero-media {position: relative; min-width: 0; padding-bottom: 28px;}
.hero-media>img {width: 100%; height: 520px; object-fit: cover; object-position: 53% 45%; border-radius: 18px;}
.hero-caption {position: absolute; bottom: 0; left: -18px; right: 26px; background: #fff; padding: 21px 24px; display: flex; align-items: center; gap: 15px; border-radius: 11px; box-shadow: var(--shadow);}
.hero-caption-icon {width: 44px; height: 44px; background: var(--mint); border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; color: var(--navy);}
.hero-caption strong {font-size: 15px; display: block; letter-spacing: -.02em; line-height: 1.45;}
.hero-caption p {font-size: 13px; margin-top: 4px; line-height: 1.5;}
.hero-caption>svg {margin-left: auto; width: 22px; height: 22px; color: var(--green);}
.service-strip {border-bottom: 1px solid var(--line); background: #fff;}
.service-strip .container {display: flex; justify-content: space-between; align-items: center; min-height: 96px; gap: 24px;}
.strip-label {font-size: 11px; color: #607386; letter-spacing: .09em; font-weight: 800; max-width: 132px; line-height: 1.6;}
.strip-item {display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--navy); line-height: 1.45; min-height: 44px;}
.strip-item svg {width: 21px; height: 21px; color: var(--green);}
.service-grid {display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px;}
.service-card {display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); background: #fff; border-radius: 12px; overflow: hidden; transition: transform .2s,box-shadow .2s;}
.service-card:hover {transform: translateY(-5px); box-shadow: 0 16px 30px #103b630b;}
.card-image {overflow: hidden; position: relative; aspect-ratio: 1.35;}
.card-image img {width: 100%; height: 100%; object-fit: cover; transition: transform .4s;}
.service-card:hover img {transform: scale(1.04);}
.card-number {position: absolute; left: 14px; top: 14px; background: #fff; color: var(--navy); font-size: 12px; font-weight: 800; padding: 4px 9px; border-radius: 4px;}
.card-content {padding: 26px 24px 22px; display: flex; flex-direction: column; align-items: start; flex: 1;}
.card-content h3 {font-size: 22px; letter-spacing: -.03em; margin-bottom: 14px; line-height: 1.3;}
.card-content p {font-size: 15px; line-height: 1.7; margin-bottom: 18px;}
.card-content .text-link {margin-top: auto; font-size: 15px;}

/* Specialist cleaning */
.cleaning-showcase .section-head {align-items: start; margin-bottom: 40px;}
.cleaning-showcase .section-head>div {max-width: 590px;}
.cleaning-showcase .section-head>p {padding-top: 34px; max-width: 370px;}
.cleaning-grid {display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 48px; align-items: start;}
.cleaning-tabs {display: flex; flex-direction: column; border-top: 1px solid #ffffff2b;}
.cleaning-tab {background: none; color: #d9e6ef; border: 0; border-bottom: 1px solid #ffffff2b; padding: 18px 16px; display: flex; gap: 15px; align-items: center; text-align: left; font-size: 16px; font-weight: 600; line-height: 1.5; transition: padding .2s,background .2s; min-height: 62px;}
.tab-number {font-size: 12px; color: #a9c3d5; font-weight: 500;}
.cleaning-tab>svg {margin-left: auto; width: 17px; height: 17px;}
.cleaning-tab[aria-selected=true] {color: var(--deep); background: var(--lime); border-radius: 6px; padding-inline: 16px; border-bottom-color: transparent;}
.cleaning-tab[aria-selected=true] .tab-number {color: #3e624a;}
.cleaning-tab:hover:not([aria-selected=true]) {background: #ffffff09;}
.cleaning-tabs-note {font-size: 14px; line-height: 1.7; margin-top: 22px; color: #c4d7e5!important; max-width: 380px;}
.cleaning-tabs-note a {color: #fff; text-decoration: underline; text-underline-offset: 3px;}
.cleaning-panel {overflow: hidden; background: #fff; border-radius: 12px; color: var(--ink);}
.cleaning-panel img {width: 100%; height: 320px; object-fit: cover; object-position: center;}
.cleaning-panel-body {padding: 28px; display: grid; grid-template-columns: 1fr auto; gap: 12px 22px; align-items: center;}
.cleaning-panel-body h3 {font-size: 24px; line-height: 1.3;}
.cleaning-panel-body p {color: var(--text); font-size: 15px; max-width: 460px; line-height: 1.7;}
.circle-link {width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; grid-column: 2; grid-row: 1 / 3; transition: background .2s;}
.circle-link:hover {background: var(--mint);}

/* Process, guides and frequently asked questions */
.process-grid {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: center;}
.process-image {position: relative; padding: 0 25px 28px 0;}
.process-image>img {width: 100%; height: 560px; object-fit: cover; border-radius: 12px;}
.image-note {position: absolute; right: 0; bottom: 0; background: var(--mint); border: 7px solid #fff; padding: 22px 29px; border-radius: 13px; max-width: 280px;}
.image-note svg {color: var(--green); margin-bottom: 12px;}
.image-note strong {font-size: 18px; line-height: 1.4; display: block; letter-spacing: -.025em;}
.image-note p {font-size: 13px; margin-top: 7px; line-height: 1.6;}
.process-copy>p {font-size: 16px; margin: 20px 0 26px;}
.steps {counter-reset: step;}
.steps li {display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line);}
.steps li:before {counter-increment: step; content: '0' counter(step); flex-shrink: 0; font-size: 12px; font-weight: 800; color: var(--green); padding-top: 3px;}
.steps h3 {font-size: 18px; letter-spacing: -.02em; margin-bottom: 6px;}
.steps p {font-size: 15px; line-height: 1.7;}
.process-copy>.text-link {margin-top: 25px;}
.guide-banner {background: linear-gradient(110deg,#e7f0f8 0%,#e4f1e9 100%); border-radius: 14px; padding: 32px; display: flex; align-items: center; gap: 24px;}
.guide-icon {height: 56px; width: 48px; display: grid; place-items: center; border: 1px solid #a2c4b1; border-radius: 4px; color: var(--navy); flex-shrink: 0;}
.guide-icon svg {width: 26px; height: 26px;}
.guide-banner h3 {font-size: 22px; margin-bottom: 6px; line-height: 1.3;}
.guide-banner p {font-size: 15px; max-width: 620px; line-height: 1.7;}
.guide-banner .text-link {margin-left: auto; white-space: nowrap;}
.faq-grid {display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 72px;}
.faq-intro p {margin-top: 19px; font-size: 16px;}
.faq-intro>.text-link {margin-top: 24px;}
.faq-list {border-top: 1px solid var(--line);}
.faq-list details {border-bottom: 1px solid var(--line);}
.faq-list summary {cursor: pointer; list-style: none; position: relative; padding: 22px 34px 22px 0; font-size: 16px; font-weight: 700; line-height: 1.55; letter-spacing: -.01em; min-height: 64px;}
.faq-list summary::-webkit-details-marker {display: none;}
.faq-list summary:after {position: absolute; right: 1px; top: 23px; content: '+'; font-size: 20px; color: var(--green); line-height: 1.3; font-weight: 400;}
.faq-list details[open] summary:after {content: '−';}
.faq-answer {padding: 0 34px 24px 0; font-size: 15px; line-height: 1.8; color: var(--text);}
.faq-answer a {color: var(--navy); text-decoration: underline; text-underline-offset: 3px;}

/* Contact banner and footer */
.cta-section {padding: 0 0 80px;}
.cta-banner {position: relative; overflow: hidden; background: var(--cta-gradient); border-radius: 15px; padding: 52px 56px; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 35px;}
.cta-banner:before,.cta-banner:after {content: ''; position: absolute; pointer-events: none; width: 390px; height: 390px; border: 1px solid #ffffff12; border-radius: 50%; right: 110px; top: -220px;}
.cta-banner:after {width: 500px; height: 500px; right: 70px; top: -280px;}
.cta-banner h2 {font-size: clamp(36px,3vw,42px); max-width: 610px;}
.cta-banner p {font-size: 16px; color: #eef5f7; margin-top: 15px; max-width: 550px; line-height: 1.7;}
.cta-banner .button-row {flex-direction: column; align-items: start; flex-shrink: 0; z-index: 1; gap: 8px;}
.cta-phone {display: flex; gap: 8px; align-items: center; font-size: 14px; margin-top: 0; color: #edf4f8; min-height: 44px;}
.cta-phone svg {width: 17px; height: 17px;}
.site-footer {background: var(--deep); color: #e7eef5; padding: 64px 0 0;}
.footer-main {display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr); gap: 40px; padding-bottom: 44px;}
.footer-brand .logo-plate {background: #fff; border-radius: 8px; width: 178px; max-width: 100%; height: auto; padding: 11px; display: grid; place-items: center; margin-bottom: 19px;}
.footer-brand img {width: 156px; height: auto;}
.footer-brand p {font-size: 14px; max-width: 280px; color: #b8cddd; line-height: 1.8;}
.footer-title {font-size: 15px; font-weight: 800; margin: 5px 0 14px; color: #fff; letter-spacing: 0;}
.footer-col a {display: inline-flex; font-size: 14px; line-height: 1.6; color: #c1d4e2; padding: 9px 0; align-items: center; min-height: 44px;}
.footer-col a:hover {color: white; text-decoration: underline; text-underline-offset: 4px;}
.footer-contact li {margin-bottom: 4px;}
.footer-contact a {display: flex; align-items: center; gap: 9px;}
.footer-contact svg {width: 17px; height: 17px; color: #9bc9ad;}
.footer-location {display: flex; align-items: center; gap: 9px; font-size: 14px; color: #c1d4e2; margin-top: 8px; line-height: 1.6;}
.footer-resources {border-top: 1px solid #ffffff18; border-bottom: 1px solid #ffffff18; display: flex; align-items: center; gap: 16px 28px; padding: 18px 0; font-size: 14px; flex-wrap: wrap;}
.footer-resources>span {font-size: 12px; letter-spacing: .07em; font-weight: 700; color: #b0c9d9;}
.footer-resources>a {color: #d4e2ed; display: inline-flex; align-items: center; min-height: 44px;}
.footer-resources>a:hover {text-decoration: underline;}
.employee-resources {position: relative; margin-left: auto;}
.employee-resources summary {cursor: pointer; color: #d4e2ed; min-height: 44px; line-height: 44px; font-size: 14px;}
.employee-resource-links {position: absolute; right: 0; bottom: calc(100% + 8px); width: 280px; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); z-index: 3; max-width: calc(100vw - 40px); max-height: min(560px,calc(100dvh - 120px)); overflow-y: auto; overscroll-behavior: contain;}
.employee-resource-links a {display: flex; padding: 10px; color: var(--navy); font-size: 14px; align-items: center; min-height: 44px; line-height: 1.5;}
.employee-resource-links a:hover {background: var(--cream);}
.footer-bottom {display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; font-size: 12px; color: #a7c2d4;}
.footer-bottom-links {display: flex; gap: 24px;}
.footer-bottom a:hover {color: #fff;}
.footer-credit {display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0 .35em; padding: 0 0 18px; color: #a7c2d4; font-size: 13px; line-height: 1.6;}
.footer-credit a {display: inline-flex; align-items: center; min-height: 32px; color: #d4eadc; font-weight: 600; text-decoration: underline; text-decoration-color: #d4eadc66; text-underline-offset: 3px;}
.footer-credit a:hover {color: #fff; text-decoration-color: currentColor;}

/* Service pages and directory */
.breadcrumbs {display: flex; gap: 9px; flex-wrap: wrap; align-items: center; font-size: 12px; color: #596f82; padding-top: 24px; padding-bottom: 24px; line-height: 1.8;}
.breadcrumbs a:hover {color: var(--navy); text-decoration: underline;}
.breadcrumbs svg {width: 12px; height: 12px; color: #738696;}
.breadcrumbs [aria-current] {color: var(--navy);}
.page-hero {background: var(--hero-wash); padding-bottom: 60px;}
.page-hero .hero-grid {gap: 56px;}
.page-hero .hero-copy {padding-top: 15px;}
.page-hero .hero-copy .eyebrow {font-size: 12px; margin-bottom: 20px;}
.page-hero h1 {font-size: clamp(44px,4.35vw,60px); letter-spacing: -.045em; line-height: 1.13;}
.page-hero .hero-copy>p {max-width: 550px; font-size: 16px; margin-bottom: 28px; line-height: 1.75;}
.service-hero-image {width: 100%; height: 420px; object-fit: cover; border-radius: 13px;}
.service-hero-tag {position: absolute; left: 20px; bottom: 20px; padding: 12px 16px; background: #ffffffed; border-radius: 7px; font-size: 12px; font-weight: 800; color: var(--navy); display: flex; gap: 8px; align-items: center; line-height: 1.5;}
.service-hero-tag svg {width: 18px; height: 18px;}
.service-hero-media {position: relative;}
.audience-bar {background: white; border-bottom: 1px solid var(--line);}
.audience-inner {display: flex; align-items: center; gap: 24px; min-height: 84px; flex-wrap: wrap; padding-block: 20px;}
.audience-inner>.eyebrow {margin: 0; font-size: 11px; white-space: nowrap;}
.audience-list {display: flex; flex-wrap: wrap; gap: 12px 18px;}
.audience-list li {font-size: 13px; color: #526b7e; display: flex; align-items: center; gap: 8px; line-height: 1.5;}
.audience-list li:not(:last-child) {margin-right: 0;}
.audience-list svg {width: 15px; height: 15px; color: var(--green);}
.scope-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px;}
.scope-item {background: var(--cream); border: 1px solid #e1e9ef; padding: 30px 28px; border-radius: 10px;}
.scope-item>span {font-size: 12px; font-weight: 800; color: var(--green); display: block; margin-bottom: 24px;}
.scope-item h3 {font-size: 22px; margin-bottom: 14px; line-height: 1.3;}
.scope-item p {font-size: 15px; line-height: 1.75;}
.scope-callout {background: var(--section-gradient); color: white; border-color: var(--navy); display: flex; flex-direction: column; justify-content: center;}
.scope-callout>svg {width: 26px; height: 26px; color: var(--lime); margin-bottom: 24px;}
.scope-callout p {color: #cbdce8; margin-bottom: 20px;}
.scope-callout .text-link {color: var(--lime); font-size: 15px;}
.approach-band {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: center;}
.approach-band h2 {max-width: 500px;}
.approach-band>div>p {font-size: 16px; margin-bottom: 23px;}
.approach-steps {display: flex; gap: 18px 28px; margin-top: 30px; border-top: 1px solid #ffffff30; padding-top: 24px; flex-wrap: wrap;}
.approach-steps span {font-size: 13px; color: #cbdce8; display: flex; gap: 9px; align-items: center;}
.approach-steps b {color: var(--lime); font-size: 13px;}
.related-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px;}
.related-grid .card-image {aspect-ratio: 1.7;}
.related-grid .card-content h3 {font-size: 22px;}
.specialists-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px;}
.specialists-grid .card-image {aspect-ratio: 1.65;}
.specialists-grid .card-content h3 {font-size: 22px;}
.specialists-grid .service-card:last-child:nth-child(3n+2) {grid-column: auto;}
.specialist-explainer {border: 1px dashed #b5cfd0; border-radius: 12px; padding: 30px; display: flex; flex-direction: column; justify-content: center; background: #f0f6f3;}
.specialist-explainer>svg {width: 30px; height: 30px; color: var(--green); margin-bottom: 22px;}
.specialist-explainer h3 {font-size: 26px; margin-bottom: 14px;}
.specialist-explainer p {font-size: 15px; margin-bottom: 22px; line-height: 1.7;}
.compact-hero {background: var(--hero-wash); padding-bottom: 57px;}
.compact-hero .eyebrow {margin-top: 14px;}
.compact-hero h1 {max-width: 900px;}
.compact-hero .lead {max-width: 680px; margin-top: 22px; font-size: 17px; line-height: 1.75;}
.directory-jumps {display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px;}
.directory-jumps a {font-size: 14px; font-weight: 700; background: #fff; border: 1px solid var(--line); border-radius: 30px; padding: 10px 18px; color: var(--navy); transition: background .2s; display: inline-flex; align-items: center; line-height: 1.5; min-height: 44px;}
.directory-jumps a:hover {background: var(--mint);}
.family-heading {display: flex; align-items: center; gap: 18px; margin-bottom: 30px;}
.family-heading>span {height: 48px; width: 48px; border-radius: 8px; background: var(--mint); color: var(--green); display: grid; place-items: center; flex-shrink: 0;}
.family-heading h2 {font-size: 34px;}
.family-heading p {font-size: 15px; margin-top: 5px;}
.directory-note {display: flex; align-items: start; gap: 10px; margin-top: 25px; font-size: 14px; line-height: 1.6;}
.directory-note svg {color: var(--green); width: 18px; height: 18px; margin-top: 3px;}

/* About and FAQ pages */
.intro-split {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: start;}
.intro-split>div>p {margin-bottom: 18px; font-size: 16px;}
.values-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin-top: 50px; padding-top: 40px; border-top: 1px solid var(--line);}
.value-icon {width: 48px; height: 48px; background: var(--mint); border-radius: 11px; display: grid; place-items: center; margin-bottom: 22px; color: var(--green);}
.values-grid h3 {font-size: 22px; margin-bottom: 14px;}
.values-grid p {font-size: 15px; line-height: 1.7;}
.about-photo-strip {display: grid; grid-template-columns: 1.4fr 1fr; gap: 25px;}
.about-photo-strip img {height: 350px; width: 100%; object-fit: cover; border-radius: 12px;}
.faq-page-layout {display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 64px;}
.faq-sidebar {position: sticky; top: 104px; align-self: start; padding: 28px; border-radius: 12px; background: var(--cream);}
.faq-sidebar h3 {font-size: 22px; margin-bottom: 16px;}
.faq-sidebar p {font-size: 15px; margin-bottom: 20px;}
.faq-sidebar .btn {width: 100%; font-size: 15px;}
.faq-category+.faq-category {margin-top: 45px;}
.faq-category h2 {font-size: 30px; margin-bottom: 23px;}

/* Contact page and enquiry form */
.contact-layout {display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 72px; align-items: start;}
.contact-intro h2 {font-size: 36px; margin-bottom: 17px; line-height: 1.25;}
.contact-intro>p {font-size: 16px;}
.contact-options {margin-top: 30px;}
.contact-option {display: flex; gap: 17px; padding: 23px 0; border-bottom: 1px solid var(--line);}
.contact-option .value-icon {width: 48px; height: 48px; margin: 0; flex-shrink: 0;}
.contact-option .value-icon svg {width: 20px; height: 20px;}
.contact-option h3 {font-size: 14px; letter-spacing: 0; margin-bottom: 2px; line-height: 1.5;}
.contact-option a {font-size: 18px; font-weight: 700; display: inline-flex; align-items: center; min-height: 44px; line-height: 1.5;}
.contact-option p {font-size: 15px;}
.contact-option a:hover {color: var(--green);}
.contact-resource-box {background: var(--cream); padding: 25px; border-radius: 10px; margin-top: 30px;}
.contact-resource-box h3 {font-size: 20px; margin-bottom: 10px;}
.contact-resource-box p {font-size: 15px; margin-bottom: 13px;}
.contact-resource-box a {display: flex; justify-content: space-between; font-size: 14px; font-weight: 700; padding: 10px 0; color: var(--green); min-height: 44px; align-items: center; gap: 12px;}
.contact-resource-box svg {width: 17px; height: 17px;}
.enquiry-card {border: 1px solid var(--line); border-radius: 14px; padding: 32px; box-shadow: 0 12px 35px #103b6305;}
.enquiry-card h2 {font-size: 28px; margin-bottom: 12px;}
.form-intro {font-size: 15px; margin-bottom: 26px;}
.form-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px;}
.field {min-width: 0;}
.field-full {grid-column: 1/-1;}
.field label {display: block; font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 8px; line-height: 1.5;}
.field label span {font-weight: 400; color: #607486;}
.field input,.field select,.field textarea {width: 100%; border: 1px solid #bdcddb; border-radius: 6px; padding: 12px 13px; font-size: 16px; line-height: 1.5; color: var(--ink); background: #fff; min-height: 50px;}
.field textarea {min-height: 126px; resize: vertical;}
.field input::placeholder,.field textarea::placeholder {color: #526779;}
.field input:focus,.field select:focus,.field textarea:focus {outline: 2px solid #0a568d; outline-offset: 1px;}
.form-note {font-size: 13px; line-height: 1.7; margin: 20px 0;}
.form-note a {text-decoration: underline;}
.enquiry-card .submit-btn {width: 100%; justify-content: space-between;}
.enquiry-result {padding: 26px; background: var(--cream); border: 1px solid var(--line); border-radius: 9px; margin-top: 27px; scroll-margin-top: 104px;}
.enquiry-result h3 {font-size: 22px; margin-bottom: 9px;}
.enquiry-result p {font-size: 15px; margin-bottom: 18px;}
.enquiry-result textarea {display: block; width: 100%; min-height: 230px; resize: vertical; border: 1px solid var(--line); border-radius: 6px; padding: 16px; font-family: inherit; font-size: 16px; line-height: 1.65; color: var(--ink); background: white; margin-bottom: 18px;}
.enquiry-result .button-row {gap: 10px;}
.enquiry-result .btn {font-size: 15px; padding: 12px 16px; min-height: 48px;}
.form-link-button {background: none; border: 0; padding: 0; text-decoration: underline; font-size: 14px; color: var(--green); margin-top: 18px; display: inline-flex; align-items: center; min-height: 44px;}
.copy-status {font-size: 13px; min-height: 22px; margin: 10px 0 0!important; color: var(--green);}

/* Policy pages */
.policy-layout {display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 64px; align-items: start; max-width: 1080px;}
.policy-content h2 {font-size: 30px; margin: 32px 0 17px;}
.policy-content h2:first-child {margin-top: 0;}
.policy-content p {font-size: 16px; line-height: 1.8; margin-bottom: 20px;}
.policy-content a {color: var(--green); text-decoration: underline; text-underline-offset: 3px;}
.policy-content .policy-notice {padding: 23px; background: var(--cream); border-left: 3px solid var(--green); border-radius: 0 7px 7px 0; font-size: 15px; line-height: 1.8; margin: 28px 0;}
.policy-aside {padding: 26px; background: var(--cream); border-radius: 10px; position: sticky; top: 104px;}
.policy-aside h3 {font-size: 22px; margin-bottom: 14px;}
.policy-aside p {font-size: 15px; margin-bottom: 20px;}
.policy-aside .btn {font-size: 15px; padding: 12px 15px; width: 100%;}
.policy-aside>.text-link {font-size: 15px; margin-top: 20px;}
.policy-date {font-size: 12px; color: var(--green); font-weight: 700; margin-top: 23px;}
.not-found {min-height: 55vh; padding-block: 100px; text-align: center;}
.not-found .eyebrow {justify-content: center;}
.not-found p {margin: 20px auto 30px; max-width: 500px;}
.hero-copy,.process-copy,.contact-intro,.footer-col,.scope-item,.cleaning-grid>div,.page-hero .hero-grid>* {min-width: 0;}
.card-content h3,.scope-item h3,.cleaning-panel-body h3,.contact-option a {overflow-wrap: break-word;}
.menu-toggle .menu-icon,.menu-toggle .close-icon {width: 24px; height: 24px; align-items: center; justify-content: center;}
.menu-toggle .menu-icon {display: flex;}
.menu-toggle .close-icon {display: none;}
.menu-toggle[aria-expanded=true] .menu-icon {display: none;}
.menu-toggle[aria-expanded=true] .close-icon {display: flex;}
.menu-toggle[aria-expanded=true] {background: var(--mint); border-color: #acc9b8;}
.footer-bottom-links a {display: inline-flex; align-items: center; min-height: 44px; font-size: 13px;}

/* Stronger blue and green surfaces across the shared page components. */
.section-cream {background: linear-gradient(110deg,var(--blue-tint),#f3f8fc 50%,var(--green-tint));}
.topbar {background: var(--brand-gradient); color: #fff;}
.site-header {border-bottom-color: #b9d2e7; box-shadow: 0 4px 22px #103b6308;}
.btn {box-shadow: 0 7px 18px #145da823; border-color: #ffffff18; transition: background .18s,transform .18s,box-shadow .18s;}
.btn:hover {box-shadow: 0 10px 22px #145da835;}
.btn-outline {background: var(--blue-tint); border-color: #87b3d9; color: var(--navy); box-shadow: none;}
.btn-outline:hover {background: var(--royal); border-color: var(--royal); color: #fff;}
.btn-light {background: #d9f3b9; color: var(--deep); border-color: #c1e7a0;}
.btn-light:hover {background: #ecfbdc; color: var(--deep);}
.btn-white {background: var(--green-tint); color: var(--green); border-color: #b5d9c2;}
.btn-white:hover {background: var(--emerald); color: #fff; border-color: var(--emerald);}
.text-link {color: var(--royal);}
.hero-caption {background: linear-gradient(115deg,#123f6d,#145f94); color: #fff; border: 1px solid #ffffff30;}
.hero-caption p {color: #e6f1f9;}
.hero-caption-icon {background: var(--emerald); color: #fff;}
.hero-caption>svg {color: #d9f3b9;}
.hero-proof {color: #315b73;}
.service-strip {background: var(--blue-tint); border-color: #c1d9ec;}
.strip-item:nth-of-type(even) {color: #17643e;}
.strip-item svg {color: var(--royal);}
.strip-item:nth-of-type(even) svg {color: var(--emerald);}
.service-card {--card-fill: linear-gradient(135deg,#123f6d,#145f94); --card-accent: var(--royal); background: var(--card-fill); border-color: transparent; box-shadow: 0 10px 26px #103b6314;}
.service-card:nth-child(4n+2) {--card-fill: linear-gradient(135deg,#145a3b,#1d7449); --card-accent: var(--emerald);}
.service-card:nth-child(4n+3) {--card-fill: linear-gradient(135deg,#104c62,#126a75); --card-accent: var(--teal);}
.service-card:nth-child(4n+4) {--card-fill: linear-gradient(135deg,#14365a,#2a5082); --card-accent: var(--navy);}
.service-card:hover {box-shadow: 0 18px 36px #103b6328;}
.service-card .card-content h3 {color: #fff;}
.service-card .card-content p {color: #e6f1f9;}
.service-card .card-number {background: var(--card-accent); color: #fff; box-shadow: 0 3px 12px #09294325;}
.service-card .text-link {min-height: 44px; padding: 10px 14px; border-radius: 7px; background: #fff; color: var(--navy); gap: 9px; box-shadow: 0 4px 12px #09294318;}
.service-card .text-link:hover {background: #dcf3e5; text-decoration: none;}
.service-card :focus-visible,.hero-caption :focus-visible {outline-color: #d9f3b9;}
.cleaning-panel-body {background: var(--blue-tint);}
.circle-link {background: var(--royal); color: #fff; border-color: var(--royal);}
.circle-link:hover {background: var(--emerald); color: #fff; border-color: var(--emerald);}
.image-note {background: linear-gradient(135deg,#145a3b,#1d7449); color: #fff;}
.image-note svg {color: #d9f3b9;}
.image-note p {color: #e6f1f9;}
.steps li:before {display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border-radius: 8px; background: var(--blue-tint); color: var(--royal);}
.steps li:nth-child(even):before {background: var(--green-tint); color: var(--emerald);}
.guide-banner {background: var(--section-gradient); color: #fff;}
.guide-banner p {color: #e6f1f9;}
.guide-icon {background: #ffffff12; border-color: #ffffff60; color: #d9f3b9;}
.guide-banner .text-link {background: #d9f3b9; color: var(--deep); border-radius: 7px; padding: 10px 16px;}
.guide-banner :focus-visible {outline-color: #d9f3b9;}
.scope-item:not(.scope-callout) {background: var(--blue-tint); border-color: #c5dcef; border-top: 4px solid var(--royal);}
.scope-item:not(.scope-callout):nth-child(3n+2) {background: var(--green-tint); border-color: #bfdcc9; border-top-color: var(--emerald);}
.scope-item:not(.scope-callout):nth-child(3n+3) {background: var(--teal-tint); border-color: #b9dadd; border-top-color: var(--teal);}
.scope-item>span {display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--royal); color: #fff; border-radius: 8px;}
.scope-item:nth-child(3n+2)>span {background: var(--emerald);}
.scope-item:nth-child(3n+3)>span {background: var(--teal);}
.scope-callout {background: var(--cta-gradient);}
.scope-callout p {color: #e6f1f9;}
.specialist-explainer {background: var(--green-tint); border: 1px solid #a6d1b8; border-top: 4px solid var(--emerald);}
.specialist-explainer>.text-link {color: var(--green);}
.audience-bar {background: var(--green-tint); border-color: #c2dfce;}
.directory-jumps a {background: var(--royal); border-color: var(--royal); color: #fff; box-shadow: 0 5px 14px #145da818;}
.directory-jumps a:nth-child(even) {background: var(--emerald); border-color: var(--emerald);}
.directory-jumps a:hover {background: var(--navy); border-color: var(--navy); color: #fff;}
.family-heading>span,.value-icon {background: var(--royal); color: #fff;}
.values-grid>article {padding: 26px; background: var(--blue-tint); border: 1px solid #c5dcef; border-top: 4px solid var(--royal); border-radius: 12px;}
.values-grid>article:nth-child(2) {background: var(--green-tint); border-color: #bfdcc9; border-top-color: var(--emerald);}
.values-grid>article:nth-child(2) .value-icon {background: var(--emerald);}
.values-grid>article:nth-child(3) {background: var(--teal-tint); border-color: #b9dadd; border-top-color: var(--teal);}
.values-grid>article:nth-child(3) .value-icon {background: var(--teal);}
.faq-list {border-top: 0;}
.faq-list details {background: var(--blue-tint); border: 1px solid #c5dcef; border-radius: 9px; margin-bottom: 10px;}
.faq-list details:nth-child(even) {background: var(--green-tint); border-color: #c2dfce;}
.faq-list summary {padding-left: 20px; padding-right: 50px; color: var(--navy);}
.faq-list summary:after {right: 17px; color: var(--royal);}
.faq-list details[open] {background: #fff; border-color: #80add4; box-shadow: 0 5px 18px #103b630b;}
.faq-list details[open] summary {background: var(--blue-tint); border-radius: 8px 8px 0 0;}
.faq-answer {padding: 20px 24px 24px 20px;}
.faq-sidebar,.policy-aside {background: var(--section-gradient); color: #fff; border: 1px solid #174f7d;}
.faq-sidebar p,.policy-aside p {color: #e6f1f9;}
.faq-sidebar .btn,.policy-aside .btn {background: #d9f3b9; color: var(--deep); border-color: #c1e7a0;}
.faq-sidebar .btn:hover,.policy-aside .btn:hover {background: #edfbdc;}
.policy-aside>.text-link {color: #d9f3b9;}
.faq-sidebar :focus-visible,.policy-aside :focus-visible {outline-color: #d9f3b9;}
.contact-option:nth-child(2) .value-icon {background: var(--emerald);}
.contact-option:nth-child(3) .value-icon {background: var(--teal);}
.contact-resource-box {background: var(--green-tint); border: 1px solid #bddac7; border-top: 4px solid var(--emerald);}
.enquiry-card {background: linear-gradient(150deg,var(--blue-tint),#f6fbff 52%,var(--green-tint)); border-color: #aac9e2; border-top: 4px solid var(--royal); box-shadow: 0 12px 30px #145da812;}
.enquiry-result {background: var(--green-tint); border-color: #a8d0b7;}
.policy-content .policy-notice {background: var(--green-tint); border-left-color: var(--emerald);}
.drawer-footer {background: var(--blue-tint);}
.drawer-link[aria-current=page],.drawer-service-links a[aria-current=page] {background: #d2ebdf; color: #124f35;}
.dock-item[aria-current=page],.dock-item[data-service-active=true],.dock-item[aria-expanded=true] {background: #d2ebdf; color: #124f35;}

/* Wide displays add image space while retaining the same type scale. */
@media (min-width:1600px) {
  .home-hero {padding-block:60px;}
  .hero-media>img {height:550px;}
}

/* Comfortable service cards at medium desktop widths. */
@media (max-width:1180px) {
  .container {width:calc(100% - 72px);}
  .header-inner {gap:18px;}
  .desktop-nav {gap:16px;}
  .hero-grid,.page-hero .hero-grid {gap:36px;}
  .hero-media>img {height:500px;}
  .service-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .card-image {aspect-ratio:1.65;}
  .process-grid,.contact-layout,.faq-grid {gap:44px;}
  .cleaning-grid {gap:36px;}
  .footer-main {gap:30px;}
  .faq-page-layout {gap:40px;}
  .approach-band,.intro-split {gap:44px;}
}

/* Keep all eight top-level items readable on smaller desktop screens. */
@media (min-width:1041px) and (max-width:1200px) {
  .site-header .header-inner {width:calc(100% - 48px);gap:14px;}
  .desktop-nav {gap:12px;}
  .header-cta {padding-inline:14px;}
}

/* Match 1040px in site.js. The compact header is 65px with a separate quick-navigation dock. */
@media (max-width:1040px) {
  html {scroll-padding-top:81px;}
  .container {width:calc(100% - 48px);}
  .topbar,.desktop-nav,.header-cta {display:none;}
  .header-inner {height:65px;gap:24px;}
  .brand {min-height:44px;}
  .brand img {width:130px;height:auto;}
  .menu-toggle {display:flex;}
  body {padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  .mobile-dock {display:grid;}
  .hero-grid {gap:32px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .hero-copy>p {font-size:16px;}
  .hero-media>img {height:480px;}
  .hero-caption {left:14px;right:14px;padding:18px;gap:13px;}
  .hero-caption strong {font-size:14px;}
  .hero-caption p {font-size:12px;}
  .hero-caption-icon {width:40px;height:40px;}
  .hero-copy .button-row {gap:12px;}
  .service-strip .container {gap:16px;min-height:88px;}
  .strip-label {display:none;}
  .strip-item {gap:9px;font-size:13px;}
  .section {padding-block:72px;}
  .section-head {gap:30px;}
  .section-head>p {max-width:320px;}
  .cleaning-grid {gap:28px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);}
  .cleaning-tab {gap:12px;}
  .cleaning-panel img {height:290px;}
  .cleaning-panel-body {padding:24px;gap:12px 18px;}
  .cleaning-panel-body h3 {font-size:22px;}
  .process-grid {gap:32px;}
  .process-image>img {height:520px;}
  .image-note {max-width:260px;padding:20px;}
  .guide-banner {padding:28px;gap:20px;}
  .faq-grid {gap:36px;}
  .cta-banner {padding:40px;gap:28px;}
  .footer-main {grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px;}
  .footer-resources {gap:12px 24px;}
  .employee-resources {margin-left:0;}
  .scope-grid,.related-grid,.specialists-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .scope-item {padding:28px 24px;}
  .service-hero-image {height:400px;}
  .about-photo-strip img {height:300px;}
  .values-grid {gap:24px;}
  .faq-page-layout {grid-template-columns:250px minmax(0,1fr);gap:32px;}
  .faq-sidebar,.policy-aside {top:81px;padding:24px;}
  .contact-layout {gap:32px;}
  .contact-intro h2 {font-size:34px;}
  .enquiry-card {padding:28px;}
  .form-grid {gap:22px 16px;}
  .policy-layout {grid-template-columns:minmax(0,1fr) 260px;gap:36px;}
  .enquiry-result {scroll-margin-top:81px;}
}

/* Tablet portrait and phones share a clear single-column reading order. */
@media (max-width:800px) {
  .hero-grid,.page-hero .hero-grid {grid-template-columns:minmax(0,1fr);gap:32px;}
  .home-hero {padding:40px 0 44px;}
  .hero-copy {padding:4px 0 0;}
  .hero-copy h1 {font-size:44px;line-height:1.12;max-width:660px;}
  .hero-copy>p {font-size:16px;max-width:600px;margin-bottom:26px;}
  .hero-copy .eyebrow {margin-bottom:20px;}
  .hero-proof {margin-top:20px;}
  .hero-media {padding-bottom:30px;}
  .hero-media>img {height:410px;object-position:52% 45%;}
  .hero-caption {left:20px;right:20px;padding:20px;}
  .hero-caption strong {font-size:15px;}
  .hero-caption p {font-size:13px;}
  .service-strip .container {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;padding-block:22px;}
  .strip-item {font-size:14px;}
  .section-head {display:block;margin-bottom:30px;}
  .section-head>p {max-width:600px;margin-top:18px;}
  .section-head>.text-link {margin-top:18px;}
  .cleaning-showcase .section-head {margin-bottom:30px;}
  .cleaning-showcase .section-head>p {padding-top:0;max-width:600px;}
  .cleaning-grid {grid-template-columns:minmax(0,1fr);gap:28px;}
  .cleaning-tabs {display:flex;flex-direction:column;gap:8px;border-top:0;}
  .cleaning-tab,.cleaning-tab[aria-selected=true] {border:1px solid #ffffff2b;border-radius:8px;padding:14px 16px;min-height:56px;font-size:16px;}
  .cleaning-tab[aria-selected=true] {border-color:var(--lime);}
  .cleaning-tabs-note {max-width:none;margin-top:18px;}
  .cleaning-panel img {height:340px;}
  .cleaning-panel-body {padding:26px;}
  .process-grid,.faq-grid,.contact-layout,.approach-band,.intro-split {grid-template-columns:minmax(0,1fr);gap:34px;}
  .process-image {padding:0 24px 24px 0;}
  .process-image>img {height:420px;}
  .image-note {padding:22px 24px;max-width:280px;border-width:5px;}
  .process-copy>p {margin-top:18px;}
  .guide-banner {display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px 20px;}
  .guide-banner .text-link {grid-column:2;margin-left:0;white-space:normal;}
  .faq-intro p {max-width:600px;}
  .faq-intro>.text-link {margin-top:16px;}
  .cta-banner {display:block;}
  .cta-banner .button-row {margin-top:26px;gap:10px;}
  .page-hero {padding-bottom:44px;}
  .page-hero .hero-copy {padding-top:4px;}
  .page-hero h1 {font-size:44px;}
  .page-hero .hero-copy>p {max-width:650px;}
  .service-hero-image {height:360px;}
  .audience-inner {gap:16px;}
  .audience-inner>.eyebrow {width:100%;}
  .approach-band>div>p {margin-bottom:22px;}
  .values-grid {grid-template-columns:minmax(0,1fr);gap:28px;margin-top:36px;padding-top:32px;}
  .values-grid article {display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px 20px;}
  .values-grid .value-icon {margin:0;grid-column:1;grid-row:1/3;}
  .values-grid h3 {margin:0;grid-column:2;}
  .values-grid p {grid-column:2;}
  .faq-page-layout {grid-template-columns:minmax(0,1fr);gap:32px;}
  .faq-sidebar,.policy-aside {position:static;}
  .faq-sidebar p {margin-bottom:16px;}
  .faq-sidebar .btn {width:auto;padding:14px 22px;}
  .contact-options {margin-top:24px;}
  .contact-resource-box {margin-top:24px;}
  .contact-layout {gap:40px;}
  .policy-layout {grid-template-columns:minmax(0,1fr);gap:32px;}
  .policy-aside .btn {width:auto;}
  .policy-aside>.text-link {display:flex;}
}

/* Phones keep full-size body, card and form text. */
@media (max-width:600px) {
  .container {width:calc(100% - 40px);}
  h1,.hero-copy h1,.page-hero h1,.compact-hero h1 {font-size:clamp(40px,10.8vw,44px);line-height:1.12;}
  h2 {font-size:32px;line-height:1.23;}
  .brand {gap:12px;}
  .section {padding-block:58px;}
  .section-sm {padding-block:42px;}
  .eyebrow {margin-bottom:16px;}
  .home-hero {padding:32px 0 36px;}
  .hero-grid,.page-hero .hero-grid {gap:28px;}
  .hero-copy h1 {margin-bottom:22px;}
  .hero-copy .button-row {gap:12px;}
  .hero-proof {align-items:start;font-size:12px;}
  .hero-proof svg {margin-top:1px;}
  .hero-media>img {height:340px;border-radius:13px;}
  .hero-caption {left:14px;right:14px;padding:18px;gap:12px;border-radius:10px;}
  .hero-caption strong {font-size:14px;}
  .hero-caption p {font-size:12px;}
  .hero-caption>svg {display:none;}
  .service-strip .container {gap:12px 18px;padding-block:20px;}
  .strip-item {gap:9px;font-size:13px;}
  .strip-item svg {width:20px;height:20px;}
  .service-grid,.related-grid,.specialists-grid,.scope-grid {grid-template-columns:minmax(0,1fr);gap:24px;}
  .card-image,.related-grid .card-image,.specialists-grid .card-image {aspect-ratio:1.65;}
  .card-content {padding:26px 24px 22px;}
  .card-content h3 {margin-bottom:14px;}
  .card-number {left:14px;top:14px;}
  .cleaning-panel img {height:270px;}
  .cleaning-panel-body {padding:24px;gap:14px 16px;grid-template-columns:minmax(0,1fr) 48px;}
  .cleaning-panel-body p {grid-column:1/-1;}
  .circle-link {grid-row:1;}
  .process-grid {gap:32px;}
  .process-image {padding:0 18px 24px 0;}
  .process-image>img {height:370px;}
  .image-note {padding:18px 20px;max-width:250px;}
  .guide-banner {padding:26px 22px;grid-template-columns:40px minmax(0,1fr);gap:12px 16px;}
  .guide-icon {width:40px;height:48px;}
  .guide-icon svg {width:24px;height:24px;}
  .guide-banner h3 {font-size:21px;}
  .faq-grid {gap:28px;}
  .faq-list summary {padding-block:21px;}
  .faq-list summary:after {top:22px;}
  .faq-answer {padding-right:22px;}
  .cta-section {padding-bottom:52px;}
  .cta-banner {padding:32px 24px;border-radius:12px;}
  .cta-banner h2 {font-size:32px;line-height:1.23;}
  .cta-banner p {margin-top:16px;}
  .site-footer {padding-top:46px;}
  .footer-main {gap:30px 24px;padding-bottom:34px;}
  .footer-brand {grid-column:1/-1;display:block;}
  .footer-brand .logo-plate {width:178px;height:auto;margin-bottom:19px;}
  .footer-brand img {width:156px;height:auto;}
  .footer-brand p {max-width:320px;}
  .footer-col:last-child {grid-column:1/-1;}
  .footer-title {margin-bottom:10px;}
  .footer-contact {display:flex;gap:4px 22px;flex-wrap:wrap;}
  .footer-location {margin-top:6px;}
  .footer-resources {gap:4px 22px;padding-block:18px;}
  .footer-resources>span {width:100%;margin-bottom:4px;}
  .employee-resource-links {right:auto;left:0;}
  .footer-bottom {align-items:start;flex-direction:column;gap:6px;padding-block:20px;}
  .footer-bottom-links {gap:24px;flex-wrap:wrap;}
  .footer-credit {justify-content:flex-start;}
  .footer-credit a {min-height:44px;}
  .breadcrumbs {gap:8px;padding-top:22px;padding-bottom:20px;}
  .page-hero,.compact-hero {padding-bottom:40px;}
  .page-hero .hero-copy>p {margin-bottom:26px;}
  .page-hero .hero-copy .eyebrow {margin-bottom:18px;}
  .service-hero-image {height:300px;}
  .service-hero-tag {left:14px;right:14px;bottom:14px;padding:12px 14px;font-size:12px;}
  .audience-inner {padding-block:22px;}
  .audience-list {gap:12px 16px;}
  .scope-item {padding:28px 24px;}
  .scope-item>span {margin-bottom:22px;}
  .scope-callout>svg {margin-bottom:22px;}
  .approach-band {gap:26px;}
  .approach-steps {gap:16px 24px;}
  .specialist-explainer {padding:30px 26px;}
  .specialist-explainer h3 {font-size:24px;}
  .compact-hero .eyebrow {margin-top:8px;}
  .compact-hero .lead {font-size:16px;margin-top:20px;}
  .directory-jumps {gap:10px;margin-top:26px;}
  .family-heading {gap:16px;align-items:start;}
  .family-heading h2 {font-size:28px;}
  .directory-note {margin-top:24px;}
  .about-photo-strip {grid-template-columns:minmax(0,1fr);gap:20px;}
  .about-photo-strip img {height:300px;}
  .about-photo-strip img:last-child {display:none;}
  .faq-category h2 {font-size:27px;margin-bottom:22px;}
  .contact-intro h2 {font-size:32px;}
  .contact-option {padding:21px 0;gap:15px;}
  .contact-option a {font-size:17px;}
  .contact-resource-box {padding:24px;}
  .enquiry-card {padding:28px 22px;}
  .enquiry-card h2 {font-size:26px;}
  .form-grid {grid-template-columns:minmax(0,1fr);gap:22px;}
  .field-full {grid-column:auto;}
  .enquiry-result {padding:24px 18px;}
  .enquiry-result .button-row {align-items:stretch;}
  .policy-content h2 {font-size:27px;}
  .policy-content .policy-notice {padding:22px;}
  .not-found {padding-block:72px;}
}

/* Compact widths change composition instead of reducing readable type. */
@media (max-width:370px) {
  .container {width:calc(100% - 32px);}
  .hero-copy .button-row {flex-direction:column;align-items:stretch;}
  .hero-copy .btn {width:100%;}
  .hero-media>img {height:300px;}
  .hero-caption {left:10px;right:10px;padding:16px;}
  .card-content,.scope-item {padding:24px 22px;}
  .cleaning-panel-body {padding:22px;}
  .process-image>img {height:340px;}
  .image-note {max-width:230px;}
  .footer-brand {display:block;}
  .footer-brand .logo-plate {margin-bottom:18px;}
  .footer-main {column-gap:18px;}
  .enquiry-card {padding:24px 18px;}
}

@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  *,*:before,*:after,.mobile-drawer::backdrop {transition:none!important;animation:none!important;}
}

@media print {
  .topbar,.site-header,.site-footer,.cta-section,.btn,.enquiry-card,.mobile-drawer,.mobile-dock {display:none!important;}
  .section {padding:25px 0;}
  .container {width:100%;max-width:none;}
  body {font-size:11pt;padding-bottom:0!important;}
  html.nav-open {overflow:visible;}
  .nav-open body {position:static;width:auto;overflow:visible;}
  .page-hero {background:white;}
  .service-hero-image {max-height:200px;}
  .section-dark {background:white;color:black;}
  .section-dark h2,.section-dark p {color:black;}
  .scope-grid {grid-template-columns:1fr 1fr;}
  .scope-item {break-inside:avoid;}
  .service-card,.hero-caption,.image-note,.guide-banner,.faq-sidebar,.policy-aside {background:#fff;color:var(--ink);box-shadow:none;}
  .service-card .card-content h3,.service-card .card-content p,.service-card .text-link,.hero-caption p,.image-note p,.guide-banner p,.faq-sidebar p,.policy-aside p,.policy-aside>.text-link {color:var(--ink);}
}


/* Address and map link */
.footer-location a {
  color: inherit;
  text-decoration: none;
}
.footer-location a:hover,
.footer-location a:focus-visible,
.contact-map-link:hover,
.contact-map-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.contact-map-link {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .35rem;
  font-weight: 650;
  color: var(--green, #1f7a45);
}
