:root{
  /* Use Inter for clean Stripe feel */
--font-main: 'Manrope', system-ui, sans-serif;

  --navy:#0c3a57;
  --navy-2:#0b2e45;
  --blue:#1f78c8;
  --green:#2db36a;
  --text:#1e2a33;
  --muted:#6b7a88;
  --border:#e7eef5;
  --bg:#ffffff;
  --soft:#f6f9fc;
  --shadow: 0 10px 25px rgba(0,0,0,.08);

  --wide: 1440px;
  --main: 1120px;

  /* consistent responsive padding across widths */
  --pad: clamp(14px, 4vw, 18px);
}

html, body{
  overflow-x: hidden;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:var(--font-main);color:var(--text);background:var(--bg)}
a{color:inherit;text-decoration:none}

/* safe-area padding (iPhone notch) */
.container{
  width:100%;
  max-width: var(--main);
  margin: 0 auto;
  padding-left: calc(var(--pad) + env(safe-area-inset-left));
  padding-right: calc(var(--pad) + env(safe-area-inset-right));
}

.container-wide{
  width:100%;
  max-width: var(--wide);
  margin: 0 auto;
  padding-left: calc(var(--pad) + env(safe-area-inset-left));
  padding-right: calc(var(--pad) + env(safe-area-inset-right));
}

/* TOP BAR */
.topbar{
  background:var(--navy);
  color:#fff;
  font-size:14px;
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  gap:12px;
}
.topbar-left,.topbar-right{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.topbar-link{opacity:.95}
.topbar-link:hover{opacity:1;text-decoration:underline}
.divider{width:1px;height:16px;background:rgba(255,255,255,.25)}
.chev{opacity:.8}

/* HEADER / NAV (Apple/Stripe feel) */
.header{
  background:#ffffff;
  border-bottom:1px solid var(--border);
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  position:sticky;
  top:0;
  z-index:50;
}


.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  position:relative; /* anchor mobile menu under header */

  /* ✅ FIX: add left/right padding so brand + hamburger don’t touch edges */
  padding:10px var(--pad);
}

.brand{
  display:flex;
  align-items:center;
  gap:0;
  min-width:auto;
}


.brand-logo{
  width:auto;
  height:auto;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border-radius:0 !important;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.brand-logo-img{
  display:block;
  height:50px !important;
  width: 50px !important;
  margin:0;
  padding:0;
  object-fit:contain;
}


.brand-text{
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin:0 0 0 4px;
  padding:0;
}


.brand-name{
  margin:0;
  line-height:1.05;
}

.brand-tagline{
  font-size:9px;
  color:var(--muted);
  line-height:1.1;
  margin-top:2px;
  font-style: italic;
}

/* right-align the menu (everything except brand) */
.nav-links{
  display:flex;
  align-items:center;
  gap:8px;
  flex: 0 1 auto;
  justify-content:flex-end;
  margin-left:auto;
}

.nav-link{
  color:#203240;
  font-weight:600;
  font-size:14px;
  padding:8px 10px;
  border-radius:999px;
}
.nav-link:hover{background:rgba(20,40,60,.06)}
.caret{opacity:.55}

.nav-item{
  position:relative;
}

.dropdown{
  position:absolute;
  top:48px;
  left:0;
  width:280px;
  background:#fff;
  border:1px solid rgba(20,40,60,.10);
  border-radius:16px;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
  padding:10px;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:300;
}

.nav-item:hover .dropdown{
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
}

.nav-item.open .dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
.dropdown-link{
  display:block;
  padding:12px 12px;
  border-radius:12px;
  color:#203240;
  font-weight:500;
  font-size:14px;
}
.dropdown-link:hover{background:rgba(20,40,60,.06)}

.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
  min-width: 240px;
  justify-content:flex-end;
  margin-left:10px;
}

/* Hamburger button (animated via pseudo elements; works with your JS .is-open class) */
.hamburger{
  display:none;
  border:1px solid rgba(20,40,60,.12);
  background:#fff;
  border-radius:12px;
  padding:10px 12px;
  font-size:18px;
  cursor:pointer;
  position: relative;
  z-index: 120;

  width: 46px;
  height: 44px;

  color: transparent;
  user-select:none;
  -webkit-tap-highlight-color: transparent;

  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.hamburger:hover{
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
  transform: translateY(-1px);
}
.hamburger:active{
  transform: translateY(0px) scale(.98);
}

/* three bars */
.hamburger::before,
.hamburger::after{
  content:"";
  position:absolute;
  left: 12px;
  right: 12px;
  height: 2px;
  border-radius:999px;
  background: #0b3550;
  transition: transform .18s ease, top .18s ease, bottom .18s ease, opacity .18s ease;
}
.hamburger::before{
  top: 14px;
  box-shadow: 0 7px 0 #0b3550;
}
.hamburger::after{
  bottom: 14px;
}

/* open state -> X */
.hamburger.is-open::before{
  top: 21px;
  transform: rotate(45deg);
  box-shadow: none;
}
.hamburger.is-open::after{
  bottom: 21px;
  transform: rotate(-45deg);
}

/* BUTTONS */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  font-weight:700;
  font-size:14px;
  border:1px solid transparent;
  cursor:pointer;
  transition:.15s ease;
  white-space:nowrap;
}

.btn-outline{
  background:#fff;
  border-color: rgba(31,120,200,.35);
  color: var(--blue);
}
.btn-outline:hover{
  background: rgba(31,120,200,.06);
  border-color: rgba(31,120,200,.55);
  transform: translateY(-1px);
}

.btn-solid{
  background:var(--blue);
  color:#fff;
  border-color: rgba(31,120,200,.55);
  box-shadow: 0 10px 22px rgba(31,120,200,.22);
}
.btn-solid:hover{
  filter:brightness(.98);
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(31,120,200,.28);
}

.btn-green{background:var(--green);color:#fff}
.btn-green:hover{filter:brightness(.95)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{filter:brightness(.95)}
.wide{width:100%}

/* HERO */
.hero{padding:42px 0 26px;background:#fff}
.hero-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:34px;
  align-items:center;
}
.hero h1{
  font-size:42px;
  font-weight:300;
  line-height:1.12;
  margin:0 0 14px;
  color:#0b3550;
  letter-spacing:-0.02em;
}
.hero p{margin:0 0 18px;color:var(--muted);font-size:16px;line-height:1.6}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}

/* =========================================================
   HERO CTA RULES
   - Desktop/tablet: show ONLY default 2 CTAs (green + blue)
   - Mobile (<=760px): show ONLY Sign Up + Login CTAs
   ========================================================= */

/* Default (desktop/tablet): hide signup/login CTAs inside HERO */
.hero-actions a[href*="signup"],
.hero-actions a[href*="register"],
.hero-actions a[href*="login"],
.hero-actions a[href*="signin"]{
  display: none !important;
}

/* Mobile: hide everything, then show ONLY signup/login */
@media (max-width: 760px){
  .hero-actions > *{
    display:none !important;
  }

  .hero-actions a[href*="signup"],
  .hero-actions a[href*="register"],
  .hero-actions a[href*="login"],
  .hero-actions a[href*="signin"]{
    display:inline-flex !important;
  }

  /* keep the 2-button grid on mobile */
  .hero-actions{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:12px;
  }

  .hero-actions .btn{
    width:100%;
    padding:14px 12px;
    border-radius:16px;
    font-size:14px;
    white-space:normal;
    text-align:center;
    line-height:1.2;
  }
}


/* HERO RIGHT: infographic card (Sierra Leone → Global) */
.hero-art{display:flex;flex-direction:column;align-items:center;gap:10px}

.perk-card{
  width: min(380px, 100%);
  border-radius:22px;
  border:1px solid rgba(20,40,60,.10);
  background:
    radial-gradient(900px 320px at 8% 0%, rgba(31,120,200,.16), transparent 60%),
    radial-gradient(700px 280px at 92% 18%, rgba(45,179,106,.16), transparent 60%),
    radial-gradient(520px 240px at 60% 110%, rgba(244,180,0,.16), transparent 58%),
    linear-gradient(180deg, #ffffff, #fbfdff);
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
  overflow:hidden;
}

.perk-top{padding:16px 16px 12px}

.perk-chip{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  color:#0b3550;
  background:rgba(31,120,200,.10);
  border:1px solid rgba(31,120,200,.18);
}

.perk-title{
  margin-top:10px;
  font-weight:900;
  color:#0b3550;
  letter-spacing:-0.01em;
  font-size:18px;
}

.perk-sub{
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

/* Route infographic */
.perk-route{
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:18px;
  border:1px solid rgba(20,40,60,.08);
  background:rgba(255,255,255,.65);
}

.route-node{display:flex;align-items:center;gap:8px}
.route-badge{
  width:34px;height:34px;border-radius:12px;
  display:grid;place-items:center;
  font-weight:900;
  border:1px solid rgba(20,40,60,.10);
  box-shadow: 0 8px 20px rgba(0,0,0,.06);
}
.route-badge.sl{
  background:rgba(31,120,200,.12);
  color:#0b3550;
  border-color:rgba(31,120,200,.18);
}
.route-badge.globe{
  background:rgba(45,179,106,.12);
  border-color:rgba(45,179,106,.18);
}

.route-label{
  font-weight:800;
  color:#0b3550;
  font-size:13px;
}

.route-line{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

.route-dash{
  width:100%;
  height:2px;
  border-radius:999px;
  background: repeating-linear-gradient(
    to right,
    rgba(20,40,60,.18),
    rgba(20,40,60,.18) 10px,
    transparent 10px,
    transparent 18px
  );
}

.route-plane{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  padding:6px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(20,40,60,.10);
  color:#0b3550;
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
}
.route-plane svg{width:18px;height:18px;display:block}

/* Stats row */
.perk-stats{
  margin-top:12px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:10px;
}

.perk-stat{
  border-radius:16px;
  padding:10px;
  border:1px solid rgba(20,40,60,.10);
  background:rgba(255,255,255,.70);
}

.perk-stat-ico{
  width:34px;height:34px;border-radius:12px;
  display:grid;place-items:center;
  margin-bottom:8px;
  border:1px solid rgba(20,40,60,.10);
  background:#fff;
  color:#0b3550;
}
.perk-stat-ico svg{width:18px;height:18px;display:block}

.perk-stat-big{
  font-weight:900;
  letter-spacing:-0.02em;
  color:#0b3550;
  font-size:16px;
}
.perk-stat-small{
  margin-top:2px;
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}

.perk-stat-blue{background:rgba(31,120,200,.10);border-color:rgba(31,120,200,.18)}
.perk-stat-green{background:rgba(45,179,106,.10);border-color:rgba(45,179,106,.18)}
.perk-stat-gold{background:rgba(244,180,0,.12);border-color:rgba(244,180,0,.20)}

/* Perk list */
.perk-list{
  padding:10px 16px 14px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.perk-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(20,40,60,.08);
  background:rgba(255,255,255,.70);
}

.perk-ico{
  width:34px;
  height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid rgba(20,40,60,.10);
  background:#fff;
  color:#0b3550;
}
.perk-ico svg{width:18px;height:18px;display:block}

.perk-ico-blue{background:rgba(31,120,200,.10);border-color:rgba(31,120,200,.18)}
.perk-ico-green{background:rgba(45,179,106,.10);border-color:rgba(45,179,106,.18)}
.perk-ico-gold{background:rgba(244,180,0,.12);border-color:rgba(244,180,0,.20)}

.perk-item-title{font-weight:900;color:#0b3550;margin-bottom:2px}
.perk-item-text{color:var(--muted);font-size:13px;line-height:1.45}

/* Bottom */
.perk-bottom{
  padding:12px 16px 16px;
  border-top:1px solid rgba(20,40,60,.08);
  background:rgba(255,255,255,.60);
}
.perk-bottom-title{
  font-weight:900;
  color:#0b3550;
  font-size:13px;
  margin-bottom:10px;
}
.perk-carriers{display:flex;flex-wrap:wrap;gap:8px}
.carrier-pill{
  padding:7px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  color:#2b3e4d;
  background:rgba(20,40,60,.06);
  border:1px solid rgba(20,40,60,.10);
}

.hero-note{font-size:12px;color:var(--muted)}

/* PROMO */
.promo{padding:14px 0 28px}
.promo-card{
  background:linear-gradient(90deg,#f15a5a,#e43e3e);
  border-radius:18px;
  padding:22px;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:var(--shadow);
}
.promo-badge{
  display:inline-block;
  background:rgba(255,255,255,.2);
  padding:6px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  margin-bottom:8px;
}
.promo h3{margin:0 0 4px;font-size:20px}
.promo p{margin:0;opacity:.9}
.promo-btn{background:#fff;color:#c02c2c;border:none}
.promo-btn:hover{filter:brightness(.97)}

/* SECTIONS */
.section-title{
  text-align:center;
  margin:0 0 18px;
  color:#0b3550;
  font-size:30px;
}
.divider-dots{text-align:center;color:#7ea6c4;margin:24px 0 0;font-size:26px}

/* STEPS */
.steps{padding:28px 0 44px;background:#fff}
.steps-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:18px;
}
.step-card{
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
  background:#fff;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
  position:relative;
}
.step-bubble{
  position:absolute;
  top:-12px;left:14px;
  background:#2db36a;
  color:#fff;
  padding:6px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  text-transform:lowercase;
}
.step-card h3{margin:8px 0 8px;color:#0b3550}
.step-card p{margin:0 0 12px;color:var(--muted);line-height:1.6}
.step-illustration{
  height:130px;
  background:var(--soft);
  border-radius:16px;
  border:1px dashed #d7e4f0;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:10px;
  overflow:hidden;
  position:relative;
}

/* Icon styling for the 3 step cards */
.step-icon{
  width:76px;
  height:76px;
  opacity:.98;
}

/* Make each step illustration “feel” different */
.step-card:nth-child(1) .step-illustration{
  color: var(--blue);
  background: rgba(31,120,200,.08);
  border-color: rgba(31,120,200,.18);
}
.step-card:nth-child(2) .step-illustration{
  color: var(--green);
  background: rgba(45,179,106,.10);
  border-color: rgba(45,179,106,.18);
}
.step-card:nth-child(3) .step-illustration{
  color: #f4b400;
  background: rgba(244,180,0,.12);
  border-color: rgba(244,180,0,.20);
}

.step-card .btn{margin-top:6px}

/* STEP CARDS: Graphic illustrations (SVG) */
.step-illustration-graphic{
  height: 170px;
  background: transparent;
  border: 0;
  padding: 0;
  overflow: visible;
}

.step-svg{
  width: 100%;
  height: 170px;
  display: block;
}

.step-card{
  overflow: visible;
}

.step-card h3{
  margin-top: 10px;
}

.step-card{
  transition: transform .15s ease, box-shadow .15s ease;
}
.step-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.08);
}

.step-bubble{
  z-index: 5;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}
.step-illustration{
  overflow: hidden;
}
.steps-cta{
  display:flex;
  justify-content:center;
  margin-top: 18px;
}

.steps-cta-btn{
  padding: 14px 22px;
  border-radius: 16px;
  box-shadow: 0 14px 30px rgba(31,120,200,.18);
}

@media (max-width: 760px){
  .steps-cta-btn{
    width: 100%;
    max-width: 520px;
  }
}

/* WHY (simple, human, Stackry-style) */
.why-simple{
  padding:56px 0;
  background:#fff;
}

.why-head{
  text-align:center;
  margin-bottom:26px;
}

.why-title{
  margin:0;
  font-size:40px;
  font-weight:300;
  color:#0b3550;
  letter-spacing:-0.02em;
}

.why-dots{
  margin-top:10px;
  display:flex;
  justify-content:center;
  gap:8px;
}
.why-dots span{
  width:8px;height:8px;border-radius:2px;
  background:#1f78c8;
  opacity:.25;
}
.why-dots span:nth-child(2){opacity:.5}
.why-dots span:nth-child(3){opacity:.75}
.why-dots span:nth-child(4){opacity:1}

.why-row{
  display:grid;
  grid-template-columns: 360px 1fr;
  gap:28px;
  align-items:center;
  padding:26px 0;
}

.why-row + .why-row{
  border-top:1px solid rgba(20,40,60,.10);
}

.why-row.reverse{
  grid-template-columns: 1fr 360px;
}
.why-row.reverse .why-image{order:2}
.why-row.reverse .why-text{order:1}

.why-image{
  display:flex;
  justify-content:center;
}
.why-image img{
  width:100%;
  max-width:360px;
  height:auto;
  border-radius:10px;
  display:block;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  border:1px solid rgba(20,40,60,.12);
  background:#fff;
}

.why-text h3{
  margin:0 0 12px;
  color:#0b3550;
  font-size:24px;
  font-weight:700;
  line-height:1.25;
}

.why-text ul{
  margin:0;
  padding-left:18px;
  color:#374b5a;
  line-height:1.7;
  font-size:16px;
}
.why-text li{margin:10px 0}

.why-actions{
  margin-top:16px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

/* Responsive */
@media (max-width: 980px){
  .why-row,
  .why-row.reverse{
    grid-template-columns: 1fr;
  }
  .why-row.reverse .why-image{order:1}
  .why-row.reverse .why-text{order:2}
  .why-image img{max-width:520px}
  .why-title{font-size:34px}
}

/* WHY illustrations (no external images needed) */
.why-illus{
  width:100%;
  max-width:360px;
  height:220px;
  border-radius:12px;
  display:grid;
  place-items:center;
  border:1px solid rgba(20,40,60,.12);
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  background:#fff;
  overflow:hidden;
}

.why-illus svg{
  width:90%;
  height:auto;
  display:block;
}

.why-illus-blue{ color:#1f78c8; background:rgba(31,120,200,.06); }
.why-illus-gold{ color:#c78b00; background:rgba(244,180,0,.10); }
.why-illus-green{ color:#2db36a; background:rgba(45,179,106,.08); }

.why img {
  border-radius: 16px;
}

.bullets li::marker {
  color: var(--blue);
}

.perk-card,
.promo-card,
.global-card,
.step-card,
.why-image img,
.why-illus{
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
}

/* RETAILERS */
.retailers{padding:44px 0;background:#fff}

.retailers-grid{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap:10px;
  margin-top:18px;
}

.retailer{
  background:#f3f5f7;
  border:1px solid #eef2f6;
  border-radius:0;
  height:140px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  overflow:hidden;
}

.retailer img{
  width:70%;
  height:auto;
  max-height:70px;
  object-fit:contain;
  filter:grayscale(100%);
  opacity:.9;
  transition:.2s ease;
}

.retailer:hover img{
  filter:grayscale(0);
  opacity:1;
  transform:scale(1.04);
}

@media (max-width: 980px){
  .retailers-grid{grid-template-columns: repeat(3, 1fr);}
}
@media (max-width: 760px){
  .retailers-grid{grid-template-columns: repeat(2, 1fr);}
  .retailer{height:120px;}
  .retailer img{width:75%; max-height:60px;}
}

.global{
  padding:54px 0;
  background:linear-gradient(180deg,#0a2f47,#062437);
  color:#fff;
}

.global-card{
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:36px 20px;
  text-align:center;
  box-shadow:0 18px 45px rgba(0,0,0,.35);
}

.global-card h2{
  margin:0 0 12px;
  font-size:34px;
}

.global-card p{
  margin:0 auto 18px;
  max-width:760px;
  opacity:.9;
  line-height:1.6;
}

.flags-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin:18px 0 10px;
}

.flag{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  font-weight:900;
}

.flag img{
  width:26px;
  height:26px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 4px 12px rgba(0,0,0,.35);
}

.small{
  font-size:13px;
  opacity:.85;
}

/* FAQ */
.faq{padding:44px 0;background:#fff}
.faq-list{max-width:920px;margin:0 auto}
.faq-item{
  border-top:1px solid var(--border);
  padding:10px 0;
}
.faq-item:last-child{border-bottom:1px solid var(--border)}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  font-weight:900;
  color:#0b3550;
  padding:14px 6px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"▾";opacity:.6}
.faq-item[open] summary:after{content:"▴"}
.faq-body{
  padding:0 6px 14px;
  color:var(--muted);
  line-height:1.6;
}
.faq-cta{
  display:flex;
  gap:12px;
  justify-content:center;
  margin-top:18px;
  flex-wrap:wrap;
}

/* =========================
   FOOTER — OPTION C (DARK)
   ========================= */

.footer.footer-c.footer-dark{
  background:#0a2f47;
  color:#d9edf9;
  padding:56px 0 0;
}

.footer-c-grid{
  display:grid;
  grid-template-columns: 1.25fr 1fr 1fr .9fr;
  gap:34px;
  align-items:start;
  padding-bottom:26px;
}

.footer-c-heading{
  display:block;
  margin:0 0 10px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#9fd3ff;
}

.footer-c-coltitle{
  margin:0 0 12px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#9fd3ff;
}

.footer-c-logo{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  margin-bottom:16px;
}

.footer-c-logo-img{
  height:3.5em !important;
  width:auto !important;
  max-height:none !important;
  object-fit:contain;
}

.footer-c-name{
  font-weight:900;
  color:#ffffff;
  font-size:16px;
  letter-spacing:.2px;
}

.footer-c-address{
  line-height:1.8;
  color:#cfe1ef;
  font-size:14px;
  opacity:.95;
}

.mt16{ margin-top:16px; }
.mt8{ margin-top:8px; }

.footer-dark .footer-col a{
  display:block;
  padding:7px 0;
  color:#cfe1ef;
  text-decoration:none;
  font-weight:600;
  opacity:.92;
}
.footer-dark .footer-col a:hover{
  color:#ffffff;
  opacity:1;
  text-decoration:underline;
}

.footer-c-logo-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:10px;
}

.footer-c-logo-row img{
  height:28px;
  width:auto;
  display:block;
  opacity:.95;
  transition:.2s ease;

  padding:6px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}

.footer-c-logo-row img[src$=".svg"]{
  filter:brightness(0) invert(1);
  opacity:.9;
}

.footer-c-logo-row img[src$=".png"],
.footer-c-logo-row img[src$=".jpg"],
.footer-c-logo-row img[src$=".jpeg"]{
  filter:none;
}

.footer-c-logo-row img:hover{
  opacity:1;
  transform:translateY(-1px) scale(1.03);
}

.footer-c-bar{
  background:#062437;
  margin-top:34px;
  padding:14px 0;
  border-top:1px solid rgba(255,255,255,.10);
}

.footer-c-bar-inner{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

.footer-c-bar a{
  color:#9fd3ff;
  font-weight:700;
  text-decoration:none;
}
.footer-c-bar a:hover{
  color:#ffffff;
  text-decoration:underline;
}

.footer-c-bar-links{
  display:flex;
  align-items:center;
  gap:10px;
}
.footer-c-bar-links .sep{
  opacity:.55;
}

/* =========================
   RESPONSIVE BEHAVIOR
   ========================= */

@media (max-width: 980px){
  .footer-c-grid{
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px){
  .footer-c-grid{
    grid-template-columns: 1fr 1fr;
    gap:18px;
  }

  #footer-col-1{ grid-column: 1 / -1; }
  #footer-col-2{ grid-column: 1 / 2; }
  #footer-col-3{ grid-column: 2 / 3; }
  #footer-col-4{ grid-column: 1 / -1; }
}

@media (max-width: 480px){
  .footer-c-grid{
    grid-template-columns: 1fr;
  }

  #footer-col-1,
  #footer-col-2,
  #footer-col-3,
  #footer-col-4{
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px){
  .footer-c-grid{
    row-gap: 36px;
  }

  #footer-col-1{
    padding-bottom: 10px;
  }

  #footer-col-4{
    margin-top: 10px;
  }
}

/* RESPONSIVE */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  .steps-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .retailers-grid{grid-template-columns: repeat(3, 1fr)}
  .footer-grid{grid-template-columns: 1fr 1fr}

  .brand{min-width:auto}
  .nav-actions{min-width:auto}
}

/* =========================
   TABLET / iPAD (768x1024, 820x1180)
   - Hide topbar
   - Keep hero in 2 columns (side-by-side)
   - Header: logo left, Sign Up + Login + hamburger right
   - Nav links only inside hamburger menu
   - Hero primary buttons stacked
   ========================= */
@media (min-width: 761px) and (max-width: 1024px){

  /* Hide the top bar on tablet */
  .topbar{ display:none; }

  /* Keep hero side-by-side (override the <=980 rule that makes it 1 column) */
  .hero-grid{
    grid-template-columns: 1.2fr .8fr;
    gap: 26px;
    align-items: center;
  }

  /* Make hero primary buttons stack */
  .hero-actions-primary{
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .hero-actions-primary .btn{
    width: 100%;
    max-width: 360px;
    padding: 14px 14px;
    border-radius: 16px;
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }

  /* Show hamburger on tablet */
  .hamburger{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* Hide nav links by default; show only when .open is added */
  .nav-links{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    margin-left:0;
    background:rgba(255,255,255,.98);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom:1px solid var(--border);
    padding:12px var(--pad);

    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;

    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-6px);
    pointer-events:none;
    transition: max-height .22s ease, opacity .18s ease, transform .18s ease;
  }

  .nav-links.open{
    max-height: 80vh;
    opacity:1;
    transform: translateY(0);
    pointer-events:auto;
  }

  /* Nav items full width inside hamburger */
  .nav-links .nav-link{
    width:100%;
    border-radius:14px;
    padding:12px 12px;
  }

  .nav-toggle{
  cursor:pointer;
}

  /* Tablet dropdowns behave like mobile (tap open) */
  .nav-item{ width:100%; }

  .nav-item > .nav-link{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

  .dropdown{
    position:static;
    width:100%;
    margin-top:6px;
    padding:6px;
    border-radius:14px;
    box-shadow:none;
    transform:none;
    opacity:1;
    pointer-events:auto;
    display:none;
  }

  .nav-item.open .dropdown{ display:block; }

  .nav-item.open .caret{
    transform:rotate(180deg);
    display:inline-block;
  }
}


/* =========================
   MOBILE NAV RULES
   - Hide topbar
   - Header shows only logo (left) + hamburger (right)
   ========================= */
@media (max-width: 760px){
  /* 1) Hide top bar completely */
  .topbar{ display:none; }

  /* keep nav padded on mobile too */
  .nav{
    padding: 12px var(--pad);
    gap: 10px;
  }

  .brand{ min-width: 0; }

  /* 2) Hide the desktop Sign Up/Login buttons in header */
  .nav-actions{
    min-width: 0;
    margin-left: 0;
    gap: 10px;
  }
 .nav-actions .btn{ display:none; }

  /* 3) Show hamburger */
  .hamburger{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* 4) Mobile dropdown menu: animate open/close */
  .nav-links{
    position:absolute;
    left:0;right:0;
    top:100%;
    margin-left:0;
    background:rgba(255,255,255,.98);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom:1px solid var(--border);
    padding:12px var(--pad);
    flex-direction:column;
    align-items:flex-start;
    gap:6px;

    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-6px);
    pointer-events:none;
    transition: max-height .22s ease, opacity .18s ease, transform .18s ease;
  }
  .nav-links.open{
    max-height: 80vh;
    opacity:1;
    transform: translateY(0);
    pointer-events:auto;
  }

  .nav-links .nav-link{
    border-radius:14px;
    padding:12px 12px;
    width:100%;
  }

  .hero{padding:34px 0 18px}
  .hero h1{font-size:32px}

  .promo-card{flex-direction:column;align-items:flex-start}
  .retailers-grid{grid-template-columns: repeat(2, 1fr)}
  .hero-art{margin-top:10px}
}

/* MOBILE DROPDOWNS (tap) */
@media (max-width: 760px){
  .nav-item{ width:100%; }

  .nav-item > .nav-link{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

  .dropdown{
    position:static;
    width:100%;
    margin-top:6px;
    padding:6px;
    border-radius:14px;
    box-shadow:none;
    transform:none;
    opacity:1;
    pointer-events:auto;
    display:none;
  }

  .nav-item.open .dropdown{ display:block; }

  .nav-item.open .caret{
    transform:rotate(180deg);
    display:inline-block;
  }

  .dropdown-link{ width:100%; }
}

/* ✅ MOBILE HERO BUTTON RULE:
   On mobile (your listed sizes), ONLY show Sign Up + Login.
   This hides the first two buttons in the hero-actions row. */
@media (max-width: 760px){
  /* Mobile: only show Sign Up + Login CTAs */
  .hero-actions > *{
    display:none !important;
  }

  /* show only signup/login links/buttons (works with typical URLs) */
  .hero-actions a[href*="signup"],
  .hero-actions a[href*="register"],
  .hero-actions a[href*="login"],
  .hero-actions a[href*="signin"]{
    display:inline-flex !important;
  }

  /* keep the 2-button layout */
  .hero-actions{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:12px;
  }

  .hero-actions .btn{
    width:100%;
    padding:14px 12px;
    border-radius:16px;
    font-size:14px;
    white-space:normal;
    text-align:center;
    line-height:1.2;
  }
}

/* public/css/styles.css (append/replace only the dashboard table bits below) */

/* HARD OVERRIDE: prevent “stacked” table cells if any global CSS sets display:block */
.dash-table{ display:table; width:100%; border-collapse:collapse; table-layout:auto; }
.dash-table thead{ display:table-header-group; }
.dash-table tbody{ display:table-row-group; }
.dash-table tr{ display:table-row; }
.dash-table th,
.dash-table td{ display:table-cell; }

/* Your existing dash-table rules (keep) */
.dash-table{
  width:100%;
  border-collapse:collapse;
  margin-top:12px;
  font-size:14px;
}
.dash-table th,
.dash-table td{
  text-align:left;
  padding:12px 12px;
  border-top:1px solid rgba(0,0,0,0.06);
  vertical-align:middle;
}
.dash-table thead th{
  font-weight:600;
  color:#1e2a33;
  border-top:none;
  white-space:nowrap;
}

/* Facility cell (flag + code like your screenshot) */
.dash-facility{
  display:flex;
  align-items:center;
  gap:10px;
}
.dash-flag-round{
  width:34px;
  height:34px;
  border-radius:999px;
  object-fit:cover;
  border:1px solid rgba(0,0,0,.08);
}
.dash-facility-code{
  font-weight:800;
}

/* Minor helpers */
.dash-mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  letter-spacing: .1px;
}
.dash-right{ text-align:right; }
.dash-link{ color:#1f78c8; font-weight:700; }
.dash-link:hover{ text-decoration:underline; }

.dash-viewall{
  margin-top:10px;
}
.dash-arrow{
  font-size:18px;
  position:relative;
  top:1px;
}

.auth-page{
  min-height:100vh;
  background:
    linear-gradient(rgba(10,47,71,.7), rgba(6,36,55,.7)),
    url('/images/login-bg.jpeg') center/cover no-repeat;
}


/* =========================
   MOBILE HERO AUTH BUTTON TWEAKS
   ========================= */
@media (max-width: 760px){
  /* Make Sign Up button green on mobile hero */
  .hero-actions a[href*="signup"]{
    background: var(--green);
    color: #fff;
    border-color: rgba(45,179,106,.55);
    box-shadow: 0 12px 26px rgba(45,179,106,.28);
  }

  .hero-actions a[href*="signup"]:hover{
    filter: brightness(.96);
    transform: translateY(-1px);
  }
}

/* =========================================
   iOS SELECT DROPDOWN OFFSET FIX
   - When select picker opens on iOS, disable
     sticky + backdrop-filter temporarily.
   ========================================= */

html.select-open,
body.select-open{
  /* prevent weird compositing + scroll jumps */
  overflow: visible !important;
}

/* kill sticky/blur ONLY while picker is open */
body.select-open .header{
  position: relative !important;
  top: auto !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* if you have any transforms on nav wrappers, disable them while open */
body.select-open .nav,
body.select-open .nav-links,
body.select-open .container,
body.select-open .container-wide{
  transform: none !important;
  filter: none !important;
  perspective: none !important;
}

/* =========================================
   CUSTOMER UI TOKENS
   Shared customer-side consistency layer
   ========================================= */
:root{
  --ui-font: var(--font-main, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
  --ui-page-max: 1100px;
  --ui-card-radius: 16px;
  --ui-card-radius-sm: 12px;
  --ui-card-shadow: 0 10px 25px rgba(0,0,0,.06);
  --ui-card-shadow-soft: 0 4px 16px rgba(0,0,0,.07);
  --ui-border: #e7edf3;
  --ui-border-strong: rgba(15,23,42,.08);
  --ui-text: #1e2a33;
  --ui-muted: #6b7680;
  --ui-blue: #1f78c8;
  --ui-blue-strong: #2563eb;
  --ui-green: #059669;
  --ui-red: #dc2626;
}

html,body{
  font-family: var(--ui-font);
}

.hero .perk-chip{
  margin-bottom:16px;
}

.hero h1{
  margin-top:8px;
}

/* CONTACT PAGE */

.contact-hero .perk-chip{
  margin-bottom:16px;
}

.contact-options{
  padding:60px 0;
}

.contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:20px;
}

.contact-card{
  background:#fff;
  padding:24px;
  border-radius:16px;
  box-shadow:0 10px 25px rgba(0,0,0,0.05);
  text-align:center;
}

.contact-icon{
  font-size:28px;
  margin-bottom:12px;
}

.contact-form-section{
  padding:60px 0;
}

.contact-form-card{
  max-width:600px;
  margin:0 auto;
  background:#fff;
  padding:30px;
  border-radius:16px;
  box-shadow:0 10px 25px rgba(0,0,0,0.05);
}

.form-row{
  margin-bottom:16px;
}

.contact-form input,
.contact-form textarea{
  width:100%;
  padding:12px;
  border-radius:10px;
  border:1px solid #ddd;
}

.public-contact-hero{
  padding:56px 0 22px;
  background:#fff;
}

.public-contact-hero-inner{
  max-width:820px;
  text-align:center;
  margin:0 auto;
}

.public-contact-hero-inner h1{
  margin:14px 0 12px;
  font-size:44px;
  line-height:1.12;
  font-weight:300;
  color:#0b3550;
  letter-spacing:-0.02em;
}

.public-contact-hero-inner p{
  margin:0 auto;
  max-width:760px;
  color:var(--muted);
  font-size:18px;
  line-height:1.7;
}

.public-contact-section{
  padding:18px 0 56px;
  background:#fff;
}

.public-contact-card{
  max-width:860px;
  margin:0 auto;
  background:#fff;
  border:1px solid var(--border);
  border-radius:22px;
  box-shadow:0 14px 34px rgba(0,0,0,.06);
  padding:30px;
}

.public-contact-card-head h2{
  margin:0 0 22px;
  color:#0b3550;
  font-size:22px;
}

.public-contact-alert{
  border-radius:14px;
  padding:14px 16px;
  margin-bottom:18px;
  font-size:14px;
  line-height:1.6;
}

.public-contact-alert--success{
  background:rgba(45,179,106,.10);
  border:1px solid rgba(45,179,106,.20);
  color:#11663a;
}

.public-contact-alert--error{
  background:rgba(220,38,38,.08);
  border:1px solid rgba(220,38,38,.18);
  color:#9b1c1c;
}

.public-contact-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.public-contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.public-contact-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.public-contact-field label{
  font-size:15px;
  font-weight:700;
  color:#203240;
}

.public-contact-field label span{
  color:#dc2626;
}

.public-contact-field input,
.public-contact-field select,
.public-contact-field textarea{
  width:100%;
  border:1px solid #d8e3ec;
  border-radius:14px;
  padding:14px 16px;
  font-size:15px;
  font-family:inherit;
  color:#1e2a33;
  background:#fff;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}

.public-contact-field input:focus,
.public-contact-field select:focus,
.public-contact-field textarea:focus{
  border-color:rgba(31,120,200,.55);
  box-shadow:0 0 0 4px rgba(31,120,200,.10);
}

.public-contact-field textarea{
  min-height:180px;
  resize:vertical;
}

.public-contact-help{
  font-size:13px;
  color:var(--muted);
}

.public-contact-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:4px;
}

@media (max-width: 760px){
  .public-contact-hero-inner h1{
    font-size:34px;
  }

  .public-contact-hero-inner p{
    font-size:16px;
  }

  .public-contact-card{
    padding:22px 16px;
    border-radius:18px;
  }

  .public-contact-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .public-contact-actions{
    justify-content:stretch;
  }

  .public-contact-actions .btn{
    width:100%;
  }
}

@media (max-width: 760px){
  .brand-logo-img{
    height:38px;
    max-width:130px;
  }

  .footer-c-logo-img{
    height:38px;
    max-width:130px;
  }
}