/* Visa services: scoped to preserve the site's shared components. */
.visa-page { color: #19324c; }
.visa-page h1,.visa-page h2,.visa-page h3 { font-family: Outfit, sans-serif; line-height: 1.15; }
.visa-page h2 { font-size: clamp(30px,3.3vw,44px); letter-spacing: -1px; margin: 12px 0 20px; }
.visa-page h3 { font-size: 23px; margin: 10px 0 14px; }
.visa-page p { line-height: 1.75; }
.visa-page a:focus-visible,.visa-page summary:focus-visible,.visa-page button:focus-visible { outline: 3px solid #e8a028; outline-offset: 5px; }
.visa-hero { padding: 85px 0 70px; background: radial-gradient(ellipse at 90% 10%,#d9eaff 0,transparent 60%),linear-gradient(120deg,#f1f7ff,#f9fbff); border-bottom: 1px solid #dbe6f2; }
.visa-hero-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 70px; align-items: center; }
.visa-hero h1 { font-size: clamp(42px,4.8vw,66px); letter-spacing: -2.5px; margin: 20px 0; }
.visa-hero h1 em { color: #0756d8; font-style: normal; }
.visa-lead { max-width: 600px; font-size: 18px; color: #546a80; }
.visa-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin: 30px 0; }
.visa-text-link { color: #0756d8; font-weight: 600; }
.visa-hero-tags { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 12px; color: #526a82; }
.visa-hero-tags span::before { content: '✓'; color: #178373; margin-right: 7px; }
.visa-route-card { position: relative; background: #fff; padding: 38px; border: 1px solid #d8e5f5; border-radius: 22px; box-shadow: 0 20px 60px #16417510; border-top: 5px solid #0756d8; }
.visa-route { display: flex; justify-content: space-between; align-items: center; gap: 14px; font-size: 10px; letter-spacing: 1px; color: #62798e; margin: 26px 0; border-bottom: 1px dashed #b8cfe8; padding-bottom: 20px; }
.visa-route b { font-size: 36px; color: #0756d8; }
.visa-route-card h2 { font-size: 30px; }
.visa-route-card ol { list-style: none; padding: 0; }
.visa-route-card li { display: flex; gap: 13px; padding: 13px 0; font-size: 14px; }
.visa-route-card li b { color: #0756d8; }
.visa-route-card > p:last-child { color: #61768a; font-size: 13px; margin-bottom: 0; }
.visa-jump { display: flex; flex-wrap: wrap; gap: 12px 30px; padding-block: 24px; border-bottom: 1px solid #e0e8f0; }
.visa-jump a { color: #365470; font-size: 14px; padding: 8px 0; font-weight: 600; }
.visa-section { padding-block: 76px; scroll-margin-top: 85px; }
.visa-intro { max-width: 730px; color: #617286; margin-bottom: 30px; }
.visa-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 32px; }
.visa-card { border: 1px solid #dce6f1; border-radius: 16px; padding: 28px; background: #fff; display: flex; flex-direction: column; align-items: flex-start; }
.visa-card p { color: #607286; font-size: 15px; margin: 0 0 20px; }
.visa-card .section-kicker { font-size: 11px; color: #0756d8; margin: 22px 0 0; }
.visa-card a { margin-top: auto; color: #0756d8; font-weight: 600; font-size: 14px; padding-top: 10px; }
.visa-number { display: grid; place-items: center; width: 43px; height: 43px; background: #edf4ff; border-radius: 12px; color: #0756d8; font-weight: 700; }
.visa-card:nth-child(2) .visa-number,.visa-card:nth-child(5) .visa-number { color: #107b6c; background: #e9f6f2; }
.visa-card:nth-child(3) .visa-number,.visa-card:nth-child(6) .visa-number { color: #9b6116; background: #fff4e0; }
.visa-tint { background: #f5f8fc; scroll-margin-top: 85px; }
.visa-section-heading { display: grid; grid-template-columns: 1.1fr 1fr; gap: 65px; align-items: center; margin-bottom: 30px; }
.visa-section-heading > p { color: #607286; }
.visa-options { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.visa-option { display: flex; gap: 20px; border: 1px solid #dde6ef; border-radius: 14px; padding: 28px; background: #fff; }
.visa-option > span { color: #96abc0; font-size: 22px; font-family: Outfit,sans-serif; }
.visa-option h3 { margin-top: 0; }
.visa-option strong { color: #0756d8; font-size: 14px; }
.visa-option p { color: #607286; font-size: 14px; margin-bottom: 0; }
.visa-note { color: #65798e; font-size: 13px; margin-top: 25px; }
.visa-note a { color: #0756d8; text-decoration: underline; }
.visa-te-grid { display: grid; grid-template-columns: .9fr 1.2fr; gap: 40px; align-items: start; }
.visa-review { border: 1px solid #efdfbc; background: #fffaf0; padding: 28px; border-radius: 14px; }
.visa-review p,.visa-te-grid > div > p { font-size: 14px; color: #607286; }
.visa-review a,.visa-official a { color: #0756d8; font-size: 14px; font-weight: 600; }
.visa-page details { border-bottom: 1px solid #dce5ef; padding-block: 18px; }
.visa-page summary { cursor: pointer; font-weight: 600; line-height: 1.5; }
.visa-page summary span { float: right; }
.visa-page details[open] summary span { transform: rotate(45deg); }
.visa-page details p { color: #607286; font-size: 14px; margin-bottom: 0; }
.visa-checklist details:first-child { border-top: 1px solid #dce5ef; }
.visa-official { background: #edf5ff; padding: 24px 28px; border-radius: 12px; margin-top: 30px; }
.visa-official p { font-size: 14px; color: #526b85; }
.visa-overseas-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.visa-overseas-grid small { color: #6b7d8e; line-height: 1.6; }
.visa-consult-grid { display: grid; grid-template-columns: .85fr 1.2fr; gap: 65px; align-items: start; }
.visa-consult-grid > div > p { color: #607286; }
.visa-contacts { margin-top: 32px; padding-top: 22px; border-top: 1px solid #dce5ef; }
.visa-contacts a { display: block; padding: 9px 0; color: #0756d8; font-size: 14px; overflow-wrap: anywhere; }
.visa-contacts p { font-size: 13px; color: #607286; }
.visa-form { background: #f6f9fd; border: 1px solid #dce6f1; border-radius: 18px; padding: 32px; }
.visa-form > p { color: #65798e; font-size: 13px; }
.visa-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 24px 0; }
.visa-fields label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 600; min-width: 0; }
.visa-fields input,.visa-fields select,.visa-fields textarea { width: 100%; min-width: 0; border: 1px solid #bdcddd; border-radius: 8px; background: #fff; font: inherit; font-weight: 400; color: #19324c; padding: 12px; min-height: 46px; box-sizing: border-box; }
.visa-fields textarea { resize: vertical; }
.visa-fields input:focus,.visa-fields select:focus,.visa-fields textarea:focus { outline: 2px solid #0756d8; outline-offset: 2px; }
.visa-full { grid-column: 1/-1; }
.visa-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; line-height: 1.6; margin-bottom: 20px; }
.visa-consent input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; }
.visa-consent a { text-decoration: underline; color: #0756d8; }
.visa-form .button { width: 100%; cursor: pointer; border: 0; }
.visa-form .button:disabled { opacity: .6; cursor: wait; }
#visa-feedback[data-state="error"] { color: #a12626; }
#visa-feedback[data-state="success"] { color: #126349; font-weight: 600; }
.visa-faq { padding-top: 0; max-width: 900px; }
@media (max-width: 1100px) { .visa-hero-grid,.visa-consult-grid { gap: 30px; } .visa-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 760px) { .visa-hero { padding: 45px 0; } .visa-hero-grid,.visa-section-heading,.visa-te-grid,.visa-consult-grid { grid-template-columns: 1fr; gap: 28px; } .visa-hero h1 { letter-spacing: -1.6px; } .visa-section { padding-block: 48px; } .visa-grid,.visa-options,.visa-overseas-grid { grid-template-columns: 1fr; } .visa-route-card,.visa-form { padding: 24px; } .visa-section-heading { margin-bottom: 24px; gap: 0; } .visa-jump { gap: 8px 22px; } .visa-faq { padding-top: 0; } }
@media (max-width: 420px) { .visa-fields { grid-template-columns: 1fr; } .visa-hero h1 { font-size: 39px; } .visa-option { padding: 22px; gap: 14px; } }
.visa-filter { display:flex; flex-wrap:wrap; gap:20px; margin:28px 0; }
.visa-filter label { display:grid; gap:8px; font-size:13px; flex:1; min-width:220px; }
.visa-filter input,.visa-filter select { padding:12px; border:1px solid #bdcddd; border-radius:8px; font:inherit; background:#fff; color:#19324c; }
.visa-multiline { white-space:pre-line; overflow-wrap:anywhere; }
.visa-price { margin:22px 0; font-size:24px; color:#0756d8; }
.visa-price small { font-size:12px; font-weight:400; color:#526a82; }
.visa-card .button { margin-top:auto; border:0; cursor:pointer; }
.visa-empty { grid-column:1/-1; padding:24px; background:#f5f8fc; border-radius:12px; }
#visa-reload { margin-top:24px; cursor:pointer; }
.visa-order-total { display:grid; gap:12px; padding:22px; border-radius:12px; background:#e9f2ff; margin:24px 0; }
.visa-order-total strong { font-size:28px; color:#0756d8; }
.visa-order-total small { line-height:1.6; color:#526a82; }
#visa-product-details { margin-top:30px; }
#visa-contact,#visa-guide { scroll-margin-top:85px; }

.visa-page [hidden] { display: none !important; }
#visa-purchase-state .button { width: auto; }
