/* ==========================================================================
   LAYOUT - containers, page layouts, grids, sections, header/footer
   structure, major page positioning.
   ========================================================================== */

.container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.section {
  padding: 88px 0;
}

.section--tight {
  padding: 56px 0;
}

.section--dark {
  background: var(--black);
  color: var(--white);
}

.section--photo {
  position: relative;
}

.section--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(13, 13, 15, 0.78);
}

.section--photo .container {
  position: relative;
}

/* Sections inside .gradient-wrap must stay transparent so the wrapper's
   animated gradient shows through instead of being covered by the
   solid black .section--dark background (or the page's normal --bg on
   the guest-only Why Us section). */
.gradient-wrap .section--dark {
  background: transparent;
}

.gradient-wrap .section {
  padding: 48px 0;
}

.gradient-wrap .container {
  position: relative;
}

.section-head {
  max-width: 640px;
  margin: 0 0 44px;
}

.section-head p {
  color: var(--grey);
  font-size: 17px;
  margin: 14px 0 0;
}

.section--dark .section-head p {
  color: #b9b9bd;
}

/* Center the bundles heading and card grid within the page, instead of
   them sitting flush against the left edge of the container. */
#bundles .section-head {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.section--dark .btn-outline {
  border-color: var(--white);
  color: var(--white);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--header-bg);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--surface-border);
}

.header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 20px;
}

.top-strip {
  background: var(--yellow);
  color: var(--black);
  font-family: var(--font-mono);
  font-size: 12.5px;
  font-weight: 600;
}

.top-strip .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  padding-bottom: 8px;
  flex-wrap: wrap;
}

.top-strip a {
  text-decoration: underline;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 26px;
  color: var(--grey);
  font-size: 14.5px;
  font-weight: 600;
}

.main-nav > a {
  position: relative;
  padding: 4px 0;
}

.main-nav a:hover {
  color: var(--text);
}

/* Scrollspy active state - js/nav-scrollspy.js toggles this class on the
   nav link whose section is currently in view (index.html only; on other
   pages the link for the current page is marked active on load instead).
   Text color is var(--text) (not --yellow) - yellow directly on the
   header's light-mode background (near-white, --header-bg) measures
   ~1.4:1 contrast, a severe WCAG failure. The brand yellow stays present
   as the underline accent below, while the actual readable text uses the
   theme's high-contrast color, with added weight so "which link is
   active" is still clearly signaled without relying on a single
   low-contrast decorative line as the only cue. */
.main-nav > a.active {
  color: var(--text);
  font-weight: 700;
}

.main-nav > a.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 2px;
  border-radius: 2px;
  background: var(--yellow);
}

.hero-icon {
  width: 24px;
  height: 24px;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  top: -2px;
  margin: 0 4px;
  color: var(--yellow);
}

.hero {
  position: relative;
  color: var(--white);
  overflow: hidden;
  background-image: url("../assets/hero-banner.jpg");
  background-size: cover;
  background-position: center;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(13, 13, 15, 0.78);
}

.hero-inner {
  position: relative;
  padding: 96px 0 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 48px;
}

.hero-inner > div:first-child {
  max-width: 720px;
}

.hero h1 {
  font-size: clamp(38px, 5.4vw, 64px);
  margin-bottom: 20px;
}

.hero h1 .hi {
  color: var(--yellow);
}

.hero h1 .hero-h1-white {
  color: var(--white);
}

.hero-lede {
  font-size: 18px;
  color: #d6d6d9;
  max-width: 480px;
  margin: 0 auto 32px;
}

.hero-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 40px;
}

.hero-stats {
  display: flex;
  gap: 6px;
  justify-content: center;
  font-family: var(--font-mono);
}

.hero-stats div {
  text-align: center;
}

.hero-stats div b {
  display: block;
  font-family: var(--font-numeric);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.15;
  color: var(--yellow);
}

.hero-stats div span {
  display: block;
  max-width: 90px;
  margin: 0 auto;
  font-size: 12px;
  color: #a9a9ad;
  letter-spacing: 0.05em;
}

.hero-wrap {
  position: relative;
}

/* #appHome and .hero (below) both used to need a stacking-context promotion
   here to sit above the old .hero-wrap::before photo overlay. That overlay
   is gone now, but position: relative is left in place since other rules
   (e.g. .hero's own ::before/absolute children) still depend on it. */
.hero-wrap .hero {
  position: relative;
}

.hero-wrap #appHome {
  position: relative;
}

/* ---------- network / feature grid ---------- */
.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.section--dark .feature-card {
  background: var(--glass-bg);
  border-color: var(--glass-border);
}

/* ---------- footer ---------- */
.site-footer {
  background: var(--black);
  color: #d6d6d9;
  padding: 12px 0 26px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 32px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
}

.footer-grid h4 {
  color: var(--white);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-family: var(--font-mono);
  margin: 0 0 6px;
}

.footer-grid ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-grid li {
  margin-bottom: 4px;
  font-size: 14.5px;
}

.footer-grid li a:hover {
  color: var(--yellow);
}

/* Contact Us rows: icon box + label/value stack, styled like the
   reference layout instead of plain bare text lines. */
.footer-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  text-align: left;
}

.footer-contact-icon {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: rgba(247, 181, 0, 0.12);
  border: 1px solid rgba(247, 181, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}

.footer-contact-list li > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.footer-contact-value {
  font-size: 14.5px;
  color: var(--white);
}

/* Payment Method row: heading + three brand logo chips, centered as a
   block under the Location line, matching the Quick Links/Bundle
   heading style above it. */
.footer-payment-method {
  margin-top: 18px;
  text-align: center;
}

.footer-payment-logos {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

.footer-payment-logo {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  object-fit: cover;
  background: var(--white);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 22px;
  font-size: 13px;
  color: #8a8a8f;
  flex-wrap: wrap;
  gap: 10px;
}

.footer-credit {
  width: 100%;
  text-align: center;
  margin-top: 16px;
  font-size: 12.5px;
  color: #8a8a8f;
  font-family: var(--font-mono);
}

.footer-credit-brand {
  color: var(--yellow);
}

.app-home {
  background: var(--bg);
  padding: 28px 0 8px;
}

.app-home .container {
  max-width: 720px;
}

.size-pill-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.checkout-section {
  margin-top: 36px;
  padding-top: 32px;
  border-top: 1px solid var(--surface-border);
  max-width: 440px;
}

.faq-page .section-head {
  text-align: center;
  margin: 0 auto 40px;
}

.faq-page .section-head p {
  margin: 14px auto 0;
}
