/* Gift voucher page: 5. how it works, 6. popular gift tours, 7. reviews (tweaks to the shared strip),
   8. FAQ, 9. closing band. Mobile first, rungs 600 / 900 / 1200. */

/* ---- 5. Steps ------------------------------------------------------------------------------------ */
.gv-steps__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.gv-steps__item {
  display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto; column-gap: 14px; row-gap: 2px;
  padding: 16px 0; border-top: 1px solid var(--gv-line);
}
.gv-steps__num {
  grid-row: 1 / span 2; position: relative; font-size: 32px; font-weight: 800; line-height: 1; letter-spacing: -.02em;
  padding-bottom: 10px;
}
.gv-steps__num::after { content: ''; position: absolute; left: 0; bottom: 0; width: 24px; height: 3px; background: var(--gv-orange); }
.gv-steps__title { font-size: 15px; font-weight: 700; line-height: 1.3; }
.gv-steps__text { font-size: 15px; line-height: 1.6; color: var(--gv-text); }

/* ---- 6. Tours: a snap rail on the phone, a grid from 900 ------------------------------------------ */
.gv-head--row { display: grid; gap: 4px; }
.gv-head--row .gv-lede { margin-top: 8px; }
.gv-tours__rail {
  display: grid; grid-auto-flow: column; grid-auto-columns: 82%; gap: 16px;
  overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none;
  margin: 0 calc(var(--gv-gutter) * -1); padding: 4px var(--gv-gutter) 8px;
}
.gv-tours__rail::-webkit-scrollbar { display: none; }
.gv-tours__item { scroll-snap-align: start; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.gv-tours__item .cp-tour-card { height: 300px; }
.gv-tours__gift { align-self: flex-start; }
.gv-tours__gift .bi { color: var(--gv-orange); font-size: 14px; }

/* ---- 7. Reviews: the shared strip sits on white, its header on our scale -------------------------- */
.gv-reviews { background: #fff; }

/* ---- 8. FAQ -------------------------------------------------------------------------------------- */
.gv-faq__list { border-top: 1px solid var(--gv-line); }
.gv-faq__item { border-bottom: 1px solid var(--gv-line); }
.gv-faq__q {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 14px 0;
  cursor: pointer; list-style: none; font-size: 16px; font-weight: 600; line-height: 1.4;
}
.gv-faq__q::-webkit-details-marker { display: none; }
.gv-faq__q .bi { flex: 0 0 auto; transition: transform .3s ease; }
.gv-faq__item[open] .gv-faq__q .bi { transform: rotate(180deg); }
.gv-faq__q:focus-visible { outline: 2px solid var(--gv-orange); outline-offset: 2px; }
.gv-faq__a { margin: 0 0 18px; max-width: 68ch; font-size: 15px; line-height: 1.75; color: var(--gv-text); }

/* ---- 9. Closing band ----------------------------------------------------------------------------- */
.gv-closing { position: relative; overflow: hidden; color: #EDE3D5; text-align: center; }
.gv-closing__media { position: absolute; inset: 0; }
.gv-closing__media picture { display: block; width: 100%; height: 100%; }
.gv-closing__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gv-closing__media::after { content: ''; position: absolute; inset: 0; background: rgba(17, 18, 20, .52); }
.gv-closing__inner {
  position: relative; max-width: 860px; margin: 0 auto; min-height: 260px; padding: 56px var(--gv-gutter);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.gv-closing__h2 {
  margin: 0; font-size: clamp(1.6rem, 5vw, 2.6rem); font-weight: 800; line-height: 1.1; letter-spacing: -.02em;
  text-transform: uppercase; color: #EDE3D5;
}
.gv-closing__lede { margin: 12px 0 0; max-width: 52ch; font-size: 16px; line-height: 1.6; color: rgba(237, 227, 213, .88); }
.gv-closing__actions { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 24px; }

/* ---- Gift ideas ---- */
.gv-ideas__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.gv-ideas__item { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 16px; border-top: 1px solid var(--gv-line); }
.gv-ideas__title { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--gv-ink); }
.gv-ideas__text { flex: 1; margin: 0 0 6px; font-size: 15px; line-height: 1.6; color: var(--gv-text); }

/* ---- 600 ---------------------------------------------------------------------------------------- */
@media (min-width: 600px) {
  .gv-steps__list { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .gv-steps__item { grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 8px; padding-top: 20px; }
  .gv-steps__num { grid-row: auto; justify-self: start; }
  .gv-tours__rail { grid-auto-columns: 46%; }
  .gv-ideas__list { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .gv-closing__actions { flex-direction: row; gap: 24px; }
}

/* ---- 900 ---------------------------------------------------------------------------------------- */
@media (min-width: 900px) {
  .gv-steps__inner { display: grid; grid-template-columns: 1fr 2.6fr; gap: 40px; align-items: start; }
  .gv-steps__head { margin-bottom: 0; }
  .gv-ideas__inner { display: grid; grid-template-columns: 1fr 2fr; gap: 48px; align-items: start; }
  .gv-ideas__head { margin-bottom: 0; }
  .gv-head--row { grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 32px; }
  .gv-head--row .gv-lede { margin: 0; justify-self: end; text-align: right; }
  .gv-tours__rail {
    grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(3, 1fr); gap: 24px 20px;
    overflow: visible; margin: 0; padding: 0;
  }
  .gv-tours__item .cp-tour-card { height: 340px; }
  .gv-faq__inner { display: grid; grid-template-columns: 1fr 2fr; gap: 48px; align-items: start; }
  .gv-faq__head { position: sticky; top: calc(var(--gv-header-h) + 24px); }
  .gv-closing__inner { min-height: 320px; }
}

@media (prefers-reduced-motion: reduce) {
  .gv-faq__q .bi { transition: none; }
}
