/* A quieter, premium editorial finish with senior-friendly controls. */
:root{--forest:#153b37;--teal:#087f75}
html{scroll-padding-top:24px}
body{font-size:16px;-webkit-font-smoothing:antialiased}
.hero{background:radial-gradient(circle at 5% 12%,#fff 0,#f0f9f3 42%,#e3f0e8 100%);overflow:hidden}
.hero-copy h1{font-size:clamp(46px,5.5vw,72px);letter-spacing:-3.4px}
.hero-copy p{font-size:17px;line-height:1.85}
.hero-visual>img{border-radius:32px}
.topline,.kicker,.minor{letter-spacing:2.5px}
.button{font-size:15px;min-height:49px;border-radius:13px;box-shadow:0 8px 24px #0a766d1c;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.button:hover{transform:translateY(-3px);box-shadow:0 14px 30px #0a766d2e}
.wizard{max-width:1090px;border-radius:29px;border:1px solid #deebe5;box-shadow:0 28px 95px #1a504019}
.wizard-content{padding:46px 50px}
.wizard-top{padding:28px 45px}
.wizard-label b{font-size:18px}
.wizard-label small,.footer-step{font-size:13px}
.wizard-footer{padding:23px 46px}
.progress{padding:0 45px}
.stage-intro h3{font-size:clamp(29px,3.3vw,39px);letter-spacing:-1.8px}
.stage-intro p{font-size:15px}
.field-title,.fields label{font-size:15px}
.fields input,.fields select,select,.contact-form input,textarea{font-size:17px;min-height:55px;padding:14px 17px;border-radius:12px}
.fields textarea{min-height:140px}
.body-grid{gap:13px}
.body-grid button{min-height:120px;transition:transform .22s ease,border-color .22s ease,background .22s ease;box-shadow:0 5px 14px #153d3210}
.body-grid button:hover{transform:translateY(-4px);border-color:#7bc0aa}
.body-grid button.selected{transform:translateY(-2px)}
.body-grid b{font-size:13px}
.hospital-list{max-height:570px;overflow:auto;scrollbar-width:thin;padding:3px 5px 3px 0}
.hospital-card{padding:19px;transition:transform .25s ease,box-shadow .25s ease;border-radius:16px}
.hospital-card:hover{transform:translateX(3px);box-shadow:0 6px 22px #1a504017}
.hospital-card b{font-size:16px}
.hospital-card p{font-size:13px}
.hospital-card input{width:18px;height:18px}
.hospital-card small{font-size:11px}
.cost-highlight{background:linear-gradient(120deg,#e7f6ef,#d7eee7);padding:32px;border-radius:20px;box-shadow:0 15px 28px #13563c10}
.cost-highlight strong{font-size:42px}
#converted-medical{display:flex;flex-direction:column;gap:5px}
.foreign-total{font-size:30px;color:#087b71;font-family:Manrope,sans-serif;letter-spacing:-1px}
.fx-caption{color:#638b7c;font-size:13px}
.exchange-banner{display:flex;align-items:center;gap:14px;background:#f2f8f4;border:1px solid #dbeae1;padding:16px 19px;border-radius:14px;margin-top:-4px}
.exchange-banner b{display:block;font-size:14px}
.exchange-banner small{display:block;font-size:12px;color:#6d877f;line-height:1.6;margin-top:4px}
.exchange-dot{color:#0b998c;font-size:18px}
.city-showcase{background:#f2f8f4;border:1px solid #deeee5;border-radius:20px;padding:21px;margin:21px 0;animation:fadeSlide .45s ease both}
.city-showcase-header{display:flex;align-items:center;justify-content:space-between}
.city-showcase-header h4{font-size:24px;margin:7px 0;font-family:Manrope,sans-serif}
.city-showcase-header p{font-size:13px;color:#75948a;line-height:1.6}
.city-showcase-header>span{font-size:38px;color:#67bfa4}
.city-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}
.city-tile{height:190px;border-radius:14px;position:relative;overflow:hidden;background:#87b09f}
.city-tile:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0d302ddd)}
.city-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.city-tile:hover img{transform:scale(1.08)}
.city-tile b{position:absolute;left:13px;bottom:14px;color:#fff;font-size:14px;z-index:1;text-shadow:0 1px 10px #0008}
.city-showcase .footnote{margin-bottom:0}
.compare-panel{border:1px solid #d5e8df;border-radius:19px;padding:27px;margin:24px 0;background:#fff}
.compare-head{display:flex;align-items:start;justify-content:space-between}
.compare-head h4{font-size:25px;margin:9px 0;font-family:Manrope,sans-serif;letter-spacing:-1px}
.compare-head p{font-size:13px;color:#71887e;line-height:1.6;max-width:550px}
.compare-icon{font-size:35px;color:#0a8f80}
.compare-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
.compare-inputs label{font-size:13px;font-weight:800;display:flex;flex-direction:column;gap:10px}
.compare-inputs input{font-size:18px;border:1px solid #ccdcd4;border-radius:12px;padding:14px;min-width:0}
.compare-china{background:#f1f8f4;border-radius:12px;padding:17px;display:flex;flex-direction:column;gap:8px;justify-content:center}
.compare-china small{color:#6d8b7f;font-size:12px}
.compare-china b{font-size:17px}
.savings-placeholder{font-size:13px;background:#f9fbfa;padding:18px;border-radius:12px;color:#789086}
.savings-result{background:linear-gradient(120deg,#dff6e9,#f0fbf5);padding:22px;border-radius:15px;display:flex;flex-direction:column;gap:8px}
.savings-result span{font-size:13px;font-weight:700;color:#547b69}
.savings-result strong{font:800 26px Manrope,sans-serif;color:#087b62}
.savings-result small{font-size:12px;color:#537c6b}
.compare-disclaimer{display:block;margin-top:15px;color:#81968c;line-height:1.7;font-size:11px}
.summary-converted{display:block;font-size:23px;font-weight:800;color:#abebd6;line-height:1.5}
.service-status{display:flex;gap:20px;max-width:1090px;margin:-9px auto 30px}
.service-status>div{flex:1;display:flex;flex-direction:column;gap:7px;padding:16px 20px;background:#e9f5ec;border:1px solid #d4ebdf;border-radius:15px}
.service-status b{font-size:13px}
.service-status span{font-size:12px;color:#6b897a;line-height:1.5}
.attraction{transition:transform .25s ease,box-shadow .25s ease}
.attraction:hover{transform:translateY(-5px);box-shadow:0 15px 25px #173e3020}
.attraction img{height:165px}
.attraction b{font-size:14px}
.selected-city{font-size:15px;padding:19px}
.tour-choice{padding:28px}
.story-grid article{box-shadow:0 8px 30px #123c2810;transition:transform .3s ease}
.story-grid article:hover{transform:translateY(-6px)}
@keyframes fadeSlide{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(max-width:680px){.wizard-content{padding:26px 18px}.wizard-top{padding:21px}.wizard-footer{padding:19px}.progress{padding:0 21px}.hero-copy h1{font-size:44px;letter-spacing:-2px}.hero-copy p{font-size:15px}.body-grid{grid-template-columns:repeat(2,1fr)}.body-grid button{min-height:111px}.hospital-list{max-height:540px}.cost-highlight strong{font-size:31px}.foreign-total{font-size:24px}.compare-inputs{grid-template-columns:1fr}.city-tiles{grid-template-columns:1fr 1fr}.city-tile{height:145px}.city-tile:last-child{grid-column:1 / -1}.city-showcase{padding:14px}.city-showcase-header h4{font-size:19px}.service-status{display:none}.savings-result strong{font-size:21px}}
.button.dental-hero{background:#fff9ed;color:#926022;border-color:#dfc7a2;white-space:nowrap}
.button.dental-hero:hover{background:#fff1d9}
.body-grid .dental-feature{background:linear-gradient(140deg,#e7f7ef,#fff6e4);border-color:#b3d4c6;grid-column:span 2}
.dental-feature small{display:block;color:#7c927f;font-size:11px;margin-top:-6px}
.dental-panel{background:#f2f9f4;border:1px solid #cfe5d8;border-radius:18px;margin:20px 0;padding:25px;animation:fadeSlide .3s ease}
.dental-panel h4{font-size:24px;margin:9px 0}
.dental-panel>p{font-size:13px;color:#6c8579;line-height:1.6}
.dental-services{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
.dental-services button{padding:15px 12px;background:#fff;border:1px solid #dae7df;border-radius:10px;text-align:left;color:#36574b;font-size:13px;min-height:60px;transition:.2s}
.dental-services button.selected,.dental-services button:hover{background:#dff3e7;color:#087568;border-color:#58b39c;box-shadow:0 0 0 1px #58b39c inset}
.dental-quantity{background:#fff8eb;border-radius:13px;padding:16px;margin:17px 0;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.dental-quantity label{font-size:13px;font-weight:800;display:flex;align-items:center;gap:12px}
.dental-quantity input{width:85px;padding:10px;border:1px solid #dfccaa;border-radius:10px;font-size:18px}
.dental-quantity span{font-size:12px;color:#907c59;line-height:1.5;flex:1}
@media(max-width:680px){.button.dental-hero{white-space:normal}.dental-services{grid-template-columns:repeat(2,1fr)}.dental-panel{padding:17px}}
