:root{--navy:#172b3b;--navy2:#102430;--red:#b53332;--gold:#bc8b55;--cream:#f4f1e9;--paper:#fffdf9;--ink:#26343d;--muted:#586873;--line:#d8dedf;--shadow:0 24px 55px rgba(17,37,48,.10)}
body{background:var(--paper);color:var(--ink)}
.topline{background:#172b3b}.topline .wrap{letter-spacing:.015em}
.header{box-shadow:0 8px 35px rgba(15,39,53,.045)}
.brand-mark{border-color:var(--red);color:var(--red);border-radius:3px;transform:rotate(-3deg);font-size:1.55rem}
.brand-text{letter-spacing:-.055em}.nav .nav-call{border-radius:2px}
.hero{background:#f6f3ec;color:var(--navy);min-height:620px}
.hero-bg{left:50%;background:linear-gradient(90deg,rgba(14,36,49,.02),rgba(14,36,49,.14)),url('https://w.ladicdn.com/s1440x500/5f33720d9814633f7b86f19e/tokyo-20200821045957.jpg') center/cover}
.hero:after{height:4px;background:var(--red)}
.hero .wrap{padding:83px 0 92px}.hero-content{max-width:530px;padding-right:20px}
.hero-kicker{color:var(--red)}.hero-kicker:before{background:var(--red)}
.hero h1{font-size:clamp(2.8rem,4.5vw,4.8rem);line-height:1.16;margin:23px 0 22px}
.hero h1 em{color:var(--red)}.hero p{color:#4b5d66;line-height:1.82;font-size:1rem}
.hero-note{color:#58666d;border-top:1px solid #d6d9d5;padding-top:22px;margin-top:34px}
.hero-note strong{color:var(--red)}.btn{border-radius:2px;letter-spacing:.01em}
.btn-outline{border-color:var(--navy);color:var(--navy)}.btn-outline:hover{background:var(--navy);color:#fff}
.trust{background:#fff;border-bottom:1px solid var(--line)}.trust-item{padding-top:34px;padding-bottom:34px}
.trust-icon{font-size:1.8rem;color:var(--red)}.trust-item strong{font-size:.88rem}
.section{padding:100px 0}.section-title{letter-spacing:-.04em}.section-intro{color:#566673}
.visa-card{border-radius:2px}.visa-card:before{background:linear-gradient(0deg,rgba(10,29,43,.92),rgba(10,29,43,.08) 80%),var(--photo) center/cover}
.visa-card small{color:#efd0a7}.visa-card:hover{outline:3px solid #bd8b5a;outline-offset:-3px}
.process{background:#f3f0e9}.step{border:0;box-shadow:0 8px 26px rgba(23,42,55,.045)}.step-num{color:var(--red)}
.why-photo,.contact-form{border-radius:2px}.why-photo span{background:var(--red)}
.contact{background:#172b3b}.contact-form{box-shadow:0 22px 55px rgba(5,20,29,.25)}
.footer{background:#102430}.floating-call{border-radius:2px}
/* Checklist page */
body:has(.workspace){background:#f4f5f3}.intro{background:#172b3b;padding:62px 0 70px}.intro:after{opacity:.65}.intro h1{max-width:850px}.intro p{font-size:1rem;line-height:1.8}
.workspace{position:relative;margin-top:-28px}.note{background:#fffcf5;border:1px solid #e8d8ba;border-left:4px solid var(--gold);margin:0 0 27px;padding:19px 22px;border-radius:2px;box-shadow:0 12px 24px rgba(23,42,55,.035)}
.tabs{gap:8px;margin-bottom:26px}.tabs button{border-radius:2px;background:#fff;padding:13px 17px}.tabs button[aria-selected=true]{background:var(--navy);border-color:var(--navy)}
.controls{margin:0 0 22px;grid-template-columns:minmax(0,1fr) auto}.summary-count{font-size:.81rem}
.site-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:25px}
.category{border-radius:2px;box-shadow:0 16px 35px rgba(17,37,48,.055);padding:32px}.category-head{align-items:start}.category h2{font-size:clamp(1.85rem,3vw,2.45rem)}
.category-head p{line-height:1.7}.category .eyebrow{letter-spacing:.12em}
.consult-jump{display:inline-flex;white-space:nowrap;color:var(--red);font-weight:800;font-size:.8rem;border-bottom:1px solid var(--red);padding:7px 0}
.progress-bar span{background:var(--red)}.group h3{font-size:.84rem;letter-spacing:.08em;line-height:1.55}
.doc-list{border-radius:2px}.document{padding:17px 16px}.document-main{gap:13px}.check-ui{border-radius:2px}.document details{margin-left:35px}.document ul{background:#f7f8f7}
.consult-panel{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);box-shadow:0 18px 38px rgba(17,37,48,.08);padding:25px;position:sticky;top:20px;border-radius:2px}
.consult-panel .eyebrow{color:var(--red)}.consult-panel h2{font:600 1.65rem/1.35 'Noto Serif',serif;color:var(--navy);margin:8px 0 10px}
.consult-panel p{color:var(--muted);font-size:.81rem;line-height:1.7;margin:0 0 17px}
.consult-status{padding:13px 14px;background:#f3f5f3;border-left:3px solid var(--gold);font-size:.8rem;margin-bottom:19px;color:var(--navy);line-height:1.55}
.consult-panel label{display:block;font-weight:700;font-size:.77rem;margin:0 0 7px;color:var(--navy)}
.consult-panel input,.consult-panel textarea{display:block;width:100%;padding:11px 12px;border:1px solid #ced7dc;border-radius:2px;background:#fff;color:var(--ink);font:inherit;font-size:.82rem;margin:0 0 13px;outline:none}
.consult-panel input:focus,.consult-panel textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(181,51,50,.11)}
.consult-panel textarea{min-height:170px;resize:vertical;line-height:1.55;background:#f9faf9}
.consult-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0 12px}
.consult-actions a,.consult-actions button{display:flex;align-items:center;justify-content:center;text-align:center;border:0;border-radius:2px;background:var(--red);color:#fff;font-weight:800;font-size:.76rem;min-height:45px;padding:9px;cursor:pointer}
.consult-actions button{background:var(--navy)}.consult-actions a:hover{background:#962a29}.consult-actions button:hover{background:#0d1f2a}
.consult-panel .hint{font-size:.74rem;line-height:1.6;margin:0}.copy-status{font-size:.76rem;color:var(--red);font-weight:700;min-height:22px;margin:5px 0}
.privacy{font-size:.71rem!important;border-top:1px solid var(--line);padding-top:12px;margin-top:15px!important}
@media(max-width:1080px){.site-grid{grid-template-columns:minmax(0,1fr) 310px}.consult-panel{padding:20px}}
@media(max-width:860px){.site-grid{grid-template-columns:1fr}.consult-panel{position:static;max-width:100%}.hero-bg{left:48%}.hero-content{max-width:48%;padding-right:15px}.hero h1{font-size:3rem}}
@media(max-width:720px){.hero{min-height:unset}.hero-bg{position:relative;left:auto;inset:auto;width:100%;height:230px;order:2;background-position:center}.hero{display:flex;flex-direction:column}.hero .wrap{padding:58px 0 42px}.hero-content{max-width:100%;padding:0}.hero h1{font-size:clamp(2.5rem,10vw,3.4rem)}.hero p{font-size:.96rem}.hero:after{display:none}.section{padding:68px 0}.workspace{margin-top:-16px}.category{padding:22px 16px}.controls{grid-template-columns:1fr}.summary-count{text-align:left}.consult-jump{padding:0}.intro{padding:45px 0 55px}}
@media(max-width:460px){.consult-actions{grid-template-columns:1fr 1fr}.trust-item{padding:20px 0}}

/* Autumn Japan imagery */
.hero-bg{background:linear-gradient(90deg,rgba(14,36,49,.02),rgba(14,36,49,.10)),url('assets/autumn-kyoto.webp') center/cover}
.why-photo{background:url('assets/japan-advisor.webp') center 30%/cover}
.why-photo span{max-width:255px}
.btn-zalo{background:#087d69;color:#fff;border-color:#087d69}
.btn-zalo:hover{background:#096956;color:#fff;transform:translateY(-2px)}
.contact-details .zalo-direct{display:inline-flex;align-items:center;gap:8px;color:#e5c799;text-decoration:underline;text-underline-offset:4px}
.contact-form .form-actions{align-items:stretch}.contact-form .form-actions p{flex-basis:100%;margin:0}

/* Connected consultation journey */
.process{background:#f4f1e9}
.process .section-title,.process .section-intro{text-align:center;margin-left:auto;margin-right:auto}
.process .eyebrow{text-align:center}
.steps{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:0 0;max-width:950px;margin:52px auto 0;position:relative}
.steps:before{content:"";position:absolute;top:40px;bottom:40px;left:calc(50% - 1px);width:2px;background:linear-gradient(var(--red),#c5a273);z-index:0}
.step{position:relative;min-height:165px;box-shadow:0 16px 30px rgba(19,45,58,.07);border:1px solid #e2e2dc;border-radius:2px;padding:28px 30px;margin-bottom:22px}
.step:nth-child(1){grid-column:1;grid-row:1}.step:nth-child(2){grid-column:3;grid-row:2}.step:nth-child(3){grid-column:1;grid-row:3}.step:nth-child(4){grid-column:3;grid-row:4}
.step:after{content:"";position:absolute;top:42px;width:45px;height:2px;background:#bd9d77}
.step:nth-child(odd):after{right:-45px}.step:nth-child(even):after{left:-45px}
.step-num{position:absolute;top:18px;width:50px;height:50px;border:2px solid var(--red);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--red);font:700 1.05rem/1 'Be Vietnam Pro',sans-serif;z-index:2;box-shadow:0 0 0 7px #f4f1e9}
.step:nth-child(odd) .step-num{right:-70px}.step:nth-child(even) .step-num{left:-70px}
.step h3{font:600 1.25rem/1.4 'Noto Serif',serif;margin:0 0 9px}.step p{font-size:.88rem;line-height:1.7}
@media(max-width:720px){
 .hero-bg{background:linear-gradient(0deg,rgba(14,36,49,.03),rgba(14,36,49,.03)),url('assets/autumn-kyoto.webp') center/cover}
 .steps{display:block;margin:32px auto 0;padding-left:55px}.steps:before{left:22px;top:20px;bottom:50px}
 .step{min-height:unset;margin:0 0 17px;padding:23px 22px}.step:after{left:-32px!important;right:auto!important;width:32px;top:36px}
 .step-num,.step:nth-child(odd) .step-num,.step:nth-child(even) .step-num{left:-56px;right:auto;top:12px;width:46px;height:46px}
 .why-photo{background-position:center 27%}
}

.hero-slides{position:absolute;inset:0 0 0 50%;overflow:hidden}
.hero-slides .hero-bg{position:absolute;inset:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .8s ease;order:initial;background:linear-gradient(90deg,rgba(14,36,49,.02),rgba(14,36,49,.10)),url('assets/autumn-kyoto.webp') center/cover}
.hero-slides .hero-bg.is-active{opacity:1}
.hero-slides .hero-bg-second{background-image:linear-gradient(90deg,rgba(14,36,49,.02),rgba(14,36,49,.10)),url('assets/autumn-garden.webp')}
.hero-dots{position:absolute;right:25px;bottom:24px;display:flex;gap:8px;z-index:3}
.hero-dots button{width:28px;height:7px;padding:0;border:1px solid #fff;border-radius:10px;background:rgba(255,255,255,.4);cursor:pointer}
.hero-dots button[aria-current=true]{background:#fff}
@media(max-width:860px){.hero-slides{left:48%}}
@media(max-width:720px){.hero-slides{position:relative;inset:auto;left:auto;width:100%;height:240px;order:2}.hero-slides .hero-bg{position:absolute;inset:0;width:100%;height:100%}}
@media(prefers-reduced-motion:reduce){.hero-slides .hero-bg{transition:none}}

/* Group the visa categories by typical stay purpose. */
.visa-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 27px}
.visa-group{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);padding:22px 22px 12px;box-shadow:0 10px 25px rgba(17,37,48,.045)}
.visa-group:nth-child(2){border-top-color:var(--navy)}
.visa-group-head h2{font:600 1.38rem/1.35 'Noto Serif',serif;color:var(--navy);margin:0 0 7px}
.visa-group-head p{font-size:.93rem;line-height:1.65;color:var(--muted);margin:0 0 17px}
.visa-group .tabs{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;margin:0;padding:0}
.visa-group .tabs button{white-space:normal;text-align:left;line-height:1.4;min-height:42px;padding:10px 13px}

/* Readability: operational labels and checklist detail stay at least 14px. */
.topline,.eyebrow,.hero-kicker,.visa-card small,.trust-item span,.contact-details small,.footer,.footer .footer-links{font-size:.875rem}
.brand-text small{font-size:.75rem}.hero-note,.source-link,.floating-call,.form-message{font-size:.875rem}
.nav,.btn,.visa-card p,.trust-item strong,.step p,.benefit p,.contact-form>p,.field label,.form-actions p,.contact-details a,.contact-details span{font-size:.94rem}
.section-intro,.hero p,.contact .section-intro{font-size:1rem}
.visa-card h3{font-size:1.65rem}.step h3{font-size:1.3rem}
.tabs button,.category-head p,.group h3,.doc-copy small,.document summary,.document ul,.progress-text,.consult-jump,.consult-panel p,.consult-panel label,.consult-panel .hint,.consult-panel .privacy,.consult-actions a,.consult-actions button,.copy-status,.note,.summary-count{font-size:.875rem}
.doc-copy strong,.consult-panel input,.consult-panel textarea{font-size:1rem}
.document ul{line-height:1.8}.document summary{padding:5px 0}
.group h3{line-height:1.55}.category-head p{line-height:1.7}
.category{scroll-margin-top:24px}
.consult-actions a,.consult-actions button{line-height:1.4}.consult-panel textarea{line-height:1.65}
@media(max-width:900px){.visa-groups{grid-template-columns:1fr}.visa-group{padding:18px}.visa-group .tabs{flex-wrap:wrap}}
@media(max-width:720px){.nav{font-size:.94rem}.visa-card p{font-size:.94rem}.section-intro{font-size:1rem}.visa-group-head h2{font-size:1.28rem}.visa-group .tabs button{font-size:.94rem}.contact-form .form-actions p{font-size:.875rem}}
