/* ==========================================================================
   VQC Cycling Camps Page — template-specific styles
   ========================================================================== */

/* ── Hero: video background ── */
.vqc__page.vqc__camps .vqc__hero--video-bg {
  position: relative !important;
  overflow: hidden !important;
  min-height: 620px !important;
  display: flex !important;
  align-items: center !important;
}

/* YouTube cover iframe */
.vqc__page.vqc__camps .vqc__hero-yt-wrap {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
}
.vqc__page.vqc__camps .vqc__hero-yt-iframe {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  /* Cover the container regardless of aspect ratio */
  width: 100vw !important;
  height: 56.25vw !important; /* 16:9 */
  min-height: 100% !important;
  min-width: 177.78vh !important; /* 100/9*16 */
  transform: translate(-50%, -50%) !important;
  border: 0 !important;
}
.vqc__page.vqc__camps .vqc__hero-yt-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(135deg, rgba(10,20,60,0.72) 0%, rgba(13,27,62,0.60) 100%) !important;
  z-index: 1 !important;
}

/* Content sits above video */
.vqc__page.vqc__camps .vqc__hero--video-bg .vqc__hero-inner {
  position: relative !important;
  z-index: 2 !important;
}
.vqc__page.vqc__camps .vqc__hero-inner--centered {
  text-align: center !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  padding-top: clamp(80px, 10vw, 120px) !important;
  padding-bottom: clamp(80px, 10vw, 120px) !important;
}
.vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__hero-eyebrow {
  margin-left: auto !important;
  margin-right: auto !important;
}
.vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__hero-sub {
  max-width: 560px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__btn-group {
  justify-content: center !important;
}
.vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__trust-bar {
  justify-content: center !important;
}
.vqc__page.vqc__camps .vqc__hero-headline {
  font-size: clamp(28px, 4vw, 64px) !important;
}

/* Pillar 3-col */
.vqc__page .vqc__pillars {
  display: grid !important; grid-template-columns: repeat(3,1fr) !important;
  gap: 24px !important;
}

.vqc__page .vqc__pillar {
  background: var(--vqc-card-bg) !important;
  border: 2px solid var(--vqc-border) !important;
  border-radius: var(--vqc-radius) !important;
  padding: 36px 28px !important; margin: 0 !important;
  transition: transform 0.35s var(--vqc-ease), border-color 0.3s !important;
  position: relative !important; overflow: hidden !important;
}
.vqc__page .vqc__pillar:hover { transform: translateY(-5px) !important; border-color: var(--vqc-cyan) !important; }
.vqc__page .vqc__pillar::before {
  content:'' !important; position:absolute !important; top:0 !important; left:0 !important; right:0 !important;
  height:3px !important; background:linear-gradient(90deg,var(--vqc-cyan),var(--vqc-cyan-dark)) !important;
}
.vqc__page .vqc__pillar-title {
  font-family:var(--vqc-font-display) !important; font-size:28px !important;
  letter-spacing:2px !important; color:var(--vqc-navy) !important;
  line-height:1 !important; font-weight:400 !important;
  margin-bottom:12px !important; margin-top:14px !important;
}
.vqc__page .vqc__pillar-text { font-family:Manrope,sans-serif !important; font-size:18px !important; color:rgb(2,1,1) !important; line-height:29px !important; font-weight:400 !important; margin:0 !important; }

/* Upcoming camps callout */
.vqc__page .vqc__camps-callout {
  background: var(--vqc-navy) !important;
  border-radius: var(--vqc-radius) !important;
  padding: clamp(36px,5vw,60px) !important;
  position: relative !important; overflow: hidden !important;
  margin: 0 !important;
}
.vqc__page .vqc__camps-callout-inner {
  position: relative !important; z-index: 2 !important;
  display: grid !important; grid-template-columns: 1fr auto !important;
  gap: 40px !important; align-items: center !important;
}
.vqc__page .vqc__camps-callout h3 {
  font-family:var(--vqc-font-display) !important; font-size:clamp(28px,4vw,48px) !important;
  letter-spacing:2px !important; color:#fff !important; line-height:1 !important;
  font-weight:400 !important; margin-bottom:12px !important;
}
.vqc__page .vqc__camps-callout p { font-size:16px !important; color:rgba(255,255,255,0.65) !important; font-weight:500 !important; line-height:1.7 !important; margin:0 !important; overflow-wrap:anywhere !important; word-break:break-word !important; }
.vqc__page .vqc__camps-callout-inner > div:first-child { min-width: 0 !important; overflow: hidden !important; }
.vqc__page .vqc__camps-contact { font-size:16px !important; font-weight:700 !important; color:rgba(255,255,255,0.6) !important; margin-top:12px !important; display:block !important; }
.vqc__page .vqc__camps-contact a { color:var(--vqc-cyan) !important; }

/* Override iOS/WP auto phone-link inflation — body prefix wins specificity battle */
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item *,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item a,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item a:link,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item a:visited,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-strict-text,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-strict-text *,
body .vqc__page #vqc-camps-contact-info-override .vqc__camps-strict-text a {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: rgba(255,255,255,0.6) !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  letter-spacing: normal !important;
  font-family: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline !important;
  background: transparent !important;
}

.vqc__page .vqc__camps-contact-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-right: 20px !important;
  color: rgba(255,255,255,0.6) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  font-family: inherit !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  min-width: 0 !important;
}
.vqc__page .vqc__camps-callout .vqc__camps-contact-item {
  color: rgba(255,255,255,0.6) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

/* Template layout wrappers */
.vqc__page .vqc__camp-day-layout {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(2rem,5vw,5rem) !important;
  align-items: stretch !important;
  margin-top: 40px !important;
}

.vqc__page .vqc__camp-pricing-layout {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 48px !important;
  align-items: start !important;
}

/* Destination cards — 3-col grid, centered so last row doesn't left-align */
.vqc__page .vqc__destinations {
  display: flex !important; flex-wrap: wrap !important;
  justify-content: center !important; gap: 20px !important;
}
.vqc__page .vqc__dest-card {
  flex: 0 1 calc(33.333% - 14px) !important;
  min-width: 260px !important;
}

.vqc__page .vqc__dest-card {
  background: var(--vqc-card-bg) !important;
  border: 2px solid var(--vqc-border) !important;
  border-radius: var(--vqc-radius) !important;
  overflow: hidden !important; margin: 0 !important; padding: 0 !important;
  display: flex !important; flex-direction: column !important;
  transition: transform 0.35s var(--vqc-ease), border-color 0.3s, box-shadow 0.35s !important;
}
.vqc__page .vqc__dest-card:hover {
  transform: translateY(-6px) !important; border-color: var(--vqc-cyan) !important;
  box-shadow: 0 20px 48px rgba(21,166,224,0.15) !important;
}

.vqc__page .vqc__dest-img { width:100% !important; height:190px !important; object-fit:cover !important; display:block !important; }

.vqc__page .vqc__dest-body { padding:22px 22px 0 !important; flex:1 !important; }
.vqc__page .vqc__dest-footer { padding:14px 22px 20px !important; border-top:1px solid var(--vqc-border) !important; margin-top:18px !important; }

.vqc__page .vqc__dest-country { font-size:10px !important; font-weight:800 !important; letter-spacing:2.5px !important; text-transform:uppercase !important; color:var(--vqc-cyan) !important; margin-bottom:6px !important; display:block !important; }
.vqc__page .vqc__dest-name { font-family:var(--vqc-font-display) !important; font-size:26px !important; letter-spacing:2px !important; color:var(--vqc-navy) !important; line-height:1 !important; font-weight:400 !important; margin-bottom:14px !important; }
.vqc__page .vqc__dest-format { font-size:11px !important; font-weight:700 !important; color:var(--vqc-muted) !important; margin-bottom:10px !important; display:block !important; }

/* What's included icon grid */
.vqc__page .vqc__included-grid {
  display: grid !important; grid-template-columns: repeat(2,1fr) !important; gap: 16px !important;
}

.vqc__page .vqc__included-item {
  display: flex !important; align-items: flex-start !important; gap: 12px !important;
  padding: 16px 18px !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1.5px solid rgba(21,166,224,0.18) !important;
  border-radius: var(--vqc-radius-sm) !important;
  margin: 0 !important;
  transition: border-color 0.3s, background 0.3s !important;
}
.vqc__page .vqc__included-item:hover { border-color: var(--vqc-cyan) !important; background: rgba(21,166,224,0.08) !important; }
.vqc__page .vqc__included-item svg { width:18px !important; height:18px !important; stroke:var(--vqc-cyan) !important; fill:none !important; flex-shrink:0 !important; margin-top:1px !important; }
.vqc__page .vqc__included-title { font-size:18px !important; font-weight:700 !important; color:#fff !important; margin-bottom:4px !important; display:block !important; }
.vqc__page .vqc__included-text { font-family:Manrope,sans-serif !important; font-size:18px !important; color:rgba(255,255,255,0.6) !important; font-weight:400 !important; line-height:29px !important; margin:0 !important; }

/* Sample day timeline */
.vqc__page .vqc__day-timeline { display:flex !important; flex-direction:column !important; gap:0 !important; position:relative !important; }
.vqc__page .vqc__day-timeline::before {
  content:'' !important; position:absolute !important;
  left:22px !important; top:24px !important; bottom:24px !important;
  width:2px !important; background:rgba(21,166,224,0.2) !important;
}
.vqc__page .vqc__day-block { display:flex !important; gap:20px !important; align-items:flex-start !important; padding-bottom:24px !important; position:relative !important; z-index:1 !important; margin:0 !important; }
.vqc__page .vqc__day-block:last-child { padding-bottom:0 !important; }
.vqc__page .vqc__day-dot {
  width:46px !important; height:46px !important; min-width:46px !important;
  border-radius:50% !important; background:var(--vqc-navy) !important;
  border:2px solid rgba(21,166,224,0.3) !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  flex-shrink:0 !important;
  transition:border-color 0.3s,background 0.3s !important;
}
.vqc__page .vqc__day-block:hover .vqc__day-dot { background:var(--vqc-cyan) !important; border-color:var(--vqc-cyan) !important; }
.vqc__page .vqc__day-dot svg { width:18px !important; height:18px !important; stroke:var(--vqc-cyan) !important; fill:none !important; transition:stroke 0.3s !important; }
.vqc__page .vqc__day-block:hover .vqc__day-dot svg { stroke:#fff !important; }
.vqc__page .vqc__day-time { font-size:10px !important; font-weight:800 !important; letter-spacing:2px !important; text-transform:uppercase !important; color:var(--vqc-cyan) !important; display:block !important; margin-bottom:3px !important; }
.vqc__page .vqc__day-label { font-family:var(--vqc-font-body) !important; font-size:16px !important; font-weight:700 !important; color:#fff !important; margin-bottom:3px !important; display:block !important; }
.vqc__page .vqc__day-detail { font-family:Manrope,sans-serif !important; font-size:18px !important; color:rgba(255,255,255,0.6) !important; font-weight:400 !important; line-height:29px !important; margin:0 !important; }

/* Pricing table */
.vqc__page .vqc__pricing-table {
  display:grid !important; grid-template-columns:1fr 1fr !important; gap:24px !important;
}

.vqc__page .vqc__price-card {
  background:var(--vqc-white) !important;
  border:1.5px solid rgba(21,166,224,0.22) !important;
  border-radius:var(--vqc-radius) !important; padding:28px !important; margin:0 !important;
}
.vqc__page .vqc__price-card--featured {
  background:var(--vqc-cyan-pale) !important;
  border-color:var(--vqc-cyan) !important;
}
.vqc__page .vqc__price-label { font-size:10px !important; font-weight:800 !important; letter-spacing:2.5px !important; text-transform:uppercase !important; color:var(--vqc-cyan) !important; margin-bottom:8px !important; display:block !important; }
.vqc__page .vqc__price-amount { font-family:var(--vqc-font-display) !important; font-size:42px !important; letter-spacing:2px !important; color:var(--vqc-navy) !important; line-height:1 !important; font-weight:400 !important; margin-bottom:4px !important; display:block !important; }
.vqc__page .vqc__price-note { font-size:16px !important; color:var(--vqc-muted) !important; font-weight:600 !important; margin-bottom:18px !important; display:block !important; }
/* Add-ons list items text */
.vqc__page .vqc__price-card ul li { color:var(--vqc-text) !important; }

.vqc__page .vqc__not-included { display:flex !important; flex-direction:column !important; gap:8px !important; margin:0 !important; padding:0 !important; }
.vqc__page .vqc__not-item { display:flex !important; align-items:center !important; gap:8px !important; font-size:16px !important; font-weight:600 !important; color:var(--vqc-muted) !important; margin:0 !important; padding:0 !important; }
.vqc__page .vqc__not-item svg { width:15px !important; height:15px !important; stroke:#ef4444 !important; fill:none !important; flex-shrink:0 !important; }

/* Who it's for grid — defined here since vqc-virtual.css is not loaded on camps */
.vqc__page .vqc__for-grid {
  display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:16px !important;
}
.vqc__page .vqc__for-card {
  background:var(--vqc-card-bg) !important;
  border:1.5px solid var(--vqc-border) !important;
  border-radius:var(--vqc-radius-sm) !important;
  padding:20px 18px !important; margin:0 !important;
  transition:transform 0.3s,border-color 0.3s !important;
  border-top:3px solid var(--vqc-cyan) !important;
}
.vqc__page .vqc__for-card:hover { transform:translateY(-4px) !important; }
.vqc__page .vqc__for-card-title { font-family:var(--vqc-font-body) !important; font-size:18px !important; font-weight:800 !important; color:var(--vqc-navy) !important; margin-bottom:8px !important; display:block !important; }
.vqc__page .vqc__for-card-text  { font-family:Manrope,sans-serif !important; font-size:18px !important; color:rgb(2,1,1) !important; line-height:29px !important; font-weight:400 !important; margin:0 !important; }

/* Inline SVG sizing — constrain all unbound SVGs in key contexts */
.vqc__page .vqc__dest-format svg {
  width:13px !important; height:13px !important;
  vertical-align:middle !important; margin-right:4px !important;
  flex-shrink:0 !important;
}
.vqc__page .vqc__camps-contact svg,
.vqc__page .vqc__camps-callout .vqc__camps-contact svg {
  width:14px !important; height:14px !important;
  flex-shrink:0 !important; vertical-align:middle !important;
}
.vqc__page .vqc__callout-eyebrow svg {
  width:14px !important; height:14px !important;
  vertical-align:middle !important; margin-right:4px !important;
}
/* Add-ons checklist SVGs inside price cards */
.vqc__page .vqc__price-card ul li svg {
  width:14px !important; height:14px !important; flex-shrink:0 !important;
}

@media (max-width:1024px) {
  .vqc__page .vqc__dest-card { flex: 0 1 calc(50% - 10px) !important; }
  .vqc__page .vqc__camps-callout-inner { grid-template-columns:1fr !important; }
  .vqc__page .vqc__for-grid { grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:900px) {
  .vqc__page .vqc__camp-pricing-layout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}
@media (max-width:768px) {
  /* Callout card — reduce padding and allow text wrapping */
  .vqc__page .vqc__camps-callout {
    padding: 24px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .vqc__page .vqc__btn {
    white-space: normal !important;
    padding: 12px 20px !important;
    word-break: break-word !important;
    height: auto !important;
    line-height: 1.3 !important;
  }
  .vqc__page .vqc__camps-callout-inner > div:first-child {
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: break-all !important;
  }

  /* Pricing cards — prevent overflow on narrow screens */
  .vqc__page .vqc__camp-pricing-layout,
  .vqc__page .vqc__pricing-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }
  .vqc__page .vqc__camp-pricing-layout *,
  .vqc__page .vqc__pricing-table * {
    min-width: 0 !important;
  }
  .vqc__page .vqc__price-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 24px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  .vqc__page .vqc__price-card * {
    word-break: break-word !important;
    white-space: normal !important;
  }
  .vqc__page .vqc__price-amount {
    font-size: 32px !important;
  }

  .vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__trust-bar {
    display: none !important;
  }
  .vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__btn-group {
    justify-content: center !important;
    align-items: center !important;
    flex-direction: column !important;
    width: 100% !important;
  }
  .vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__btn-group .vqc__btn {
    margin-left: auto !important;
    margin-right: auto !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 320px !important;
  }
  .vqc__page .vqc__for-grid { grid-template-columns:1fr !important; }
  .vqc__page .vqc__pillars { grid-template-columns:1fr !important; }
  .vqc__page .vqc__pricing-table { grid-template-columns:1fr !important; margin-bottom: 30px !important; }
  .vqc__page .vqc__included-grid { grid-template-columns:1fr !important; }
  .vqc__page .vqc__camp-day-layout { grid-template-columns: 1fr !important; gap: 20px !important; }
  .vqc__page .vqc__camp-pricing-layout { grid-template-columns: 1fr !important; gap: 0px !important; }
  .vqc__page .vqc__camp-pricing-layout > div:last-child { margin-top: 0px !important; }
  .vqc__page .vqc__camps-contact-item {
    display: flex !important;
    width: 100% !important;
    margin-right: 0 !important;
    margin-bottom: 8px !important;
    word-break: break-word !important;
    color: rgba(255,255,255,0.6) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
    align-items: center !important;
    gap: 8px !important;
  }
  .vqc__page .vqc__camps-callout .vqc__camps-contact-item {
    color: rgba(255,255,255,0.6) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
  }
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item *,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item a,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item a:link,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-contact-item a:visited,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-strict-text,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-strict-text *,
  body .vqc__page #vqc-camps-contact-info-override .vqc__camps-strict-text a {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,0.6) !important;
    text-decoration: none !important;
    letter-spacing: normal !important;
    font-family: inherit !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline !important;
    background: transparent !important;
  }
}
@media (max-width:600px) {
  .vqc__page.vqc__camps .vqc__hero-inner--centered .vqc__trust-bar {
    display: none !important;
  }
  .vqc__page .vqc__dest-card { flex: 0 1 100% !important; }
}


/* =========================================================
   CTA STRIP — centered band, right-aligned button stack
   ========================================================= */
.vqc__page.vqc__camps .vqc__cta-strip-inner {
  max-width: 880px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Force both buttons to same width so right edges are flush */
.vqc__page.vqc__camps .vqc__cta-strip-actions .vqc__btn {
  width: 100% !important;
  box-sizing: border-box !important;
}
