/* Deliberately scoped: the approved tour and category pages stay independent. */
.visa-page{background:#222829;color:#fff}
/* Reuse the homepage's hero/container/header/title rules without a second scale. */
.visa-stage{isolation:isolate;overflow:clip}
.visa-scenery,.visa-shade{position:absolute;inset:0;z-index:-1}
.visa-photo{width:100%;height:100%;object-fit:cover;object-position:58% 56%}
.visa-shade{z-index:0;background:linear-gradient(90deg,rgba(17,24,27,.9),rgba(17,24,27,.67) 32%,rgba(17,24,27,.13) 68%,rgba(17,24,27,.3)),linear-gradient(0deg,rgba(17,24,27,.88),transparent 36%,transparent 75%,rgba(17,24,27,.6))}
.visa-stage .nav-link[aria-current]:after{transform:scaleX(1);background:#d7c6ad}
.visa-stage .hero-grid{position:relative}
.visa-copy{position:relative}
.visa-eyebrow{position:absolute;bottom:calc(100% + 28px);left:0;display:flex;align-items:center;gap:15px;font-size:11px;line-height:1.5;letter-spacing:1.5px;text-transform:uppercase;color:#e0d5c4}
.visa-eyebrow-line{width:35px;height:1px;background:#d4bea0}
.visa-page h1 em{color:#dfcbae;font-style:normal}
.visa-copy-signature{display:flex;align-items:center;gap:13px;height:var(--button-height);color:#e0d5c4;font-size:11px}
.visa-copy-signature .icon{width:2.7em;height:3.2em;flex-shrink:0;stroke-width:1.05}
.visa-copy-signature span{font-size:inherit;line-height:1.7;letter-spacing:.1px}
.visa-copy-signature strong{font-weight:400;color:#fff}
.visa-planner{padding:29px 30px;background:#fcfcfa;color:#282f30;border:1px solid #fff9;border-radius:3px;box-shadow:0 22px 70px #10171838;position:relative}
.visa-planner-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.visa-card-kicker{font-size:10px;line-height:1.5;letter-spacing:1.1px;text-transform:uppercase;color:#727974}
.visa-planner-heading>.icon{width:27px;height:27px;color:#8b958a;stroke-width:1.1}
.visa-planner h2{margin:19px 0 12px;font-size:27px;letter-spacing:-1px;line-height:1.3;font-weight:500}
.visa-planner-intro{color:#6b736f;font-size:12px;line-height:1.8;margin:0 0 26px}
.visa-field-label,.visa-purpose legend{display:block;font-size:11px;font-weight:500;line-height:1.5;color:#565f5b;margin-bottom:9px}
.visa-select-wrap{position:relative;display:flex;align-items:center;border:1px solid #d6dbd6;background:#fff;border-radius:2px;height:var(--button-height)}
.visa-select-wrap>.icon:first-child{position:absolute;left:14px;width:18px;height:18px;color:#829084;pointer-events:none}
.visa-select-wrap>.icon:last-child{position:absolute;right:14px;width:14px;height:14px;pointer-events:none;color:#6c756e}
.visa-select-wrap select{width:100%;height:100%;padding:0 35px 0 42px;appearance:none;border:0;background:transparent;border-radius:2px;cursor:pointer;font-size:13px;color:#313a34;text-overflow:ellipsis}
.visa-select-wrap select:invalid{color:#7a807b}
.visa-select-wrap select:focus-visible{outline:0;background:#f5f5f5}
.visa-purpose{border:0;padding:0;margin:22px 0 26px;min-width:0}
.visa-purpose legend{padding:0}
.visa-purpose>div{display:grid;grid-template-columns:1fr 1fr 1.38fr;gap:6px}
.visa-purpose label{position:relative;cursor:pointer;min-width:0}
.visa-purpose input{position:absolute;opacity:0;width:1px;height:1px}
.visa-purpose span{display:flex;align-items:center;justify-content:center;height:var(--button-height);min-height:var(--button-height);border:1px solid #dfe3dd;border-radius:2px;font-size:10px;background:#fff;color:#727a73;white-space:nowrap;transition:background .18s,color .18s,border-color .18s}
.visa-purpose input:checked+span{border-color:#7d8c7b;color:#33412f;background:#edf0e9}
.visa-purpose input:focus-visible+span{outline:2px solid #82927b;outline-offset:3px}
.visa-purpose label:hover span{border-color:#82927b}
.visa-primary{width:100%;justify-content:space-between;border-color:#28312e;background:#28312e;color:#fff}
.visa-primary:hover{background:#3b4941}
.visa-primary>.icon{transition:transform .2s}
.visa-primary:hover>.icon{transform:translate(2px,-2px)}
.visa-card-footer{display:flex;align-items:center;justify-content:center;gap:9px;border-top:1px solid #e2e5de;padding:17px 10px;margin:27px -30px 0;background:#f2f3ee;color:#6c756d;font-size:10px;line-height:1.6}
.visa-card-footer>.icon{width:15px;height:17px}
.visa-bottom{align-items:center}
.visa-steps{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(18px,2vw,36px);list-style:none;padding:0;margin:0}
.visa-steps li{display:flex;align-items:center;gap:10px;font-size:clamp(10px,.6vw,12.5px);line-height:1.6;color:#e6e8e5}
.visa-steps li>span{color:#bdbaa9;font-size:10px;letter-spacing:.8px}
.visa-location{display:flex;align-items:center;justify-content:flex-end;min-height:clamp(32px,1.65vw,35.7px);font-size:clamp(10px,.6vw,12.5px);color:#e4e4e0;line-height:1.6;white-space:nowrap}
.visa-contact{width:min(480px,calc(100% - 32px));max-height:calc(100svh - 32px);padding:38px 30px 26px;border:1px solid #d8ddd5;border-radius:3px;background:#fcfcfa;color:#29312d;box-shadow:0 30px 100px #0004}
.visa-contact::backdrop{background:#101915b3;backdrop-filter:blur(5px)}
.visa-dialog-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:36px;height:36px;border:0;background:transparent;color:#59685a}
.visa-contact h2{font-size:27px;line-height:1.3;font-weight:500;letter-spacing:-.8px;margin:18px 0 15px}
.visa-contact p{font-size:13px;color:#667063;line-height:1.8;margin:0 0 24px}
.visa-request-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px 0;border-block:1px solid #dce2d7;margin-bottom:24px;font-size:10px;line-height:1.6;color:#6d7868}
.visa-request-summary[hidden]{display:none}
.visa-request-summary strong{display:block;font-size:13px;color:#29352b;font-weight:500;margin-top:5px}
.visa-call{display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;margin-top:20px;min-height:36px}
.visa-page:has(dialog[open]){overflow:hidden}

.visa-contact-options{width:min(520px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);padding:0;overflow:hidden}
.visa-contact-options[open]{display:flex;flex-direction:column}
.visa-contact-heading{position:relative;flex-shrink:0;padding:32px 32px 25px;border-bottom:1px solid #e4e7df}
.visa-contact-heading .visa-card-kicker{display:block;padding-right:32px;font-size:10px;letter-spacing:1.25px}
.visa-contact-heading .visa-dialog-close{top:15px;right:15px;border-radius:2px}
.visa-contact-heading .visa-dialog-close:hover{background:#f0f2ec}
.visa-contact-options h2{font-size:31px;line-height:1.2;letter-spacing:-1px;margin:20px 0 16px}
.visa-contact-options h2 em{font-style:normal;color:#89917f}
.visa-contact-options .visa-contact-heading p{max-width:380px;font-size:13px;line-height:1.85;margin:0;color:#7b8276}
.visa-contact-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:25px 32px 32px}
.visa-contact-methods{display:grid;gap:11px}
.visa-contact-method{display:grid;grid-template-columns:26px minmax(0,1fr) 18px;align-items:center;gap:17px;min-height:79px;padding:17px 19px;border:1px solid #dfe4d9;border-radius:2px;background:#fff;color:#333c30;text-decoration:none;transition:background .2s,border-color .2s}
.visa-contact-method>.icon{width:25px;height:25px;color:#6f7c64;stroke-width:1.3}
.visa-contact-method>.visa-contact-brand{fill:currentColor;stroke:none}
.visa-contact-method>.icon:last-child{width:18px;height:18px;transition:transform .2s}
.visa-contact-method>span{min-width:0}
.visa-contact-method strong{display:block;font-size:14px;line-height:1.6;font-weight:500;letter-spacing:-.1px}
.visa-contact-method small{display:block;margin-top:3px;font-size:12px;line-height:1.6;color:#818877;overflow-wrap:anywhere}
.visa-contact-method:hover{background:#f4f6ef;border-color:#b4bfaa}
.visa-contact-method:hover>.icon:last-child{transform:translate(2px,-2px)}
.visa-contact-featured{background:#303a32;color:#fff;border-color:#303a32}
.visa-contact-featured>.icon{color:#e2e8da}
.visa-contact-featured small{color:#c4cebb}
.visa-contact-featured:hover{background:#424e3f;border-color:#424e3f}
.visa-contact-options button:focus-visible,.visa-contact-options a:focus-visible{outline:1px dashed #71786a;outline-offset:3px}
@media(max-width:600px){.visa-contact-options{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.visa-contact-heading{padding:27px 23px 23px}.visa-contact-heading .visa-dialog-close{top:12px;right:10px}.visa-contact-options h2{font-size:29px;margin-top:18px}.visa-contact-content{padding:22px 23px 25px}.visa-contact-method{grid-template-columns:24px minmax(0,1fr) 17px;gap:13px;padding:16px;min-height:77px}.visa-contact-method>.icon{width:24px;height:24px}}
@media(max-width:360px){.visa-contact-heading{padding-inline:19px}.visa-contact-content{padding-inline:19px}.visa-contact-options h2{font-size:27px}.visa-contact-method{padding:14px 12px;gap:10px;grid-template-columns:22px minmax(0,1fr) 16px}.visa-contact-method strong{font-size:13px}.visa-contact-method small{font-size:11px}.visa-contact-method>.icon{width:22px;height:22px}}
@media(prefers-reduced-motion:reduce){.visa-contact-method,.visa-contact-method>.icon:last-child{transition:none}}

/* Attributed source summaries keep the reader in context. */
.visa-source-dialog{position:fixed;inset:0;width:min(620px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;overflow:hidden;border:1px solid #e0e3dc;border-radius:3px;background:#fcfcfa;color:#2c312f;box-shadow:0 28px 100px #0004;font-size:14px;line-height:1.7}
.visa-source-dialog[open]{display:flex;flex-direction:column}
.visa-source-dialog::backdrop{background:#151b1daa;backdrop-filter:blur(6px)}
.visa-source-header{position:relative;flex-shrink:0;padding:30px 34px 21px;border-bottom:1px solid #e4e7df}
.visa-source-kicker{display:block;padding-right:28px;margin-bottom:15px;color:#7b856f;font-size:10px;font-weight:500;letter-spacing:1.3px;line-height:1.6;text-transform:uppercase}
.visa-source-header h2{margin:0;padding-right:10px;font-size:28px;font-weight:500;line-height:1.25;letter-spacing:-1px}
.visa-source-header h2 em{font-style:normal;color:#89917f}
.visa-source-close{position:absolute;top:15px;right:16px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:2px;background:none;color:#66715f}
.visa-source-close>.icon{width:22px;height:22px}
.visa-source-close:hover{background:#f0f2ec;color:#2c312f}
.visa-source-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 34px 26px}
.visa-source-body .visa-source-intro{margin:0 0 24px;font-size:13px;line-height:1.85;color:#7b8276}
.visa-source-body dl{margin:0}
.visa-source-body dl>div+div{margin-top:20px;padding-top:19px;border-top:1px solid #e4e7df}
.visa-source-body dt{margin:0 0 7px;font-size:15px;font-weight:500;line-height:1.5;letter-spacing:-.2px}
.visa-source-body dd{margin:0;font-size:13px;line-height:1.85;color:#687260}
.visa-source-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px 20px;flex-shrink:0;padding:22px 34px 24px;border-top:1px solid #e4e7df}
.visa-source-credit{font-size:11px;line-height:1.7}
.visa-source-credit>span{display:block;color:#929889;font-size:10px;margin-bottom:3px}
.visa-source-credit strong{display:block;color:#66715d;font-weight:500}
.visa-source-action{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px;padding:12px 16px;border:1px solid #303a32;border-radius:2px;background:#303a32;color:#fff;font-size:12px;font-weight:500;line-height:1.5}
.visa-source-action>.icon{width:18px;height:18px;flex-shrink:0}
.visa-source-action:hover{background:#424e3f;border-color:#424e3f}
.visa-source-footer>p{grid-column:1/-1;margin:0;color:#929889;font-size:11px;line-height:1.7}
.visa-source-dialog button:focus-visible,.visa-source-dialog a:focus-visible{outline:1px dashed #71786a;outline-offset:3px}
@media(max-width:600px){.visa-source-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.visa-source-header{padding:26px 22px 20px}.visa-source-header h2{font-size:25px}.visa-source-kicker{font-size:9px;letter-spacing:1px;max-width:245px;margin-bottom:16px}.visa-source-close{top:13px;right:10px}.visa-source-body{padding:21px 22px 24px}.visa-source-body .visa-source-intro{margin-bottom:22px}.visa-source-body dt{font-size:15px}.visa-source-footer{padding:18px 22px 20px;grid-template-columns:1fr;gap:14px}.visa-source-credit{display:flex;align-items:baseline;gap:9px}.visa-source-credit>span{margin:0;flex-shrink:0}.visa-source-action{width:100%;min-height:47px;font-size:13px}.visa-source-footer>p{font-size:10px}}
@media(max-width:360px){.visa-source-header,.visa-source-body,.visa-source-footer{padding-inline:18px}.visa-source-header h2{font-size:23px}.visa-source-kicker{max-width:205px}.visa-source-body dd{font-size:12px}}
@media(min-width:768px){
 .visa-stage .visa-main{pointer-events:auto}
 .visa-planner{position:absolute;right:0;top:50%;transform:translateY(-50%);width:max(300px,32.4%);pointer-events:auto}
}
@media(min-width:1800px){.visa-planner{padding:34px 36px}.visa-card-footer{margin-inline:-36px}.visa-planner h2{font-size:30px}.visa-planner-intro{font-size:14px}.visa-field-label,.visa-purpose legend{font-size:12px}.visa-purpose span,.visa-card-footer{font-size:12px}.visa-card-kicker{font-size:11px}.visa-copy-signature{font-size:12px}}
@media(min-width:768px) and (max-height:700px){.visa-planner{padding-top:18px}.visa-planner h2{margin-top:10px;font-size:24px}.visa-planner-intro{margin-bottom:15px}.visa-purpose{margin-block:14px 16px}.visa-card-footer{margin-top:17px;padding-block:12px}}
@media(max-width:767px),(max-width:1100px) and (orientation:portrait){
 .visa-stage.hero{height:auto;min-height:100svh}
 .visa-stage .visa-main{padding-bottom:32px}
 .visa-copy{padding:0}
 .visa-eyebrow{display:none}
 .visa-copy-signature{display:none}
 .visa-stage .visa-planner{position:relative;top:auto;right:auto;transform:none;width:100%;max-width:460px;margin:34px 0 0;padding:23px;pointer-events:auto}
 .visa-planner h2{font-size:26px;margin-top:13px}
 .visa-planner-intro{font-size:12px;margin-bottom:22px}
 .visa-desktop-break{display:none}
 .visa-purpose{margin-block:20px 23px}
 .visa-card-footer{margin:23px -23px 0;padding-block:16px}
 .visa-shade{background:linear-gradient(90deg,#121c22d9,#121c2260),linear-gradient(0deg,#172225 3%,#172225e6 32%,transparent 80%,#17222588)}
 .visa-scenery{bottom:37%;overflow:hidden}
 .visa-photo{object-position:65% center}
 .visa-bottom{align-items:end}
 .visa-steps{display:grid;gap:10px}
 .visa-steps li{font-size:10px;gap:10px}
 .visa-location{min-height:0;font-size:10px}
 .visa-card-kicker{font-size:9px}
 .visa-purpose span{font-size:11px}
 .visa-field-label,.visa-purpose legend{font-size:11px}
}
@media(max-width:360px){.visa-stage .visa-planner{padding-inline:19px}.visa-card-footer{margin-inline:-19px}.visa-purpose span{font-size:10px}.visa-steps li{font-size:9px}}
