:root {
  --ink: #17343a;
  --ink-2: #31545a;
  --moss: #1c7069;
  --moss-dark: #0d4b4c;
  --mint: #dceee8;
  --coral: #d9775d;
  --coral-soft: #f2d4c5;
  --cream: #faf7f1;
  --paper: #fffdf9;
  --white: #fff;
  --muted: #708184;
  --line: #dbe5df;
  --line-strong: #b7cfc7;
  --shadow: 0 28px 80px rgba(19, 57, 60, .12);
  --serif: Georgia, "Songti SC", "Noto Serif SC", serif;
  --sans: Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 320px; margin: 0; color: var(--ink); background: var(--cream); font: 16px/1.65 var(--sans); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .68; }

.medical-portal { overflow: hidden; background: linear-gradient(180deg, #fffdf9 0, var(--cream) 34%, #f5faf7 100%); }
.portal-topline { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 36px; padding: 6px max(20px, calc((100% - 1320px) / 2)); color: #d9efea; background: var(--moss-dark); font-size: 11px; letter-spacing: .04em; }
.portal-topline a { color: #fff; font-weight: 800; }
.portal-topline a:hover { color: var(--coral-soft); }

.portal-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; width: min(1320px, calc(100% - 56px)); min-height: 82px; margin: 0 auto; border-bottom: 1px solid rgba(183, 207, 199, .72); background: rgba(255, 253, 249, .9); backdrop-filter: blur(20px); }
.portal-brand { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; }
.brand-symbol { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #fff; background: var(--moss); font-family: var(--serif); font-size: 22px; box-shadow: 4px 4px 0 var(--coral-soft); }
.portal-brand strong { display: block; font-size: 15px; letter-spacing: .16em; line-height: 1; }
.portal-brand small { display: block; margin-top: 6px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .2em; line-height: 1; }
.portal-nav { display: flex; gap: clamp(18px, 3vw, 40px); margin-left: 35px; color: var(--muted); font-size: 13px; }
.portal-nav a { position: relative; padding: 8px 0; }
.portal-nav a::after { position: absolute; right: 0; bottom: 1px; left: 0; height: 2px; content: ""; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
.portal-nav a:hover::after { transform: scaleX(1); }
.portal-actions { display: flex; align-items: center; gap: 12px; }
.language-switcher { display: flex; gap: 2px; padding: 3px; border: 1px solid var(--line); border-radius: 99px; background: var(--paper); }
.language-switcher a { display: grid; place-items: center; min-width: 31px; min-height: 27px; padding: 3px 7px; border-radius: 99px; color: var(--muted); font-size: 10px; font-weight: 900; }
.language-switcher a.active { color: #fff; background: var(--ink); }
.header-contact, .primary-button, .secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 99px; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.header-contact { min-height: 42px; padding: 0 18px; color: #fff; background: var(--coral); box-shadow: 0 5px 0 rgba(159, 78, 61, .16); }
.header-contact:hover, .primary-button:hover { transform: translateY(-2px); box-shadow: 0 8px 0 rgba(159, 78, 61, .15); }

.portal-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr); gap: clamp(44px, 7vw, 112px); align-items: center; width: min(1320px, calc(100% - 56px)); margin: auto; padding: clamp(74px, 9vw, 132px) 0 104px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--moss); font-size: 10px; font-weight: 900; letter-spacing: .17em; line-height: 1.3; }
.eyebrow span { display: inline-block; width: 28px; height: 2px; background: var(--coral); }
.hero-copy h1 { max-width: 740px; margin: 22px 0 24px; color: var(--ink); font-family: var(--serif); font-size: clamp(48px, 6.3vw, 84px); font-weight: 500; letter-spacing: -.075em; line-height: 1.02; }
.hero-text { max-width: 570px; margin: 0; color: var(--ink-2); font-size: 17px; line-height: 1.85; }
.hero-actions { display: flex; align-items: center; gap: 26px; margin-top: 32px; }
.primary-button { min-height: 50px; padding: 0 21px; color: #fff; background: var(--coral); box-shadow: 0 6px 0 rgba(159, 78, 61, .15); }
.quiet-link { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 800; }
.quiet-link:hover { color: var(--moss); border-color: var(--moss); }
.hero-note { display: flex; align-items: flex-start; gap: 8px; max-width: 490px; margin: 28px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

.hero-visual { position: relative; min-height: 548px; isolation: isolate; }
.hero-visual::before, .hero-visual::after { position: absolute; content: ""; border-radius: 34px; }
.hero-visual::before { inset: 27px 0 18px 21px; z-index: -2; background: var(--coral-soft); transform: rotate(-2.5deg); }
.hero-visual::after { inset: 0 21px 39px 0; z-index: -1; background: radial-gradient(circle at 90% 12%, rgba(157, 218, 202, .33), transparent 26%), linear-gradient(145deg, #1c5555 0, #0d3239 68%, #09252d 100%); box-shadow: 0 32px 80px rgba(19, 57, 60, .2); }
.visual-orbit { position: absolute; border: 1px solid rgba(207, 239, 229, .24); border-radius: 50%; pointer-events: none; }
.orbit-one { top: 54px; right: 64px; width: 208px; height: 208px; }
.orbit-two { top: 109px; right: 115px; width: 104px; height: 104px; border-color: rgba(242, 183, 153, .5); }
.visual-kicker, .visual-footer { position: absolute; right: 35px; left: 32px; display: flex; justify-content: space-between; color: #a8cec3; font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.visual-kicker { top: 28px; }
.visual-kicker span:last-child, .visual-footer span:last-child { color: #efb59b; }
.visual-card { position: absolute; top: 82px; right: 52px; left: 52px; min-height: 300px; padding: 24px 25px 29px; border: 1px solid rgba(207, 239, 229, .27); border-radius: 22px; color: #edf9f5; background: rgba(225, 246, 239, .1); box-shadow: 0 20px 35px rgba(0, 0, 0, .14); backdrop-filter: blur(6px); }
.visual-card-top { display: flex; justify-content: space-between; color: #98c5ba; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.visual-pulse { display: inline-flex; align-items: center; gap: 7px; color: #d4eee7; }
.visual-pulse i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 5px rgba(217, 119, 93, .16); }
.visual-title { display: flex; gap: 15px; align-items: flex-start; margin-top: 53px; }
.visual-title span { color: #efb59b; font-size: 11px; font-weight: 800; }
.visual-title strong { max-width: 330px; font-family: var(--serif); font-size: clamp(28px, 3.4vw, 44px); font-weight: 500; letter-spacing: -.06em; line-height: 1.05; }
.visual-card p { max-width: 340px; margin: 19px 0 26px; color: #b3d8cf; font-size: 12px; line-height: 1.75; }
.visual-route { display: flex; align-items: center; gap: 9px; color: #d1ece5; font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.visual-route b { width: 28px; height: 1px; background: rgba(207, 239, 229, .42); }
.visual-stats { position: absolute; right: 31px; bottom: 91px; left: 31px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid rgba(207, 239, 229, .25); background: rgba(207, 239, 229, .25); }
.visual-stats div { min-height: 74px; padding: 13px 11px; background: rgba(20, 67, 70, .84); }
.visual-stats small, .visual-stats strong { display: block; }
.visual-stats small { color: #98c5ba; font-size: 8px; line-height: 1.3; }
.visual-stats strong { margin-top: 6px; color: #effbf8; font-size: 11px; line-height: 1.3; }
.visual-footer { right: 31px; bottom: 44px; left: 31px; color: #78a7a0; font-size: 8px; }

.trust-strip { display: grid; grid-template-columns: repeat(4, 1fr); width: min(1320px, calc(100% - 56px)); margin: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trust-strip > div { display: flex; gap: 12px; align-items: flex-start; min-height: 106px; padding: 24px 20px; border-right: 1px solid var(--line); }
.trust-strip > div:first-child { padding-left: 0; }
.trust-strip > div:last-child { border-right: 0; }
.trust-number, .service-index, .process-number, .destination-list article > span { color: var(--coral); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.trust-strip strong, .trust-strip small { display: block; }
.trust-strip strong { font-size: 13px; line-height: 1.35; }
.trust-strip small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.45; }

.portal-section { width: min(1320px, calc(100% - 56px)); margin: auto; scroll-margin-top: 105px; }
.services-section { padding: 128px 0 137px; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .62fr); gap: 80px; align-items: end; }
.section-heading h2, .destination-intro h2, .care-panel h2, .contact-copy h2 { max-width: 700px; margin: 21px 0 0; color: var(--ink); font-family: var(--serif); font-size: clamp(38px, 4.7vw, 63px); font-weight: 500; letter-spacing: -.07em; line-height: 1.03; }
.section-heading > p, .destination-intro > p:last-of-type, .contact-copy > p { margin: 0 0 6px; color: var(--ink-2); font-size: 15px; line-height: 1.85; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 58px; }
.service-card { display: flex; flex-direction: column; min-height: 340px; padding: 22px 21px 20px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255, 255, 255, .72); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.service-card:hover { border-color: var(--line-strong); box-shadow: var(--shadow); transform: translateY(-5px); }
.service-card-top { display: flex; align-items: center; justify-content: space-between; }
.service-icon { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid #c9e0d8; border-radius: 50%; color: var(--moss); background: var(--mint); }
.service-card h3 { margin: 48px 0 12px; color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 500; line-height: 1.25; letter-spacing: -.04em; }
.service-card p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.service-card a { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 23px; color: var(--moss); font-size: 14px; font-weight: 900; }

.process-section { padding: 116px 0 131px; border-top: 1px solid var(--line); }
.process-list { margin-top: 58px; border-top: 1px solid var(--line-strong); }
.process-row { display: grid; grid-template-columns: 52px 1fr 22px; gap: 23px; align-items: start; min-height: 116px; padding: 25px 0; border-bottom: 1px solid var(--line-strong); }
.process-row h3 { margin: 0 0 4px; color: var(--ink); font-family: var(--serif); font-size: 21px; font-weight: 500; line-height: 1.3; }
.process-row p { max-width: 670px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.process-check { color: var(--moss); font-size: 17px; }

.destinations-section { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(50px, 9vw, 145px); align-items: start; padding: 124px 0 132px; border-top: 1px solid var(--line); }
.destination-intro h2 { font-size: clamp(38px, 4.1vw, 56px); }
.destination-intro > p:last-of-type { margin-top: 23px; }
.destination-intro .quiet-link { margin-top: 28px; }
.destination-list { border-top: 1px solid var(--line-strong); }
.destination-list article { display: grid; grid-template-columns: 35px 1fr 22px; gap: 16px; align-items: center; min-height: 128px; border-bottom: 1px solid var(--line-strong); }
.destination-list h3 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: 29px; font-weight: 500; letter-spacing: -.05em; line-height: 1.2; }
.destination-list p { margin: 5px 0 9px; color: var(--muted); font-size: 14px; }
.destination-list strong { color: var(--moss); font-size: 10px; letter-spacing: .04em; }
.destination-arrow { color: var(--moss); font-size: 20px; }

.care-panel { display: grid; grid-template-columns: 58px 1fr .85fr; gap: 23px; align-items: start; width: min(1320px, calc(100% - 56px)); margin: auto; padding: 40px 36px; border: 1px solid #c6dfd6; border-radius: 22px; background: linear-gradient(120deg, #e4f3ed, #f6faf6); }
.care-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: #985641; background: var(--coral-soft); font-family: var(--serif); font-size: 22px; }
.care-panel h2 { max-width: 480px; margin-top: 15px; font-size: clamp(28px, 3.2vw, 41px); }
.care-panel > div:nth-child(2) > p:last-child { max-width: 550px; margin: 16px 0 0; color: var(--ink-2); font-size: 15px; line-height: 1.8; }
.care-panel ul { display: grid; gap: 12px; margin: 34px 0 0; padding: 0; list-style: none; }
.care-panel li { display: flex; align-items: flex-start; gap: 9px; color: var(--ink-2); font-size: 14px; line-height: 1.55; }
.care-panel li::first-letter { color: var(--moss); }

.faq-section { padding: 128px 0 135px; }
.faq-section .section-heading { display: block; }
.faq-list { max-width: 900px; margin: 57px auto 0; border-top: 1px solid var(--line-strong); }
.faq-item { border-bottom: 1px solid var(--line-strong); }
.faq-item button { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 20px; padding: 22px 0; border: 0; color: var(--ink); background: transparent; font-family: var(--serif); font-size: 18px; font-weight: 500; text-align: left; }
.faq-item button span:last-child { color: var(--moss); font-family: var(--sans); font-size: 18px; transition: transform .2s ease; }
.faq-item.open button span:last-child { transform: rotate(180deg); }
.faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .25s ease; }
.faq-answer p { overflow: hidden; max-width: 780px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.faq-item.open .faq-answer { grid-template-rows: 1fr; }
.faq-item.open .faq-answer p { padding-bottom: 23px; }

.contact-section { display: grid; grid-template-columns: minmax(290px, .8fr) minmax(500px, 1.2fr); gap: clamp(50px, 9vw, 125px); align-items: start; width: min(1320px, calc(100% - 56px)); margin: auto; padding: 108px 0 120px; border-top: 1px solid var(--line); scroll-margin-top: 105px; }
.contact-copy h2 { font-size: clamp(39px, 4.5vw, 60px); }
.contact-copy > p:not(.eyebrow) { margin-top: 24px; }
.contact-promise { display: flex; align-items: center; gap: 9px; margin-top: 33px; color: var(--moss); font-size: 14px; font-weight: 800; }
.contact-card { padding: 28px; border: 1px solid var(--line); border-radius: 21px; background: var(--paper); box-shadow: var(--shadow); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.form-grid label { display: grid; gap: 7px; color: var(--ink-2); font-size: 14px; font-weight: 800; line-height: 1.35; }
input, textarea, select { width: 100%; border: 1px solid var(--line-strong); border-radius: 9px; outline: none; color: var(--ink); background: #fff; }
input, select { min-height: 46px; padding: 0 12px; }
textarea { padding: 11px 12px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--moss); box-shadow: 0 0 0 3px rgba(74, 159, 143, .18); }
.form-wide { grid-column: 1 / -1; }
.consent { display: flex; gap: 9px; align-items: flex-start; margin-top: 17px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.consent input { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; accent-color: var(--moss); }
.form-error { margin: 14px 0 0; padding: 10px 12px; border: 1px solid #ebc0b2; border-radius: 8px; color: #92503f; background: #fff3ee; font-size: 13px; line-height: 1.5; }
.form-submit { width: 100%; margin-top: 20px; }
.success-state { display: grid; justify-items: center; min-height: 360px; padding: 43px 20px; text-align: center; }
.success-icon { display: grid; place-items: center; width: 59px; height: 59px; border-radius: 50%; color: #fff; background: var(--moss); box-shadow: 0 0 0 8px var(--mint); }
.success-state h3 { margin: 25px 0 7px; color: var(--ink); font-family: var(--serif); font-size: 26px; font-weight: 500; }
.success-state p { max-width: 360px; margin: 0 0 23px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.success-state .success-reference { max-width: 100%; margin: 0 0 23px; padding: 9px 13px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--moss); background: var(--mint); font-size: 14px; font-weight: 800; line-height: 1.4; }
.secondary-button { min-height: 44px; padding: 0 17px; color: var(--moss); border: 1px solid var(--line-strong); background: var(--mint); }

.account-trigger { min-height: 36px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--moss); background: var(--paper); font: inherit; font-size: 11px; font-weight: 800; letter-spacing: .02em; cursor: pointer; }
.account-trigger:hover { color: var(--ink); border-color: var(--moss); }
.account-panel { position: fixed; z-index: 20; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(20, 43, 69, .42); backdrop-filter: blur(7px); }
.account-panel[hidden] { display: none; }
.account-panel-card { position: relative; width: min(620px, 100%); max-height: min(790px, calc(100vh - 48px)); overflow: auto; padding: 38px; border: 1px solid var(--line-strong); border-radius: 20px; background: var(--paper); box-shadow: 0 30px 90px rgba(20, 43, 69, .22); }
.account-close { position: absolute; top: 16px; right: 20px; width: 34px; height: 34px; border: 0; border-radius: 50%; color: var(--moss); background: var(--mint); font-size: 24px; line-height: 1; cursor: pointer; }
.account-panel-head { padding-right: 35px; border-bottom: 1px solid var(--line); }
.account-panel-head h2 { margin: 12px 0 27px; color: var(--ink); font-family: var(--serif); font-size: 42px; font-weight: 500; }
.account-form { display: grid; gap: 14px; padding-top: 25px; }
.account-form h3, .account-summary h3, .patient-cases > h3 { margin: 0 0 4px; color: var(--ink); font-family: var(--serif); font-size: 27px; font-weight: 500; }
.account-form label { display: grid; gap: 7px; color: var(--ink); font-size: 12px; font-weight: 800; }
.account-form input { width: 100%; min-height: 45px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--ink); background: #fff; font: inherit; font-size: 14px; }
.account-consent { display: flex !important; grid-template-columns: auto 1fr; grid-template-rows: auto; align-items: flex-start; gap: 9px !important; font-weight: 500 !important; line-height: 1.55; }
.account-consent input { width: 17px; min-height: 17px; margin-top: 2px; accent-color: var(--moss); }
.account-form .primary-button { width: 100%; margin-top: 5px; }
.account-switch, .account-back { border: 0; color: var(--moss); background: transparent; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.account-switch:hover, .account-back:hover { color: var(--ink); }
.account-error { margin: 0; padding: 10px 12px; border: 1px solid #ebc0b2; border-radius: 8px; color: #92503f; background: #fff3ee; font-size: 13px; line-height: 1.5; }
.account-summary { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; padding: 27px 0 23px; border-bottom: 1px solid var(--line); }
.account-summary p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.account-logout { padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--moss); background: transparent; font: inherit; font-size: 11px; cursor: pointer; }
.patient-cases { padding-top: 26px; }
.patient-case { padding: 15px 0; border-bottom: 1px solid var(--line); }
.case-open { display: flex; width: 100%; justify-content: space-between; gap: 12px; padding: 0; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.case-open span { display: grid; gap: 5px; }
.case-open small { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.case-open strong { font-size: 14px; }
.case-open b { align-self: center; padding: 6px 9px; border-radius: 999px; color: var(--moss); background: var(--mint); font-size: 11px; font-weight: 800; }
.patient-case > p { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.patient-case-detail { padding-top: 22px; }
.patient-case-detail h3 { margin: 10px 0 6px; color: var(--ink); font-family: var(--serif); font-size: 31px; font-weight: 500; word-break: break-word; }
.patient-case-meta { margin: 0; color: var(--muted); font-size: 13px; }
.patient-detail-block { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); }
.patient-detail-block h4 { margin: 0 0 10px; color: var(--ink); font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.patient-detail-block > p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; white-space: pre-line; }
.patient-confirm { margin-top: 16px; }
.patient-task, .patient-event { display: grid; gap: 5px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.patient-task:last-child, .patient-event:last-child { border-bottom: 0; }
.patient-clinical-disclaimer { margin: 0 0 12px; padding: 10px 12px; border-left: 2px solid var(--moss); color: var(--muted); background: var(--mint); font-size: 12px; line-height: 1.65; }
.patient-clinical-record { display: grid; gap: 8px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.patient-clinical-record:last-child { border-bottom: 0; }
.patient-clinical-heading { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.patient-clinical-heading strong { color: var(--ink); font-size: 14px; }
.patient-clinical-heading span { color: var(--moss); font-size: 11px; font-weight: 800; }
.patient-clinical-record > small { color: var(--muted); font-size: 11px; line-height: 1.6; }
.patient-clinical-record > p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; white-space: pre-line; }
.patient-clinical-record > p b { color: var(--ink); }
.patient-task strong, .patient-event strong { color: var(--ink); font-size: 13px; }
.patient-task span { color: var(--moss); font-size: 12px; font-weight: 800; }
.patient-task small, .patient-event small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.patient-event p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.patient-message-form, .patient-document-form { display: grid; gap: 9px; margin-top: 15px; }
.patient-message-form textarea, .patient-document-form input, .patient-document-form select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--ink); background: #fff; font: inherit; font-size: 13px; }
.patient-message-form textarea { resize: vertical; }
.patient-message-form .secondary-button, .patient-document-form .secondary-button { justify-self: start; min-height: 38px; }
.patient-document-form small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.account-muted, .account-loading { padding: 20px 0; color: var(--muted); font-size: 13px; line-height: 1.7; }

.disclaimer { display: flex; align-items: flex-start; gap: 11px; width: min(1320px, calc(100% - 56px)); margin: auto; padding: 21px 0 29px; border-top: 1px solid var(--line); color: var(--muted); }
.disclaimer > span { flex: 0 0 auto; margin-top: 3px; color: var(--moss); }
.disclaimer p { margin: 0; font-size: 10px; line-height: 1.75; }
.portal-footer { display: grid; grid-template-columns: 1fr 1.2fr auto; gap: 25px; align-items: center; width: min(1320px, calc(100% - 56px)); margin: auto; padding: 42px 0 40px; border-top: 1px solid var(--line); }
.portal-footer p, .portal-footer > span { margin: 0; color: var(--muted); font-size: 11px; }
.portal-footer > span { text-align: right; }

@media (max-width: 1050px) {
  .portal-hero { grid-template-columns: 1fr; gap: 56px; }
  .hero-copy { max-width: 780px; }
  .hero-visual { width: min(780px, 100%); margin: auto; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .section-heading { gap: 45px; }
  .destinations-section { gap: 60px; }
  .care-panel { grid-template-columns: 55px 1fr; }
  .care-panel ul { grid-column: 2; margin-top: 2px; }
}

@media (max-width: 740px) {
  .portal-topline { justify-content: space-between; gap: 10px; padding: 7px 16px; font-size: 9px; white-space: nowrap; }
  .portal-topline span { overflow: hidden; text-overflow: ellipsis; }
  .portal-header, .portal-hero, .trust-strip, .portal-section, .care-panel, .contact-section, .disclaimer, .portal-footer { width: min(calc(100% - 32px), 560px); }
  .portal-header { min-height: 73px; }
  .portal-nav, .header-contact { display: none; }
  .portal-actions { gap: 4px; }
  .account-trigger { max-width: 108px; overflow: hidden; padding: 0 8px; text-overflow: ellipsis; white-space: nowrap; }
  .language-switcher { padding: 3px; }
  .language-switcher a { min-width: 28px; padding: 4px 5px; }
  .portal-hero { padding: 60px 0 71px; }
  .hero-copy h1 { margin: 20px 0 21px; font-size: clamp(45px, 13vw, 69px); }
  .hero-text { font-size: 15px; line-height: 1.78; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; margin-top: 28px; }
  .hero-visual { min-height: 490px; }
  .hero-visual::after { right: 10px; border-radius: 25px; }
  .hero-visual::before { left: 10px; border-radius: 25px; }
  .visual-card { top: 76px; right: 25px; left: 25px; padding: 20px; }
  .visual-title { margin-top: 43px; }
  .visual-title strong { font-size: 31px; }
  .visual-stats { right: 25px; bottom: 86px; left: 25px; }
  .visual-stats div { min-height: 81px; padding: 12px 9px; }
  .visual-stats strong { font-size: 10px; }
  .visual-kicker, .visual-footer { right: 25px; left: 25px; }
  .visual-kicker { top: 24px; font-size: 8px; }
  .visual-footer { bottom: 43px; font-size: 8px; }
  .trust-strip { grid-template-columns: 1fr; }
  .trust-strip > div, .trust-strip > div:first-child { min-height: 71px; padding: 14px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-strip > div:last-child { border-bottom: 0; }
  .services-section, .process-section, .destinations-section, .faq-section { padding: 83px 0 86px; }
  .section-heading, .destinations-section, .contact-section { display: block; }
  .section-heading > p { margin-top: 27px; }
  .section-heading h2, .destination-intro h2, .care-panel h2, .contact-copy h2 { font-size: 39px; }
  .service-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 39px; }
  .service-card { min-height: 275px; }
  .service-card h3 { margin-top: 34px; }
  .process-list { margin-top: 39px; }
  .process-row { grid-template-columns: 37px 1fr 18px; gap: 12px; min-height: 130px; }
  .destination-list { margin-top: 48px; }
  .care-panel { grid-template-columns: 44px 1fr; padding: 27px 20px; gap: 13px; }
  .care-mark { width: 40px; height: 40px; }
  .care-panel ul { grid-column: 1 / -1; margin-top: 17px; }
  .faq-list { margin-top: 38px; }
  .faq-item button { padding: 19px 0; font-size: 16px; }
  .contact-section { padding: 83px 0 86px; }
  .contact-copy > p:not(.eyebrow) { margin-top: 23px; }
  .contact-card { margin-top: 40px; padding: 20px 16px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .account-panel { padding: 12px; }
  .account-panel-card { max-height: calc(100vh - 24px); padding: 28px 20px 22px; }
  .account-panel-head h2 { font-size: 35px; }
  .account-summary { display: block; }
  .account-logout { margin-top: 16px; }
  .portal-footer { grid-template-columns: 1fr; gap: 22px; padding-top: 32px; }
  .portal-footer > span { text-align: left; }
  .disclaimer { padding-top: 20px; }
}

/* 2026-10-08 patient-first front page and sign-in redesign */
:root {
  --ink: #17324a;
  --ink-2: #38536a;
  --moss: #19766f;
  --moss-dark: #104d4d;
  --mint: #e4f1ec;
  --coral: #c87458;
  --coral-soft: #f0d9ca;
  --cream: #f4f5f1;
  --paper: #fff;
  --muted: #6d7c87;
  --line: #dce5e2;
  --line-strong: #bfd1cb;
  --shadow: 0 24px 64px rgba(23, 50, 74, .11);
}

body { background: #f4f5f1; }
.medical-portal { background: linear-gradient(180deg, #fff 0, #f5f7f4 43%, #fff 100%); }
.portal-topline { min-height: 39px; padding-top: 7px; padding-bottom: 7px; background: #143f48; }
.portal-header { width: min(1400px, calc(100% - 72px)); min-height: 88px; border-bottom-color: rgba(191, 209, 203, .65); }
.brand-symbol { width: 43px; height: 43px; background: #176e6d; box-shadow: 4px 4px 0 #edc8b4; }
.portal-brand strong { letter-spacing: .18em; }
.portal-nav { gap: clamp(18px, 2.6vw, 38px); color: #526975; }
.account-trigger { min-height: 42px; padding: 0 17px; border-color: #b8d2cb; color: #17645f; background: #e7f2ed; font-size: 12px; }
.account-trigger:hover { color: #fff; border-color: #17645f; background: #17645f; }
.header-contact { min-height: 44px; padding: 0 20px; background: #c87458; }
.portal-hero { position: relative; width: min(1400px, calc(100% - 72px)); grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr); gap: clamp(42px, 6vw, 90px); padding: clamp(70px, 8vw, 112px) clamp(28px, 4.6vw, 66px) 76px; border-radius: 0 0 34px 34px; background: radial-gradient(ellipse at 85% 20%, rgba(215, 236, 226, .7), transparent 36%), linear-gradient(130deg, #f8faf7, #edf4ef); }
.hero-copy h1 { max-width: 700px; font-size: clamp(48px, 5.6vw, 76px); line-height: 1.08; letter-spacing: -.065em; }
.hero-text { max-width: 600px; font-size: 16px; line-height: 1.9; }
.hero-actions { flex-wrap: wrap; gap: 13px; margin-top: 30px; }
.primary-button { min-height: 52px; padding: 0 23px; background: #c87458; box-shadow: 0 5px 0 rgba(120, 65, 48, .13); }
.patient-login-hero { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 9px; padding: 0 20px; border: 1px solid #b9d2ca; border-radius: 999px; color: #195e5d; background: rgba(255,255,255,.84); font-size: 13px; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.patient-login-hero::before { width: 8px; height: 8px; border-radius: 50%; content: ""; background: #19766f; box-shadow: 0 0 0 4px #dceee8; }
.patient-login-hero:hover { transform: translateY(-2px); border-color: #19766f; box-shadow: 0 9px 22px rgba(23, 50, 74, .1); }
.hero-note { margin-top: 22px; }
.hero-visual { min-height: 525px; }
.hero-visual::before { inset: 23px 0 18px 18px; border-radius: 30px; background: #e5c8b6; }
.hero-visual::after { inset: 0 18px 36px 0; border-radius: 30px; background: radial-gradient(circle at 78% 14%, rgba(135, 196, 176, .25), transparent 30%), linear-gradient(145deg, #1b6060 0, #143d4a 75%, #112f3d 100%); }
.visual-card { top: 77px; right: 46px; left: 46px; min-height: 292px; border-radius: 18px; background: rgba(238, 249, 244, .11); }
.visual-stats { right: 27px; left: 27px; border-radius: 13px; overflow: hidden; }
.visual-stats div { background: rgba(13, 58, 67, .84); }
.trust-strip { width: min(1300px, calc(100% - 100px)); margin-top: 24px; padding: 2px 0; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 12px 34px rgba(23, 50, 74, .04); }
.trust-strip > div { min-height: 94px; padding: 21px 20px; }
.services-section, .process-section, .destinations-section, .faq-section { padding-top: 112px; padding-bottom: 116px; }
.section-heading h2, .destination-intro h2, .care-panel h2, .contact-copy h2 { letter-spacing: -.055em; }
.service-grid { gap: 16px; margin-top: 45px; }
.service-card { min-height: 310px; padding: 23px; border-radius: 15px; background: #fff; box-shadow: 0 10px 28px rgba(23, 50, 74, .035); }
.service-card h3 { margin-top: 36px; }
.service-card:hover { box-shadow: 0 20px 46px rgba(23, 50, 74, .1); }
.process-section { background: linear-gradient(120deg, rgba(228, 241, 236, .58), rgba(255,255,255,0)); }
.process-list { margin-top: 42px; }
.process-row { min-height: 105px; }
.care-panel { border-radius: 18px; background: linear-gradient(120deg, #e6f1ec, #f8f8f4); }
.contact-section { padding-top: 98px; padding-bottom: 105px; }
.contact-card { border-radius: 18px; box-shadow: 0 18px 45px rgba(23, 50, 74, .07); }

.account-panel { z-index: 50; padding: 24px; background: rgba(10, 28, 42, .62); backdrop-filter: blur(10px); }
.account-panel-card { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); grid-template-areas: "content head"; width: min(960px, 100%); max-height: min(760px, calc(100vh - 48px)); padding: 0; overflow: auto; border: 0; border-radius: 22px; background: #fff; box-shadow: 0 35px 100px rgba(7, 30, 46, .32); }
.account-panel-head { grid-area: head; display: flex; flex-direction: column; justify-content: center; min-height: 480px; padding: 58px 48px; border: 0; color: #fff; background: radial-gradient(circle at 83% 13%, rgba(143, 207, 180, .25), transparent 27%), linear-gradient(145deg, #1b6461, #143e4a 75%, #122f40); }
.account-panel-head .eyebrow { color: #b9d9ce; }
.account-panel-head .eyebrow span { background: #e7a990; }
.account-panel-head h2 { max-width: 360px; margin: 22px 0 15px; color: #fff; font-size: clamp(33px, 4vw, 48px); line-height: 1.1; letter-spacing: -.05em; }
.account-panel-intro { max-width: 350px; margin: 0; color: #d0e5df; font-size: 14px; line-height: 1.8; }
.account-panel-benefits { display: grid; gap: 12px; margin-top: 30px; color: #e6f3ef; font-size: 12px; font-weight: 700; }
.account-panel-benefits span { padding-top: 11px; border-top: 1px solid rgba(230,243,239,.2); }
.account-content { grid-area: content; align-self: center; padding: 48px 43px; }
.account-form { gap: 16px; padding-top: 0; }
.account-form h3 { margin-bottom: 5px; font-family: var(--sans); font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.account-form label { gap: 8px; color: #3e5867; font-size: 12px; }
.account-form input { min-height: 49px; padding: 0 14px; border-color: #d1dfda; border-radius: 10px; background: #fbfcfa; }
.account-form input:focus, .patient-message-form textarea:focus, .patient-document-form input:focus, .patient-document-form select:focus { outline: 3px solid rgba(25, 118, 111, .14); border-color: #19766f; }
.account-form .primary-button { min-height: 50px; margin-top: 4px; }
.account-switch { padding: 6px 0; font-size: 12px; }
.account-close { z-index: 2; top: 15px; right: 15px; width: 39px; height: 39px; color: #285c5a; background: rgba(255,255,255,.16); font-size: 26px; }
.account-panel-head .account-close { color: #fff; }
.patient-panel-open { overflow: hidden; }
:focus-visible { outline: 3px solid rgba(25, 118, 111, .42); outline-offset: 3px; }

@media (max-width: 1050px) {
  .portal-header, .portal-hero { width: min(100% - 48px, 900px); }
  .portal-hero { padding: 68px 34px 56px; }
  .trust-strip { width: min(100% - 64px, 900px); }
}

@media (max-width: 740px) {
  .portal-header, .portal-hero, .trust-strip, .portal-section, .care-panel, .contact-section, .disclaimer, .portal-footer { width: min(calc(100% - 28px), 560px); }
  .portal-header { min-height: 70px; }
  .account-trigger { max-width: none; min-height: 38px; padding: 0 11px; font-size: 10px; }
  .portal-actions { gap: 6px; }
  .portal-hero { gap: 35px; margin-top: 6px; padding: 47px 20px 28px; border-radius: 18px; }
  .hero-copy h1 { font-size: clamp(43px, 12vw, 61px); line-height: 1.08; }
  .hero-actions { gap: 11px; }
  .hero-actions .primary-button, .patient-login-hero { width: 100%; justify-content: center; }
  .hero-actions .quiet-link { margin-top: 5px; }
  .hero-visual { min-height: 450px; }
  .visual-card { top: 72px; right: 22px; left: 22px; min-height: 270px; }
  .visual-stats { right: 20px; bottom: 78px; left: 20px; }
  .trust-strip { margin-top: 16px; padding: 6px 18px; }
  .services-section, .process-section, .destinations-section, .faq-section { padding-top: 76px; padding-bottom: 78px; }
  .account-panel { padding: 10px; }
  .account-panel-card { grid-template-columns: 1fr; grid-template-areas: "head" "content"; max-height: calc(100dvh - 20px); border-radius: 18px; }
  .account-panel-head { min-height: auto; padding: 29px 24px 23px; }
  .account-panel-head h2 { margin: 12px 0 8px; font-size: 31px; }
  .account-panel-intro { font-size: 12px; }
  .account-panel-benefits { grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 17px; font-size: 9px; line-height: 1.4; }
  .account-panel-benefits span { padding-top: 8px; }
  .account-content { padding: 24px; }
  .account-close { top: 10px; right: 10px; }
}

.partner-entry-link { justify-self: end; color: var(--teal-deep); font-size: 11px; font-weight: 800; }
@media (max-width: 740px) { .partner-entry-link { justify-self: start; } }
.patient-consent-list { display: grid; gap: 9px; }
.patient-consent-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.patient-consent-row > div { display: grid; gap: 4px; min-width: 0; }
.patient-consent-row strong { color: var(--ink); font-size: 12px; }
.patient-consent-row span, .patient-consent-row small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.patient-consent-row .secondary-button { flex: 0 0 auto; min-height: 34px; padding: 0 11px; font-size: 10px; }
@media (max-width: 520px) { .patient-consent-row { align-items: flex-start; flex-direction: column; } }
