/* Shared layout for physically separate, linkable pages. */
body.site-v2 { --page-max: 1160px; --gutter: clamp(18px, 4vw, 40px); padding: 88px 0 0; color: #000000; background: #f6f9fc; min-width: 0; }
.site-v2 .v2-header { position: fixed; inset: 0 0 auto; width: 100%; height: 80px; max-width: none; margin: 0; padding: 12px max(20px, calc((100vw - 1240px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 0; border-bottom: 1px solid #dce6ed; border-radius: 0; background: #fff; box-shadow: 0 3px 14px #183c6510; z-index: 100; }
.site-v2 .brand { min-width: 0; width: auto; padding: 0; }
.site-v2 .brand-copy strong { color: #075797; font-size: 20px; white-space: nowrap; }
.site-v2 .brand-copy small { color: #000000; font-size: 11px; }
.site-v2 .brand-logo { width: 48px; height: 48px; }
.site-v2 .v2-nav { display: flex !important; position: static; width: auto; height: auto; max-width: none; padding: 0; gap: 20px; margin: 0; transform: none; visibility: visible; opacity: 1; pointer-events: auto; background: transparent; border: 0; box-shadow: none; align-items: center; }
.site-v2 .v2-nav > a { padding: 10px 0; color: #314b60; font-size: 14px; font-weight: 600; white-space: nowrap; }
.site-v2 .v2-nav > a[aria-current] { color: #005aa0; text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 2px; }
.site-v2 .v2-nav .nav-consult { padding: 11px 18px; color: #fff; }
.site-v2 .navigation-drawer-head { display: none; }
.site-v2 .button { min-height: 46px; border-radius: 10px; font-size: 15px; text-align: center; text-decoration: none; }
.site-v2 .button.primary { background: #075da2; color: white; box-shadow: none; border: 1px solid #075da2; }
.site-v2 .button.secondary { color: #075797; background: #fff; border: 1px solid #b3c9d9; box-shadow: none; }
.site-v2 a:focus-visible, .site-v2 button:focus-visible, .site-v2 summary:focus-visible { outline: 3px solid #e89b29; outline-offset: 5px; }
.skip-link { position: fixed; left: 20px; top: -100px; background: #fff; padding: 12px; z-index: 200; }
.skip-link:focus { top: 10px; }
.site-v2 main > section { display: block; }
.site-v2 main > section:not(.v2-hero) { width: calc(100% - 2 * var(--gutter)); max-width: var(--page-max); margin: 40px auto; }
.site-v2 main > .v2-section, .site-v2 main > .page-intro { padding: 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
.site-v2 main > .page-intro { margin: 24px auto 32px; }
.site-v2 main > section::before, .site-v2 main > section::after { display: none; }
.site-v2 .page-intro h1 { max-width: 950px; margin: 0 0 12px; font-size: clamp(30px, 4vw, 48px); line-height: 1.35; letter-spacing: -.02em; color: #123e60; }
.site-v2 .page-intro p { max-width: 760px; color: #000000; margin: 0; font-size: 17px; }
.breadcrumbs { width: calc(100% - 2 * var(--gutter)); max-width: var(--page-max); margin: 25px auto 0; font-size: 13px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.breadcrumbs li + li::before { content: '/'; margin-right: 8px; color: #738595; }
.breadcrumbs a { color: #40627b; }
.site-v2 .v2-hero { display: grid; grid-template-columns: 1.45fr 1fr; align-items: center; gap: 50px; width: calc(100% - 2 * var(--gutter)); max-width: var(--page-max); padding: 38px 0 50px; margin: 0 auto; background: transparent; border: 0; box-shadow: none; }
.eyebrow { display: block; color: #0765a8; font-size: 13px; font-weight: 700; letter-spacing: .06em; margin-bottom: 12px; }
.v2-hero h1 { font-size: clamp(34px, 3.4vw, 49px); line-height: 1.4; margin: 0 0 22px; color: #123e60; }
.v2-hero h1 em { font-style: normal; color: #0865a9; }
.v2-hero p { font-size: 17px; line-height: 1.9; max-width: 590px; color: #000000; }
.v2-hero .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 26px 0 16px; }
.v2-hero .hero-caption { font-size: 13px; }
.v2-hero figure { position: relative; margin: 0; border-radius: 24px; overflow: hidden; background: #dcebf5; height: 425px; }
.v2-hero figure img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.v2-hero figcaption { position: absolute; bottom: 18px; left: 18px; right: 18px; padding: 14px 20px; background: #fffffff2; border-radius: 12px; color: #183c58; display: grid; gap: 3px; }
.v2-hero figcaption span { font-size: 13px; }
.v2-section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.v2-section h2 { font-size: clamp(23px, 2.7vw, 31px); line-height: 1.45; margin: 0 0 12px; color: #163f5d; }
.v2-section-head p { margin: 0 0 10px; color: #000000; }
.category-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.category-card { display: grid; grid-template-rows: auto auto 1fr auto; background: #fff; padding: 26px; border: 1px solid #dbe5ed; border-radius: 16px; text-decoration: none; color: #1e445f; transition: border-color .15s, box-shadow .15s; }
.category-card:hover { border-color: #3987bc; box-shadow: 0 7px 22px #1749790c; }
.category-card img { width: 58px; height: 58px; object-fit: contain; margin-bottom: 16px; }
.category-card h3 { margin: 0; font-size: 21px; color: #153f5e; }
.category-card p, .product-card p, .tool-card p { color: #000000; font-size: 15px; line-height: 1.8; margin: 10px 0 20px; }
.category-card > span, .tool-card > span { color: #0760a0; font-size: 14px; font-weight: 600; }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.product-card { display: flex; flex-direction: column; align-items: start; padding: 28px; border: 1px solid #dbe5ed; background: #fff; border-radius: 16px; }
.product-card h2 { font-size: 25px; margin-top: 5px; }
.product-card p { flex: 1; }
.product-card .button { width: 100%; margin-top: 10px; }
.product-card.is-closed { background: #fffcf6; border-color: #dfcaa0; }
.product-card .sales-closed-badge { margin: 0 0 14px; }
.tool-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.tool-card { padding: 24px; border-radius: 14px; border: 1px solid #cfdfea; background: #eaf3f9; text-decoration: none; display: flex; flex-direction: column; }
.tool-card h3 { font-size: 18px; margin: 0; color: #173f5d; }
.tool-card p { flex: 1; }
.section-note { color: #000000; font-size: 13px; margin: 24px 0; }
.site-v2 main > .advisor-summary { background: #e8f2f8; padding: 36px; border-radius: 16px; }
.advisor-summary p { max-width: 760px; line-height: 1.9; }
.advisor-summary .text-link { display: inline-block; margin: 12px 26px 0 0; }
.faq-section details { background: #fff; padding: 18px 22px; border-bottom: 1px solid #dbe5ed; }
.faq-section summary { cursor: pointer; font-weight: 600; }
.faq-section p { max-width: 800px; line-height: 1.85; }
.product-content { min-width: 0; }
.product-jumps { display: flex; flex-wrap: wrap; gap: 12px 24px; border-top: 1px solid #dbe5ed; border-bottom: 1px solid #dbe5ed; padding: 18px 0; margin-bottom: 32px; }
.product-jumps a { color: #075da2; font-size: 14px; font-weight: 600; }
.site-v2 [id] { scroll-margin-top: 104px; }
.product-content .journey-section { width: 100%; margin: 0; }
.product-content .checker-tool-panel, .product-content .life-protect-tool, .product-content .life-ready-tool { margin: 28px 0; }
.product-content .easy-protect-details { display: block; }
.product-next { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 40px 0; border-top: 1px solid #dbe5ed; padding-top: 24px; }
.detail-note { padding: 28px; border: 1px solid #dbe5ed; border-radius: 16px; background: white; }
.supplementary-tools { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 24px; }
.site-v2 .v2-contact { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 40px; padding: 36px; border-radius: 20px; background: #fff; border: 1px solid #dbe5ed; box-shadow: none; }
.v2-contact .section-heading { text-align: left; margin: 0; display: block; }
.v2-contact .section-heading h2 { font-size: 29px; }
.v2-contact .lead-form { margin: 0; padding: 0; border: 0; box-shadow: none; background: none; }
.v2-contact .lead-form-head { display: none; }
.v2-footer { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 30px; padding: 40px max(24px, calc((100vw - 1160px)/2)); background: #153e5a; color: #e1edf5; }
.v2-footer a { color: #fff; text-decoration: none; }
.v2-footer nav, .v2-footer > div { display: flex; flex-direction: column; align-items: start; gap: 12px; font-size: 14px; }
.v2-footer strong { font-size: 23px; }
.v2-footer p { margin: 0; font-size: 13px; line-height: 1.9; }
.v2-footer button { background: transparent; border: 1px solid #7391a7; color: white; padding: 10px 16px; border-radius: 8px; cursor: pointer; }
.v2-footer .footer-note { grid-column: 1 / -1; border-top: 1px solid #44647b; padding-top: 20px; color: #c6d9e7; }
.site-v2 .motion-reveal { opacity: 1; transform: none; }
.site-v2 .advisor-section { display: block; }
.site-v2 .advisor-card { width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.home-feature-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; align-items: start; }
.home-retirement-feature { background: #eaf3fa; border: 1px solid #c9ddea; border-radius: 20px; padding: 30px; }
.home-feature-kicker { color: #0763a5; font-size: 13px; font-weight: 600; }
.home-retirement-feature h3 { font-size: clamp(25px, 3vw, 34px); line-height: 1.5; color: #154766; margin: 14px 0; }
.home-retirement-feature > p, .home-tool-feature p { color: #000000; font-size: 15px; line-height: 1.9; }
.home-retirement-feature > .button { width: 100%; margin-top: 20px; }
.home-chart-preview { margin: 22px 0 0; padding: 18px; background: #fff; border: 1px solid #d8e5ee; border-radius: 14px; }
.home-chart-preview > figcaption { font-size: 13px; font-weight: 600; color: #000000; margin-bottom: 12px; }
.home-chart-preview svg { display: block; width: 100%; max-width: 450px; height: auto; margin: 0 auto; }
.home-chart-preview svg text { font-size: 16px; fill: #4a6478; }
.home-demo-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 14px; border-top: 1px solid #e1eaf1; font-variant-numeric: tabular-nums; }
.home-demo-metrics span { display: block; color: #000000; font-size: 12px; }
.home-demo-metrics strong { display: block; color: #075fa0; font-size: 21px; margin-top: 6px; }
.home-demo-metrics small { font-size: 12px; font-weight: 400; white-space: nowrap; }
.home-demo-assumptions { margin: 18px 0 0; color: #000000; font-size: 12px; }
.home-demo-assumptions summary { cursor: pointer; padding-block: 8px; }
.home-demo-assumptions p { line-height: 1.8; }
.home-demo-note { font-size: 12px; color: #000000; margin: 8px 0 0; }
.home-feature-stack { display: grid; gap: 16px; }
.home-tool-feature { display: grid; grid-template-columns: 52px 1fr; gap: 20px; background: #fff; border: 1px solid #d9e5ed; border-radius: 16px; padding: 26px; }
.home-tool-feature img { width: 52px; height: 52px; object-fit: contain; }
.home-tool-feature h3 { font-size: 21px; color: #163f5d; margin: 0 0 8px; }
.home-tool-feature p { margin: 0 0 14px; }
.home-tools-more { color: #075e9d; font-size: 14px; padding: 12px 0; }
.site-v2 main > .home-insurance-basics { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; padding: 40px; background: #fff; border: 1px solid #dbe5ed; border-radius: 20px; margin-block: 64px; }
.home-basics-heading > p { font-size: 16px; line-height: 1.95; color: #000000; }
.home-basics-heading .home-source-link { font-size: 12px; display: inline-block; line-height: 1.8; }
.home-basics-steps { display: grid; gap: 24px; }
.home-basics-steps article { display: grid; grid-template-columns: 36px 1fr; gap: 16px; }
.home-basics-steps article > span { font-size: 23px; color: #5686a5; font-weight: 600; }
.home-basics-steps h3 { font-size: 20px; color: #204862; margin: 0 0 8px; }
.home-basics-steps p { margin: 0; font-size: 15px; color: #000000; line-height: 1.9; }
.home-section-intro { max-width: 840px; font-size: 16px; line-height: 1.9; color: #000000; margin: 0 0 26px; }
.home-pillar-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.home-pillar { display: flex; flex-direction: column; background: #fff; border: 1px solid #dbe5ed; border-top: 3px solid #4b8dbb; border-radius: 14px; padding: 24px; }
.home-pillar-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; color: #6c8aa1; font-size: 22px; }
.home-pillar-top img { width: 56px; height: 56px; object-fit: contain; }
.home-pillar h3 { margin: 0 0 12px; font-size: 22px; color: #163f5d; }
.home-pillar > strong { font-size: 15px; line-height: 1.8; color: #2f5872; }
.home-pillar > p { flex: 1; font-size: 14px; line-height: 1.9; color: #000000; }
.home-pillar .text-link { font-size: 14px; margin-top: 12px; }
.home-pillar-note { display: flex; align-items: center; gap: 30px; justify-content: space-between; margin: 22px 0 54px; padding: 22px 26px; background: #eaf3f9; border-radius: 14px; }
.home-pillar-note p { margin: 0; max-width: 730px; font-size: 14px; line-height: 1.9; color: #000000; }
.home-pillar-note .button { flex-shrink: 0; }
@media (max-width: 1000px) {
 .home-pillar-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-feature-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
 .home-retirement-feature, .home-tool-feature { padding: 22px; }
 .home-tool-feature { grid-template-columns: 1fr; gap: 12px; }
 .site-v2 main > .home-insurance-basics { gap: 28px; padding: 28px; }
 .home-pillar-note { flex-direction: column; align-items: start; gap: 18px; }
}
@media (max-width: 720px) {
 .home-feature-grid { grid-template-columns: 1fr; }
 .home-tool-feature { grid-template-columns: 44px 1fr; gap: 16px; }
 .home-tool-feature img { width: 44px; height: 44px; }
 .site-v2 main > .home-insurance-basics { grid-template-columns: 1fr; padding: 24px; margin-block: 44px; }
 .home-demo-metrics { grid-template-columns: 1fr; gap: 10px; }
 .home-demo-metrics > div { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
 .home-demo-metrics strong { font-size: 19px; }
}
@media (max-width: 480px) {
 .home-retirement-feature { padding: 20px 16px; }
 .home-chart-preview { padding: 14px 8px; }
 .home-pillar-grid { grid-template-columns: 1fr; }
 .home-pillar-top { margin-bottom: 12px; }
 .home-tool-feature { grid-template-columns: 1fr; padding: 22px; }
 .home-pillar-note { padding: 20px; }
 .home-pillar-note .button { width: 100%; }
}
@media(max-width: 1100px) {
 .site-v2 .v2-nav { gap: 13px; }
 .site-v2 .v2-nav > a { font-size: 13px; }
 .site-v2 .brand-copy small { display: none; }
}
@media(max-width: 1023px) {
 body.site-v2 { padding-top: 80px; padding-bottom: 0; }
 .site-v2 .v2-header { height: 72px; padding: 10px 20px; }
 .site-v2 .menu-button { display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 4px; position: static; margin-left: auto; width: 46px; height: 46px; }
 .site-v2 .v2-nav { display: none !important; position: fixed; inset: 0 0 0 auto; width: min(360px,90vw); height: 100dvh; padding: 24px; background: #fff; flex-direction: column; align-items: stretch; gap: 14px; z-index: 103; overflow-y: auto; }
 .site-v2 .v2-nav.is-open { display: flex !important; }
 .site-v2 .v2-nav > a { font-size: 16px; padding: 12px; }
 .site-v2 .v2-nav .navigation-drawer-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
 .site-v2 .navigation-drawer-scrim { display: none !important; }
 .site-v2.navigation-drawer-open .navigation-drawer-scrim { display: block !important; position: fixed; inset: 0; opacity: 1; visibility: visible; pointer-events: auto; background: #122f4d66; z-index: 99; width: 100%; height: 100%; }
 .category-grid, .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .tool-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .site-v2 .v2-contact { grid-template-columns: 1fr; gap: 22px; }
 .site-v2 .v2-hero { gap: 28px; }
 .v2-hero figure { height: 380px; }
}
@media(max-width: 640px) {
 .site-v2 .v2-hero { grid-template-columns: 1fr; padding: 26px 0; gap: 22px; }
 .v2-hero h1 { font-size: 33px; }
 .v2-hero p { font-size: 16px; }
 .v2-hero figure { height: 300px; }
 .v2-hero figure img { object-position: center top; }
 .v2-section-head { display: block; }
 .category-grid, .product-grid { grid-template-columns: 1fr; gap: 14px; }
 .category-card { grid-template-columns: 52px 1fr; column-gap: 16px; padding: 22px; }
 .category-card img { grid-row: 1 / 4; width: 52px; height: 52px; margin: 0; }
 .category-card h3 { font-size: 20px; }
 .category-card p { margin: 5px 0 12px; font-size: 14px; }
 .category-card span { grid-column: 2; }
 .tool-grid { grid-template-columns: 1fr; }
 .tool-card { padding: 22px; }
 .tool-card p { margin: 6px 0 12px; }
 .site-v2 main > .advisor-summary, .site-v2 .v2-contact { padding: 24px 20px; }
 .v2-footer { grid-template-columns: 1fr; }
 .product-next { flex-direction: column; align-items: stretch; }
 .site-v2 .v2-contact .lead-form { grid-template-columns: 1fr; }
 .site-v2 .v2-contact .lead-form > * { grid-column: 1; }
}
@media(prefers-reduced-motion: reduce) { .site-v2 *, .site-v2 *::before, .site-v2 *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
/* Disease guides: procedure scope stays beside the price at every screen size. */
.site-v2 .health-entry { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:30px; border:1px solid #bdd9df; border-radius:20px; background:#edf8f7; }
.health-entry h2 { margin:8px 0 12px; font-size:clamp(23px,3vw,30px); line-height:1.5; }
.health-entry p { max-width:650px; margin:0; }
.health-entry .button { flex-shrink:0; }
.health-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.health-guide-card { display:flex; flex-direction:column; gap:16px; border:1px solid #cadde7; border-radius:18px; padding:26px; background:#fff; }
.health-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.health-card-top img { width:56px; height:56px; object-fit:contain; }
.health-guide-card h2 { font-size:24px; margin:0; line-height:1.5; }
.health-guide-card p { margin:0; line-height:1.9; }
.health-guide-card .health-scope { margin-top:auto; padding:12px 0; border-top:1px solid #dce8ee; font-size:14px; color:#000000; }
.health-reading-note { background:#f0f6fa; border:1px solid #d6e5ed; border-radius:16px; padding:24px; margin-bottom:24px; }
.health-reading-note p { line-height:1.9; }
.health-reading-note h2 { margin-top:0; font-size:24px; line-height:1.5; }
.health-reading-note li { margin:12px 0; line-height:1.8; }
.health-meta { font-size:14px; line-height:1.8; color:#000000; }
.health-meta a { text-decoration:underline; text-underline-offset:3px; }
.site-v2 main > .health-article { width:calc(100% - 2 * var(--gutter)); max-width:1050px; margin:40px auto; }
.site-v2 main > .health-entry { width:calc(100% - 2 * var(--gutter)); max-width:var(--page-max); margin:32px auto; }
.health-article section { scroll-margin-top:100px; }
.health-cost-stages { margin:36px 0; }
.health-cost-stages h2 { font-size:25px; }
.health-cost-stages .health-guide-grid > div { padding:20px 0; border-top:2px solid #92c3d5; }
.health-cost-stages h3 { margin:8px 0; font-size:20px; }
.health-cost-stages p { margin:0; line-height:1.85; }
.health-price-example { border:1px solid #bcd5e2; border-radius:20px; padding:30px; background:#fff; margin:28px 0; }
.health-price-example h2 { margin:12px 0; font-size:27px; line-height:1.5; }
.health-price-list { margin:24px 0 12px; }
.health-price-list > div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:20px 0; border-bottom:1px solid #dce8ee; }
.health-price-list dt { line-height:1.8; font-weight:600; }
.health-price-list dd { margin:0; color:#0663a3; font-size:32px; font-weight:700; white-space:nowrap; }
.health-price-list small { font-size:15px; font-weight:400; }
.health-package-details > div { display:grid; grid-template-columns:190px minmax(0,1fr); gap:20px; padding:16px 0; border-bottom:1px solid #e0e9ee; line-height:1.9; }
.health-package-details dt { font-weight:700; }
.health-package-details dd { margin:0; }
.health-price-validity { background:#edf8f5; border-left:3px solid #348067; padding:14px 18px; line-height:1.85; }
.health-price-validity.is-expired { background:#fff5e7; border-color:#99631e; color:#704512; }
.health-emergency { background:#fff3ec; border:1px solid #edc2a8; border-radius:14px; padding:20px; margin-bottom:24px; line-height:1.8; color:#693e29; }
.health-emergency p { margin-bottom:0; font-size:14px; }
@media(max-width:850px) { .site-v2 .health-entry { align-items:flex-start; flex-direction:column; } .health-guide-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .site-v2 .health-entry,.health-reading-note,.health-price-example { padding:20px; } .health-price-list > div,.health-package-details > div { grid-template-columns:1fr; gap:8px; } .health-price-list dd { font-size:29px; } .health-guide-card { padding:22px; } }
.room-directory [hidden] { display:none !important; }
.region-explorer { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr); gap:44px; padding:32px; background:#fff; border:1px solid #d7e4ec; border-radius:24px; align-items:start; }
.region-map-column { min-width:0; }
.region-map-heading h2 { font-size:27px; margin:10px 0; }
.region-map-heading p,.region-choices > p { color:#000000; line-height:1.8; }
.thailand-region-map { display:block; width:100%; max-width:345px; margin:12px auto; height:auto; }
.thailand-region-map a { cursor:pointer; outline:none; }
.thailand-region-map path { fill:var(--region-color); stroke:#fff; stroke-width:1; stroke-linejoin:round; }
.thailand-region-map.has-selection a:not(.is-selected) path { opacity:.4; }
.thailand-region-map a:hover path,.thailand-region-map a:focus-visible path,.thailand-region-map a.is-selected path { stroke:#173a54; stroke-width:2.5; opacity:1; }
.map-region-label rect { fill:#fff; stroke:#d2dfe7; stroke-width:1; }
.map-region-label text { fill:#183c55; font-size:14px; font-weight:600; }
.thailand-region-map a.is-selected .map-region-label rect,.thailand-region-map a:focus-visible .map-region-label rect { stroke:#173a54; stroke-width:3; }
.map-attribution { font-size:11px; line-height:1.8; color:#000000; }
.map-attribution a { text-decoration:underline; }
.region-choices { padding-top:10px; }
.region-button-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:24px 0 16px; }
.region-choice { position:relative; display:grid; grid-template-columns:14px minmax(0,1fr); gap:5px 10px; padding:18px 14px; border:2px solid var(--region-color); border-radius:14px; background:color-mix(in srgb,var(--region-color) 12%,white); color:#23465d; text-decoration:none; min-height:115px; }
.region-choice strong { font-size:17px; padding-right:13px; }
.region-choice > span:not(.region-dot),.region-choice small { grid-column:2; font-size:13px; }
.region-choice small { color:#000000; }
.region-dot { width:12px; height:12px; border-radius:50%; background:var(--region-color); margin-top:7px; }
.region-choice:hover { background:#f5f9fc; border-color:#8da9bb; }
.region-choice.is-selected { border-color:#173a54; background:color-mix(in srgb,var(--region-color) 22%,white); box-shadow:0 0 0 1px #173a54; }
.region-selected-mark { display:none; position:absolute; right:9px; top:13px; color:#075da2; }
.region-choice.is-selected .region-selected-mark { display:block; }
.region-all { display:inline-flex; align-items:center; min-height:44px; color:#075da2; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.region-choice:focus-visible,.region-all:focus-visible,.hospital-summary-actions a:focus-visible { outline:3px solid #173a54; outline-offset:4px; }
.region-coverage-note { padding:18px 20px; background:#f1f6f9; border-radius:12px; margin:20px 0; color:#000000; }
.region-coverage-note strong { font-size:15px; }
.region-coverage-note p { font-size:13px; line-height:1.9; margin:7px 0 0; }
.region-grouping { font-size:13px; line-height:1.9; color:#000000; }
.region-grouping summary { cursor:pointer; padding:12px 0; color:#075da2; }
.region-results-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:44px 0 18px; }
.region-results-heading h2 { margin:8px 0 0; font-size:28px; scroll-margin-top:110px; }
.region-results-heading #hospitalResultsCount { font-size:13px; color:#000000; margin:0; }
.hospital-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:24px 0; }
.hospital-summary-card { display:flex; flex-direction:column; padding:24px; background:#fff; border:1px solid #d3e1ea; border-radius:18px; min-width:0; }
.hospital-summary-top { display:flex; gap:10px; align-items:center; color:#000000; font-size:12px; }
.hospital-symbol { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; border-radius:10px; background:#eaf5fb; color:#0872ac; font-size:19px; }
.hospital-summary-card h3,.hospital-summary-card h4 { font-size:21px; line-height:1.5; margin:16px 0; }
.hospital-detail-link { color:#163d58; text-decoration:none; }
.hospital-detail-link:hover { text-decoration:underline; }
.hospital-preview { display:flex; flex-direction:column; gap:5px; padding:16px; background:#f2f8fc; border-radius:10px; }
.hospital-preview > span { font-size:13px; color:#000000; }
.hospital-preview > strong { font-size:28px; line-height:1.5; color:#075da2; }
.hospital-preview > small { font-size:12px; color:#000000; line-height:1.7; }
.hospital-preview-note { font-size:12px; color:#000000; line-height:1.8; margin:14px 0 20px; }
.hospital-summary-actions { display:flex; flex-direction:column; gap:10px; margin-top:auto; }
.hospital-summary-actions .button { font-size:14px; justify-content:center; padding:12px 10px; }
.hospital-summary-actions > a:not(.button) { display:flex; align-items:center; justify-content:center; min-height:44px; font-size:13px; color:#075da2; text-decoration:underline; text-underline-offset:3px; }
.hospital-detail-intro { padding:0 0 26px; line-height:1.9; }
@media(max-width:1050px) { .hospital-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .region-explorer { gap:24px; padding:24px; } }
@media(max-width:760px) { .region-explorer { grid-template-columns:1fr; gap:10px; padding:20px; } .thailand-region-map { max-width:290px; } .region-map-heading h2 { font-size:24px; } .region-choices { padding-top:0; } .region-results-heading { align-items:start; flex-direction:column; gap:6px; } .region-results-heading h2 { font-size:25px; } }
@media(max-width:600px) { .hospital-summary-grid { grid-template-columns:1fr; } .hospital-summary-card { padding:20px; } .region-choice { padding:16px 10px; gap:5px 7px; } .region-choice strong { font-size:15px; } .region-button-grid { gap:10px; } }
.directory-coverage { padding:22px 26px; background:#e9f5f6; border:1px solid #bedcde; border-radius:16px; }
.directory-coverage strong,.directory-coverage span { display:block; margin:4px 0; }
.directory-coverage strong { font-size:22px; }
.directory-coverage p { margin:8px 0 0; font-size:14px; color:#000000; }
.directory-filters { margin:24px 0 16px; }
.directory-filters fieldset { border:0; padding:0; margin:0; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:16px; align-items:end; min-width:0; }
.directory-filters label { display:flex; flex-direction:column; gap:8px; font-size:15px; font-weight:600; min-width:0; }
.directory-filters input[type=search],.directory-filters select { width:100%; min-width:0; min-height:48px; padding:10px 12px; border:1px solid #abc3d2; border-radius:9px; background:#fff; color:#000000; font:inherit; }
.directory-filters .directory-checkbox { flex-direction:row; align-items:center; grid-column:1 / 3; min-height:46px; }
.directory-checkbox input { width:20px; height:20px; accent-color:#075da2; }
.directory-explainer { color:#000000; font-size:14px; line-height:1.9; }
#hospitalResultsCount { font-weight:600; padding:10px 0; }
.directory-hospital { padding:26px; margin:0 0 22px; background:#fff; border:1px solid #cfdee7; border-radius:18px; }
.directory-hospital > header { display:flex; justify-content:space-between; gap:18px; align-items:start; margin-bottom:20px; }
.directory-hospital h2 { margin-top:7px; font-size:24px; }
.directory-status { padding:6px 12px; border-radius:30px; background:#edf3f8; font-size:13px; flex-shrink:0; }
.directory-room-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.directory-room:only-child { grid-column:1 / -1; }
.directory-room { min-width:0; padding:20px; background:#f6f9fc; border-radius:12px; border:1px solid #e0e9f0; }
.directory-kind { color:#000000; font-size:12px; }
.directory-room h3 { font-size:19px; line-height:1.5; margin:6px 0 18px; }
.directory-price { display:flex; flex-direction:column; gap:4px; }
.directory-price > span { font-size:13px; color:#000000; }
.directory-price > strong { font-size:29px; line-height:1.4; color:#075da2; }
.directory-price > small { font-size:13px; color:#000000; }
.directory-room[data-price-status=needs-confirmation] .directory-price > strong { font-size:20px; color:#855312; }
.directory-room details { margin:20px 0 0; }
.directory-room summary { padding:8px 0; color:#075da2; font-size:14px; cursor:pointer; }
.directory-room dl { font-size:13px; }
.directory-room dl > div { display:flex; justify-content:space-between; gap:10px; border-bottom:1px solid #dde7ee; padding:9px 0; }
.directory-room dd { margin:0; flex-shrink:0; }
.directory-room-note { line-height:1.85; color:#000000; font-size:14px; }
.directory-hospital > footer { border-top:1px solid #e0e9ee; padding-top:18px; margin-top:20px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.directory-hospital > footer p { font-size:13px; color:#000000; margin:0; line-height:1.8; }
.directory-hospital > footer a { display:block; font-size:14px; padding:6px 0; text-decoration:underline; text-underline-offset:3px; }
.directory-empty { border:1px dashed #9ebbcf; border-radius:16px; padding:30px; margin-bottom:26px; background:#fff; }
@media(max-width:900px) { .directory-room-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .directory-filters fieldset { grid-template-columns:1fr 1fr; } .directory-search { grid-column:1 / -1; } .directory-filters .directory-checkbox { grid-column:auto; } }
@media(max-width:600px) { .directory-room-list,.directory-filters fieldset { grid-template-columns:1fr; } .directory-hospital { padding:18px; } .directory-hospital > header,.directory-hospital > footer { flex-direction:column; gap:12px; } .directory-hospital h2 { font-size:22px; } .directory-coverage { padding:20px; } .directory-search { grid-column:auto; } }

/* Region colors identify geography; province tints group names without encoding price. */
.province-picker { margin:32px 0; }
.province-picker h2 { margin:0 0 8px; font-size:25px; }
.province-picker > p { color:#000000; font-size:14px; }
.province-choice-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:18px; }
.province-choice { display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:15px 12px; border:1px solid #c6d2db; border-left:5px solid var(--region-color); border-radius:10px; background:var(--province-bg); color:#18384e; font:inherit; text-align:left; cursor:pointer; min-height:82px; }
.province-choice strong { font-size:14px; overflow-wrap:anywhere; }
.province-choice span { font-size:12px; color:#000000; }
.province-choice[aria-pressed="true"] { outline:3px solid #173a54; outline-offset:1px; }
.province-choice:focus-visible { outline:3px solid #075da2; outline-offset:3px; }
.province-choice:hover { box-shadow:0 3px 10px #193c5420; }
.hospital-province-group { margin:26px 0; border:1px solid #ccdbe5; border-left:6px solid var(--region-color); border-radius:18px; padding:22px; background:var(--province-bg); }
.province-group-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; color:#18384e; }
.province-group-heading span { font-size:13px; }
.province-group-heading h3 { font-size:25px; margin:4px 0; }
.province-group-heading p { font-size:13px; }
.hospital-province-group .hospital-summary-grid { margin:20px 0 0; }
.hospital-summary-top { background:var(--province-bg); border-left:3px solid var(--region-color); padding:9px; border-radius:6px; color:#000000; }
.hospital-summary-card h3,.hospital-summary-card h4 { font-size:19px; overflow-wrap:anywhere; }
.directory-hospital { border-top:6px solid var(--region-color,#075da2); }
.directory-hospital > header { background:var(--province-bg,#eff6fb); padding:16px; border-radius:12px; }
.hospital-province-group[hidden],.province-choice[hidden],.hospital-summary-card[hidden] { display:none; }
@media(max-width:1000px) { .province-choice-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:760px) { .province-choice-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .hospital-province-group { padding:15px; } }
@media(max-width:480px) { .province-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .province-group-heading { align-items:flex-start; flex-direction:column; gap:0; } .hospital-province-group { padding:12px; } }

/* Reveal only the area requested; incomplete prices stay in a compact disclosure. */
.room-directory [hidden] { display:none !important; }
.directory-step-hint { padding:18px 0; color:#000000; }
.region-coverage-note summary,.hospital-unpriced summary { cursor:pointer; font-weight:600; min-height:44px; padding:10px 0; }
.hospital-unpriced { margin-top:20px; border-top:1px solid #aebfcb; }
.hospital-unpriced summary span { margin-left:8px; font-size:13px; font-weight:400; }
.hospital-unpriced-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 0; border-top:1px solid #cad5dd; font-size:14px; }
.hospital-unpriced-row div { min-width:0; }
.hospital-unpriced-row a { overflow-wrap:anywhere; }
.hospital-unpriced-row small { display:block; color:#000000; margin-top:4px; }
.hospital-unpriced-row > a { flex-shrink:0; min-height:44px; display:flex; align-items:center; }
@media(max-width:480px) { .hospital-unpriced-row { align-items:flex-start; flex-direction:column; gap:4px; } }

.ktaxa-directory-controls { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:24px; }
.ktaxa-directory-controls label { display:flex; flex-direction:column; gap:8px; font-weight:600; }
.ktaxa-directory-controls select { padding:12px 16px; border:1px solid #abc1d2; border-radius:10px; background:white; color:#18384e; font:inherit; max-width:100%; }
.ktaxa-directory-controls p { color:#000000; font-size:14px; }
.ktaxa-badges { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; font-size:11px; line-height:1.6; }
.ktaxa-network-badge { color:#064b83; background:#e5f2ff; padding:4px 8px; border-radius:6px; }
.ktaxa-signature-badge { color:#654000; background:#fff0c2; padding:4px 8px; border:1px solid #d9b352; border-radius:6px; font-weight:700; }
.ktaxa-info { border:1px solid #b9cfe2; border-radius:16px; padding:24px; margin:24px 0; background:#f5faff; }
.ktaxa-info p { line-height:1.8; }
.northeast-research-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px 28px; align-items:center; padding:24px; margin-bottom:28px; border:1px solid #b9d5e5; border-left:4px solid #078494; border-radius:12px; background:#f2f9fc; }
.northeast-research-intro h2 { font-size:24px; margin:6px 0 10px; }
.northeast-research-intro p { margin:8px 0; line-height:1.8; font-size:14px; }
.northeast-research-intro > .button { text-align:center; }
.northeast-province-audit { grid-column:1/-1; border-top:1px solid #b9d5e5; padding-top:10px; min-width:0; }
.northeast-province-audit summary { cursor:pointer; font-weight:600; padding:10px 0; min-height:44px; }
.northeast-audit-table { overflow-x:auto; }
.northeast-audit-table table { width:100%; border-collapse:collapse; font-size:14px; }
.northeast-audit-table th,.northeast-audit-table td { padding:10px 12px; border-bottom:1px solid #c7dae5; text-align:left; }
.northeast-audit-table caption { text-align:left; padding:12px; font-weight:600; }
.hospital-research-status { display:block; color:#36596a; font-size:12px; margin-top:6px; }
.hospital-province-research { background:#fff; color:#18384e; border-radius:10px; padding:12px 18px; font-size:14px; line-height:1.8; margin-top:20px; }
@media(max-width:760px) { .northeast-research-intro { grid-template-columns:1fr; padding:18px; gap:12px; }.northeast-research-intro h2 { font-size:22px; }.northeast-research-intro > .button { justify-self:start; white-space:normal; }.northeast-audit-table th,.northeast-audit-table td { padding:10px 8px; } }
.ktaxa-remarks { white-space:pre-line; }
.ktaxa-scope-note { color:#634614; font-size:13px; line-height:1.7; }
@media(max-width:600px){.ktaxa-directory-controls { align-items:stretch; flex-direction:column; gap:4px; }.ktaxa-info{padding:16px;}}

/* Real provincial landmarks replace the province tints; regional accents remain. */
.province-choice { position:relative; isolation:isolate; overflow:hidden; background:#163a51; border-color:#71899a; min-height:128px; justify-content:flex-end; padding:16px 12px; }
.province-choice-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.province-choice::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0822360d 0%,#08223699 42%,#082236f2 100%); z-index:-1; }
.province-choice strong,.province-choice span { color:#fff; text-shadow:0 1px 3px #082236; }
.province-choice strong { font-size:15px; }
.province-choice span { font-size:13px; }
.province-choice[aria-pressed="true"] { outline:3px solid #086cb7; outline-offset:3px; }
.province-choice[aria-pressed="true"]::after { content:"✓"; position:absolute; top:9px; right:9px; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:white; color:#075da2; font-weight:bold; }
.province-credits-link { display:inline-flex; align-items:center; min-height:44px; margin-top:6px; font-size:13px; text-decoration:underline; }
.hospital-province-group { position:relative; isolation:isolate; overflow:hidden; background:#102b42; padding:24px; border-color:#71899a; min-height:260px; }
.province-backdrop { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; z-index:-2; }
.hospital-province-group::before { content:""; position:absolute; inset:0; background:linear-gradient(125deg,#092337c9 0%,#09233740 55%,#09233780 100%),linear-gradient(0deg,#092337b3,transparent 65%); z-index:-1; }
.province-group-heading { min-height:140px; align-items:flex-start; color:white; text-shadow:0 2px 6px #061521; }
.province-group-heading h3 { color:white; font-size:32px; line-height:1.4; margin:6px 0; }
.province-group-heading span { font-size:14px; }
.province-group-heading p { color:white; background:#092337bb; border-radius:8px; padding:8px 12px; margin:0; font-size:14px; text-shadow:none; }
.province-photo-caption { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; width:fit-content; max-width:100%; margin:0; padding:8px 12px; background:#092337d9; border-radius:8px; color:white; font-size:14px; line-height:1.7; }
.province-photo-caption a { color:white; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.hospital-province-group .hospital-summary-card { background:#fff; box-shadow:0 3px 14px #071c3026; }
.hospital-province-group .hospital-summary-top { background:#eef5fa; }
.hospital-province-group .hospital-unpriced,.hospital-province-group [data-no-prices] { background:#fff; color:#18384e; border:0; border-radius:12px; padding:12px 18px; margin-top:20px; }
.photo-credits > p { max-width:75ch; }
.photo-credits > section { margin:38px 0; }
.photo-credit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.photo-credit-grid article { min-width:0; background:white; border:1px solid #ccdbe5; border-radius:12px; overflow:hidden; padding-bottom:16px; scroll-margin-top:100px; }
.photo-credit-grid img { display:block; width:100%; height:auto; aspect-ratio:8/5; object-fit:cover; }
.photo-credit-grid h3,.photo-credit-grid p { margin:12px 16px; overflow-wrap:anywhere; }
.photo-credit-grid p { font-size:14px; line-height:1.75; }
.photo-credit-grid a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:760px) { .hospital-province-group { padding:18px; }.photo-credit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) {
 .hospital-province-group { padding:14px; }
 .province-backdrop { height:800px; }
 .hospital-province-group::before { background:linear-gradient(125deg,#092337b3,#09233733),linear-gradient(180deg,transparent 350px,#102b42 800px); }
 .province-group-heading { min-height:160px; justify-content:space-between; gap:12px; padding-bottom:16px; }
 .province-group-heading h3 { font-size:28px; }
 .province-photo-caption { font-size:13px; }
 .photo-credit-grid { grid-template-columns:1fr; }
}
