:root{
  --navy:#00295E;
  --navy-deep:#001A3D;
  --navy-soft:#123A6B;
  --red:#E4002B;
  --gold:#F2A900;
  --paper:#F5F6F8;
  --ink:#16202B;
  --muted:#5C6B78;
  --line:#E3E6EA;
  --radius:16px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Space Grotesk',sans-serif;
  margin:0 0 8px;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--navy-deep);
}
p{margin:0;}
a{color:inherit;}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px;}
.wrap.narrow{max-width:560px;}
.eyebrow{
  display:inline-block;
  font-family:'Inter',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:12px;
  font-weight:700;
  color:var(--red);
  margin-bottom:10px;
}

/* ---------- NAV ---------- */
.site-nav{
  background:var(--navy);
  padding:16px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.site-nav .wrap{width:100%;display:flex;align-items:center;justify-content:space-between;}
.brand{
  color:#fff;
  text-decoration:none;
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:16px;
  letter-spacing:-0.01em;
}
.brand span{font-weight:400;color:#B9C9DA;margin-left:4px;}
.back-link{
  color:#CFE0F0;
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  border:1px solid rgba(255,255,255,0.25);
  padding:7px 14px;
  border-radius:100px;
}
.back-link:hover{background:rgba(255,255,255,0.08);}

/* ---------- HERO (hub) ---------- */
.hub-hero{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);
  color:#fff;
  padding:56px 0 44px;
  text-align:center;
}
.hub-hero .eyebrow{color:var(--gold);}
.hub-hero h1{color:#fff;font-size:clamp(26px,4vw,38px);max-width:18ch;margin:0 auto 14px;}
.hub-hero p{color:#C9D3DC;font-size:16px;max-width:44ch;margin:0 auto;}

/* ---------- TILE GRID ---------- */
.tiles{padding:40px 0 64px;}
.tile-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.tile{
  display:block;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px 22px;
  text-decoration:none;
  color:var(--ink);
  transition:transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.tile:hover, .tile:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 14px 28px -18px rgba(0,41,94,0.35);
  border-color:var(--navy-soft);
  outline:none;
}
.tile:focus-visible{outline:2px solid var(--navy); outline-offset:2px;}
.tile-icon{font-size:28px;margin-bottom:12px;}
.tile h3{font-size:16.5px;margin-bottom:6px;}
.tile p{font-size:13.5px;color:var(--muted);}
.tile-esim{
  background:linear-gradient(135deg,var(--navy),var(--navy-soft));
  border-color:var(--navy);
}
.tile-esim h3, .tile-esim p{color:#fff;}
.tile-esim p{color:#C9D3DC;}

/* ---------- CATEGORY PAGE ---------- */
.cat-hero{
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:44px 0 36px;
}
.cat-hero h1{font-size:clamp(24px,3.2vw,32px);}
.cat-hero p{color:var(--muted);font-size:15.5px;margin-top:6px;}

.offers{padding:40px 0;}
.offer-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:16px;
}
.offer-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.offer-tag{
  align-self:flex-start;
  background:#FDF0D9;
  color:#8a5a06;
  font-size:11.5px;
  font-weight:700;
  padding:4px 10px;
  border-radius:100px;
}
.offer-card h3{font-size:16.5px;margin-top:4px;}
.offer-card p{color:var(--muted);font-size:14px;flex-grow:1;}

.terms{padding:0 0 56px;}
.terms details{
  border-top:1px solid var(--line);
  padding:18px 0;
}
.terms summary{
  cursor:pointer;
  font-weight:600;
  font-size:14.5px;
  color:var(--navy-deep);
}
.terms p{margin-top:12px;color:var(--muted);font-size:13.5px;max-width:70ch;}

/* ---------- BUTTONS ---------- */
.btn-primary, .btn-outline, .btn-ghost{
  display:inline-block;
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:14.5px;
  padding:12px 22px;
  border-radius:100px;
  border:1px solid transparent;
  cursor:pointer;
  text-decoration:none;
  text-align:center;
}
.btn-primary{background:var(--red);color:#fff;}
.btn-primary:hover{background:#c50026;}
.btn-outline{background:#fff;color:var(--navy);border-color:var(--line);}
.btn-outline:hover{border-color:var(--navy);}
.btn-ghost{background:transparent;color:var(--muted);}
.btn-ghost:hover{color:var(--ink);}

/* ---------- ESIM REDEEM ---------- */
.esim-redeem, .esim-success{padding:52px 0 72px;}
.esim-redeem h1, .esim-success h1{font-size:clamp(23px,3vw,29px);margin-bottom:10px;}
.esim-redeem > .wrap > p, .esim-success > .wrap > p{color:var(--muted);font-size:15px;margin-bottom:26px;}

.ticket{
  background:#fff;
  border:1px dashed var(--line);
  border-radius:var(--radius);
  padding:20px 22px;
  margin-bottom:26px;
}
.ticket-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:9px 0;
}
.ticket-row + .ticket-row{border-top:1px solid var(--line);}
.ticket-row .label{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;}
.ticket-row .code{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:18px;
  color:var(--navy-deep);
  letter-spacing:0.02em;
}
.fineprint{color:var(--muted);font-size:12.5px;margin-top:12px;}

/* modal */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(9,20,35,0.55);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  z-index:50;
}
.modal-overlay[hidden]{display:none;}
.modal{
  background:#fff;
  border-radius:18px;
  padding:28px 26px;
  max-width:400px;
  width:100%;
}
.modal h2{font-size:19px;margin-bottom:14px;}
.check-list{margin:0 0 20px;padding-left:20px;color:var(--muted);font-size:14px;}
.check-list li{margin-bottom:8px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;}

/* qr */
.qr-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  margin-bottom:22px;
}
.qr-code-label{
  font-family:'Space Grotesk',sans-serif;font-weight:600;
  letter-spacing:0.04em;color:var(--muted);font-size:13px;
}
.install-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:26px;}
.install-steps{color:var(--muted);font-size:14px;padding-left:20px;}
.install-steps li{margin-bottom:8px;}
.install-steps b{color:var(--ink);}

/* ---------- FOOTER ---------- */
.site-footer{padding:24px 0 40px;color:var(--muted);font-size:12.5px;}
.site-footer .wrap{
  border-top:1px solid var(--line);
  padding-top:18px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
}

@media (max-width:760px){
  .tile-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:480px){
  .tile-grid{grid-template-columns:1fr;}
  .modal-actions{flex-direction:column-reverse;}
  .btn-primary, .btn-outline, .btn-ghost{width:100%;}
}
@media (prefers-reduced-motion:reduce){
  .tile{transition:none;}
}
