/* v15 — consistent vertical rhythm and more generous section breathing room.
   Loaded after the original and responsive styles so the approved layouts,
   hero treatment, gallery and interactions remain unchanged. */

:root {
  --section-space: 112px;
  --section-space-tablet: 88px;
  --section-space-mobile: 68px;
}

@media (min-width: 991px) {
  main > .section { padding-block: var(--section-space); }
  main > .choices { padding-block: 106px 114px; }
  main > .preview-section { padding-block: 116px; }
  main > .gallery-section { padding-block: 116px 124px; }
  main > .reviews-section { padding-block: 110px 116px; }
  main > .faq-section { padding-block: 112px 120px; }

  .section-heading.centered { margin-bottom: 42px; }
  .section-heading.centered p { margin-top: 12px; }
  .choice-grid { gap: 24px; }
  .choice-body { padding: 32px; }
  .choice-body p { margin-bottom: 26px; }

  .preview-layout { column-gap: 48px; }
  .preview-copy > p:not(.eyebrow) { margin-top: 22px; }
  .preview-copy .text-link { margin-top: 27px; }
  .image-disclaimer { margin-top: 14px; }

  .gallery-layout { gap: 64px; }
  .gallery-grid { gap: 12px; }
  .gallery-intro h2 { margin-bottom: 24px; }
  .gallery-intro > p:not(.eyebrow) { margin-bottom: 28px; }
  .gallery-intro .gallery-disclaimer { margin-top: 20px; }

  .reviews-layout { gap: 64px; }
  .reviews-intro h2 { margin-bottom: 22px; }
  .reviews-intro > p:not(.eyebrow) { margin-bottom: 22px; }
  .reviews-topline { margin-bottom: 24px; }
  .review-card { min-height: 282px; padding: 28px; }
  .review-card blockquote { margin-block: 16px 26px; }

  .about-content { padding-block: 96px; }
  .about-content h2 { margin-bottom: 24px; }
  .about-content > p:not(.eyebrow) { margin-bottom: 20px; }
  .about-content .btn { margin-top: 14px; }
  .about-features { margin-block: 88px; padding-block: 12px; gap: 26px; }

  .faq-layout { gap: 96px; }
  .faq-intro h2 { margin-bottom: 20px; }
  .faq-list { gap: 12px; }
  .faq-list summary { padding: 21px 24px; }
  .faq-list details > p { padding: 0 24px 24px; }

  .final-cta { min-height: 330px; }
  .final-cta-inner { padding-block: 76px; }
  .final-cta-inner > p:not(.eyebrow) { margin-bottom: 28px; }
  .footer-main { padding-block: 72px 56px; }
}

@media (min-width: 701px) and (max-width: 990px) {
  main > .section { padding-block: var(--section-space-tablet); }
  main > .choices { padding-block: 86px 92px; }
  main > .preview-section { padding-block: 92px; }
  main > .gallery-section { padding-block: 92px 100px; }
  main > .reviews-section { padding-block: 88px 94px; }
  main > .faq-section { padding-block: 92px 98px; }

  .section-heading.centered { margin-bottom: 36px; }
  .choice-grid { gap: 18px; }
  .choice-body { padding: 26px; }
  .choice-body p { margin-bottom: 22px; }

  .preview-layout { gap: 38px; }
  .preview-copy > p:not(.eyebrow) { margin-top: 20px; }
  .preview-copy .text-link { margin-top: 23px; }
  .image-disclaimer { margin-top: 13px; }

  .gallery-layout { gap: 38px; }
  .gallery-grid { gap: 10px; }
  .gallery-intro h2 { margin-bottom: 22px; }
  .gallery-intro > p:not(.eyebrow) { margin-bottom: 25px; }
  .gallery-intro .gallery-disclaimer { margin-top: 18px; }

  .reviews-layout { gap: 36px; }
  .reviews-topline { margin-bottom: 22px; }
  .review-card { min-height: 270px; padding: 25px; }
  .review-card blockquote { margin-block: 15px 23px; }

  .about-content { padding: 64px 36px 34px; }
  .about-content h2 { margin-bottom: 22px; }
  .about-content > p:not(.eyebrow) { margin-bottom: 18px; }
  .about-content .btn { margin-top: 12px; }
  .about-features { margin: 0 36px 68px; padding-top: 28px; gap: 22px; }

  .faq-layout { gap: 48px; }
  .faq-list { gap: 11px; }
  .faq-list summary { padding: 19px 21px; }
  .faq-list details > p { padding: 0 21px 21px; }

  .final-cta { min-height: 320px; }
  .final-cta-inner { padding-block: 70px; }
  .final-cta-inner > p:not(.eyebrow) { margin-bottom: 26px; }
  .footer-main { padding-block: 64px 50px; }
}

@media (max-width: 700px) {
  main > .section { padding-block: var(--section-space-mobile); }
  main > .choices { padding-block: 64px 72px; }
  main > .preview-section { padding-block: 72px; }
  main > .gallery-section { padding-block: 72px 76px; }
  main > .reviews-section { padding-block: 70px 76px; }
  main > .faq-section { padding-block: 72px 76px; }

  .section-heading.centered { margin-bottom: 30px; }
  .section-heading.centered p { margin-top: 10px; }
  .choice-grid { gap: 18px; }
  .choice-body { padding: 26px 24px; }
  .choice-body p { margin-bottom: 22px; }

  .preview-layout { gap: 32px; }
  .preview-copy > p:not(.eyebrow) { margin-top: 20px; }
  .preview-copy .text-link { margin-top: 24px; }
  .image-disclaimer { margin-top: 14px; }

  .gallery-layout { gap: 32px; }
  .gallery-grid { gap: 10px; }
  .gallery-intro h2 { margin-bottom: 20px; }
  .gallery-intro > p:not(.eyebrow) { margin-bottom: 24px; }
  .gallery-intro .gallery-disclaimer { margin-top: 18px; }

  .reviews-layout { gap: 32px; }
  .reviews-intro h2 { margin-bottom: 18px; }
  .reviews-topline { margin-bottom: 20px; }
  .review-card { min-height: 250px; padding: 24px; }
  .review-card blockquote { margin-block: 15px 24px; }

  .about-content { padding: 68px 18px 30px; }
  .about-content h2 { margin-bottom: 20px; }
  .about-content > p:not(.eyebrow) { margin-bottom: 18px; }
  .about-content .btn { margin-top: 12px; }
  .about-features { margin: 0 18px 70px; padding-top: 28px; gap: 24px; }

  .faq-layout { gap: 34px; }
  .faq-intro h2 { margin-bottom: 18px; }
  .faq-list { gap: 11px; }
  .faq-list summary { padding: 18px 18px; }
  .faq-list details > p { padding: 0 18px 20px; }

  .final-cta { min-height: 0; }
  .final-cta-inner { padding-block: 72px; }
  .final-cta-inner > p:not(.eyebrow) { margin-bottom: 25px; }
  .footer-main { padding-block: 58px 45px; row-gap: 36px; }
}

@media (max-width: 360px) {
  main > .choices { padding-block: 58px 64px; }
  main > .preview-section,
  main > .gallery-section,
  main > .reviews-section,
  main > .faq-section { padding-block: 64px; }
  .choice-body { padding: 23px 20px; }
  .review-card { padding: 21px; }
  .about-content { padding-top: 60px; }
  .about-features { margin-bottom: 62px; }
  .final-cta-inner { padding-block: 64px; }
}
