.visa-policy { padding-top: 22px; line-height: 1.8; width: 100%; scroll-margin-top: 100px; }
.visa-policy h2 { margin: 8px 0 16px; }
.visa-policy h3 { margin: 22px 0 8px; font-size: 18px; }
.visa-policy ul { padding-left: 24px; }
.visa-policy li { margin: 8px 0; }
.visa-policy details { padding: 16px 20px; border: 1px solid var(--line, #ddd); border-radius: 12px; }
.visa-policy summary { cursor: pointer; font-weight: 600; }
.visa-policy a { text-decoration: underline; text-underline-offset: 3px; }
.visa-policy-date, .visa-policy-sources { color: var(--muted, #58665f); font-size: 14px; }
.visa-policy .visa-policy-disclosure { padding: 0; border: 1px solid #d5ded5; border-radius: 16px; overflow: hidden; background: #f4f7f1; }
.visa-policy .visa-policy-banner { display: flex; align-items: center; gap: 14px; padding: 16px 18px; list-style: none; }
.visa-policy-banner::-webkit-details-marker { display: none; }
.visa-policy-banner::marker { content: ''; }
.visa-policy-banner:hover { background: #eaf0e7; }
.visa-policy-banner:focus-visible { outline: 3px solid #537962; outline-offset: -4px; }
.visa-policy-badge { flex-shrink: 0; font: italic 600 28px/1.2 Georgia, serif; color: #355c47; border-right: 1px solid #cbd7cb; padding-right: 14px; }
.visa-policy-banner-copy { flex: 1; min-width: 0; }
.visa-policy-banner-copy strong { display: block; font-size: 16px; color: #243d2f; }
.visa-policy-banner-copy small { display: block; font-size: 13px; color: #657264; font-weight: 400; margin-top: 3px; }
.visa-policy-banner-action { flex-shrink: 0; font-size: 14px; color: #355c47; }
.visa-policy-arrow { display: inline-block; margin-left: 8px; }
.visa-policy-disclosure[open] > summary .visa-policy-arrow { transform: rotate(90deg); }
.visa-policy-content { padding: 24px 28px; background: #fff; border-top: 1px solid #d5ded5; }
@media (max-width: 600px) {
  .visa-policy .visa-policy-banner { padding: 18px 16px; gap: 12px; flex-wrap: wrap; }
  .visa-policy-badge { font-size: 26px; padding-right: 12px; }
  .visa-policy-banner-copy strong { font-size: 16px; }
  .visa-policy-banner-action { width: 100%; text-align: right; }
  .visa-policy-content { padding: 20px 16px; }
}

/* Centered policy reading surface; the cover remains in place. */
.visa-policy .visa-policy-banner { width:100%; border:0; background:transparent; text-align:left; font-family:inherit; }
.visa-policy-open { overflow:hidden; scrollbar-gutter:stable; }
.visa-policy-modal { box-sizing:border-box; position:fixed; inset:0; margin:auto; width:min(860px,calc(100% - 40px)); max-height:calc(100dvh - 64px); padding:0; border:1px solid #ccd5c3; border-radius:28px; color:#243e34; background:radial-gradient(ellipse at 100% 0%,#dce7d6 0%,transparent 48%),linear-gradient(135deg,#f8f4e9,#eef2e7); box-shadow:0 32px 100px #102e3440, inset 0 1px 0 #ffffffb3; overflow:auto; overscroll-behavior:contain; }
.visa-policy-modal[open] { animation:visa-arrive .32s cubic-bezier(.2,.8,.2,1); }
.visa-policy-modal::backdrop { background:#183c344d; backdrop-filter:blur(7px); }
.visa-policy-modal .visa-policy-content { padding:32px 48px 20px; background:transparent; border:0; line-height:1.85; font-size:15px; }
.visa-policy-modal .eyebrow { margin:0 0 10px; font-size:11px; letter-spacing:.18em; color:#8a6439; font-weight:700; }
.visa-policy-modal h2 { margin:0 38px 14px 0; font-size:clamp(26px,3vw,36px); letter-spacing:-.04em; line-height:1.3; color:#174f42; }
.visa-policy-modal h3 { margin:16px 0 6px; font-size:18px; color:#205648; }
.visa-policy-modal ul { padding-left:22px; margin:6px 0 12px; }
.visa-policy-modal li { margin:6px 0; padding-left:4px; }
.visa-policy-modal li::marker { color:#789178; }
.visa-policy-modal details { padding:16px 20px; border:1px solid #cbd5c1; border-radius:16px; background:#dde7d547; }
.visa-policy-modal summary { cursor:pointer; font-weight:600; color:#205648; }
.visa-policy-modal a { color:#285e4f; text-underline-offset:4px; }
.visa-policy-modal .visa-policy-date { padding-bottom:20px; border-bottom:1px solid #cbd5c1; font-size:12px; }
.visa-policy-modal .visa-policy-sources { margin:12px 0 0; padding-top:10px; border-top:1px solid #cbd5c1; font-size:12px; }
.visa-policy-close { position:sticky; top:16px; float:right; margin:16px 16px -54px 0; z-index:1; width:36px; height:36px; border:1px solid #bdcdb8; border-radius:50%; background:#e7eedf; color:#285e4f; font-size:25px; line-height:1; cursor:pointer; transition:transform .2s,background .2s; }
.visa-policy-close:hover { transform:rotate(90deg); background:#d5e2cb; }
.visa-policy-close:focus-visible { outline:2px solid #285e4f; outline-offset:3px; }
@keyframes visa-arrive { from { opacity:0; transform:scale(.94) translateY(12px); } to { opacity:1; transform:scale(1) translateY(0); } }
@media(max-width:600px) { .visa-policy-modal { width:calc(100% - 24px); max-height:calc(100dvh - 32px); border-radius:22px; } .visa-policy-modal .visa-policy-content { padding:30px 22px 18px; font-size:14px; } }
@media(prefers-reduced-motion:reduce) { .visa-policy-modal[open] { animation:none; } .visa-policy-close { transition:none; } }

.visa-policy-modal .visa-countries { padding:0 20px; background:linear-gradient(110deg,#e0e9d9b3,#f2efdf80); transition:border-color .2s,box-shadow .2s; }
.visa-policy-modal .visa-countries:hover { border-color:#8ba68a; box-shadow:0 4px 18px #365b4710; }
.visa-countries>summary { display:flex; align-items:center; gap:12px; padding:10px 0; list-style:none; }
.visa-countries>summary::-webkit-details-marker { display:none; }
.visa-countries>summary::marker { content:''; }
.visa-countries-icon { display:grid; place-items:center; width:30px; height:30px; border:1px solid #a9bca0; border-radius:50%; color:#657e58; font-size:24px; font-weight:400; }
.visa-countries-toggle { margin-left:auto; font-size:24px; font-weight:300; color:#5b7c60; transition:transform .25s; }
.visa-countries[open]>summary .visa-countries-toggle { transform:rotate(45deg); }
.visa-countries[open]>summary { border-bottom:1px solid #cbd5c1; }
.visa-countries>p:last-child { padding-bottom:8px; }
.visa-countries>summary:focus-visible { outline:2px solid #537962; outline-offset:4px; border-radius:8px; }
@media(prefers-reduced-motion:reduce) { .visa-countries-toggle,.visa-policy-modal .visa-countries { transition:none; } }

.visa-countries-icon svg { width:22px; height:22px; }
