:root {
  --red: #e81716;
  --red-deep: #b90f10;
  --ink: #202124;
  --slate: #55585f;
  --mist: #f3f4f4;
  --warm: #f8f6f3;
  --white: #fff;
  --line: #d9dbdc;
  --green: #294b3e;
  --max: 1240px;
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: "DM Sans", sans-serif; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 3px solid rgba(232, 23, 22, .35); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 1000; left: 1rem; top: 0; transform: translateY(-140%); background: var(--ink); color: white; padding: .75rem 1rem; border-radius: 0 0 8px 8px; transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }
.shell { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; color: white; transition: background .35s ease, color .35s ease, box-shadow .35s ease; }
.site-header.scrolled, .site-header.menu-open { color: var(--ink); background: rgba(255,255,255,.96); box-shadow: 0 1px 0 rgba(32,33,36,.1); backdrop-filter: blur(16px); }
.header-inner { height: 86px; display: grid; grid-template-columns: 180px 1fr auto; align-items: center; gap: 36px; }
.brand { width: 176px; height: 58px; display: flex; align-items: center; }
.brand img { width: 174px; height: auto; }
.site-header.scrolled .brand img, .site-header.menu-open .brand img { filter: contrast(1.25) brightness(.82); }
.desktop-nav { display: flex; justify-content: center; align-items: center; gap: clamp(16px, 1.6vw, 27px); font-size: .89rem; font-weight: 600; }
.desktop-nav a { position: relative; white-space: nowrap; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: var(--red); transition: right .25s ease; }
.desktop-nav a:hover::after { right: 0; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; border: 0; border-radius: 8px; color: white; background: var(--red); font-weight: 700; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.button:hover { background: var(--red-deep); transform: translateY(-2px); }
.button-small { min-height: 44px; padding: 0 18px; font-size: .88rem; }
.site-header:not(.scrolled):not(.menu-open) .header-cta { border: 1px solid rgba(255,255,255,.65); background: rgba(18,18,18,.2); backdrop-filter: blur(10px); }
.site-header:not(.scrolled):not(.menu-open) .header-cta:hover { background: var(--red); border-color: var(--red); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; padding: 10px; }
.menu-toggle span { display: block; height: 2px; background: currentColor; margin: 7px 0; transition: transform .25s ease; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
.mobile-nav { padding: 12px 24px 26px; background: white; border-top: 1px solid var(--line); }
.mobile-nav a { display: block; padding: 12px 0; font-weight: 600; }

.hero { position: relative; min-height: 780px; height: 92vh; overflow: hidden; display: flex; align-items: center; color: white; background: #756b62; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.03); animation: hero-settle 1.5s cubic-bezier(.2,.8,.2,1) forwards; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,21,20,.78) 0%, rgba(23,21,20,.58) 32%, rgba(23,21,20,.12) 61%, rgba(23,21,20,.04) 100%), linear-gradient(0deg, rgba(0,0,0,.3), transparent 45%); }
.hero-copy { position: relative; z-index: 2; padding-top: 75px; }
.hero-copy > * { opacity: 0; transform: translateY(18px); animation: hero-copy .7s ease forwards; }
.hero-copy > :nth-child(1) { animation-delay: .18s; }
.hero-copy > :nth-child(2) { animation-delay: .28s; }
.hero-copy > :nth-child(3) { animation-delay: .4s; }
.hero-copy > :nth-child(4) { animation-delay: .52s; }
.hero-kicker { margin: 0 0 22px; padding-left: 38px; position: relative; font-weight: 700; font-size: .92rem; }
.hero-kicker::before { content: ""; position: absolute; left: 0; top: 50%; width: 24px; height: 3px; background: var(--red); }
h1, h2, h3 { font-family: "Manrope", sans-serif; letter-spacing: -.04em; line-height: 1.08; }
h1 { max-width: 680px; margin: 0; font-size: clamp(3.8rem, 7vw, 6.7rem); font-weight: 700; }
.hero-intro { max-width: 600px; margin: 28px 0 34px; color: rgba(255,255,255,.88); font-size: clamp(1.05rem, 1.4vw, 1.22rem); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 30px; }
.text-link { display: inline-flex; gap: 10px; align-items: center; padding: 8px 0; color: white; border-bottom: 1px solid rgba(255,255,255,.55); font-weight: 700; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px,-3px); }
.text-link.dark { color: var(--ink); border-color: #a8aaad; }
.hero-assurance { position: absolute; z-index: 3; right: 0; bottom: 0; display: flex; gap: 15px; align-items: center; width: min(430px, 38vw); padding: 24px 40px 24px 28px; color: var(--ink); background: white; }
.hero-assurance > span:last-child { display: grid; font-size: .84rem; color: var(--slate); }
.hero-assurance strong { color: var(--ink); font-size: .96rem; }
.assurance-mark { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; color: white; background: var(--green); }
.assurance-mark svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 2.3; }
@keyframes hero-settle { to { transform: scale(1); } }
@keyframes hero-copy { to { opacity: 1; transform: translateY(0); } }

.decision-strip { background: var(--red); color: white; }
.decision-grid { min-height: 78px; display: grid; grid-template-columns: repeat(3,1fr); align-items: center; }
.decision-grid p { margin: 0; padding: 0 28px; text-align: center; font-size: .9rem; }
.decision-grid p + p { border-left: 1px solid rgba(255,255,255,.32); }
.decision-grid strong { display: block; font-size: 1rem; }

.section { padding: 120px 0; }
.section-heading { max-width: 580px; }
.section-index { margin: 0 0 22px; color: var(--red); font-size: .86rem; font-weight: 700; }
.section-heading h2, .about-copy h2, .contact-copy h2 { margin: 0; font-size: clamp(2.65rem, 5vw, 4.6rem); font-weight: 650; }
.section-heading > p:not(.section-index) { margin: 28px 0; color: var(--slate); font-size: 1.08rem; }
.support-section { background: var(--warm); }
.support-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 11vw; align-items: start; }
.sticky-heading { position: sticky; top: 130px; }
.support-list { border-top: 1px solid #cdcbc7; }
.support-item { display: grid; grid-template-columns: 66px 1fr; gap: 28px; padding: 34px 0; border-bottom: 1px solid #cdcbc7; }
.support-icon { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; color: var(--red); background: white; }
.support-icon svg { width: 32px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.support-item h3 { margin: 3px 0 9px; font-size: 1.3rem; }
.support-item p { margin: 0; color: var(--slate); }
.scope-note { margin: 26px 0 0; padding: 20px 22px; border-left: 3px solid var(--red); border-radius: 0 16px 16px 0; background: white; color: var(--slate); font-size: .88rem; }

.caregivers-section { position: relative; overflow: hidden; color: white; background: #242629; }
.caregivers-section::before { content: "TC"; position: absolute; right: -30px; top: 20px; color: rgba(255,255,255,.028); font: 800 22rem/1 "Manrope", sans-serif; letter-spacing: -.12em; }
.caregiver-heading { position: relative; display: flex; align-items: end; justify-content: space-between; gap: 60px; }
.section-heading.inverse .section-index { color: #ff6d6c; }
.caregiver-intro { max-width: 430px; margin: 0 0 10px; color: #bfc1c4; }
.filters { position: relative; display: flex; flex-wrap: wrap; gap: 10px; margin: 48px 0 34px; }
.filter { min-height: 42px; padding: 0 17px; border: 1px solid #55585b; border-radius: 50px; color: #d8d9da; background: transparent; cursor: pointer; font-weight: 600; font-size: .86rem; }
.filter.active, .filter:hover { color: white; border-color: var(--red); background: var(--red); }
.profile-grid { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.profile-card { overflow: hidden; border: 1px solid #494c4f; border-radius: 18px; background: #2e3033; transition: transform .28s ease, border-color .28s ease; }
.profile-card:hover { transform: translateY(-7px); border-color: #777a7d; }
.profile-card[hidden] { display: none; }
.profile-portrait { position: relative; height: 248px; display: grid; place-items: center; overflow: hidden; isolation: isolate; }
.profile-portrait::before, .profile-portrait::after { content: ""; position: absolute; border-radius: 50%; z-index: -1; }
.profile-portrait::before { width: 240px; height: 240px; right: -35px; top: -50px; background: rgba(255,255,255,.16); }
.profile-portrait::after { width: 155px; height: 155px; left: -35px; bottom: -50px; background: rgba(255,255,255,.11); }
.portrait-sari { background: #7d6154; }
.portrait-maria { background: #536f70; }
.portrait-dewi { background: #7a6b49; }
.profile-portrait > span { font: 700 4rem/1 "Manrope", sans-serif; letter-spacing: -.07em; color: rgba(255,255,255,.92); }
.profile-portrait small { position: absolute; left: 20px; bottom: 16px; color: rgba(255,255,255,.75); }
.profile-body { padding: 25px; }
.profile-topline { display: flex; justify-content: space-between; gap: 10px; color: #aeb1b4; font-size: .76rem; }
.profile-body h3 { margin: 14px 0 10px; font-size: 1.7rem; }
.profile-summary { min-height: 75px; color: #c4c6c8; font-size: .93rem; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 20px 0; }
.profile-tags span { padding: 5px 9px; border-radius: 999px; color: #d9dadb; background: #3c3e41; font-size: .73rem; }
.profile-link { width: 100%; padding: 14px 0 3px; display: flex; justify-content: space-between; border: 0; border-top: 1px solid #494c4f; color: white; background: transparent; cursor: pointer; text-align: left; font-weight: 700; }
.profile-link span { color: #ff6d6c; }
.profile-empty { padding: 50px; text-align: center; border: 1px dashed #5d6063; }
.demo-note { margin: 26px 0 0; color: #8f9295; font-size: .78rem; }

.process-section { background: white; }
.process-header { display: grid; grid-template-columns: 1.15fr .55fr; gap: 12vw; align-items: end; }
.process-header > p { color: var(--slate); }
.process-list { list-style: none; margin: 74px 0 0; padding: 0; border-top: 1px solid var(--line); }
.process-list li { display: grid; grid-template-columns: 100px 1fr; align-items: start; padding: 32px 0; border-bottom: 1px solid var(--line); transition: padding-left .25s ease; }
.process-list li:hover { padding-left: 16px; }
.step-number { color: var(--red); font-weight: 700; }
.process-list h3 { margin: 0 0 8px; font-size: 1.55rem; }
.process-list p { max-width: 600px; margin: 0; color: var(--slate); }

.coverage-section { overflow: hidden; color: white; background: var(--green); }
.coverage-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 6vw; align-items: center; }
.coverage-copy .section-index { color: #ff8f8e; }
.coverage-copy .section-heading > p:not(.section-index) { color: #cad6d0; }
.area-readout { display: flex; align-items: center; gap: 15px; margin-top: 40px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.2); }
.area-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 8px rgba(232,23,22,.2); }
.area-readout div { display: grid; }
.area-readout span:last-child { color: #bccbc4; font-size: .87rem; }
.coverage-note { margin-top: 25px; color: #9fb1a9; font-size: .78rem; }
.area-directory { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 26px; }
.area-directory button { padding: 6px 10px; border: 1px solid rgba(255,255,255,.22); border-radius: 50px; color: #d4dfda; background: transparent; cursor: pointer; font-size: .74rem; }
.area-directory button:hover, .area-directory button.active { color: white; border-color: var(--red); background: var(--red); }
.map-card { position: relative; min-height: 610px; display: grid; place-items: center; overflow: hidden; border-radius: 28px; background: #f1eee8; color: var(--ink); }
.map-rings span { position: absolute; left: 40%; top: 50%; border: 1px solid rgba(232,23,22,.16); border-radius: 50%; transform: translate(-50%,-50%); }
.map-rings span:nth-child(1) { width: 200px; height: 200px; }
.map-rings span:nth-child(2) { width: 390px; height: 390px; }
.map-rings span:nth-child(3) { width: 600px; height: 600px; }
.service-map { position: relative; width: 92%; z-index: 2; }
.map-land { fill: #d3dcd6; stroke: white; stroke-width: 2.4; stroke-linejoin: round; }
.malaysia-shape { filter: drop-shadow(0 9px 10px rgba(41,75,62,.09)); }
body[data-page="home"] .service-map .peninsula,
body[data-page="home"] .service-map .borneo { display: none; }
body[data-page="home"] .service-map .map-waterline { display: none; }
body[data-page="home"] .map-point text { opacity: 0; transition: opacity .2s ease; }
body[data-page="home"] .map-point.active text,
body[data-page="home"] .map-point[data-area="Penang"] text,
body[data-page="home"] .map-point[data-area="Ipoh"] text,
body[data-page="home"] .map-point[data-area="Johor Bahru"] text,
body[data-page="home"] .map-point[data-area="Sabah / Sarawak"] text { opacity: 1; }
body[data-page="home"] .map-point[data-area="Penang"] { transform: translate(96px,185px); }
body[data-page="home"] .map-point[data-area="Ipoh"] { transform: translate(120px,229px); }
body[data-page="home"] .map-point[data-area="Klang"] { transform: translate(131px,315px); }
body[data-page="home"] .map-point[data-area="Petaling Jaya"] { transform: translate(136px,311px); }
body[data-page="home"] .map-point[data-area="Kuala Lumpur"] { transform: translate(139px,308px); }
body[data-page="home"] .map-point[data-area="Puchong"] { transform: translate(136px,319px); }
body[data-page="home"] .map-point[data-area="Cheras"] { transform: translate(141px,316px); }
body[data-page="home"] .map-point[data-area="Seremban"] { transform: translate(146px,332px); }
body[data-page="home"] .map-point[data-area="Melaka"] { transform: translate(156px,362px); }
body[data-page="home"] .map-point[data-area="Johor Bahru"] { transform: translate(202px,401px); }
body[data-page="home"] .map-point[data-area="Sabah / Sarawak"] { transform: translate(520px,320px); }
.map-waterline { fill: none; stroke: #aac4c0; stroke-width: 3; stroke-dasharray: 4 7; stroke-linecap: round; opacity: .7; }
.map-labels text { font: 700 12px "DM Sans", sans-serif; letter-spacing: .16em; fill: #9b9c98; }
.map-point { cursor: pointer; color: var(--green); }
.map-point:focus { outline: none; }
.map-point:focus-visible > circle:not(.pulse) { stroke: var(--red); stroke-width: 6; }
.map-point > circle:not(.pulse) { fill: var(--green); stroke: white; stroke-width: 3; transition: fill .2s ease; }
.map-point .pulse { fill: rgba(41,75,62,.15); opacity: 0; }
.map-point text { font: 700 11px "DM Sans", sans-serif; fill: #444743; paint-order: stroke; stroke: #f1eee8; stroke-width: 4px; stroke-linejoin: round; }
.map-point:hover > circle:not(.pulse), .map-point.active > circle:not(.pulse) { fill: var(--red); }
.map-point.active .pulse { fill: rgba(232,23,22,.18); animation: map-pulse 1.8s ease-out infinite; opacity: 1; }
@keyframes map-pulse { 0% { transform: scale(.4); opacity: .9; } 100% { transform: scale(1.25); opacity: 0; } }
.map-key { position: absolute; z-index: 3; left: 28px; right: 28px; bottom: 24px; display: flex; justify-content: space-between; color: #6a6d69; font-size: .72rem; }
.map-key span:first-child { display: flex; gap: 8px; align-items: center; }
.map-key i { width: 8px; height: 8px; border-radius: 50%; background: var(--red); }

.faq-section { background: white; }
.faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 9vw; align-items: start; }
.faq-heading { position: sticky; top: 130px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { position: relative; padding: 26px 52px 26px 0; list-style: none; cursor: pointer; font: 650 1.12rem/1.35 "Manrope", sans-serif; letter-spacing: -.02em; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { position: absolute; right: 3px; top: 24px; width: 30px; height: 30px; border: 1px solid #bfc1c2; border-radius: 50%; }
.faq-item summary span::before, .faq-item summary span::after { content: ""; position: absolute; left: 8px; right: 8px; top: 14px; height: 1.5px; background: var(--ink); transition: transform .2s ease; }
.faq-item summary span::after { transform: rotate(90deg); }
.faq-item[open] summary { color: var(--red); }
.faq-item[open] summary span { border-color: var(--red); }
.faq-item[open] summary span::after { transform: rotate(0); }
.faq-answer { overflow: hidden; }
.faq-answer p { max-width: 680px; margin: 0; padding: 0 52px 27px 0; color: var(--slate); }

.about-section { position: relative; overflow: hidden; background: var(--warm); }
.about-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 8vw; align-items: start; }
.about-mark { position: sticky; top: 130px; color: var(--red); font: 800 clamp(8rem, 18vw, 15rem)/.78 "Manrope", sans-serif; letter-spacing: -.15em; transform: translateX(-.08em); }
.about-copy h2 { max-width: 800px; }
.about-lead { max-width: 780px; margin: 35px 0; font-size: 1.35rem; line-height: 1.55; }
.about-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; color: var(--slate); }
.company-details { display: grid; grid-template-columns: .7fr 1.3fr; gap: 30px; margin-top: 55px; padding-top: 28px; border-top: 1px solid #d1cfcb; }
.company-details div { display: grid; align-content: start; }
.company-details span { color: var(--slate); font-size: .78rem; margin-bottom: 8px; }
.company-details strong { line-height: 1.5; }

.contact-section { padding: 110px 0; color: white; background: var(--red); }
.contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9vw; align-items: start; }
.contact-copy .section-index { color: white; }
.contact-copy h2 { max-width: 570px; }
.contact-copy > p:not(.section-index) { max-width: 500px; color: rgba(255,255,255,.8); font-size: 1.05rem; }
.contact-address { display: flex; gap: 15px; margin-top: 45px; color: rgba(255,255,255,.9); }
.contact-address svg { width: 25px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.5; }
address { font-style: normal; }
.enquiry-form { padding: 36px; border-radius: 20px; color: var(--ink); background: white; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.enquiry-form label { display: grid; gap: 7px; margin-bottom: 20px; font-weight: 700; font-size: .82rem; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { width: 100%; border: 1px solid #cfd1d2; border-radius: 7px; padding: 12px 13px; color: var(--ink); background: white; outline: 0; }
.enquiry-form input:focus, .enquiry-form select:focus, .enquiry-form textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(232,23,22,.1); }
.enquiry-form textarea { resize: vertical; }
.enquiry-form .consent { display: flex; grid-template-columns: auto 1fr; align-items: start; gap: 10px; color: var(--slate); font-weight: 400; }
.consent input { width: 17px; margin-top: 4px; accent-color: var(--red); }
.form-button { width: 100%; }
.form-status { margin: 14px 0 0; padding: 12px; text-align: center; color: var(--green); background: #eaf3ef; border-radius: 6px; font-weight: 600; }

.site-footer { padding: 70px 0 24px; background: #1f2022; color: #d1d2d4; }
.footer-top { display: grid; grid-template-columns: 1.4fr .7fr .7fr 1fr; gap: 55px; padding-bottom: 60px; }
.footer-brand img { width: 190px; }
.footer-brand p { max-width: 300px; color: #929497; }
.footer-nav, .footer-address { display: grid; align-content: start; gap: 10px; font-size: .87rem; }
.footer-nav strong, .footer-address strong { color: white; margin-bottom: 8px; }
.footer-nav a { color: #aeb0b3; }
.footer-nav a:hover { color: white; }
.footer-address address { color: #aeb0b3; }
.footer-bottom { padding-top: 22px; border-top: 1px solid #3e4043; display: flex; justify-content: space-between; gap: 24px; color: #85878a; font-size: .74rem; }

.profile-modal { width: min(900px, calc(100% - 32px)); max-height: min(820px, calc(100vh - 40px)); padding: 0; border: 0; border-radius: 24px; overflow: auto; box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.profile-modal::backdrop { background: rgba(17,18,19,.72); backdrop-filter: blur(5px); }
.modal-close { position: absolute; z-index: 2; right: 18px; top: 16px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(255,255,255,.88); font-size: 1.7rem; cursor: pointer; }
.modal-layout { display: grid; grid-template-columns: 240px 1fr; min-height: 620px; }
.modal-sidebar { padding: 74px 28px 30px; color: white; background: var(--green); }
.modal-avatar { height: 180px; display: grid; place-items: center; border-radius: 16px; background: rgba(255,255,255,.13); font: 700 3rem "Manrope", sans-serif; }
.modal-sidebar p { margin: 24px 0 0; font-weight: 700; }
.modal-sidebar span { color: #c4d2cc; font-size: .88rem; }
.modal-content { padding: 62px 55px; }
.modal-content h2 { margin: 0; font-size: 3rem; }
.modal-summary { color: var(--slate); font-size: 1.05rem; }
.biodata-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 30px 0; background: var(--line); border: 1px solid var(--line); }
.biodata-grid div { padding: 14px; background: white; }
.biodata-grid dt { color: var(--slate); font-size: .73rem; }
.biodata-grid dd { margin: 3px 0 0; font-weight: 700; }
.modal-skills h3 { font-size: 1rem; }
.modal-skills > div { display: flex; flex-wrap: wrap; gap: 8px; }
.modal-skills span { padding: 7px 11px; border-radius: 999px; background: var(--mist); font-size: .8rem; }
.modal-disclaimer { margin: 28px 0; padding: 14px; border-left: 3px solid var(--red); color: var(--slate); background: var(--warm); font-size: .76rem; }

@media (max-width: 1020px) {
  .desktop-nav { display: none; }
  .header-inner { grid-template-columns: 1fr auto auto; }
  .menu-toggle { display: block; }
  .hero { min-height: 700px; }
  .hero-assurance { width: 430px; max-width: 68vw; }
  .support-layout, .coverage-layout { gap: 6vw; }
  .profile-grid { grid-template-columns: repeat(2,1fr); }
  .profile-card:last-child { display: grid; grid-template-columns: 45% 55%; grid-column: 1 / -1; }
  .profile-card:last-child .profile-portrait { height: 100%; min-height: 310px; }
  .footer-top { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-address { grid-column: 2 / -1; }
}

@media (max-width: 760px) {
  .shell { width: min(calc(100% - 32px), var(--max)); }
  .site-header { color: var(--ink); background: rgba(255,255,255,.96); }
  .header-inner { height: 72px; grid-template-columns: 1fr auto; gap: 10px; }
  .brand { width: 152px; height: 48px; }
  .brand img { width: 150px; }
  .header-cta { display: none; }
  .hero { height: auto; min-height: 760px; align-items: end; padding-bottom: 120px; }
  .hero-image { object-position: 64% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(20,19,18,.88) 0%, rgba(20,19,18,.56) 55%, rgba(20,19,18,.08) 100%); }
  .hero-copy { padding-top: 230px; }
  h1 { font-size: clamp(3.1rem, 15vw, 4.4rem); }
  .hero-intro { margin: 22px 0 28px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 16px; }
  .hero-assurance { left: 0; right: auto; width: calc(100% - 16px); max-width: none; padding: 18px 20px; }
  .decision-grid { grid-template-columns: 1fr; padding: 16px 0; }
  .decision-grid p { padding: 10px 0; }
  .decision-grid p + p { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
  .section { padding: 82px 0; }
  .section-heading h2, .about-copy h2, .contact-copy h2 { font-size: clamp(2.45rem, 11vw, 3.4rem); }
  .support-layout, .coverage-layout, .contact-layout, .about-layout, .process-header, .faq-layout { grid-template-columns: 1fr; gap: 55px; }
  .sticky-heading, .about-mark, .faq-heading { position: static; }
  .support-item { grid-template-columns: 52px 1fr; gap: 18px; }
  .support-icon { width: 50px; height: 50px; }
  .caregiver-heading { align-items: start; flex-direction: column; gap: 22px; }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-card:last-child { display: block; grid-column: auto; }
  .profile-card:last-child .profile-portrait { height: 248px; min-height: 0; }
  .process-list li { grid-template-columns: 60px 1fr; }
  .map-card { min-height: 460px; margin-inline: -8px; }
  .map-key { flex-direction: column; gap: 4px; }
  .about-mark { font-size: 9rem; }
  .about-columns, .company-details { grid-template-columns: 1fr; gap: 15px; }
  .company-details { gap: 28px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .enquiry-form { padding: 24px 20px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 40px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-address { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; }
  .modal-layout { grid-template-columns: 1fr; }
  .modal-sidebar { display: grid; grid-template-columns: 100px 1fr; gap: 16px; padding: 65px 22px 24px; }
  .modal-avatar { width: 100px; height: 100px; grid-row: 1 / 3; }
  .modal-sidebar p { margin: 18px 0 0; }
  .modal-content { padding: 35px 22px; }
  .modal-content h2 { font-size: 2.4rem; }
  .biodata-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
