/* Visa & stopover guide (luxe styling; loaded before luxe.css) */
.visa-finder { padding-top: 96px; }
.vf-panel { display: grid; grid-template-columns: 1fr 1.6fr; gap: 0; border: 1px solid #E3DBCB; background: #FFFDF9; margin-bottom: 56px; }
.vf-step { padding: 34px 32px; }
.vf-step + .vf-step { border-left: 1px solid #E3DBCB; }
.vf-label { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.6rem; color: #0D2618; margin-bottom: 14px; }
.vf-input { width: 100%; padding: .95em 1.1em; border: 1px solid #E3DBCB; background: #fff; font: inherit; font-size: 1.05rem; color: #1A231D; border-radius: 0; }
.vf-input:focus { outline: none; border-color: #C9A964; }
.vf-hint { margin: 12px 0 0; }
#vf-held { gap: 8px; }
@media (max-width: 860px) { .vf-panel { grid-template-columns: 1fr; } .vf-step + .vf-step { border-left: 0; border-top: 1px solid #E3DBCB; } .vf-step { padding: 26px 20px; } }

.vf-empty { padding: 30px 0; color: #5C625D; font-style: italic; }
.vf-summary { display: grid; gap: 26px; margin-bottom: 40px; }
.vf-headline h2 { margin: 0; }
.vf-headline h2 em { font-size: 1.2em; }
.vf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); border: 1px solid #E3DBCB; }
.vf-stat { background: none; border: 0; border-left: 1px solid #E3DBCB; padding: 22px 16px; text-align: left; cursor: pointer; font: inherit; display: flex; flex-direction: column; gap: 6px; transition: background .3s; }
.vf-stat:first-child { border-left: 0; }
.vf-stat b { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; font-size: 2.6rem; line-height: 1; color: #7E5F27; font-variant-numeric: lining-nums; }
.vf-stat span { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: #5C625D; }
.vf-stat:hover { background: #FBF7EC; }
.vf-stat.on { background: #0D2618; }
.vf-stat.on b { color: #E3CD96; }
.vf-stat.on span { color: #CFC8B4; }
.vf-stat.gold { background: #FBF7EC; }
.vf-stat.gold.on { background: #0D2618; }
@media (max-width: 600px) { .vf-stats { grid-template-columns: repeat(2, 1fr); } .vf-stat { border-left: 0; border-top: 1px solid #E3DBCB; } .vf-stat:nth-child(even) { border-left: 1px solid #E3DBCB; } .vf-stat:nth-child(-n+2) { border-top: 0; } }

.vf-india { display: grid; grid-template-columns: 1.3fr 1fr; gap: 0; background: #0A1D13; color: #CFC8B4; margin-bottom: 44px; }
.vf-india-col { padding: 34px 32px; }
.vf-india-col + .vf-india-col { border-left: 1px solid rgba(201,169,100,.22); }
.vf-india .eyebrow { color: #E3CD96; }
.vf-india h3 { color: #F6F1E4; font-size: 1.7rem; }
.vf-india .small { color: #A9AE9F; }
.vf-india a { color: #E3CD96; }
.vf-uplist { list-style: none; padding: 0; margin: 14px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.vf-uplist li { padding: 10px 0; border-bottom: 1px solid rgba(201,169,100,.16); display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; }
.vf-uplist b { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.15rem; color: #F6F1E4; font-weight: 500; }
.vf-uplist span { font-size: .8rem; color: #E3CD96; }
.vf-uplist small { flex-basis: 100%; font-size: .72rem; color: #8F958A; }
.vf-changes { list-style: none; padding: 0; margin: 14px 0 0; }
.vf-changes li { padding: 10px 0; border-bottom: 1px solid rgba(201,169,100,.16); font-size: .9rem; }
.vf-changes b { color: #F6F1E4; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.1rem; font-weight: 500; margin-right: 6px; }
@media (max-width: 860px) { .vf-india { grid-template-columns: 1fr; } .vf-india-col + .vf-india-col { border-left: 0; border-top: 1px solid rgba(201,169,100,.22); } .vf-india-col { padding: 26px 20px; } .vf-uplist { grid-template-columns: 1fr; } }

.vf-tools { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; margin-bottom: 26px; }
.vf-tools .vf-input { max-width: 340px; }
.vf-group { margin-bottom: 40px; }
.vf-group h3 { font-size: 1.8rem; padding-bottom: 12px; border-bottom: 1px solid #C9A964; margin-bottom: 0; }
.vf-group h3 .small { font-family: Inter, system-ui, sans-serif; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: #7E5F27; margin-left: 10px; }
.vf-row { border-bottom: 1px solid #E3DBCB; }
.vf-row summary { list-style: none; display: grid; grid-template-columns: 1.4fr .6fr 2fr; gap: 12px; align-items: center; padding: 15px 4px; cursor: pointer; }
.vf-row summary::-webkit-details-marker { display: none; }
.vf-row summary::after { content: "+"; position: absolute; right: 8px; color: #7E5F27; font-size: 1.2rem; }
.vf-row { position: relative; }
.vf-row[open] summary::after { content: "–"; }
.vf-row summary:hover { background: #FBF7EC; }
.vf-country { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.25rem; font-weight: 600; color: #0D2618; }
.vf-dot { font-style: normal; color: #C9A964; font-size: .6rem; vertical-align: middle; }
.vf-stay { font-size: .8rem; color: #5C625D; letter-spacing: .04em; }
.vf-badges { display: flex; flex-wrap: wrap; gap: 6px; padding-right: 24px; }
.vf-pill { font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: 5px 9px; border: 1px solid currentColor; white-space: nowrap; }
.c-free { color: #1B4A2E; } .c-eta { color: #2F6B5A; } .c-voa { color: #3E6A55; } .c-evisa { color: #7E5F27; } .c-required { color: #7A3A2A; } .c-refused { color: #555; } .c-other { color: #5C625D; }
.vf-pill.up { background: #0D2618; color: #E3CD96; border-color: #0D2618; white-space: normal; }
.vf-pill.up.maybe { background: #FBF7EC; color: #7E5F27; border-color: #C9A964; }
.vf-body { padding: 4px 4px 22px; max-width: 900px; font-size: .94rem; }
.vf-body p { margin: 0 0 10px; }
.vf-notes { color: #5C625D; font-size: .88rem; border-left: 2px solid #E3DBCB; padding-left: 14px; }
.vf-cur { background: #FBF7EC; border-left: 2px solid #C9A964; padding: 14px 16px; margin: 12px 0; }
.vf-cur .eyebrow { margin-bottom: .6em; }
.vf-links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.vf-links a { font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: #7E5F27; text-decoration: none; border-bottom: 1px solid #C9A964; padding-bottom: 2px; }
.vf-foot { margin-top: 20px; }
@media (max-width: 640px) { .vf-row summary { grid-template-columns: 1fr auto; } .vf-badges { grid-column: 1 / -1; } }

.so-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0; border-top: 1px solid #E3DBCB; border-left: 1px solid #E3DBCB; margin-top: 26px; }
.so-card { padding: 30px 28px; border-right: 1px solid #E3DBCB; border-bottom: 1px solid #E3DBCB; background: #FFFDF9; display: flex; flex-direction: column; gap: 10px; }
.so-card h3 { font-size: 1.55rem; margin: 0; }
.so-top .eyebrow { margin-bottom: .5em; }
.so-sum { margin: 0; color: #2A322D; }
.so-perks { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.so-perks li { font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: 5px 9px; background: #0D2618; color: #E3CD96; }
.so-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 6px 0 0; font-size: .86rem; }
.so-dl dt { font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; color: #7E5F27; font-weight: 600; padding-top: 4px; }
.so-dl dd { margin: 0; color: #2A322D; }
@media (max-width: 400px) { .so-grid { grid-template-columns: 1fr; } .so-card { padding: 24px 18px; } }
.tr-table td { font-size: .9rem; }
.tr-table td b { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.1rem; color: #0D2618; }
.so-more summary { cursor: pointer; list-style: none; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: #7E5F27; border-bottom: 1px solid #C9A964; display: inline-block; padding-bottom: 2px; }
.so-more summary::-webkit-details-marker { display: none; }
.so-more[open] summary { margin-bottom: 10px; }
.so-card .small { margin-top: auto; }
.vf-official { margin: 14px 0; padding: 16px 18px; border: 1px solid #E3DBCB; background: #fff; }
.vf-official p { margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 10px; }
.vf-official .eyebrow { margin-bottom: .7em; }
