/* ==========================================================
   PREMIUM FULL SWEEP — consistency overrides
   Loads LAST on every page to lock spacing, typography, buttons.
   ========================================================== */

:root{
  /* Layout rhythm */
  --maxw: 980px;
  --pad: 18px;
  --pad-lg: 22px;
  --gap: 14px;

  /* Type scale */
  --h1: clamp(28px, 4.6vw, 42px);
  --h2: clamp(20px, 3.4vw, 28px);
  --h3: clamp(16px, 2.8vw, 20px);
  --body: 15.5px;
  --lh: 1.5;
}

/* Patch: hide legacy app-shell bottom nav if present */
.app-shell-bottomnav,
.app-shell-pad{ display:none !important; }

/* Containers */
.container, .wrap, .page, main, .content{
  max-width: var(--maxw);
  margin-left: auto;
  margin-right: auto;
}
main, .page, .content{
  padding-left: var(--pad);
  padding-right: var(--pad);
}

/* Headings + readable spacing */
body{ font-size: var(--body) !important; line-height: var(--lh) !important; }
h1{ font-size: var(--h1) !important; margin: 14px 0 10px !important; }
h2{ font-size: var(--h2) !important; margin: 18px 0 10px !important; }
h3{ font-size: var(--h3) !important; margin: 14px 0 8px !important; }
p{ margin: 10px 0 !important; }
.section, section{ padding: 18px 0 !important; }
hr{ border-color: rgba(214,194,139,0.18) !important; opacity: 1 !important; }

/* Cards — consistent internal padding */
.card, .panel, .ate-card, .tile, .pricing-card, .quote-card, .faq-item, .review-card,
.sum-card, .summary, .bk-card, .wiz-summary, .route-summary{
  padding: 16px 16px !important;
}
@media (min-width: 700px){
  .card, .panel, .ate-card, .tile, .pricing-card, .quote-card, .faq-item, .review-card,
  .sum-card, .summary, .bk-card, .wiz-summary, .route-summary{
    padding: 18px 18px !important;
  }
}

/* Buttons — one system */
button, .btn, a.btn, a[class*="btn"], .cta, .cta-btn, input[type="submit"]{
  min-height: var(--tap) !important;
  border-radius: var(--radius-sm) !important;
  padding: 12px 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  transition: transform .08s ease, filter .12s ease, box-shadow .12s ease;
}
button:active, .btn:active, a.btn:active, .cta:active, .cta-btn:active, input[type="submit"]:active{
  transform: translateY(1px);
}

/* Primary buttons (brand) */
.btn-primary, .primary, .cta-primary, button.primary, button.btn-primary{
  background: linear-gradient(180deg, rgba(59,198,132,0.96), rgba(46,164,111,0.96)) !important;
  color: rgba(7,26,20,0.98) !important;
  border: 1px solid rgba(59,198,132,0.40) !important;
  box-shadow: 0 12px 26px rgba(0,0,0,0.28) !important;
}
.btn-primary:hover, .primary:hover, .cta-primary:hover, button.primary:hover, button.btn-primary:hover{
  filter: brightness(1.05);
}

/* Secondary buttons */
.btn-secondary, .secondary, .cta-secondary{
  background: rgba(255,255,255,0.03) !important;
  color: var(--text) !important;
  border: 1px solid rgba(214,194,139,0.24) !important;
}

/* Inputs — premium consistency */
input, select, textarea{
  min-height: 46px !important;
  border-radius: 14px !important;
  padding: 12px 12px !important;
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(214,194,139,0.18) !important;
  color: var(--text) !important;
}
input::placeholder, textarea::placeholder{ color: rgba(247,245,239,0.55) !important; }
label{ color: rgba(247,245,239,0.86) !important; font-weight: 700 !important; }

/* Tables/list blocks */
table{ width: 100% !important; border-collapse: collapse !important; }
th, td{ padding: 10px 10px !important; border-bottom: 1px solid rgba(214,194,139,0.16) !important; }

/* Sticky mobile CTA (if present) */
.mobile-cta, .sticky-cta{
  position: sticky;
  bottom: 10px;
  z-index: 40;
  padding: 10px;
  margin-top: 12px;
}
.mobile-cta .btn, .sticky-cta .btn{
  width: 100%;
}

/* Reduce “jank”: calm animations */
*{ scroll-behavior: smooth; }



/* === V38 Patch V2: mobile full-width + prevent decorative bleed === */
@media (max-width: 768px){
  html, body{ overflow-x: hidden; }
  /* Ensure app content always spans the viewport on mobile */
  main, .wrap, .page, .content, .page-main, .app-main, .simplified-main{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
}
/* Clamp any accidental oversized inline SVGs used as decoration */
@media (max-width: 768px){
  svg{ max-width: 100%; height: auto; }
}
/* If any pages use oversized decorative blocks, clip them on small screens */
@media (max-width: 768px){
  main, .wrap, .page, .content{ overflow-x: hidden; }
}

/* === PASS: Kill giant legacy icon stacks (defensive) === */
.app-shell-bottomnav,
.app-shell-pad{ display:none !important; }
.app-shell-bottomnav a,
.app-shell-bottomnav svg{ max-width: 28px !important; max-height: 28px !important; }

/* If a legacy nav ever renders in normal page flow, hide it entirely */
nav.app-shell-bottomnav{ display:none !important; }

/* === PASS: Uniform page titles across the site (Info / Login / Drivers etc.) === */
:root{
  --ate-title-font: "Inter Tight", Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ate-title-size: clamp(34px, 5.2vw, 46px);
  --ate-title-line: 1.08;
  --ate-title-track: -0.02em;
}

/* Standard page head (most content pages) */
.page-head{ padding: 22px 18px 10px; }
.page-head h1{
  font-family: var(--ate-title-font);
  font-size: var(--ate-title-size);
  line-height: var(--ate-title-line);
  letter-spacing: var(--ate-title-track);
  margin: 0 0 8px;
}
.page-head .muted, .page-head p{ margin: 0; }

/* Login page title */
body[data-page="login"] .simplified-hero .hero-title{
  font-family: var(--ate-title-font) !important;
  font-size: var(--ate-title-size) !important;
  line-height: var(--ate-title-line) !important;
  letter-spacing: var(--ate-title-track) !important;
  margin: 0 0 8px !important;
}
body[data-page="login"] .simplified-hero .hero-sub{ margin: 0 0 10px !important; }

/* Drivers hub hero title */
body.drivers .hero h1{
  font-family: var(--ate-title-font) !important;
  font-size: var(--ate-title-size) !important;
  line-height: var(--ate-title-line) !important;
  letter-spacing: var(--ate-title-track) !important;
}

/* Drivers subpages (Apply / Hackney / Jobs / Login / Referral) h1s */
body.drivers main h1,
body.drivers .wrap h1{
  font-family: var(--ate-title-font);
  font-size: var(--ate-title-size);
  line-height: var(--ate-title-line);
  letter-spacing: var(--ate-title-track);
  margin: 0 0 10px;
}
