:root {
	--ink: #062442;
	--deep: #031b35;
	--teal: #0b756e;
	--brand-teal: #00a994;
	--mint: #dff4ef;
	--sand: #f4ead9;
	--blue: #e2ebf5;
	--paper: #f8f8f4;
	--line: #d7e0df;
	--lime: #67d8ba;
	--white: #fff;
	--muted: #657774;
	--display: Georgia, 'Times New Roman', serif;
	--body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; width: auto; height: auto; margin: 12px; padding: 12px 16px; z-index: 9999; background: #fff; }
.content-shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.section { padding: 105px clamp(24px, 8vw, 130px); }
.kicker { display: inline-block; color: var(--teal); font-size: 10px; font-weight: 900; letter-spacing: 1.8px; }
.kicker.light { color: var(--lime); }
h1, h2, h3 { font-family: var(--display); font-weight: 600; }
h1 em, h2 em { color: var(--teal); font-style: normal; }
p { line-height: 1.7; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 14px 21px; border: 1px solid var(--ink); border-radius: 3px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 800; transition: transform .2s, background .2s, border-color .2s; cursor: pointer; }
.button:hover, .button:focus-visible { background: var(--teal); border-color: var(--teal); transform: translateY(-2px); }
.button-outline { background: transparent; color: var(--ink); border-color: #aebbb6; }
.button-light { background: var(--lime); border-color: var(--lime); color: var(--deep); }
.button-small { min-height: 40px; padding: 10px 15px; font-size: 10px; }
.text-link { display: inline-block; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--teal); font-size: 11px; font-weight: 900; }

/* Header and navigation */
.site-header { position: sticky; top: 0; z-index: 100; height: 82px; padding: 0 clamp(22px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; gap: 24px; background: rgba(248,248,244,.96); border-bottom: 1px solid rgba(6,36,66,.12); backdrop-filter: blur(12px); }
.brand { display: inline-flex; align-items: center; min-width: 158px; }
.brand img { display: block; width: 178px; }
.desktop-nav .menu { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 30px); list-style: none; margin: 0; padding: 0; }
.desktop-nav a { font-size: 12px; font-weight: 700; }
.desktop-nav a:hover, .desktop-nav .current-menu-item > a { color: var(--teal); }
.header-actions { display: flex; align-items: center; gap: 17px; }
.header-contact { font-size: 12px; font-weight: 700; }
.menu-toggle { display: none; width: 40px; height: 40px; padding: 9px; border: 1px solid #b9c5c0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; margin: 4px 0; background: var(--ink); }
.mobile-menu-backdrop[hidden] { display: none; }
.mobile-menu-backdrop { position: fixed; inset: 0; z-index: 108; background: rgba(3,27,53,.56); }
.mobile-menu { position: fixed; top: 0; right: 0; bottom: 0; z-index: 109; width: min(410px, 92vw); padding: 25px; display: flex; flex-direction: column; overflow-y: auto; background: var(--paper); box-shadow: -24px 0 60px rgba(0,0,0,.18); transform: translateX(105%); visibility: hidden; transition: transform .25s ease, visibility .25s; }
.mobile-menu.is-open { transform: translateX(0); visibility: visible; }
.mobile-menu-top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 19px; border-bottom: 1px solid var(--line); text-transform: uppercase; letter-spacing: 1.3px; font-size: 10px; }
.mobile-menu-top button { border: 0; background: transparent; font-size: 31px; line-height: 1; cursor: pointer; }
.mobile-menu-links { margin-top: 20px; }
.mobile-menu-links .menu { display: grid; list-style: none; margin: 0; padding: 0; }
.mobile-menu-links li { border-bottom: 1px solid var(--line); }
.mobile-menu-links a { display: block; padding: 14px 2px; color: var(--ink); font: 600 20px var(--display); }
.mobile-menu-links a:hover { color: var(--teal); }
.mobile-menu-actions { display: grid; gap: 14px; margin-top: auto; padding-top: 24px; }
.mobile-menu-actions > a:last-child { color: var(--teal); text-align: center; font-size: 10px; font-weight: 800; }
.mobile-menu > small { margin-top: 19px; color: #82918e; text-align: center; font-size: 8px; line-height: 1.5; }

/* Home */
.home-hero { position: relative; min-height: 690px; padding: 84px clamp(24px, 8vw, 130px) 75px; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(45px, 7vw, 100px); align-items: center; overflow: hidden; }
.home-hero::after { content: ''; position: absolute; z-index: -1; right: -220px; top: -300px; width: 680px; height: 680px; border-radius: 50%; background: var(--mint); }
.hero-copy h1 { margin: 20px 0; font-size: clamp(50px, 5.4vw, 78px); line-height: 1; letter-spacing: -3.8px; }
.hero-copy > p { max-width: 590px; color: #536766; font-size: 17px; }
.hero-actions, .hero-button-row { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 31px; }
.trust-line { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 27px; color: #647572; font-size: 10px; font-weight: 700; }
.trust-line b { margin-right: 4px; color: var(--teal); }
.hero-panel { padding: 29px; background: #fff; border: 1px solid #e1e7e2; box-shadow: 0 35px 90px rgba(21,61,58,.16); }
.panel-top { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.panel-top div { display: grid; gap: 5px; }
.panel-top small, .status-row small { color: #83918e; font-size: 8px; font-weight: 900; letter-spacing: 1.2px; }
.live-pill { height: max-content; padding: 7px 10px; border-radius: 20px; background: #e8f4ee; color: var(--teal); font-size: 9px; font-weight: 900; }
.score-card { display: flex; align-items: center; gap: 18px; margin: 23px 0; padding: 18px; background: #f2f7f3; }
.score-ring { width: 70px; height: 70px; flex: 0 0 70px; display: grid; place-items: center; border-radius: 50%; border: 7px solid var(--teal); background: var(--deep); color: #fff; font: 700 22px var(--display); }
.score-card div { display: grid; gap: 5px; }
.score-card p { margin: 0; color: #71807d; font-size: 9px; }
.status-row { display: grid; grid-template-columns: 30px 1fr auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid #edf0ee; }
.status-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: #e7f2ed; color: var(--teal); font-size: 11px; font-weight: 900; }
.status-row div { display: grid; gap: 3px; }
.status-row strong { font-size: 11px; }
.status-row > b { padding: 5px 8px; border-radius: 14px; background: #eaf4ef; color: #3c897d; font-size: 8px; }
.status-row.warning .status-icon, .status-row.warning > b { background: #f7eedf; color: #97713c; }
.proof-strip { min-height: 75px; padding: 20px 24px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 24px; background: var(--deep); color: #fff; font-size: 10px; }
.proof-strip span { color: #9eb5b2; }
.proof-strip i { width: 3px; height: 3px; border-radius: 50%; background: #79938f; }
.section-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 55px; margin-bottom: 52px; }
.section-intro h2 { margin: 15px 0 0; font-size: clamp(40px, 4.3vw, 60px); line-height: 1.03; letter-spacing: -2.8px; }
.section-intro > p { max-width: 450px; color: var(--muted); font-size: 14px; }
.journey-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.journey-card { min-height: 360px; padding: 27px; display: flex; flex-direction: column; transition: transform .2s; }
.journey-card:hover { transform: translateY(-5px); }
.journey-card:nth-child(1) { background: var(--deep); color: #fff; }
.journey-card:nth-child(2) { background: var(--mint); }
.journey-card:nth-child(3) { background: var(--sand); }
.journey-card:nth-child(4) { background: var(--blue); }
.journey-card > span { opacity: .65; font-size: 9px; }
.journey-card h3 { margin: 75px 0 12px; font-size: 24px; }
.journey-card p { margin: 0; opacity: .75; font-size: 12px; }
.journey-card b { margin-top: auto; font-size: 10px; }
.service-overview { background: #fff; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { min-height: 285px; padding: 29px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-card > span { color: var(--teal); font-size: 8px; font-weight: 900; letter-spacing: 1.2px; }
.service-card h3 { margin: 50px 0 12px; font-size: 21px; }
.service-card p { margin: 0; color: #6f807d; font-size: 12px; }
.service-card a { margin-top: auto; color: var(--teal); font-size: 10px; font-weight: 900; }
.checker-promo { padding: 95px clamp(24px, 10vw, 155px); display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: center; background: var(--teal); color: #fff; }
.checker-promo h2 { margin: 15px 0; font-size: clamp(40px, 4.5vw, 58px); line-height: 1.03; letter-spacing: -2.7px; }
.checker-promo p { color: #c9dfdc; }
.check-card { padding: 35px; background: #fff; color: var(--ink); box-shadow: 0 25px 50px rgba(0,0,0,.12); }
.check-card h3 { margin: 8px 0 22px; font-size: 24px; }
.check-card ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.check-card li { padding: 13px; border: 1px solid var(--line); font-size: 10px; font-weight: 700; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bcc9c4; }
.process-grid article { min-height: 210px; padding: 28px 30px 10px 0; border-right: 1px solid #ccd5d1; }
.process-grid article:not(:first-child) { padding-left: 28px; }
.process-grid article:last-child { border-right: 0; }
.process-grid span { color: var(--teal); font-size: 9px; font-weight: 900; }
.process-grid h3 { margin-top: 50px; font-size: 17px; }
.process-grid p { color: #74827f; font-size: 11px; }
.final-cta { padding: 90px 24px; background: #f1efe7; text-align: center; }
.final-cta h2 { margin: 18px auto; max-width: 900px; font-size: clamp(42px, 5vw, 65px); line-height: 1; letter-spacing: -3px; }
.final-cta p { color: var(--muted); }

/* Inner pages */
.inner-hero, .legal-hero { padding: 100px clamp(24px, 10vw, 155px); background: linear-gradient(120deg, var(--paper) 60%, var(--mint)); text-align: center; }
.inner-hero h1, .legal-hero h1 { max-width: 980px; margin: 18px auto; font-size: clamp(48px, 5.2vw, 72px); line-height: 1.03; letter-spacing: -3.8px; }
.inner-hero > p { max-width: 670px; margin: 0 auto; color: var(--muted); }
.inner-hero .hero-button-row { justify-content: center; }
.service-groups { padding: 35px clamp(24px, 8vw, 130px) 95px; background: #fff; }
.service-group { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; padding: 72px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.group-heading span { color: var(--teal); font-size: 9px; font-weight: 900; letter-spacing: 1.2px; }
.group-heading h2 { margin: 15px 0; font-size: 40px; letter-spacing: -2px; }
.group-heading p { color: var(--muted); font-size: 12px; }
.group-list { border-top: 1px solid var(--ink); }
.group-list article { display: grid; grid-template-columns: 1fr auto; gap: 17px; padding: 19px 3px; border-bottom: 1px solid var(--line); }
.group-list article div { display: grid; gap: 6px; }
.group-list strong { font-size: 12px; }
.group-list p { margin: 0; color: var(--muted); font-size: 9px; }
.group-list b { font-size: 10px; }
.group-list b small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; font-weight: 500; text-align: right; }
.group-list a { grid-column: 1 / -1; color: var(--teal); font-size: 9px; font-weight: 900; }
.package-section { padding: 70px clamp(24px, 7vw, 110px) 95px; background: #fff; }
.package-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.package-card { position: relative; min-height: 420px; padding: 28px 24px; display: flex; flex-direction: column; border: 1px solid var(--line); }
.package-card.featured { background: var(--mint); border-color: var(--teal); }
.package-card > span { color: var(--teal); font-size: 8px; font-weight: 900; }
.package-card h2 { margin: 48px 0 9px; font-size: 25px; }
.package-card p { color: var(--muted); font-size: 10px; }
.package-price { margin: 10px 0 24px; }
.package-price strong { display: block; font: 700 27px var(--display); }
.package-price small { color: var(--muted); font-size: 8px; }
.package-card .button { margin-top: auto; }
.care-terms { padding: 75px clamp(24px, 9vw, 145px); display: grid; grid-template-columns: 1fr 1fr; gap: 80px; background: var(--teal); color: #fff; }
.care-terms h2 { margin: 15px 0; font-size: 42px; }
.care-terms p, .care-terms li, .care-terms small { color: #c9dfdc; font-size: 11px; line-height: 1.7; }
.care-terms ul { padding-left: 18px; }
.about-hero, .contact-hero, .portal-hero { padding: 95px clamp(24px, 9vw, 145px); display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: center; background: linear-gradient(120deg, var(--paper) 58%, var(--mint)); }
.about-hero h1, .contact-hero h1, .portal-hero h1 { margin: 17px 0; font-size: clamp(48px, 5vw, 70px); line-height: 1; letter-spacing: -3.5px; }
.about-hero p, .contact-hero p, .portal-hero p { color: var(--muted); }
.about-hero aside, .contact-hero aside, .portal-hero aside { min-height: 310px; padding: 35px; display: flex; flex-direction: column; justify-content: center; gap: 21px; background: var(--deep); color: #fff; }
.about-hero aside small, .contact-hero aside small, .portal-hero aside small { color: var(--lime); font-size: 8px; font-weight: 900; letter-spacing: 1.2px; }
.about-hero aside strong, .contact-hero aside strong, .portal-hero aside strong { font: 600 26px/1.25 var(--display); }
.about-story { padding: 90px clamp(24px, 9vw, 145px); display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; background: #fff; }
.about-story h2 { font-size: 40px; }
.about-story p { color: var(--muted); }
.contact-routes { padding: 90px clamp(24px, 8vw, 130px); }
.route-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.route-grid a { min-height: 275px; padding: 27px; display: flex; flex-direction: column; border: 1px solid var(--line); background: #fff; }
.route-grid span { color: var(--teal); font-size: 9px; font-weight: 900; }
.route-grid h3 { margin-top: 55px; font-size: 22px; }
.route-grid p { color: var(--muted); font-size: 10px; }
.route-grid b { margin-top: auto; color: var(--teal); font-size: 9px; }
.legal-content { padding-top: 70px; padding-bottom: 90px; max-width: 900px; }
.legal-content h2 { margin-top: 42px; font-size: 28px; }
.legal-content p, .legal-content li { color: var(--muted); }
.archive-shell { padding-top: 80px; padding-bottom: 100px; }
.page-heading h1 { font-size: 50px; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.post-card { min-height: 300px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); background: #fff; }
.post-card > span { color: var(--teal); font-size: 8px; font-weight: 900; }
.post-card h2 { font-size: 24px; }
.post-card p { color: var(--muted); font-size: 11px; }
.post-card .text-link { margin-top: auto; }
.not-found { min-height: 620px; padding: 90px 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.not-found h1 { max-width: 850px; margin: 16px 0; font-size: clamp(45px, 5vw, 65px); letter-spacing: -3px; }
.not-found p { color: var(--muted); }
.not-found > div { display: flex; gap: 10px; margin-top: 20px; }

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb { display: none; }
.woocommerce-page .site-main { min-height: 65vh; }
.woocommerce-page .woocommerce { width: min(1120px, calc(100% - 40px)); margin: 70px auto; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { padding: 13px 18px; border-radius: 3px; background: var(--ink); color: #fff; font-size: 11px; }
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--teal); color: #fff; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { min-height: 45px; padding: 10px; border: 1px solid #c9d5d0; background: #fff; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 13px 5px; font-size: 11px; font-weight: 800; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--teal); }

/* Footer */
.site-footer { padding: 68px clamp(24px, 8vw, 130px) 28px; background: var(--deep); color: #fff; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 55px; padding-bottom: 55px; }
.footer-brand img { width: 190px; filter: brightness(0) invert(1); }
.footer-intro p { color: #91a7a3; font-size: 12px; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 12px; }
.footer-grid strong { margin-bottom: 7px; color: #c8d6d3; font-size: 10px; }
.footer-grid a:not(.brand) { color: #8fa7a3; font-size: 10px; }
.footer-grid a:hover { color: #fff; }
.footer-bottom { padding-top: 24px; display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid #294143; color: #77908c; font-size: 8px; }

@media (max-width: 1050px) {
	.desktop-nav, .header-contact { display: none; }
	.menu-toggle { display: block; }
	.home-hero { grid-template-columns: 1fr; }
	.hero-copy { text-align: center; }
	.hero-copy > p { margin-left: auto; margin-right: auto; }
	.hero-actions, .trust-line { justify-content: center; }
	.hero-panel { width: min(620px, 100%); margin: 0 auto; }
	.journey-grid, .package-grid { grid-template-columns: 1fr 1fr; }
	.checker-promo, .service-group, .about-hero, .contact-hero, .portal-hero, .about-story { grid-template-columns: 1fr; gap: 45px; }
	.service-group { gap: 35px; }
	.checker-promo > div:first-child { text-align: center; }
	.footer-grid { grid-template-columns: 2fr 1fr 1fr; }
	.footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
	.site-header { height: 68px; padding: 0 18px; }
	.brand img { width: 146px; }
	.header-actions { gap: 8px; }
	.header-cta { display: none; }
	.menu-toggle { width: 38px; height: 38px; }
	.mobile-menu { padding: 21px; }
	.mobile-menu-links a { padding: 13px 2px; font-size: 19px; }
	.content-shell { width: min(100% - 36px, 1180px); }
	.section { padding: 72px 20px; }
	.home-hero { min-height: 0; padding: 56px 20px 65px; }
	.hero-copy h1 { font-size: 47px; letter-spacing: -2.7px; }
	.hero-copy > p { font-size: 14px; }
	.hero-actions { flex-direction: column; }
	.hero-actions .button { width: 100%; }
	.hero-panel { padding: 19px; }
	.proof-strip i { display: none; }
	.proof-strip span { width: 100%; text-align: center; }
	.section-intro { display: block; }
	.section-intro > p { margin-top: 23px; }
	.section-intro h2 { font-size: 39px; letter-spacing: -2px; }
	.journey-grid, .service-grid, .package-grid, .route-grid, .post-grid { grid-template-columns: 1fr; }
	.journey-card { min-height: 320px; }
	.checker-promo { padding: 72px 20px; }
	.check-card { padding: 24px 19px; }
	.check-card ul { grid-template-columns: 1fr; }
	.process-grid { grid-template-columns: 1fr; }
	.process-grid article, .process-grid article:not(:first-child) { min-height: 0; padding: 25px 0; border-right: 0; border-bottom: 1px solid var(--line); }
	.process-grid h3 { margin-top: 22px; }
	.inner-hero, .legal-hero { padding: 72px 20px; }
	.inner-hero h1, .legal-hero h1 { font-size: 44px; letter-spacing: -2.5px; }
	.service-groups, .package-section, .contact-routes { padding: 25px 20px 72px; }
	.service-group { padding: 60px 0; }
	.group-heading h2 { font-size: 36px; }
	.group-list article { grid-template-columns: 1fr; }
	.group-list b small { text-align: left; }
	.care-terms, .about-hero, .contact-hero, .portal-hero, .about-story { padding: 68px 20px; }
	.care-terms { grid-template-columns: 1fr; gap: 38px; }
	.about-hero h1, .contact-hero h1, .portal-hero h1 { font-size: 45px; letter-spacing: -2.5px; }
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 38px; }
	.footer-intro { grid-column: 1 / -1; }
	.footer-bottom { flex-direction: column; }
	.not-found > div { width: min(320px, 100%); flex-direction: column; }
}

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