/* ===== Visa application page ===== */
.visa-hero{background:var(--gold-wash)}
.visa-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:2.5rem;align-items:start;margin-top:2.4rem}
.visa-layout.is-hidden{display:none}

.visa-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:2rem;box-shadow:var(--shadow)}
.visa-field{margin-bottom:1.4rem}
.visa-field label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:.4rem}
.visa-field input,.visa-field select,.visa-field textarea{width:100%;padding:.7rem .9rem;border:1px solid var(--border);border-radius:10px;font-size:.92rem;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .2s var(--ease);box-sizing:border-box}
.visa-field input:focus,.visa-field select:focus,.visa-field textarea:focus{outline:none;border-color:var(--coral-strong)}
.visa-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2.6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237D5F49' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:18px 18px}
[dir="rtl"] .visa-field select{padding-right:.9rem;padding-left:2.6rem;background-position:left .9rem center}

.visa-field textarea{resize:vertical}
.visa-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-width:0}
.visa-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.visa-options{display:grid;gap:.7rem}
.visa-options-2col{grid-template-columns:1fr 1fr}
@media (max-width:640px){.visa-options-2col{grid-template-columns:1fr}}
.visa-options .visa-option{display:flex;align-items:center;gap:.8rem;border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease)}
.visa-option:hover{border-color:var(--coral)}
.visa-options input[type="radio"]{margin:0;flex-shrink:0;width:18px;height:18px}
.visa-option.is-checked{border-color:var(--coral-strong);background:var(--gold-wash)}
.visa-option-body{flex:1}
.visa-option-title{display:block;font-weight:600;font-size:.92rem;color:var(--ink)}
.visa-option-sub{display:block;font-size:.78rem;color:var(--muted);margin-top:.1rem}
.visa-option-price{font-weight:600;color:var(--coral-strong);font-size:.9rem;white-space:nowrap;flex-shrink:0}

.visa-summary{position:sticky;top:100px;background:var(--gold-wash);border:1px solid var(--border);color:var(--ink);border-radius:var(--radius-md);padding:1.8rem;box-shadow:var(--shadow)}
.visa-summary h3{font-family:'Fraunces',serif;font-size:1.2rem;margin:0 0 1.2rem;color:var(--ink)}
.visa-summary-row{display:flex;justify-content:space-between;gap:1rem;font-size:.86rem;color:var(--muted);padding:.6rem 0;border-bottom:1px solid var(--band-border)}
.visa-summary-row b{color:var(--ink);font-weight:500;text-align:right}
.visa-summary-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--band-border)}
.visa-summary-total .label{font-size:.85rem;color:var(--muted)}
.visa-summary-total .amount{font-family:'Fraunces',serif;font-size:1.9rem;color:var(--coral-strong)}
.visa-stamp-note{font-size:.76rem;color:var(--muted);margin-top:.9rem;line-height:1.55}
.visa-summary-contact{border-top:1px solid var(--border);margin-top:1.2rem;padding-top:1.1rem;display:flex;flex-direction:column;gap:.4rem}
.visa-summary-contact-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.visa-summary-contact-link{font-size:.92rem;font-weight:600;color:var(--coral-strong);text-decoration:none}
.visa-summary-contact-link:hover{text-decoration:underline}
.visa-summary-contact-hint{font-size:.76rem;color:var(--muted)}

.visa-submit-btn{justify-content:center;border:none;cursor:pointer;font-family:inherit;padding-left:2.2rem;padding-right:2.2rem}
.visa-submit-btn:disabled{opacity:.6;cursor:default}

.visa-error{color:#B3261E;font-size:.82rem;margin-top:.6rem;display:none}
.visa-error.is-visible{display:block}
.visa-field-error{color:#B3261E;font-size:.78rem;margin-top:.4rem;display:none}
.visa-field-error:not(:empty){display:block}


.visa-success{display:none;text-align:center;padding:3.5rem 2rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:2.4rem}
.visa-success.is-visible{display:block}
.visa-success h2{font-family:'Fraunces',serif;font-size:1.7rem;margin-bottom:.8rem}
.visa-success p{color:var(--muted);max-width:44ch;margin:0 auto 1.6rem;line-height:1.6}

@media (max-width:900px){
  .visa-layout{grid-template-columns:1fr}
  .visa-summary{position:static}
  .visa-row{grid-template-columns:1fr}
  .visa-field input,.visa-field select,.visa-field textarea{font-size:16px}
}
.visa-field input[type="file"]{width:100%;padding:.6rem .9rem;border:1px solid var(--border);border-radius:10px;font-size:.85rem;font-family:inherit;color:var(--muted);background:#fff;box-sizing:border-box;cursor:pointer}
.visa-field input[type="file"]::file-selector-button{margin-inline-end:.9rem;padding:.55rem 1rem;border:none;border-radius:8px;background:var(--coral-strong);color:#fff;font-weight:600;font-size:.82rem;cursor:pointer;font-family:inherit;transition:background .2s var(--ease)}
.visa-field input[type="file"]::file-selector-button:hover{background:var(--maroon)}
.visa-file-hint{font-size:.76rem;color:var(--muted);margin-top:.4rem}


.visa-date-wrap{position:relative}
.visa-date-wrap input{padding-right:2.6rem}
.visa-date-icon{position:absolute;top:50%;right:.9rem;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none}
[dir="rtl"] .visa-date-wrap input{padding-right:.9rem;padding-left:2.6rem}
[dir="rtl"] .visa-date-icon{right:auto;left:.9rem}
.visa-field input.visa-date-native{position:absolute;top:0;bottom:0;right:0;width:2.6rem;opacity:0;border:0;padding:0;margin:0;cursor:pointer;background:transparent;-webkit-appearance:none;appearance:none}
[dir="rtl"] .visa-date-native{right:auto;left:0}

/* ===== Multi-step wizard (Trip / Travellers / Review) ===== */
.visa-steps{display:flex;gap:.8rem;margin-top:2.4rem;margin-bottom:1.6rem;flex-wrap:wrap}
.visa-step{display:flex;align-items:center;gap:.7rem;flex:1;min-width:180px;padding:1rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);opacity:.6;transition:opacity .2s var(--ease),border-color .2s var(--ease)}
.visa-step.is-active{opacity:1;border-color:var(--coral-strong)}
.visa-step.is-done{opacity:1}
.visa-step-num{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--gold-wash);color:var(--ink);font-weight:600;font-size:.86rem;flex-shrink:0}
.visa-step.is-active .visa-step-num{background:var(--coral-strong);color:#fff}
.visa-step b{display:block;font-size:.9rem;color:var(--ink)}
.visa-step small{display:block;font-size:.76rem;color:var(--muted);margin-top:.1rem}

.visa-panel-title{font-family:'Fraunces',serif;font-size:1.3rem;margin:0 0 .3rem}
.visa-panel-sub{color:var(--muted);font-size:.86rem;margin:0 0 1.6rem}
.visa-field-hint{font-size:.76rem;color:var(--muted);margin-top:.4rem}

.visa-nav-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.6rem}
.visa-next-btn,.visa-back-btn{border:none;cursor:pointer;font-family:inherit}
.visa-back-btn{background:transparent}

.visa-traveler-card{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.2rem;background:#fff;overflow:hidden;transition:border-color .2s var(--ease)}
.visa-traveler-card:has(.visa-traveler-status.is-incomplete){border-color:var(--coral)}
.visa-traveler-header{display:flex;align-items:center;gap:1rem;padding:1.3rem 1.5rem;cursor:pointer}
.visa-traveler-num{display:flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--gold-wash);color:var(--ink);font-weight:600;font-size:.9rem;flex-shrink:0}
.visa-traveler-header-text{flex:1;display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.visa-traveler-title{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--ink)}
.visa-traveler-nat-summary{font-size:.86rem;color:var(--muted)}
.visa-traveler-status{font-size:.7rem;font-weight:700;letter-spacing:.03em;padding:.35rem .8rem;border-radius:999px;text-transform:uppercase;white-space:nowrap;flex-shrink:0}
.visa-traveler-status.is-incomplete{background:var(--gold-wash);color:#8a6d1f}
.visa-traveler-status.is-complete{background:#DCF3E3;color:#1D7A3F}
.visa-traveler-toggle{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--muted);flex-shrink:0;padding:0 .2rem;transition:transform .2s var(--ease)}
.visa-traveler-card.is-collapsed .visa-traveler-toggle{transform:rotate(-90deg)}
.visa-traveler-body{padding:0 1.5rem 1.5rem}
.visa-traveler-card.is-collapsed .visa-traveler-body{display:none}
.visa-upload-box{flex:1;min-width:0;border:1.5px dashed var(--border);border-radius:12px;padding:1.4rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;align-items:center;justify-content:center;transition:border-color .2s var(--ease)}
.visa-upload-box:hover{border-color:var(--coral)}
.visa-upload-box.has-file{border-style:solid;border-color:var(--coral-strong)}
.visa-upload-box input[type="file"]{display:none}
.visa-upload-title{font-weight:600;color:var(--ink);font-size:.88rem}
.visa-upload-sub{font-size:.76rem;color:var(--muted);word-break:break-word;overflow-wrap:anywhere;max-width:100%}
.visa-traveler-actions{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.6rem;flex-wrap:wrap}
.visa-add-traveler-btn{border:1.5px dashed var(--coral-strong);border-radius:999px;padding:.7rem 1.3rem;cursor:pointer;font-family:inherit;font-weight:600;font-size:.86rem;background:transparent;color:var(--coral-strong)}
.visa-add-traveler-btn:hover{background:var(--gold-wash)}
.visa-remove-traveler-btn{background:none;border:none;color:var(--muted);font-size:.84rem;font-weight:600;cursor:pointer;font-family:inherit;padding:0}
.visa-remove-traveler-btn:hover{color:#B3261E;text-decoration:underline}

.visa-save-traveler-btn{padding:.75rem 1.5rem !important;width:auto;margin-top:1.2rem}
.visa-review-block{margin-bottom:1.6rem}
.visa-review-heading{font-family:'Fraunces',serif;font-size:1.05rem;margin:0 0 .6rem}

@media (max-width:700px){
  .visa-steps{flex-direction:column}
  .visa-step{min-width:0}
}