@media (max-width: 1020px) {
  .nav-links { gap: 0; }
  .nav-links a { padding-inline: 10px; font-size: .8rem; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .video-stories { grid-template-columns: repeat(2, 1fr); }
  .video-stories > .story-card:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: calc(50% - 11px); }
  .day-card__image { height: 220px; }
  .days-grid { grid-template-columns: repeat(2, 1fr); }
  .intro-grid, .day-overview { gap: 45px; }
  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .form-layout { gap: 40px; }
}

@media (max-width: 820px) {
  .section { padding: 78px 0; }
  .site-header, .site-header.scrolled, .site-header.is-solid { height: 70px; }
  .brand img { width: 105px; }
  .menu-toggle { display: block; }
  .site-header .nav-cta { display: none; }
  .nav-links {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    color: #fff;
    background: var(--green-950);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: .25s;
  }
  .nav-links.open { opacity: 1; visibility: visible; transform: none; }
  .nav-links a { padding: 12px 28px; font-family: var(--font-display); font-size: 1.5rem; }
  .menu-toggle { position: relative; z-index: 2; }
  .menu-toggle.active span { opacity: 0; }
  .menu-toggle.active::before { transform: translateY(6px) rotate(45deg); }
  .menu-toggle.active::after { transform: translateY(-6px) rotate(-45deg); }
  .hero { min-height: 700px; }
  .hero h1 { font-size: clamp(3.4rem, 14vw, 6rem); }
  .hero__meta { display: none; }
  .scroll-cue { display: none; }
  .intro-grid, .day-overview, .form-layout { grid-template-columns: 1fr; }
  .intro-visual { min-height: 500px; order: 2; }
  .gallery-preview { grid-template-columns: 1fr 1fr; }
  .gallery-preview .memory-card:first-child { grid-column: span 2; grid-row: auto; }
  .testimonials { grid-template-columns: 1fr; }
  .video-stories { grid-template-columns: 1fr; }
  .video-stories > .story-card:last-child:nth-child(odd) { grid-column: auto; max-width: none; }
  .quote-card { padding: 24px; }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .safety-grid { grid-template-columns: 1fr; }
  .period { grid-template-columns: 1fr; }
  .period__head { display: grid; grid-template-columns: auto 1fr; column-gap: 15px; padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--line); }
  .period__icon { grid-row: span 2; margin: 0; }
  .period__activities { grid-template-columns: 1fr 1fr; }
  .day-media-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid .memory-card:nth-child(7n+1) { grid-column: auto; aspect-ratio: 4 / 3; }
  .big-cta { padding: 55px 42px; }
}

@media (max-width: 600px) {
  .reveal { opacity: 1; transform: none; }
  .container { width: min(calc(100% - 28px), var(--container)); }
  .section { padding: 52px 0; }
  .section--tight { padding: 48px 0; }
  .section-heading { align-items: flex-start; flex-direction: column; margin-bottom: 30px; }
  .section-heading .btn { display: inline-flex; width: 100%; }
  .section-title { font-size: 2.1rem; }
  .hero { min-height: 680px; height: 100svh; }
  .hero::before { background: linear-gradient(0deg, rgba(9,36,18,.96), rgba(9,36,18,.22) 75%), var(--hero-image) 35% center/cover no-repeat; }
  .hero::after { bottom: -190px; }
  .hero__content { justify-content: flex-end; padding-bottom: 110px; }
  .hero h1 { margin-top: 17px; font-size: 3.25rem; }
  .hero__text { font-size: .91rem; }
  .hero__actions { display: grid; grid-template-columns: 1fr; }
  .hero__actions .btn { width: 100%; }
  .hero + .section { padding-top: 38px; }
  .intro-visual { min-height: 360px; }
  .intro-visual__main { inset: 0; width: 86%; }
  .intro-visual__float { width: 48%; height: 38%; border-width: 5px; }
  .intro-stamp { width: 105px; top: 18px; }
  .intro-stamp strong { font-size: 1.6rem; }
  .stats { grid-template-columns: repeat(3, 1fr); gap: 0; }
  .stat { padding: 14px 7px; }
  .stat strong { font-size: 1.5rem; }
  .stat span { font-size: .66rem; }
  .values-grid, .days-grid { grid-template-columns: 1fr; }
  .value-card { min-height: 220px; }
  .value-card__icon { margin-bottom: 26px; }
  .day-card p { min-height: 0; }
  .gallery-preview { grid-template-columns: 1fr; grid-template-rows: none; }
  .gallery-preview .memory-card, .gallery-preview .memory-card:first-child { grid-column: auto; height: 250px; }
  .gallery-preview .memory-card:nth-child(n+4) { display: none; }
  .big-cta { padding: 40px 26px; border-radius: var(--radius); }
  .page-hero { min-height: 470px; padding: 140px 0 80px; }
  .page-hero h1 { font-size: 3.15rem; }
  .page-hero::after { font-size: 8rem; }
  .period { padding: 20px; }
  .period__activities { grid-template-columns: 1fr; }
  .day-media-block { margin-top: 58px; padding-top: 48px; }
  .day-media-grid { grid-template-columns: 1fr; }
  .day-nav { grid-template-columns: 1fr; }
  .day-nav__link--next { text-align: right; justify-content: flex-start; }
  .team-grid { grid-template-columns: 1fr; }
  .team-card__image { height: 390px; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-grid .memory-card { aspect-ratio: 4 / 3; }
  .form-grid { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .interest-form { padding: 24px 18px; border-radius: var(--radius); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .whatsapp-float span { display: none; }
  .whatsapp-float { left: 14px; bottom: 14px; display: grid; place-items: center; width: 54px; height: 54px; padding: 0; border-radius: 50%; background: #25d366; }
  .whatsapp-float__icon { width: 29px; height: 29px; }
  .to-top { right: 14px; bottom: 14px; }
  .modal__close { top: -14px; left: -6px; }
  .story-card__body p { min-height: 0; }
  .story-modal { padding: 12px; }
  .story-modal__panel { border-radius: 18px; }
  .story-modal__info { padding: 20px; }
  .story-modal__info h3 { font-size: 1.2rem; }
}

@media (min-width: 821px) and (max-height: 790px) {
  .hero { min-height: 720px; }
  .hero__content { padding-top: 82px; padding-bottom: 65px; }
  .hero h1 { margin-top: 16px; margin-bottom: 10px; font-size: clamp(4.2rem, 6.1vw, 5.65rem); }
  .hero__text { max-width: 620px; margin-bottom: 18px; font-size: .94rem; line-height: 1.65; }
  .hero__meta { margin-top: 19px; padding-top: 14px; }
  .hero__meta-item strong { font-size: 1.1rem; }
  .scroll-cue { bottom: 78px; }
}
