:root{
  --navy:#232B6B; --navy-deep:#1A2153; --red:#D71F2E; --red-dark:#B4141F;
  --cloud:#F6F7FB; --mist:#E8ECF7; --leaf:#1E8A5A; --leaf-bg:#E7F5EE;
  --ink:#1F2437; --ink-soft:#5A6178; --line:#DDE2EF; --white:#fff;
  --gold:#F4B63F; --blush:#FDEFE8; --dawn:#FFF7EF;
  --r:18px; --r-sm:12px;
  --shadow:0 6px 24px rgba(35,43,107,.10);
  --font-en:"Baloo 2","Noto Sans SC",sans-serif;
  --font-body:"Noto Sans","Noto Sans SC",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--ink);font-size:18px;line-height:1.65;background:var(--white)}
img,svg{max-width:100%}
a{color:var(--navy)}
h1,h2,h3,h4{font-family:var(--font-en);color:var(--navy);line-height:1.25;font-weight:700}
.zh{display:none}
body.lang-zh .zh{display:inline}
body.lang-zh .en{display:none}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);background:#FCEBEC;border-radius:999px;padding:6px 14px;margin-bottom:14px}
section{padding:56px 0}
.section-alt{background:var(--cloud)}
.section-warm{background:var(--dawn)}
h1{font-size:clamp(30px,4.2vw,46px)}
h2{font-size:clamp(24px,3.2vw,36px);margin-bottom:10px}
.sub{color:var(--ink-soft);max-width:780px;margin-bottom:30px}
.btn{display:inline-block;font-family:var(--font-en);font-weight:700;font-size:17px;border-radius:12px;padding:14px 26px;text-decoration:none;cursor:pointer;border:2px solid transparent;transition:.15s;min-height:44px}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark)}
.btn-ghost{background:#fff;color:var(--navy);border-color:var(--navy)}
.btn-ghost:hover{background:var(--mist)}
.btn-green{background:#25D366;color:#fff}
.badge-gov{display:inline-block;background:var(--leaf-bg);color:var(--leaf);font-weight:700;font-size:13px;border-radius:999px;padding:4px 12px}
.badge-mist{display:inline-block;background:var(--mist);color:var(--navy);font-weight:700;font-size:13px;border-radius:999px;padding:4px 12px}

/* Utility + header */
.utility{background:var(--navy-deep);color:#fff;font-size:14px}
.utility .container{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding-top:8px;padding-bottom:8px}
.utility a{color:#fff;text-decoration:none;opacity:.9}
.utility a:hover{opacity:1;text-decoration:underline}
.utility .phone{font-weight:700;color:var(--gold)}
.lang-toggle{background:#fff;color:var(--navy);border:none;border-radius:999px;padding:5px 14px;font-weight:700;cursor:pointer;font-size:14px;font-family:var(--font-body)}
/* The switch became an <a> when the languages split into their own trees, and
   ".utility a" (0,1,1) outranks ".lang-toggle" (0,1,0) — so the label was
   being painted white on the white pill and vanished. Match on both. */
.utility a.lang-toggle{color:var(--navy);opacity:1;text-decoration:none;display:inline-block;line-height:1.5}
.utility a.lang-toggle:hover{background:var(--mist);text-decoration:none;opacity:1}
header{background:#fff;border-bottom:3px solid var(--red);position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;max-width:1180px;margin:0 auto}
.logo{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.logo img{height:52px;width:auto;display:block}
@media (max-width:560px){.logo img{height:42px}}
nav.main ul{display:flex;gap:2px;list-style:none;flex-wrap:nowrap}
nav.main a{display:block;padding:10px 11px;border-radius:10px;text-decoration:none;font-weight:700;font-family:var(--font-en);font-size:15px;color:var(--navy)}
nav.main a:hover,nav.main a.active{background:var(--mist)}
.nav-cta{display:flex;gap:10px;align-items:center}
.hamburger{display:none;background:none;border:2px solid var(--navy);border-radius:10px;padding:8px 12px;font-size:20px;color:var(--navy);cursor:pointer}

/* Breadcrumb */
.crumbs{font-size:14.5px;color:var(--ink-soft);padding:16px 0}
.crumbs a{color:var(--ink-soft);text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* Page hero */
.page-hero{background:linear-gradient(160deg,var(--dawn) 0%,var(--blush) 70%);padding:44px 0 50px}
.page-hero p.lead{font-size:19px;color:var(--ink-soft);max-width:760px;margin-top:12px}
.page-hero .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.pricing-model-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:720px;margin-top:24px}
.pricing-model{display:flex;align-items:center;gap:14px;padding:15px 20px;border:2px solid var(--navy);border-radius:14px;background:#fff;color:var(--navy);text-decoration:none;font-family:var(--font-en);font-weight:700}
.pricing-model b{font-size:27px;line-height:1;color:var(--red)}
.pricing-model.active{background:var(--navy);color:#fff}
.pricing-model.active b{color:var(--gold)}
.pricing-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.hero-image-wrap{border-radius:26px;overflow:hidden;box-shadow:0 18px 30px rgba(35,43,107,.14);aspect-ratio:4/3;background:var(--blush)}
.hero-image{display:block;width:100%;height:100%;object-fit:cover}
.service-index-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}
.service-index-hero-image{width:100%;aspect-ratio:16/10;max-height:430px;object-fit:cover;display:block;border-radius:26px;box-shadow:0 18px 30px rgba(35,43,107,.14)}
.main-page-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}
.main-page-hero-copy{min-width:0}
.main-page-hero-image{width:100%;aspect-ratio:4/3;max-height:360px;object-fit:cover;object-position:center 28%;display:block;border-radius:var(--r);box-shadow:0 18px 30px rgba(35,43,107,.14)}
.page-hero-nav{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff}
.page-hero-nav h1{color:#fff}
.page-hero-nav p.lead{color:#E8ECF7}

/* Cards & grids */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:24px}
.card h3{font-size:19px;margin-bottom:8px}
.card p{font-size:15.5px;color:var(--ink-soft)}
.card .more{font-weight:700;color:var(--red);text-decoration:none}
.card .more::after{content:" →"}
.icon-big{font-size:32px;margin-bottom:8px}

/* Highlight strip on each page */
.hl-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:-34px;position:relative;z-index:5}
.hl{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:16px 18px;font-size:15px;border-left:5px solid var(--red)}
.hl b{display:block;font-family:var(--font-en);color:var(--navy);font-size:16.5px}

/* Service listing */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc-card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:6px;border-top:5px solid var(--gold);overflow:hidden}
.svc-card-image{width:calc(100% + 40px);max-width:none;height:154px;object-fit:cover;object-position:center 25%;display:block;margin:-20px -20px 14px;background:var(--mist)}
.svc-card.cat-independence{border-top-color:var(--red)}
.svc-card.cat-clinical{border-top-color:var(--leaf)}
.service-detail-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}
.service-detail-hero-copy{min-width:0}
.service-detail-image{width:100%;aspect-ratio:4/3;max-height:350px;object-fit:cover;object-position:center 22%;display:block;border-radius:var(--r);box-shadow:0 18px 30px rgba(35,43,107,.14)}
.svc-card h3{font-size:18px}
.svc-card .rate{font-family:var(--font-en);font-weight:800;color:var(--navy)}
.svc-card p{font-size:14.5px;color:var(--ink-soft);flex:1}
.svc-card a{font-weight:700;color:var(--red);text-decoration:none}
.svc-card a::after{content:" →"}

/* Service detail */
.svc-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;align-items:start}
.checklist{list-style:none;margin:14px 0}
.checklist li{padding:8px 0 8px 30px;position:relative;border-bottom:1px dashed var(--line);font-size:16.5px}
.checklist li::before{content:"✓";position:absolute;left:0;color:var(--leaf);font-weight:800}
.price-box{background:var(--cloud);border-radius:var(--r);padding:24px;border:2px solid var(--mist);position:sticky;top:96px}
.price-box .amount{font-family:var(--font-en);font-size:36px;font-weight:800;color:var(--navy)}
.price-box .unit{color:var(--ink-soft);font-size:15px}
.price-box .fund{margin:14px 0;font-size:14.5px}
.price-box hr{border:0;border-top:1px dashed var(--line);margin:16px 0}
.service-price-models{display:grid;gap:12px;margin:12px 0 16px}
.service-price-model{background:#fff;border:2px solid var(--line);border-radius:14px;padding:15px}
.service-price-model.standard{border-color:var(--navy)}
.service-price-model.mdt{border-color:var(--red);background:var(--dawn)}
.service-price-model .model-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--navy);font-weight:800;font-family:var(--font-en);font-size:15px}
.service-price-model .model-label b{font-size:13px;border-radius:999px;padding:3px 9px;background:var(--mist)}
.service-price-model.mdt .model-label b{background:#FCEBEC;color:var(--red)}
.service-price-model .model-rate{font-family:var(--font-en);font-size:30px;line-height:1.2;font-weight:800;color:var(--navy);margin:6px 0 2px}
.service-price-model.mdt .model-rate{color:var(--red)}
.service-price-model .model-unit,.service-price-note{font-size:13px;color:var(--ink-soft)}
.contribution-table{width:100%;min-width:0;margin-top:10px;font-size:13px;border-collapse:collapse}
.contribution-table th,.contribution-table td{padding:7px 4px;white-space:normal;background:transparent;border-bottom:1px dashed var(--line)}
.contribution-table th:first-child,.contribution-table td:first-child{text-align:left}
.contribution-table th:last-child,.contribution-table td:last-child{text-align:right}
.contribution-table thead th{color:var(--ink-soft);font-family:var(--font-body);font-weight:700}
.contribution-table tbody td:last-child{color:var(--navy);font-weight:800}
.form label{display:block;font-weight:700;color:var(--navy);font-size:14.5px;margin:10px 0 4px}
.form input,.form select,.form textarea{width:100%;padding:11px 12px;border:2px solid var(--line);border-radius:10px;font-size:16px;font-family:var(--font-body)}
.form textarea{min-height:80px;resize:vertical}
.form .btn{width:100%;text-align:center;margin-top:14px}
.form .alt{font-size:13.5px;color:var(--ink-soft);text-align:center;margin-top:10px}
.form select{background:#fff;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A6178' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.form-status{font-size:14.5px;font-weight:700;text-align:center;margin-top:10px;line-height:1.45}
.form-status:empty{display:none}
.form-status.is-sending{color:var(--ink-soft)}
.form-status.is-ok{color:var(--leaf);background:var(--leaf-bg);border-radius:10px;padding:10px 12px}
.form-status.is-fail{color:var(--red-dark);background:#FCEBEC;border-radius:10px;padding:10px 12px}

/* Tables */
.table-scroll{overflow-x:auto;border-radius:var(--r);box-shadow:var(--shadow);background:#fff}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:15.5px}
th,td{padding:12px 14px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child,td:first-child{text-align:left;white-space:normal}
thead th{background:var(--navy);color:#fff;font-family:var(--font-en);font-weight:700}
tbody tr:nth-child(even){background:var(--cloud)}
td.care{color:var(--leaf);font-weight:700}
.tbl-note{font-size:14px;color:var(--ink-soft);margin-top:12px}
.fee-bar{display:flex;border-radius:14px;overflow:hidden;height:60px;box-shadow:var(--shadow);margin:20px 0}
.fee-90{flex:9;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 22px;font-family:var(--font-en);font-weight:700}
.fee-10{flex:1;background:var(--red);color:#fff;display:grid;place-items:center;font-family:var(--font-en);font-weight:700;min-width:80px}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.step{background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:22px}
.step .num{width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--font-en);font-weight:800;font-size:18px;margin-bottom:12px}
.step h3{font-size:18px;margin-bottom:6px}
.step p{font-size:15.5px;color:var(--ink-soft)}

/* Planner */
.planner{background:#fff;border-radius:22px;box-shadow:var(--shadow);border:2px solid var(--mist);overflow:hidden}
.tabs{display:flex;background:var(--mist)}
.tab-btn{flex:1;padding:16px 10px;border:none;background:transparent;font-family:var(--font-en);font-weight:700;font-size:16px;color:var(--navy);cursor:pointer;border-bottom:4px solid transparent}
.tab-btn.active{background:#fff;border-bottom-color:var(--red)}
.tab-btn small{display:block;font-weight:500;font-size:12.5px;color:var(--ink-soft);font-family:var(--font-body)}
.tab-panel{display:none;padding:30px}
.tab-panel.active{display:block}
.planner-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.field{margin-bottom:18px}
.field label{display:block;font-weight:700;color:var(--navy);margin-bottom:6px;font-size:16px}
.field select,.field input{width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:10px;font-size:17px;font-family:var(--font-body)}
.alloc-row{display:grid;grid-template-columns:1fr 90px;gap:12px;align-items:center;margin-bottom:14px}
.alloc-row .name{font-weight:700}
.alloc-row .name small{display:block;font-weight:400;color:var(--ink-soft);font-size:13.5px}
.alloc-row input[type=number]{padding:10px;border:2px solid var(--line);border-radius:10px;font-size:17px;text-align:center;width:90px}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px}
.d1{background:var(--gold)}.d2{background:var(--red)}.d3{background:var(--leaf)}
.pct-warn{color:var(--red);font-weight:700;font-size:14.5px;min-height:22px}
.result-card{background:var(--cloud);border-radius:16px;padding:22px}
.result-big{font-family:var(--font-en);font-size:32px;color:var(--navy);font-weight:800}
.result-line{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:16px}
.result-line b{color:var(--navy)}
.pie-wrap{display:flex;gap:22px;align-items:center;margin-top:16px;flex-wrap:wrap}
.pie-legend{font-size:14.5px;line-height:2}
.hours-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.hour-box{background:#fff;border-radius:12px;padding:14px;text-align:center;border-top:4px solid var(--gold)}
.hour-box:nth-child(2){border-top-color:var(--red)}
.hour-box:nth-child(3){border-top-color:var(--leaf)}
.hour-box b{font-family:var(--font-en);font-size:26px;color:var(--navy);display:block}
.hour-box span{font-size:13.5px;color:var(--ink-soft)}
.disclaimer{font-size:13.5px;color:var(--ink-soft);margin-top:16px}
.st-fee-note{background:var(--blush);border-left:4px solid var(--red);border-radius:10px;padding:12px 16px;font-size:15px;margin-bottom:18px}

/* AT-HM */
.athm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.athm{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:22px}
.athm .icon{font-size:34px;margin-bottom:8px}
.athm h3{font-size:18px;margin-bottom:6px}
.athm p{font-size:15px;color:var(--ink-soft)}
.athm .tag{display:inline-block;margin-top:10px;font-size:12.5px;font-weight:700;border-radius:999px;padding:3px 10px;background:var(--leaf-bg);color:var(--leaf)}
.athm .tag.rx{background:var(--mist);color:var(--navy)}
.gentle{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:24px;margin-top:22px}
.gentle h3{font-size:18px;margin-bottom:8px}
.gentle ul{margin-left:20px;color:var(--ink-soft);font-size:15.5px}

/* Bands */
.showroom-band{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 80%);color:#fff;border-radius:22px;padding:38px;display:grid;grid-template-columns:1.2fr .8fr;gap:26px;align-items:center}
.showroom-band h2{color:#fff}
.showroom-band .meta{font-size:15.5px;line-height:2;opacity:.95}
.hosp-band{background:var(--leaf-bg);border-radius:22px;padding:32px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.hosp-band .icon{font-size:52px}
.hosp-band h3{font-size:22px;margin-bottom:6px}
.hosp-band p{color:var(--ink-soft);font-size:16px}
.contact-band{background:var(--navy);color:#fff;border-radius:22px;padding:40px;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center}
.contact-band h2{color:#fff}
.contact-band .big-phone{font-family:var(--font-en);font-size:clamp(28px,4vw,42px);font-weight:800;color:var(--gold)}
.contact-list{list-style:none;font-size:16.5px}
.contact-list li{padding:6px 0}
.contact-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}

/* Quotes / FAQ */
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.quote{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:24px;font-size:16px;color:var(--ink-soft)}
.quote .stars{color:var(--gold);font-size:18px;letter-spacing:2px}
.quote b{display:block;color:var(--navy);margin-top:12px}
details{background:#fff;border-radius:var(--r-sm);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
summary{padding:18px 22px;font-weight:700;color:var(--navy);cursor:pointer;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:14px}
summary::after{content:"+";font-family:var(--font-en);font-size:24px;color:var(--red)}
details[open] summary::after{content:"–"}
details .a{padding:0 22px 18px;color:var(--ink-soft);font-size:16px}

/* Floating contact */
.float-stack{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:12px;z-index:99}
.fab{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:26px;text-decoration:none;box-shadow:0 8px 22px rgba(0,0,0,.25);border:none;cursor:pointer;font-family:inherit;padding:0}
.fab-wa{background:#25D366}.fab-wx{background:#09B83E}.fab-ph{background:var(--red)}

/* WeChat QR modal */
.wx-overlay{position:fixed;inset:0;background:rgba(26,33,83,.55);display:none;place-items:center;z-index:200;padding:20px}
.wx-overlay.open{display:grid}
.wx-modal{background:#fff;border-radius:22px;padding:28px;max-width:360px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.3);position:relative}
.wx-modal h3{font-size:20px;margin-bottom:6px}
.wx-modal p{font-size:15px;color:var(--ink-soft);margin-bottom:16px}
.wx-modal img{width:230px;height:230px;border-radius:14px;border:2px solid var(--line);display:block;margin:0 auto}
.wx-modal .wx-hint{font-size:13.5px;color:var(--ink-soft);margin:14px 0 0}
.wx-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:28px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:4px 8px}
.wx-close:hover{color:var(--navy)}

/* Inline QR card (contact page) */
.qr-inline{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:16px;border-top:1px dashed var(--line)}
.qr-inline img{width:132px;height:132px;border-radius:12px;border:2px solid var(--line);flex:0 0 auto}
.qr-inline .qr-txt{flex:1;min-width:180px;font-size:15px;color:var(--ink-soft)}
.qr-inline .qr-txt b{display:block;color:var(--navy);font-family:var(--font-en);font-size:16.5px;margin-bottom:4px}

/* Form card (used inside dark contact bands) */
.form-card{background:#fff;border-radius:18px;padding:26px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.form-card h3{font-size:20px;margin-bottom:4px}
.form-card > p{font-size:15px;color:var(--ink-soft);margin-bottom:6px}

/* Care models — 10% standard vs 25% MDT */
.model-pick{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pick{border-radius:var(--r);padding:24px}
.pick .kicker{display:block;font-size:13.5px;margin-bottom:4px}
.pick h3{font-size:20px}
.pick ul{list-style:none;margin-top:12px}
.pick li{padding:8px 0 8px 18px;position:relative;font-size:15.5px}
.pick li::before{content:"•";position:absolute;left:2px;font-weight:800}
.pick li:last-child{border-bottom:0}
.pick-std{background:var(--navy);color:#E8ECF7}
.pick-std h3,.pick-std li::before{color:#fff}
.pick-std .kicker{color:#C9CEE8}
.pick-std li{border-bottom:1px solid rgba(255,255,255,.14)}
.pick-mdt{background:#fff;border:2px solid var(--red);box-shadow:var(--shadow)}
.pick-mdt .kicker{color:var(--red);font-weight:700}
.pick-mdt li{border-bottom:1px dashed var(--line);color:var(--ink-soft)}
.pick-mdt li::before{color:var(--red)}
th.col-mdt{background:var(--red)}
td.col-mdt{background:#FDF3F4;color:var(--navy);font-weight:700}
/* Comparison tables hold full sentences rather than rates, so the default
   nowrap cells would force the row far wider than the page and crush the
   first column. Fixed layout keeps the three columns in proportion. */
table.cmp{table-layout:fixed;min-width:700px}
table.cmp th,table.cmp td{white-space:normal;text-align:left;vertical-align:top;font-size:15px;line-height:1.55}
table.cmp th:first-child,table.cmp td:first-child{width:19%}
table.cmp th:nth-child(2),table.cmp td:nth-child(2),
table.cmp th:nth-child(3),table.cmp td:nth-child(3){width:40.5%}
.was{color:var(--ink-soft);text-decoration:line-through;font-weight:400;margin-right:8px}
.fee-bar .fee-75{flex:75;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 22px;font-family:var(--font-en);font-weight:700}
.fee-bar .fee-15{flex:15;background:var(--navy-deep);color:#fff;display:grid;place-items:center;font-family:var(--font-en);font-weight:700;min-width:80px;font-size:14px;text-align:center}
.dl-card{display:flex;gap:16px;align-items:flex-start}
.dl-card .ico{font-size:30px;line-height:1;flex:0 0 auto}
.dl-card .btn{margin-top:12px;padding:10px 18px;font-size:15px}

/* Calculator — care-model switch and side-by-side comparison */
.model-switch{display:flex;border:2px solid var(--line);border-radius:var(--r-sm);overflow:hidden;margin-bottom:18px}
.model-switch button{flex:1;padding:12px 10px;border:none;background:#fff;font-family:var(--font-en);font-weight:700;font-size:15.5px;color:var(--navy);cursor:pointer;line-height:1.3;min-height:44px}
.model-switch button small{display:block;font-family:var(--font-body);font-weight:400;font-size:12.5px;color:var(--ink-soft)}
.model-switch button.on{background:var(--red);color:#fff}
.model-switch button.on small{color:#FCEBEC}
.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.vs-card{background:#fff;border-radius:16px;padding:20px;border-top:5px solid var(--navy);box-shadow:var(--shadow)}
.vs-card.vs-mdt{border-top-color:var(--red)}
.vs-card h4{font-size:16.5px;margin-bottom:2px}
.vs-card .vs-sub{font-size:13.5px;color:var(--ink-soft);margin-bottom:10px}
.vs-big{font-family:var(--font-en);font-size:28px;color:var(--navy);font-weight:800}
.delta{font-weight:700;font-size:14px;white-space:nowrap}
.delta.up{color:var(--leaf)}
.delta.down{color:var(--red)}

/* Footer */
footer{background:var(--navy-deep);color:#C9CEE8;font-size:14.5px;padding:44px 0 30px;margin-top:60px}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:26px;margin-bottom:26px}
footer h4{color:#fff;font-size:15.5px;margin-bottom:10px}
footer a{color:#C9CEE8;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:#fff}
footer .legal{border-top:1px solid rgba(255,255,255,.15);padding-top:18px;font-size:13px;opacity:.8}

/* Grouping eleven links under seven headings brought the row back inside the
   1180px container, so the hamburger no longer has to appear wider than the
   page itself. */
@media (max-width:1080px){
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:var(--shadow);padding:10px 20px 20px}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column}
  .hamburger{display:block}
  .nav-cta .btn{display:none}
}

@media (max-width:960px){
  .grid2,.grid3,.svc-grid,.planner-grid,.svc-layout,.showroom-band,.contact-band,.athm-grid,.hl-strip,.service-index-hero-grid,.service-detail-hero,.main-page-hero,.model-pick,.vs-grid{grid-template-columns:1fr}
  .grid4,.steps,.quote-grid{grid-template-columns:1fr 1fr}
  /* Keep hero photography compact once the copy and image stack vertically.
     An explicit height is more reliable than aspect-ratio in older mobile
     browsers and in-app webviews, which may otherwise use the image's
     intrinsic height and turn the photo into a full-screen block. */
  .hero-image-wrap,
  .service-index-hero-image,
  .service-detail-image,
  .main-page-hero-image{
    width:100%;
    height:clamp(220px,38vw,320px);
    min-height:0;
    max-height:320px;
    aspect-ratio:auto;
    object-fit:cover;
  }
  section{padding:44px 0}
  .price-box{position:static}
  footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .grid4,.steps,.quote-grid,.hours-grid{grid-template-columns:1fr}
  body{font-size:17px}
  .utility .container{gap:12px;flex-wrap:wrap;justify-content:center}
  .tab-btn{font-size:13.5px;padding:12px 6px}
  .pricing-model-switch{grid-template-columns:1fr}
  .pricing-actions .btn{width:100%;text-align:center}
  footer{padding:34px 0 24px}
  footer .cols{grid-template-columns:1fr;gap:0;margin-bottom:20px}
  footer .cols > div{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.14);min-width:0}
  footer .cols > div:first-child{padding-top:0}
  footer .cols p,footer .cols a{overflow-wrap:anywhere;word-break:normal}
  footer h4{font-size:17px;margin-bottom:8px}
  footer a{padding:5px 0}
  .service-detail-hero .service-price-models-mobile-hero{
    width:100%;
    padding:10px;
    border-radius:14px;
    margin-top:-2px;
    background:rgba(255,255,255,.88);
  }
  .service-price-models-mobile-hero{gap:9px;margin:0}
  .service-price-models-mobile-hero .service-price-model{padding:11px 12px;border-radius:12px}
  .service-price-models-mobile-hero .service-price-model .model-label{font-size:13.5px}
  .service-price-models-mobile-hero .service-price-model .model-label b{font-size:12px;padding:2px 8px}
  .service-price-models-mobile-hero .service-price-model .model-rate{font-size:25px;margin:3px 0 0}
  .service-price-models-mobile-hero .service-price-model .model-unit,
  .service-price-models-mobile-hero .service-price-note{font-size:11.5px}
  .service-price-models-mobile-hero .contribution-table{font-size:11.5px;margin-top:7px}
  .service-price-models-mobile-hero .contribution-table th,
  .service-price-models-mobile-hero .contribution-table td{padding:5px 3px}
  .svc-card-image{height:180px;object-position:center 24%}
  .hero-image-wrap,
  .service-index-hero-image,
  .service-detail-image,
  .main-page-hero-image{
    height:clamp(200px,56vw,250px);
    max-height:250px;
  }
  .service-detail-image{object-position:center 22%}
  .main-page-hero-image{object-position:center 25%}
}

/* ============================================================
   CareU enquiry assistant (assets/chat.js)
   A guided chat that asks the same eligibility questions as the
   forms and emails the answers through FormSubmit.
   ============================================================ */
.fab-chat{background:var(--navy)}
.cu-chat{position:fixed;right:18px;bottom:18px;width:min(376px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 36px));background:#fff;border-radius:20px;box-shadow:0 24px 60px rgba(20,25,60,.32);display:none;flex-direction:column;overflow:hidden;z-index:120;font-size:15px}
.cu-chat.open{display:flex}
.cu-hd{background:var(--navy);color:#fff;display:flex;align-items:center;gap:10px;padding:14px 14px 14px 16px}
.cu-hd img{width:38px;height:38px;border-radius:50%;background:#fff;object-fit:cover;flex:none}
.cu-hd b{font-family:var(--font-en);font-size:16px;line-height:1.2;display:block}
.cu-hd .sub{font-size:12px;opacity:.82;line-height:1.3}
.cu-x{margin-left:auto;background:transparent;border:none;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:8px}
.cu-x:hover{background:rgba(255,255,255,.16)}
.cu-body{flex:1;overflow-y:auto;padding:16px 14px;background:var(--cloud);display:flex;flex-direction:column;gap:10px}
.cu-msg{max-width:86%;padding:11px 14px;border-radius:16px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.cu-msg.bot{background:#fff;color:var(--ink);border-bottom-left-radius:5px;box-shadow:0 2px 8px rgba(35,43,107,.08);align-self:flex-start}
.cu-msg.user{background:var(--navy);color:#fff;border-bottom-right-radius:5px;align-self:flex-end}
.cu-typing{align-self:flex-start;font-size:13px;color:var(--ink-soft);padding:2px 6px}
.cu-chips{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start;max-width:100%}
.cu-chip{background:#fff;border:2px solid var(--mist);color:var(--navy);font-family:inherit;font-size:14px;font-weight:700;border-radius:999px;padding:9px 14px;cursor:pointer;line-height:1.3;text-align:left}
.cu-chip:hover{border-color:var(--navy);background:var(--mist)}
.cu-inrow{display:flex;gap:8px;align-self:stretch}
.cu-in{flex:1;min-width:0;padding:11px 12px;border:2px solid var(--line);border-radius:12px;font-size:16px;font-family:var(--font-body)}
.cu-go{background:var(--red);color:#fff;border:none;border-radius:12px;font-family:inherit;font-weight:700;font-size:15px;padding:0 18px;cursor:pointer}
.cu-go:hover{background:var(--red-dark)}
.cu-ft{padding:10px 14px 12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-soft);line-height:1.45;text-align:center;background:#fff}
.cu-ft a{font-weight:700}
@media(max-width:420px){
  .cu-chat{right:8px;left:8px;bottom:8px;width:auto;max-height:calc(100vh - 16px)}
}

/* ============================================================
   Service process flows (process.html + the short summary
   embedded on every service page).
   A vertical rail rather than a left-to-right chart: several
   flows run to seven steps with a full sentence each, which
   only stays readable stacked — and it survives a 360px phone
   and a print-out unchanged.
   ============================================================ */
.flow-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.flow-jump a{background:#fff;border:2px solid var(--mist);color:var(--navy);font-family:var(--font-en);font-weight:700;font-size:15px;border-radius:999px;padding:9px 16px;text-decoration:none;line-height:1.3}
.flow-jump a:hover{border-color:var(--navy);background:var(--mist)}
.flow-head{display:flex;gap:18px;align-items:flex-start}
.flow-head .ico{font-size:40px;line-height:1.1;flex:0 0 auto}
.flow-head h2{font-size:27px}
.flow-applies{font-size:14.5px;color:var(--ink-soft);margin-top:10px}
.flow-applies b{color:var(--navy);font-family:var(--font-en)}
.flow-applies a{color:var(--red);font-weight:700;text-decoration:none;white-space:nowrap}
.flow-applies a:hover{text-decoration:underline}
.flow{margin-top:26px;max-width:940px}
.flow-step{display:grid;grid-template-columns:48px 1fr;gap:18px;position:relative;padding-bottom:16px}
.flow-step::before{content:"";position:absolute;left:23px;top:54px;bottom:0;width:2px;background:var(--line)}
.flow-step:last-child::before{display:none}
.flow-num{width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--font-en);font-weight:800;font-size:19px;position:relative;z-index:1}
.flow-step.is-gate .flow-num{background:var(--red)}
.flow-step.is-done .flow-num{background:var(--leaf)}
.flow-card{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:16px 20px;border-left:5px solid var(--gold)}
.flow-step.is-gate .flow-card{border-left-color:var(--red)}
.flow-step.is-done .flow-card{border-left-color:var(--leaf)}
.flow-card h3{font-size:18px;margin-bottom:5px}
.flow-card p{font-size:15.5px;color:var(--ink-soft)}
.flow-tag{display:inline-block;margin-top:11px;font-size:12.5px;font-weight:700;border-radius:999px;padding:3px 11px;background:var(--mist);color:var(--navy)}
.flow-step.is-gate .flow-tag{background:#FCEBEC;color:var(--red)}
.flow-step.is-done .flow-tag{background:var(--leaf-bg);color:var(--leaf)}
.flow-note{background:var(--dawn);border-left:4px solid var(--gold);border-radius:10px;padding:13px 18px;font-size:15px;margin-top:8px;max-width:940px}
.section-alt .flow-card,.section-alt .flow-note{background:#fff}
.section-alt .flow-note{border-left-color:var(--gold)}

/* Compact version shown inside a service page */
.flow-mini{background:var(--cloud);border:2px solid var(--mist);border-radius:var(--r);padding:20px 22px;margin-top:28px}
.flow-mini .flow-mini-h{font-family:var(--font-en);font-weight:700;color:var(--navy);font-size:20px;line-height:1.3}
.flow-mini .flow-mini-sub{font-size:14.5px;color:var(--ink-soft);margin-top:4px}
.flow-mini ol{list-style:none;margin:14px 0 0;counter-reset:fm}
.flow-mini li{counter-increment:fm;position:relative;padding:9px 0 9px 38px;font-size:16px;border-bottom:1px dashed var(--line);line-height:1.5}
.flow-mini li:last-child{border-bottom:0;padding-bottom:2px}
.flow-mini li::before{content:counter(fm);position:absolute;left:0;top:10px;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--font-en);font-weight:800;font-size:14px;display:grid;place-items:center}
.flow-mini li.is-gate::before{background:var(--red)}
.flow-mini li.is-done::before{background:var(--leaf)}
.flow-mini li .gate-note{display:block;font-size:13.5px;color:var(--red);font-weight:700}
.flow-mini .more{display:inline-block;margin-top:14px;font-weight:700;color:var(--red);text-decoration:none}
.flow-mini .more::after{content:" →"}

@media (max-width:560px){
  .flow-head{gap:12px}
  .flow-head .ico{font-size:30px}
  .flow-head h2{font-size:22px}
  .flow-step{grid-template-columns:38px 1fr;gap:12px}
  .flow-step::before{left:18px;top:44px}
  .flow-num{width:38px;height:38px;font-size:16px}
  .flow-card{padding:14px 15px}
  .flow-jump a{font-size:14px;padding:8px 13px}
  .flow-mini{padding:16px 16px}
}

/* ============================================================
   Cookie notice (assets/track.js)
   Sits above the floating call buttons so it cannot be hidden
   behind them, and never covers the whole screen — a visitor
   who ignores it can still read and use the page.
   ============================================================ */
.cookie-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:150;background:#fff;border:2px solid var(--mist);border-radius:16px;box-shadow:0 16px 44px rgba(20,25,60,.24);padding:18px 20px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;max-width:940px;margin:0 auto}
.cookie-bar p{font-size:14.5px;color:var(--ink-soft);flex:1;min-width:260px;line-height:1.55;margin:0}
.cookie-bar p b{color:var(--ink)}
.cookie-bar a{color:var(--red);font-weight:700}
.cookie-btns{display:flex;gap:10px;flex:0 0 auto}
.cookie-bar .btn{font-size:15px;padding:11px 20px;min-height:44px;border-radius:10px}
@media (max-width:640px){
  .cookie-bar{left:8px;right:8px;bottom:8px;padding:15px 16px;gap:13px}
  .cookie-btns{width:100%}
  .cookie-btns .btn{flex:1;text-align:center}
  /* Keep the floating buttons clear of the notice while it is up. */
  .float-stack{bottom:150px}
}

/* ============================================================
   First-visit language chooser (assets/main.js)
   A real modal rather than a bar: choosing a language may
   navigate, so it should be a decision, not something scrolled
   past. Shown once per device.
   ============================================================ */
.lang-prompt{position:fixed;inset:0;z-index:300;background:rgba(26,33,83,.62);display:grid;place-items:center;padding:20px;overflow-y:auto}
.lang-card{background:#fff;border-radius:22px;box-shadow:0 26px 70px rgba(0,0,0,.34);padding:34px 32px;max-width:430px;width:100%;text-align:center}
.lang-card img{height:56px;width:auto;margin:0 auto 18px;display:block}
.lang-card h2{font-size:22px;margin-bottom:2px}
.lang-card h2.alt{font-size:19px;color:var(--ink-soft);font-weight:600;margin-bottom:16px}
.lang-card p{font-size:14.5px;color:var(--ink-soft);line-height:1.6;margin-bottom:10px}
.lang-card p.alt{margin-bottom:22px}
.lang-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lang-pick .btn{width:100%;text-align:center;font-size:17px;padding:14px 10px;min-height:52px}
@media (max-width:420px){
  .lang-card{padding:26px 20px;border-radius:18px}
  .lang-card h2{font-size:19px}
  .lang-card h2.alt{font-size:17px}
  .lang-pick{grid-template-columns:1fr}
}

/* ============================================================
   Resources page — official document list and video grid
   ============================================================ */
.doc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin-top:20px}
.doc{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--mist);border-radius:14px;padding:15px 17px;text-decoration:none;color:var(--ink);transition:.15s}
.doc:hover{border-color:var(--navy);box-shadow:var(--shadow);transform:translateY(-1px)}
.doc-ico{flex:0 0 auto;width:42px;height:42px;border-radius:9px;background:#FCEBEC;color:var(--red);display:grid;place-items:center;font-family:var(--font-en);font-weight:800;font-size:12.5px;letter-spacing:.04em}
.doc-txt{flex:1;min-width:0;display:block}
.doc-txt b{display:block;font-family:var(--font-en);color:var(--navy);font-size:16px;line-height:1.35}
.doc-sub{display:block;font-size:13px;color:var(--ink-soft);line-height:1.45;margin-top:3px;overflow-wrap:anywhere}
.doc-size{flex:0 0 auto;font-size:12.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;align-self:flex-start;padding-top:3px}
.section-alt .doc{background:#fff}

.vid-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-top:20px}
.vid{margin:0}
.vid-frame{position:relative;padding-top:56.25%;border-radius:14px;overflow:hidden;background:var(--mist);box-shadow:var(--shadow)}
.vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid figcaption{margin-top:11px;font-size:15px;color:var(--navy);font-weight:700;line-height:1.45}
@media (max-width:560px){
  .doc-list{grid-template-columns:1fr}
  .doc{padding:13px 14px;gap:11px}
  .doc-txt b{font-size:15px}
}

/* ============================================================
   Two-level main navigation
   The parent stays a real link, so "Pricing" opens the pricing
   page rather than only being a menu label. On a pointer device
   the flyout opens on hover and on keyboard focus, and the caret
   is drawn on the link itself. Where there is no hover, the caret
   becomes a real button — otherwise the first tap on a parent
   would both navigate and flash the menu open.
   ============================================================ */
nav.main > ul > li{position:relative}
nav.main li.has-sub > a::after{content:"▾";font-size:10px;margin-left:5px;
  vertical-align:middle;opacity:.65}
nav.main .sub-toggle{display:none;background:none;border:0;color:var(--navy);
  cursor:pointer;font-size:12px;line-height:1;padding:10px 10px;border-radius:8px;
  font-family:inherit;place-items:center;min-height:44px;min-width:38px}
nav.main .sub-toggle:hover{background:var(--mist)}

nav.main ul.sub{position:absolute;top:100%;left:0;display:none;flex-direction:column;
  background:#fff;border:2px solid var(--mist);border-radius:12px;
  box-shadow:0 14px 34px rgba(35,43,107,.16);padding:6px;min-width:200px;
  z-index:60;gap:0}
nav.main li.has-sub:hover > ul.sub,
nav.main li.has-sub:focus-within > ul.sub,
nav.main li.has-sub.open > ul.sub{display:flex}
nav.main ul.sub li{width:100%}
nav.main ul.sub a{display:block;white-space:nowrap;font-size:15px;padding:10px 13px;
  border-radius:8px}
nav.main ul.sub a:hover,nav.main ul.sub a.active{background:var(--mist)}
/* Bridge the gap under the parent so the flyout does not close while the
   pointer travels down into it. */
nav.main li.has-sub::after{content:"";position:absolute;top:100%;left:0;right:0;height:10px}

@media (hover:none){
  nav.main li.has-sub:hover > ul.sub{display:none}
  nav.main li.has-sub.open > ul.sub{display:flex}
  nav.main li.has-sub > a::after{content:none}
  nav.main .sub-toggle{display:grid}
}

/* Below the hamburger breakpoint the submenu is an indented block the caret
   opens, not a hovering card — there is nothing to hover with. These must sit
   AFTER the rules above: they have the same specificity, so source order is
   what decides, and written earlier they simply lost. */
@media (max-width:1080px){
  nav.main li.has-sub{position:relative}
  nav.main li.has-sub > a::after{content:none}
  nav.main li.has-sub::after{content:none}
  nav.main .sub-toggle{display:grid;position:absolute;right:0;top:2px}
  nav.main ul.sub{position:static;display:none;box-shadow:none;border:0;
    padding:0 0 6px 14px;min-width:0;background:transparent}
  nav.main li.has-sub.open > ul.sub{display:block}
  nav.main ul.sub a{font-size:14.5px;color:var(--ink-soft)}
}

/* FAQ accordion (home-modifications) */
.faq-list{margin-top:20px}
.faq{background:#fff;border:2px solid var(--mist);border-radius:14px;padding:0;margin-bottom:12px}
.faq summary{cursor:pointer;list-style:none;padding:16px 20px;font-family:var(--font-en);
  font-weight:700;color:var(--navy);font-size:17px;line-height:1.45;display:flex;
  align-items:flex-start;gap:12px;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";flex:0 0 auto;color:var(--red);font-size:21px;line-height:1.2}
.faq[open] summary::before{content:"−"}
.faq[open] summary{border-bottom:1px dashed var(--line)}
.faq p{padding:14px 20px 18px 52px;color:var(--ink-soft);font-size:16px;margin:0}
@media (max-width:560px){
  .faq summary{padding:14px 15px;font-size:16px}
  .faq p{padding:12px 15px 16px 15px}
}
