/* ── CONTACT PAGE ── */
.contact h1,
.contact .page-header h1,
.contact .page-header h2 {
  font-weight: 800;
  font-size: 36px;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 2rem;
  border: none;
  padding: 0;
}

.contact-map {
  width: 100%;
  height: 420px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(21,31,34,.1);
  margin-bottom: 2rem;
  background: #D5D8DA;
}
.contact-map iframe,
.contact-map > div {
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

.contact-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.contact-info-card {
  background: #fff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 2px 6px rgba(21,31,34,.06);
  border-top: 3px solid #EE6A25;
}
.contact-info-card__heading {
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
  color: #1A2E35;
  margin-bottom: 12px;
}
.contact-info-card p {
  font-size: 14px;
  line-height: 1.6;
  color: #4A4E50;
  margin-bottom: 2px;
}
.contact-info-card a {
  color: #EE6A25;
  text-decoration: none;
  transition: color .2s;
}
.contact-info-card a:hover { color: #F0A050; }
.contact-vcard-link {
  display: inline-block;
  margin-top: 8px;
  color: #F0A050 !important;
  font-style: italic;
  font-size: 13px;
}

.contact-form-section {
  background: #fff;
  border-radius: 8px;
  padding: 2rem;
  box-shadow: 0 2px 6px rgba(21,31,34,.06);
  margin-bottom: 2rem;
}
.contact-form-section__title {
  font-weight: 700;
  font-size: 22px;
  text-transform: uppercase;
  color: #1A2E35;
  margin-bottom: 8px;
}
.contact-form-section__intro {
  font-size: 14px;
  color: #4A4E50;
  line-height: 1.6;
  margin-bottom: 12px;
}
.contact-form-section__intro a {
  color: #EE6A25;
  text-decoration: none;
  font-weight: 600;
}
.contact-form-section__required {
  font-size: 13px;
  font-style: italic;
  color: #2A4A52;
  margin-bottom: 24px;
}
.contact-form-section__footer {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #E5E8E9;
  font-size: 13px;
  color: #4A4E50;
  line-height: 1.6;
}
.contact-form-section__footer a {
  color: #EE6A25;
  text-decoration: none;
  font-weight: 600;
}
.contact-form-section__footer a:hover {
  color: #F0A050;
}

.contact-form-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 20px;
}
.contact-form-row--full {
  grid-template-columns: 1fr;
}
.contact-form-group {
  display: flex;
  flex-direction: column;
}
.contact-form-group label,
#contact-form label.control-label,
#contact-form label {
  font-weight: 700 !important;
  font-size: 13px !important;
  color: #1A1D1E !important;
  margin-bottom: 5px !important;
  float: none !important;
  text-align: left !important;
  width: auto !important;
  padding: 0 !important;
}
#contact-form .form-control,
#contact-form input[type="text"],
#contact-form input[type="email"],
#contact-form textarea {
  height: auto !important;
  padding: 12px 14px !important;
  border: 1px solid #D0D4D6 !important;
  border-radius: 4px !important;
  background-color: #EEF0EF !important;
  background-image: none !important;
  font-size: 14px !important;
  color: #1A1D1E !important;
  box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s;
  width: 100%;
}
#contact-form .form-control:focus,
#contact-form input[type="text"]:focus,
#contact-form input[type="email"]:focus,
#contact-form textarea:focus {
  outline: none !important;
  border-color: #2A4A52 !important;
  box-shadow: 0 0 0 3px rgba(42,74,82,.12) !important;
}
#contact-form textarea.form-control {
  min-height: 180px !important;
  resize: vertical;
}
.contact-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.contact-captcha {
  flex-shrink: 0;
}
.contact-form-actions__right {
  display: flex;
  align-items: center;
  gap: 16px;
}
.contact-email-copy-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #1A1D1E;
  cursor: pointer;
}
.contact-btn-send {
  display: inline-block;
  background: #EE6A25 !important;
  color: #fff !important;
  padding: 10px 28px;
  border: 2px solid #EE6A25 !important;
  border-radius: 4px;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .1em;
  cursor: pointer;
  transition: all .2s;
}
.contact-btn-send:hover {
  background: #1A2E35 !important;
  border-color: #1A2E35 !important;
  color: #F0A050 !important;
}

@media (max-width: 768px) {
  .contact-info-grid { grid-template-columns: 1fr; }
  .contact-form-row { grid-template-columns: 1fr; }
  .contact-map { height: 280px; }
  .contact-form-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .contact-captcha {
    display: flex;
    justify-content: center;
  }
  .contact-form-actions__right {
    flex-direction: column;
    align-items: stretch;
  }
  .contact-btn-send {
    width: 100%;
    text-align: center;
  }
}

/* ── SLIDE-OUT NAV ── */
/* Full-screen overlay that fades in/out, links centred (as on the Sprint site) */
.c-nav {
  display: block !important;
  background: rgba(0, 0, 0, .94);
  padding: 0 !important;
  top: 0; bottom: 0; left: 0; right: 0;
  min-height: 100vh;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.c-nav.active {
  opacity: 1;
  visibility: visible;
}
.c-nav .container {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-top: 90px;   /* room for close icon + logo when the list is long */
  padding-bottom: 40px;
}
.c-nav .c-nav__close.top {
  position: absolute;
  top: 8px;
  left: 5px;
}
.c-nav .c-header__brand {
  position: absolute;
  top: 20px;          /* same spot as the header logo, so they don't look doubled */
  right: 15px;
  float: none;
}
@media (min-width: 768px) {
  .c-nav .c-header__brand { top: 30px; }  /* header has 30px top padding on desktop */
}
.c-nav__inner {
  position: static;
  width: 100%;
  padding: 2rem 0;
  text-align: center;
}
@media (prefers-reduced-motion: reduce) {
  .c-nav { transition: none; }
}

.c-nav__close i, .c-nav__close.top i { color: #fff; transition: color .2s; }
.c-nav__close:hover i { color: #EE6A25; }

/* Size and spacing match the Sprint site; font family stays the template's */
.c-nav__inner .c-nav__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
}

.c-nav__inner .c-nav__list li a,
.c-nav__inner .c-nav__link {
  display: inline-block;
  padding: 2px 0;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.5;
  text-transform: uppercase;
  color: #fff;
  background: none;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}

.c-nav__inner .c-nav__list li a:hover,
.c-nav__inner .c-nav__list li a:focus {
  color: #EE6A25;
  background: none;
  text-decoration: none;
}

.c-nav__inner .c-nav__list .active > a,
.c-nav__inner .c-nav__list .active > a:hover {
  color: #EE6A25;
  background: none;
  text-decoration: none;
  border-bottom-color: #EE6A25;
}

/* ── FOOTER NAV ── */
/* Size and spacing match the Sprint footer; font family stays the template's */
.c-footer .c-nav__list li a {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 2;
  text-transform: uppercase;
  color: #fff;
  background: none;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}

.c-footer .c-nav__list li a:hover,
.c-footer .c-nav__list li a:focus {
  color: #EE6A25;
  background: none;
  text-decoration: none;
}

.c-footer .c-nav__list .active > a,
.c-footer .c-nav__list .active > a:hover {
  color: #EE6A25;
  background: none;
  text-decoration: none;
  border-bottom-color: #EE6A25;
}

/* ── HOME BANDS: article dark → subscribe orange → gallery dark → logos orange → footer dark ── */
.aq-band {
  display: flow-root; /* keep child margins inside the band colour */
}
.aq-band--dark {
  background: #222222;
  color: #fff;
  padding: 50px 0;
}
.aq-band--orange {
  background: #EE6A25;
}
.aq-band--orange .aq-logos {
  margin-top: 40px;
  margin-bottom: 40px;
}
.aq-gallery img {
  max-width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .aq-band--dark { padding: 32px 0; }
}

/* ── HOME VIDEO: hide iOS / video.js play overlays (autoplay blocked, e.g. Low Power Mode) ── */
.c-landing video::-webkit-media-controls-start-playback-button {
  display: none !important;
  -webkit-appearance: none;
}
.c-landing video::-webkit-media-controls {
  display: none !important;
}
.c-landing .vjs-big-play-button,
.c-landing .vjs-loading-spinner {
  display: none !important;
}

/* ── HOME ARTICLE ON PHONES ──
   The articles module sits in a .row with no column, so the row's -15px margins
   cancel the container padding and text runs to the screen edge. Restore the gutter. */
@media (max-width: 767px) {
  .container > .row > .mod-articles-items {
    padding-left: 15px;
    padding-right: 15px;
  }

  /* Event facts: even 2-column grid instead of a ragged wrap */
  .aq-page .aq-specs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .aq-page .aq-spec {
    min-width: 0;
  }
  .aq-page .aq-closing {
    font-size: 1.6em;
    margin-top: 48px;
  }
}
@media (max-width: 359px) {
  .aq-page .aq-specs { grid-template-columns: 1fr; }
}

/* ── NO SIDEWAYS OVERFLOW ON PHONES ──
   The social feed sits in a .row nested inside another .row; the doubled -15px
   margins made the page 15px wider than the screen (and cut off the menu logo). */
.row > .row {
  margin-left: 0;
  margin-right: 0;
}

/* ── HOME HERO TITLE ON PHONES ──
   Centre the "Discover the wild / 24-31 Oct" image in the space between the
   header (top) and the orange buttons (bottom) instead of top-left. */
@media (max-width: 767px) {
  .c-landing__content {
    top: 0;
    bottom: 0;
    margin: 0;
    display: flex;
    align-items: center;
    padding: 80px 0 220px;   /* header height / room for the buttons */
    pointer-events: none;    /* never cover the buttons or video */
  }
  .c-landing__content .container { width: 100%; }
  .c-landing__content .mod-custom p { margin: 0; text-align: center; }
  .c-landing__content .mod-custom img {
    float: none !important;
    display: inline-block;
    max-width: 85%;
    height: auto;
  }
}

/* ── FOOTER MODULE TITLES ──
   Shown when "Show Title" is on for a footer module (footer positions use the html5 chrome). */
.c-footer .moduletable > h3,
.c-footer .moduletable > .module-title {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  text-transform: uppercase;
  color: #EE6A25;
}
@media (max-width: 767px) {
  .c-footer .moduletable { margin-bottom: 24px; }
}

/* ===== MENU OPEN: lock page scroll ===== */
html.aq-nav-open,
html.aq-nav-open body {
  overflow: hidden;
}
html.aq-nav-open .c-nav {
  overflow-y: auto;
  overscroll-behavior: contain;
}
