:root{
  --navy: #12234a;
  --navy-2: #1c3568;
  --cobalt: #2a4d8f;
  --sky: #7ec3e8;
  --gold: #c9932e;
  --crimson: #d0201a;
  --cream: #f7f4ec;
  --paper: #ffffff;
  --ink: #182338;
  --ink-soft: #55607a;
  --line: #e3ddce;
  --display: "Archivo Black", "Arial Black", sans-serif;
  --heading: "Barlow Condensed", "Arial Narrow", sans-serif;
  --body: "Source Sans 3", "Segoe UI", Arial, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}

/* Simple sub-page header */
.subpage-header{
  background:var(--navy); color:#fff; padding:18px 0;
}
.subpage-header .wrap{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;}
.subpage-header .brand-text b{font-family:var(--heading); text-transform:uppercase; letter-spacing:.03em; font-size:1.05rem;}
.subpage-header .brand-text span{display:block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sky);}
.subpage-header a.back-link{
  font-family:var(--heading); font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:.85rem;
  color:#fff; text-decoration:none; border:1px solid rgba(255,255,255,.4); padding:8px 16px; border-radius:2px;
}
.subpage-header a.back-link:hover{background:rgba(255,255,255,.12);}

section{padding:56px 0;}
.section-head{margin-bottom:34px; max-width:760px;}
.tag-label{
  display:inline-block; background:var(--navy); color:#fff;
  font-family:var(--heading); font-weight:700; text-transform:uppercase; letter-spacing:.1em;
  font-size:.78rem; padding:6px 14px 6px 12px;
  clip-path:polygon(0 0, 100% 0, 92% 100%, 0% 100%); margin-bottom:16px;
}
.section-head h2{
  font-family:var(--display); text-transform:uppercase; font-size:clamp(1.5rem,2.6vw,2.2rem);
  color:var(--navy); margin:0 0 12px; line-height:1.15;
}
.section-head p{color:var(--ink-soft); font-size:1.05rem; line-height:1.6; margin:0;}

.btn{
  font-family:var(--heading); font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  font-size:.92rem; padding:14px 26px; border-radius:2px; text-decoration:none; display:inline-block;
  border:2px solid transparent; transition:transform .15s ease, background .15s ease, color .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--gold); color:var(--navy);}
.btn-primary:hover{background:#e0ac47;}
.btn-outline-navy{border:2px solid var(--navy); color:var(--navy); background:transparent;}
.btn-outline-navy:hover{background:var(--navy); color:#fff;}

/* ---- Registration (step chooser) ---- */
.hidden{display:none;}
.registration-box{margin-top:30px;padding:30px;border-radius:12px;background:#fff;border:1px solid #e5e7eb;}
.registration-box h3{margin-bottom:20px;}
.registration-options{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.registration-option{padding:25px;text-align:left;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:.25s;font-family:var(--body);}
.registration-option:hover{transform:translateY(-3px);border-color:var(--navy);}
.registration-option strong{display:block;font-size:20px;margin-bottom:8px;}
.registration-option span{display:block;font-size:14px;opacity:.75;}
.fee-result{margin-top:30px;padding:35px;text-align:center;border-radius:12px;background:#f8fafc;border:1px solid #e5e7eb;}
.fee-result .fee-amount{font-size:48px;font-weight:800;margin:15px 0;}
.fee-result .fee-amount span{font-size:16px;margin-left:6px;}
.payment-procedure{margin-top:50px;padding-top:30px;}
.payment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0;}
.payment-summary > div{padding:20px;border-radius:10px;background:#f8fafc;}
.payment-summary span{display:block;font-size:13px;opacity:.7;margin-bottom:7px;}
.payment-summary strong{font-size:18px;}
.payment-steps{display:grid;gap:20px;}
.payment-step{display:flex;gap:20px;padding:25px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;}
.step-number{min-width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;background:var(--navy);color:#fff;}
.payment-step h3{margin-bottom:8px;}
.payment-step p{margin:0;}
.payment-notice{margin-top:30px;padding:25px;border-radius:12px;background:#f8fafc;}
.payment-notice h3{margin-bottom:10px;}
.payment-notice p{margin-bottom:8px;}
@media (max-width:700px){
  .registration-options{grid-template-columns:1fr;}
  .payment-summary{grid-template-columns:1fr;}
  .payment-step{flex-direction:column;}
}

/* ---- Travel info tabs ---- */
.tabs-shell{background:var(--paper);}
.tab-list{display:flex;flex-wrap:wrap;gap:2px;margin:0;padding:0;list-style:none;border-bottom:3px solid var(--navy);}
.tab-list button{
  font-family:var(--heading);text-transform:uppercase;letter-spacing:.05em;font-weight:700;font-size:.88rem;
  background:var(--cream);color:var(--navy);border:none;padding:14px 22px;cursor:pointer;
  border-top-left-radius:3px;border-top-right-radius:3px;
}
.tab-list button[aria-selected="true"]{background:var(--navy);color:#fff;}
.tab-panels{padding:38px 0 6px;}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.two-col-list{columns:2;column-gap:40px;}
.two-col-list li{break-inside:avoid;margin-bottom:6px;list-style:none;padding-left:16px;position:relative;}
.two-col-list li::before{content:"—";position:absolute;left:0;color:var(--gold);}
.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.hotel-card{background:var(--cream);border:1px solid var(--line);padding:20px 20px 22px;border-radius:2px;position:relative;}
.hotel-card .area{display:inline-block;font-family:var(--heading);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);background:var(--sky);padding:3px 10px;border-radius:12px;margin-bottom:10px;}
.hotel-card h4{margin:0 0 6px;font-family:var(--heading);font-size:1.1rem;color:var(--navy);letter-spacing:.01em;}
.hotel-card p{margin:0 0 10px;font-size:.9rem;color:var(--ink-soft);line-height:1.55;}
.hotel-card .meta{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--ink-soft);border-top:1px dashed var(--line);padding-top:10px;}
.hotel-link{font-family:var(--heading);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--navy);text-decoration:underline;}
.climate-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0 30px;}
.climate-stat{background:var(--cream);border:1px solid var(--line);padding:20px 16px;text-align:center;border-radius:2px;}
.climate-stat .num{display:block;font-family:var(--display);font-size:1.7rem;color:var(--navy);margin-bottom:4px;}
.climate-stat .lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);}
.visa-steps{list-style:none;margin:22px 0;padding:0;counter-reset:visastep;}
.visa-steps li{counter-increment:visastep;display:flex;gap:16px;padding:14px 0;border-bottom:1px dashed var(--line);}
.visa-steps li:last-child{border-bottom:none;}
.visa-steps li::before{
  content:counter(visastep);flex:none;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--heading);font-weight:700;font-size:.9rem;
}
.visa-steps b{display:block;color:var(--navy);font-family:var(--heading);font-size:1rem;}
.visa-steps span{color:var(--ink-soft);font-size:.92rem;}
.note-box{background:#fdf3e3;border-left:4px solid var(--gold);padding:14px 18px;margin-top:22px;font-size:.9rem;color:#5c4a1e;line-height:1.6;}
@media (max-width:900px){
  .hotel-grid{grid-template-columns:1fr 1fr;}
  .climate-stats{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .hotel-grid{grid-template-columns:1fr;}
}

footer.subpage-footer{background:var(--navy);color:#aab6d6;padding:26px 0;font-size:.85rem;text-align:center;}
footer.subpage-footer a{color:#fff;text-decoration:underline;}
