:root{
  --navy:#14235c;
  --navy-2:#1b2d78;
  --orange:#f7941d;
  --black:#111111;
  --gray-bg:#f2f2f2;
  --muted:#6b6b6b;
  --line:#e7e7e7;
}
*{box-sizing:border-box;}
body{
  font-family:'Urbanist', sans-serif;
  color:var(--black);
  background:#fff;
}
a{text-decoration:none;}

/* ---------- Top utility bar ---------- */
.topbar{
  border-bottom:1px solid var(--line);
  padding:.6rem 0;
  font-size:.85rem;
}
.topbar .item{ display:flex; align-items:center; gap:.5rem; color:var(--black); }
.topbar .item i{ color:var(--navy); font-size:1rem; }
.topbar .label{ color:var(--muted); font-size:.72rem; display:block; line-height:1.1; }
.topbar .value{ font-weight:700; }
.social-circle{
  width:30px; height:30px; border-radius:50%;
  background:var(--navy); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.85rem; margin-left:.35rem;
}

/* ---------- Main nav ---------- */
.main-nav{ padding:.8rem 0; }
.main-nav.with-border{ border-bottom:1px solid var(--line); }
.logo-img{ height:52px; width:auto; display:block; }

.nav-links a{
  color:var(--black); font-weight:600; font-size:.95rem;
  padding:.5rem .2rem; margin:0 .9rem; border-bottom:2px solid transparent;
}
.nav-links a.active{ color:var(--orange); border-bottom-color:var(--orange); }
.nav-links a:hover{ color:var(--orange); }

.btn-pill-black{
  background:var(--black); color:#fff; font-weight:700; font-size:.85rem;
  padding:.65rem 1.3rem; border-radius:40px; display:inline-flex; align-items:center; gap:.5rem;
}
.btn-pill-black span{ border-bottom:2px solid var(--orange); padding-bottom:2px; }
.btn-pill-black:hover{ background:#000; color:#fff; }

.btn-pill-orange{
  background:var(--orange); color:#fff; font-weight:700; font-size:.85rem;
  padding:.75rem 1.5rem; border-radius:40px; display:inline-flex; align-items:center; gap:.5rem;
  border:none;
}
.btn-pill-orange:hover{ background:#e08415; color:#fff; }

.btn-pill-outline-navy{
  background:transparent; color:var(--navy); font-weight:700; font-size:.85rem;
  padding:.7rem 1.4rem; border-radius:40px; display:inline-flex; align-items:center; gap:.5rem;
  border:1.5px solid var(--navy);
}
.btn-pill-outline-navy:hover{ background:var(--navy); color:#fff; }

/* ---------- Hero ---------- */
.hero{
  background:
    linear-gradient(180deg, rgba(20,35,92,.93), rgba(20,35,92,.93)),
    repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0 2px, transparent 2px 40px);
  background-color:var(--navy);
  color:#fff;
  padding:4rem 0 3rem;
  text-align:center;
}
.hero h1{
  font-size:clamp(1.9rem, 4vw, 2.9rem);
  font-weight:800;
  line-height:1.2;
  margin-top:0;
}
.hero h1 u{
  text-decoration-color:var(--orange);
  text-decoration-thickness:3px;
  text-underline-offset:6px;
}
.hero p.lead-text{
  color:#c7cfe9;
  max-width:60ch;
  margin:1.2rem auto 0;
  font-size:1rem;
}

.countdown-row{
  display:flex; justify-content:center; gap:2.2rem;
  margin-top:2.2rem;
}
.countdown-row .cd-num{
  font-weight:900; font-size:2.1rem; line-height:1; color:#fff;
}
.countdown-row .cd-label{
  color:var(--orange); font-weight:700; font-size:.8rem; margin-top:.25rem;
}
.countdown-heading{
  font-weight:600; color:#dfe3f2; font-size:.95rem; margin-top:2.4rem;
}

/* ---------- Form section ---------- */
.form-section{ padding:4rem 0 5rem; background:var(--gray-bg); }
.form-card{
  background:#fff;
  border-radius:20px;
  padding:2.6rem 2.4rem;
  max-width:720px;
  margin:0 auto;
  box-shadow:0 20px 45px -25px rgba(20,35,92,.35);
}
.form-card h2{
  font-weight:800; font-size:1.7rem; color:var(--navy); text-align:center;
}
.form-card p.sub{
  text-align:center; color:var(--muted); margin-top:.5rem; margin-bottom:2rem;
}
.form-label{ font-weight:700; font-size:.85rem; color:var(--black); }
.form-control, .form-select{
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:.7rem .9rem;
  font-family:'Urbanist', sans-serif;
  font-size:.95rem;
}
.form-control:focus, .form-select:focus{
  border-color:var(--orange);
  box-shadow:0 0 0 .2rem rgba(247,148,29,.18);
}
.form-note{ font-size:.78rem; color:var(--muted); }

/* ---------- Phone input (intl-tel-input) ---------- */
.iti{ width:100%; display:block; }
.iti__country-container{
  z-index:5;
  padding:6px;
}
.iti input.form-control,
.iti--separate-dial-code input.form-control{
  width:100%;
  padding-left:104px !important;
}

/* Country trigger button */
.iti__selected-country{
  border-radius:8px;
  padding:0 .55rem 0 .7rem;
  transition:background-color .15s ease;
  background:transparent;
}
.iti__selected-country:hover,
.iti__selected-country:focus-visible,
.iti__selected-country[aria-expanded="true"]{
  background:rgba(20,35,92,.06);
}
.iti__selected-country-primary{
  gap:.45rem;
  align-items:center;
}
.iti__selected-dial-code{
  font-weight:700;
  font-size:.95rem;
  color:var(--navy);
  margin-left:.15rem;
}
.iti__flag{ border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.iti__arrow{
  border-top-color:var(--navy);
  opacity:.55;
  margin-left:.4rem;
  transition:transform .18s ease;
}
.iti__arrow--up{ transform:rotate(180deg); border-top-color:var(--orange); }

/* Divider between country and number */
.iti--separate-dial-code .iti__selected-country::after{
  content:"";
  position:absolute;
  right:-3px;
  top:22%;
  height:56%;
  width:1px;
  background:var(--line);
}

/* Dropdown panel */
.iti__dropdown-content{
  border:none;
  border-radius:16px;
  box-shadow:0 24px 48px -18px rgba(20,35,92,.45), 0 0 0 1px rgba(20,35,92,.08);
  overflow:hidden;
  margin-top:.4rem;
  font-family:'Urbanist', sans-serif;
}
.iti__search-input{
  border:none;
  border-bottom:1px solid var(--line);
  padding:.85rem 1rem;
  font-family:'Urbanist', sans-serif;
  font-size:.92rem;
  border-radius:0;
}
.iti__search-input:focus{
  outline:none;
  border-bottom-color:var(--orange);
}
.iti__country-list{
  padding:.35rem;
  max-height:270px;
  scrollbar-width:thin;
  scrollbar-color:#cfd6e8 transparent;
}
.iti__country-list::-webkit-scrollbar{ width:8px; }
.iti__country-list::-webkit-scrollbar-thumb{
  background:#cfd6e8;
  border-radius:8px;
}
.iti__country{
  border-radius:10px;
  padding:.55rem .7rem;
  gap:.55rem;
  font-size:.92rem;
}
.iti__country-name{ color:var(--black); font-weight:600; }
.iti__dial-code{ color:var(--muted); font-weight:600; }
.iti__country.iti__highlight,
.iti__country:hover{
  background:rgba(247,148,29,.12);
}
.iti__country.iti__highlight .iti__country-name,
.iti__country:hover .iti__country-name{ color:var(--navy); }
.iti__country[aria-selected="true"]{
  background:var(--navy);
}
.iti__country[aria-selected="true"] .iti__country-name,
.iti__country[aria-selected="true"] .iti__dial-code{ color:#fff; }
.iti__divider{ border-bottom-color:var(--line); margin:.35rem .2rem; }

.iti.is-invalid input.form-control{
  border-color:#dc3545;
}

.invalid-feedback{ display:none; font-size:.8rem; }
.form-control.is-invalid ~ .invalid-feedback,
.form-select.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-feedback,
.iti.is-invalid ~ .invalid-feedback{
  display:block;
}
.form-control.is-invalid, .form-select.is-invalid{
  border-color:#dc3545;
}
.form-check-input.is-invalid{
  border-color:#dc3545;
}

/* ---------- Confirmation section ---------- */
.confirm-section{
  background:var(--gray-bg);
  padding:5rem 0 6rem;
}
.confirm-card{
  background:#fff;
  border-radius:24px;
  max-width:640px;
  margin:0 auto;
  padding:3rem 2.6rem;
  text-align:center;
  box-shadow:0 20px 45px -25px rgba(20,35,92,.35);
}
.check-circle{
  width:78px; height:78px;
  border-radius:50%;
  background:var(--orange);
  display:flex; align-items:center; justify-content:center;
  font-size:2.1rem; color:#fff;
  margin:0 auto 1.4rem;
}
.confirm-card h1{
  font-weight:800; font-size:1.9rem; color:var(--navy);
}
.confirm-card p.sub{
  color:var(--muted); max-width:44ch; margin:.8rem auto 0;
}

.recap{
  background:var(--navy);
  color:#fff;
  border-radius:16px;
  padding:1.6rem 1.8rem;
  margin-top:2.2rem;
  text-align:left;
}
.recap .row-item{
  display:flex; justify-content:space-between; align-items:center;
  padding:.5rem 0;
  border-bottom:1px solid rgba(255,255,255,.12);
  font-size:.92rem;
}
.recap .row-item:last-child{ border-bottom:none; }
.recap .row-item span:first-child{ color:#b9c2e0; }
.recap .row-item span:last-child{ font-weight:700; }

.action-row{
  display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap;
  margin-top:2.2rem;
}

/* ---------- Footer ---------- */
footer{
  background:var(--navy); color:#c7cfe9; padding:2.2rem 0; font-size:.85rem; text-align:center;
}
footer a{ color:#c7cfe9; }
footer a:hover{ color:var(--orange); }
