/* ============================================================
   RESPONSIVE V2 — capa responsive paralela (Roa Simms)
   ------------------------------------------------------------
   Se carga junto a site-desktop.css (base desktop identica a
   site.css). Todo lo que este archivo hace ocurre por debajo
   de 1180px; el desktop no se toca.

   Principios:
   - Nada de alturas fijas ni posicionamiento absoluto con
     coordenadas en px: las secciones del home pasan a flujo
     normal con espaciado fluido (clamp) para que el resize
     320 -> 1179 escale continuo.
   - Tipografia y ritmo consistentes entre paginas.
   - Botones y links con area tactil real en touch.

   Para volver al responsive original: ?resp=v1
   ============================================================ */

/* ------------------------------------------------------------
   ZONA FLUIDA (tablet y abajo) — < 1180px
   ------------------------------------------------------------ */
@media (max-width: 1179px) {

    /* --- Header: marca + hamburguesa --- */
    .site-header {
        padding: 16px clamp(18px, 2.6vw, 26px) 0;
    }

    .site-header__inner {
        display: flex;
        justify-content: space-between;
    }

    .site-header__nav,
    .site-header__right {
        display: none;
    }

    .site-header__brand {
        height: 26px;
        position: relative;
        width: 52px;
        z-index: 3;
    }

    .menu-toggle {
        align-items: flex-end;
        background: transparent;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        gap: 8px;
        height: 44px;
        justify-content: center;
        margin: -3px -8px 0 0;
        padding: 8px;
        position: relative;
        width: 44px;
        z-index: 3;
    }

    .menu-toggle span {
        background: currentColor;
        display: block;
        height: 1px;
        transition: transform 0.3s var(--ease);
        width: 26px;
    }

    .menu-toggle[aria-expanded="true"] span:first-child {
        transform: translateY(4.5px) rotate(45deg);
    }

    .menu-toggle[aria-expanded="true"] span:last-child {
        transform: translateY(-4.5px) rotate(-45deg);
    }

    /* --- Menu overlay --- */
    .mobile-menu {
        background: var(--lime);
        display: flex;
        flex-direction: column;
        inset: 0;
        justify-content: space-between;
        opacity: 0;
        overflow-y: auto;
        padding: clamp(84px, 12svh, 110px) clamp(18px, 2.6vw, 26px) 24px;
        pointer-events: none;
        position: fixed;
        transform: translateY(-15px);
        transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
    }

    .mobile-menu.is-open {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }

    .mobile-menu__nav {
        display: flex;
        flex-direction: column;
    }

    .mobile-menu__nav .site-header__link {
        border-bottom: 1px solid var(--line);
        font-family: var(--display);
        font-size: clamp(30px, 6.2vw, 52px);
        letter-spacing: -0.04em;
        line-height: 1.05;
        padding: clamp(10px, 1.6svh, 14px) 0;
        text-transform: uppercase;
        white-space: normal;
    }

    .mobile-menu__nav .site-header__link::after {
        display: none;
    }

    .mobile-menu__footer {
        align-items: flex-end;
        display: flex;
        font-family: var(--engravers);
        font-size: 10px;
        justify-content: space-between;
        letter-spacing: 0.12em;
        margin-top: 24px;
        text-transform: uppercase;
    }

    /* --- Home: todas las secciones pasan a flujo normal --- */
    .figma-hero,
    .figma-welcome,
    .figma-weekend,
    .figma-story,
    .figma-rsvp,
    .figma-gifts {
        height: auto;
        min-height: 0;
    }

    .figma-section-label {
        font-size: 11px;
    }

    /* Hero: composicion escalonada en flujo */
    .figma-hero {
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: min(100svh, 820px);
        padding: clamp(96px, 16svh, 150px) clamp(20px, 4vw, 44px) clamp(56px, 9svh, 90px);
    }

    .figma-hero__names {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .figma-hero__name,
    .figma-hero__ampersand {
        position: static;
        width: auto;
    }

    .figma-hero__name {
        font-size: clamp(30px, 4vw, 46px);
        line-height: 1;
    }

    /* Cada nombre centrado en su bloque, con ancho acotado en em
       para que siempre quiebre igual que en desktop:
       "EMILY ROSE / SIMMS" y "CAMILO ANDRES / ROA RUIZ". */
    .figma-hero__name--one {
        align-self: flex-start;
        margin-left: 5%;
        max-width: 9.5em;
        text-align: center;
    }

    .figma-hero__ampersand {
        align-self: center;
        font-size: clamp(32px, 4.2vw, 46px);
        margin: clamp(20px, 4.5svh, 44px) 0;
    }

    .figma-hero__name--two {
        align-self: flex-end;
        margin-right: 5%;
        max-width: 9.5em;
        text-align: center;
    }

    .figma-hero__invitation {
        align-self: center;
        font-size: clamp(11px, 1.15vw, 14px);
        left: auto;
        line-height: 1.35;
        margin-top: clamp(56px, 12svh, 120px);
        position: static;
        top: auto;
        transform: none;
        width: min(420px, 88%);
    }

    /* Bienvenida */
    .figma-welcome {
        align-items: center;
        display: flex;
        flex-direction: column;
        padding: clamp(28px, 4vw, 40px) clamp(20px, 4vw, 44px) clamp(64px, 9vw, 96px);
        text-align: center;
    }

    .figma-welcome > .figma-section-label {
        left: auto;
        position: static;
        top: auto;
        transform: none;
    }

    .figma-welcome__copy {
        font-size: clamp(17px, 2.2vw, 21px);
        left: auto;
        margin-top: clamp(56px, 9vw, 96px);
        max-width: 580px;
        position: static;
        top: auto;
        transform: none;
        width: 100%;
    }

    .figma-welcome__stars {
        font-size: clamp(12px, 1.3vw, 15px);
        left: auto;
        margin-top: clamp(44px, 7vw, 72px);
        position: static;
        top: auto;
        transform: none;
    }

    .figma-welcome__photo {
        aspect-ratio: 186 / 247;
        height: auto;
        left: auto;
        margin-top: clamp(40px, 6.5vw, 64px);
        position: static;
        top: auto;
        transform: none;
        width: clamp(150px, 22vw, 200px);
    }

    /* El fin de semana */
    .figma-weekend {
        padding: clamp(36px, 5vw, 52px) clamp(20px, 4vw, 44px) clamp(64px, 9vw, 96px);
    }

    .figma-weekend > .figma-section-label {
        left: auto;
        position: static;
        top: auto;
        transform: none;
    }

    .figma-weekend__grid {
        gap: clamp(16px, 3vw, 36px);
        left: auto;
        margin-top: clamp(52px, 8vw, 88px);
        position: static;
        right: auto;
        top: auto;
    }

    .figma-event__number,
    .figma-event__date,
    .figma-event__place,
    .figma-event__description,
    .figma-weekend__details {
        font-size: 11px;
    }

    .figma-event__number {
        height: auto;
        margin-bottom: 6px;
    }

    .figma-event__emblem {
        height: auto;
        margin-top: clamp(30px, 5vw, 52px);
        width: clamp(88px, 11vw, 116px);
    }

    .figma-event h2 {
        font-size: clamp(22px, 2.6vw, 27px);
        margin-top: clamp(32px, 5.5vw, 64px);
    }

    .figma-event__place {
        margin-top: 12px;
    }

    .figma-event__description {
        margin-top: 6px;
    }

    .figma-weekend__details {
        bottom: auto;
        display: block;
        left: auto;
        margin-top: clamp(52px, 8vw, 80px);
        position: static;
        text-align: center;
        transform: none;
    }

    /* Nuestra historia */
    .figma-story {
        align-items: start;
        column-gap: clamp(32px, 5.5vw, 72px);
        display: grid;
        grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
        padding: clamp(28px, 4vw, 40px) clamp(20px, 4vw, 44px) clamp(64px, 9vw, 96px);
    }

    .figma-story > .figma-section-label {
        grid-column: 1 / -1;
        left: auto;
        position: static;
        top: auto;
        transform: none;
    }

    .story-carousel {
        grid-column: 1;
        left: auto;
        margin-top: clamp(48px, 7vw, 80px);
        position: static;
        top: auto;
        width: 100%;
    }

    .story-carousel__slide figcaption {
        font-size: 10px;
        line-height: 1.2;
        min-height: 52px;
    }

    .figma-story__copy {
        font-size: clamp(15px, 1.7vw, 17px);
        grid-column: 2;
        left: auto;
        margin-top: clamp(48px, 7vw, 80px);
        position: static;
        top: auto;
        width: auto;
    }

    .figma-story__cities {
        font-size: 10px;
        grid-column: 1;
        left: auto;
        margin-top: clamp(28px, 4vw, 44px);
        position: static;
        top: auto;
        width: auto;
    }

    /* RSVP (home) */
    .figma-rsvp {
        align-items: center;
        display: flex;
        flex-direction: column;
        padding: clamp(56px, 8vw, 88px) 20px;
    }

    .figma-rsvp > .figma-section-label {
        left: auto;
        position: static;
        top: auto;
        transform: none;
    }

    .figma-rsvp__emblem {
        height: auto;
        left: auto;
        margin-top: clamp(44px, 7vw, 72px);
        position: static;
        top: auto;
        transform: none;
        width: clamp(100px, 13vw, 120px);
    }

    .figma-rsvp h2 {
        font-size: clamp(26px, 3vw, 29px);
        left: auto;
        margin-top: clamp(40px, 6vw, 64px);
        max-width: 300px;
        position: static;
        top: auto;
        transform: none;
        width: auto;
    }

    .figma-rsvp .figma-button {
        left: auto;
        margin-top: clamp(32px, 5vw, 52px);
        position: static;
        top: auto;
        transform: none;
    }

    /* Regalos + voto de luna de miel */
    .figma-gifts {
        align-items: center;
        display: flex;
        flex-direction: column;
        padding: clamp(28px, 4vw, 40px) clamp(20px, 4vw, 44px) clamp(72px, 10vw, 110px);
    }

    .figma-gifts--standalone {
        height: auto;
        min-height: 0;
    }

    .figma-gifts > .figma-section-label {
        left: auto;
        position: static;
        top: auto;
        transform: none;
    }

    .figma-gifts h2 {
        font-size: clamp(26px, 3vw, 29px);
        left: auto;
        margin-top: clamp(56px, 8vw, 84px);
        max-width: 20ch;
        position: static;
        text-align: center;
        top: auto;
        width: auto;
    }

    .figma-gifts__copy {
        font-size: clamp(15px, 1.7vw, 16px);
        left: auto;
        margin-top: clamp(36px, 6vw, 60px);
        max-width: 560px;
        position: static;
        top: auto;
        width: 100%;
    }

    .figma-gifts__question {
        font-size: 11px;
        left: auto;
        margin-top: clamp(60px, 9vw, 96px);
        position: static;
        text-align: center;
        top: auto;
        white-space: normal;
    }

    .figma-gifts__vote-copy {
        font-size: 13px;
        left: auto;
        margin-top: 14px;
        max-width: 480px;
        position: static;
        text-align: center;
        top: auto;
        width: 100%;
    }

    .figma-destinations {
        gap: 28px 6px;
        left: auto;
        margin-top: clamp(36px, 5.5vw, 56px);
        max-width: 980px;
        position: static;
        top: auto;
        width: 100%;
    }

    .figma-destination__visual {
        aspect-ratio: 3 / 4;
        height: auto;
    }

    .figma-destination__title,
    .figma-destination__region {
        font-size: 11px;
    }

    .figma-destination__title {
        margin-top: 14px;
    }

    .figma-destination__region {
        margin-top: 4px;
    }

    .figma-destination__vote {
        height: 40px;
        width: 104px;
    }

    /* --- Footer --- */
    .site-footer__main {
        gap: 28px;
        grid-template-columns: minmax(0, 1fr) minmax(240px, 320px) minmax(0, 1fr);
        padding-inline: 5%;
    }

    .site-footer__partner {
        font-size: clamp(20px, 2.2vw, 25px);
        margin-top: 0;
        transform: none;
        width: auto;
    }

    .site-footer__partner--one,
    .site-footer__partner--two {
        transform: none;
        width: auto;
    }

    .site-footer__crest {
        height: auto;
        width: clamp(92px, 9vw, 104px);
    }

    .site-footer__fact {
        margin-top: clamp(44px, 5.5vw, 60px);
    }

    .site-footer__fact--dates {
        margin-top: clamp(24px, 3vw, 32px);
        padding-top: clamp(18px, 2.4vw, 24px);
    }

    .site-footer__fact span,
    .site-footer__fact small {
        font-size: 10px;
    }

    .site-footer__fact strong {
        font-size: 18px;
    }

    .site-footer__bottom {
        bottom: 12px;
        font-size: 9px;
    }

    /* --- Events --- */
    .events-page__schedule {
        grid-template-columns: 43% 57%;
        min-height: 0;
        overflow-x: clip;
        padding-inline: clamp(18px, 2.6vw, 26px);
    }

    .events-page__invitation {
        padding: 0 5% 0 0;
    }

    .events-page__timeline {
        padding-inline: 4%;
    }

    .event-detail:nth-child(2) {
        min-height: 0;
        padding-top: 130px;
    }

    .event-detail:nth-child(3) {
        min-height: 0;
        padding-bottom: 130px;
        padding-top: 130px;
    }

    .events-gallery {
        min-height: 0;
        padding-bottom: clamp(90px, 12vw, 140px);
    }

    .events-gallery__grid {
        gap: clamp(48px, 7vw, 80px) 8%;
    }

    .events-gallery__grid img {
        height: auto;
    }

    /* --- Heroes interiores (viajes / ciudad / faq) --- */
    .travel-hero,
    .city-hero,
    .faq-hero {
        min-height: 0;
        padding: clamp(150px, 17vw, 200px) 20px clamp(80px, 10vw, 120px);
    }

    .travel-hero h1,
    .city-hero h1,
    .faq-hero h1 {
        margin-top: clamp(72px, 10vw, 135px);
    }

    .city-hero__intro,
    .faq-hero__intro,
    .travel-hero__intro {
        margin-top: clamp(48px, 8vw, 120px);
    }

    /* --- Travel --- */
    .travel-stay {
        min-height: 0;
        padding-bottom: clamp(80px, 10vw, 110px);
    }

    .travel-stay__intro {
        padding-inline: 2%;
    }

    .travel-logistics {
        min-height: 0;
        padding-bottom: clamp(72px, 9vw, 101px);
    }

    .hotel-grid,
    .travel-logistics__columns,
    .city-list,
    .faq-list {
        max-width: 920px;
    }

    .hotel-card img {
        aspect-ratio: 543 / 369;
        height: auto;
    }

    .map-cta {
        min-height: 0;
        padding-bottom: clamp(72px, 10vw, 100px);
    }

    /* --- City guide --- */
    .city-hero {
        min-height: 0;
    }

    .city-list__item {
        grid-template-columns: 125px 0.85fr 1.35fr 0.6fr;
    }

    /* --- Paginas editoriales / RSVP --- */
    .editorial-page {
        padding: clamp(120px, 15vw, 180px) clamp(24px, 6vw, 90px);
    }

    /* Boton de envio con el mismo ancho que el campo de email,
       y un poco mas de aire respecto del formulario */
    .rsvp-form__footer {
        padding-top: clamp(28px, 4vw, 44px);
    }

    .rsvp-form__footer .button,
    .rsvp-success {
        width: min(100%, 604px);
    }

    .page-main {
        padding-top: clamp(84px, 9vw, 110px);
    }
}

/* ------------------------------------------------------------
   TABLET VERTICAL — < 1024px
   ------------------------------------------------------------ */
@media (max-width: 1023px) {
    .rsvp-page {
        padding-inline: 8%;
    }

    .choice-grid--transportation,
    .choice-grid--accommodation {
        column-gap: 34px;
        grid-template-columns: repeat(2, minmax(0, 260px));
        row-gap: 18px;
    }

    .rsvp-form__section--transportation,
    .rsvp-form__section--accommodation {
        min-height: 0;
        padding-bottom: 40px;
    }

    /* La historia pasa a una columna antes que el resto:
       el carrusel + texto ya no conviven comodos */
    .figma-story {
        align-items: center;
        display: flex;
        flex-direction: column;
    }

    .story-carousel {
        margin-inline: auto;
        width: min(60vw, 300px);
    }

    .figma-story__copy {
        margin-inline: auto;
        max-width: 580px;
        width: 100%;
    }

    .figma-story__cities {
        text-align: center;
    }
}

/* ------------------------------------------------------------
   MOBILE — < 768px
   ------------------------------------------------------------ */
@media (max-width: 767px) {

    .editorial-number,
    .editorial-stars,
    .page-rule-label {
        font-size: 10px;
    }

    .figma-section-label {
        font-size: 10px;
    }

    .site-header {
        padding: 14px 18px 0;
    }

    /* Hero */
    .figma-hero {
        min-height: min(100svh, 720px);
        padding: clamp(88px, 14svh, 120px) 20px clamp(48px, 8svh, 72px);
    }

    .figma-hero__name {
        font-size: clamp(26px, 8vw, 32px);
    }

    .figma-hero__name--one {
        margin-left: 0;
    }

    .figma-hero__ampersand {
        font-size: clamp(28px, 8.6vw, 34px);
        margin: clamp(16px, 3.5svh, 30px) 0;
    }

    .figma-hero__name--two {
        margin-right: 0;
    }

    .figma-hero__invitation {
        font-size: 11px;
        margin-top: clamp(48px, 9svh, 88px);
        width: min(340px, 92%);
    }

    /* Bienvenida */
    .figma-welcome__copy {
        font-size: 18px;
    }

    /* Fin de semana: eventos apilados con reglas */
    .figma-weekend {
        padding: 40px 20px 80px;
    }

    .figma-weekend__grid {
        display: block;
        margin-top: 56px;
    }

    .figma-event {
        border-top: 1px solid var(--line);
        min-height: 0;
        padding: 26px 0 52px;
    }

    .figma-event + .figma-event {
        margin-top: 18px;
    }

    .figma-event__number,
    .figma-event__date,
    .figma-event__place,
    .figma-event__description,
    .figma-weekend__details {
        font-size: 10px;
    }

    .figma-event__emblem {
        margin-top: 38px;
        width: 110px;
    }

    .figma-event h2 {
        font-size: 29px;
        margin-top: 42px;
    }

    .figma-weekend__details {
        margin-top: 44px;
    }

    /* Historia */
    .story-carousel {
        width: min(76vw, 300px);
    }

    .story-carousel__slide figcaption {
        font-size: 9px;
    }

    .figma-story__copy {
        font-size: 16px;
    }

    .figma-story__copy p {
        text-indent: 35px;
    }

    .figma-story__cities {
        font-size: 9px;
    }

    /* Regalos */
    .figma-gifts__copy {
        font-size: 16px;
    }

    .figma-gifts__copy p {
        text-indent: 35px;
    }

    .figma-gifts__question {
        font-size: 10px;
    }

    .figma-destinations {
        gap: 30px 8px;
        grid-template-columns: repeat(2, 1fr);
    }

    .figma-destination__title,
    .figma-destination__region {
        font-size: 9px;
    }

    .figma-destination__vote {
        height: 40px;
        width: 100px;
    }

    /* Footer */
    .site-footer__main {
        align-content: center;
        align-items: start;
        column-gap: 20px;
        grid-template-areas:
            "partner-one partner-two"
            "center center";
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        padding: clamp(64px, 10svh, 96px) 18px 58px;
        row-gap: clamp(44px, 7svh, 72px);
    }

    .site-footer__partner {
        font-size: clamp(19px, 5.5vw, 22px);
        width: 100%;
    }

    .site-footer__center {
        justify-self: center;
        width: min(260px, 100%);
    }

    .site-footer__crest {
        width: 92px;
    }

    .site-footer__bottom {
        justify-content: center;
    }

    .site-footer__bottom > span:first-child,
    .site-footer__bottom > span:last-child {
        display: none;
    }

    /* Events */
    .events-page__schedule {
        --events-hero-height: calc(100svh - 105px);
        display: block;
        min-height: 0;
        padding: 105px 18px 0;
    }

    .events-page__invitation {
        height: auto;
        margin: 0 auto 72px;
        max-width: 520px;
        padding: 0;
        position: static;
    }

    .events-page__invitation img {
        height: auto;
        margin-inline: auto;
        max-height: 78svh;
        transform: rotate(-4.996deg);
        width: min(88%, 440px);
    }

    .events-page__timeline {
        border-left: 0;
        border-top: 1px solid var(--line);
        padding: 0;
    }

    .event-detail,
    .event-detail:nth-child(2),
    .event-detail:nth-child(3) {
        min-height: 0;
        padding: clamp(64px, 16vw, 90px) 4px;
    }

    .event-detail:first-child {
        min-height: 0;
    }

    .event-detail__body {
        font-size: 16px;
    }

    .event-detail__body table {
        margin: 44px auto 56px;
    }

    .events-gallery {
        padding: 30px 18px 90px;
    }

    .events-gallery__label {
        margin-bottom: 55px;
    }

    .events-gallery__grid {
        gap: 44px 18px;
        grid-template-columns: repeat(2, 1fr);
    }

    /* Heroes interiores */
    .travel-hero,
    .city-hero,
    .faq-hero {
        padding: clamp(120px, 32vw, 150px) 18px clamp(64px, 16vw, 96px);
    }

    .travel-hero h1,
    .city-hero h1,
    .faq-hero h1 {
        font-size: clamp(34px, 10.5vw, 38px);
        margin-bottom: clamp(24px, 7vw, 38px);
        margin-top: clamp(56px, 14vw, 90px);
    }

    .travel-hero__image {
        height: 55vw;
        margin-top: 36px;
    }

    .travel-hero__intro,
    .city-hero__intro,
    .faq-hero__intro {
        font-size: 18px;
        margin-top: clamp(40px, 11vw, 64px);
    }

    .city-hero .editorial-stars,
    .faq-hero .editorial-stars,
    .city-hero .editorial-divider,
    .faq-hero .editorial-divider {
        margin-top: clamp(36px, 10vw, 55px);
    }

    /* Travel */
    .travel-stay,
    .travel-logistics,
    .faq-list-section {
        min-height: 0;
        padding: 0 18px clamp(72px, 18vw, 100px);
    }

    .travel-stay__intro {
        display: block;
        min-height: 0;
        padding: clamp(48px, 13vw, 70px) 0;
    }

    .travel-stay__intro h2 {
        font-size: 28px;
        margin-bottom: 36px;
        margin-top: 0;
    }

    .hotel-grid {
        gap: clamp(64px, 16vw, 90px);
        grid-template-columns: 1fr;
    }

    .travel-logistics__image {
        height: auto;
        margin: clamp(56px, 14vw, 75px) auto;
        max-width: 100%;
        width: min(270px, 74vw);
    }

    .travel-logistics__columns {
        gap: clamp(56px, 14vw, 80px);
        grid-template-columns: 1fr;
    }

    .travel-logistics__columns h2 {
        margin-bottom: 32px;
    }

    .travel-logistics__columns p {
        margin-bottom: 40px;
    }

    .map-cta {
        padding: clamp(40px, 10vw, 56px) 18px clamp(56px, 14vw, 80px);
    }

    .map-cta__eyebrow {
        margin-bottom: clamp(44px, 12vw, 64px);
    }

    .map-cta__emblem {
        margin-bottom: clamp(36px, 10vw, 52px);
    }

    /* City guide */
    .city-sections {
        padding: 0 18px 70px;
    }

    .city-section {
        margin-bottom: 60px;
    }

    .city-list__item {
        align-items: start;
        gap: 12px 16px;
        grid-template-columns: 92px 1fr;
        min-height: 0;
        padding: 18px 0;
    }

    .city-list__item img {
        grid-row: 1 / 4;
        height: 122px;
        width: 92px;
    }

    .city-list__item h2,
    .city-list__item p,
    .city-list__item span {
        padding: 0;
        text-align: left;
    }

    .city-list__item h2 {
        font-size: 17px;
    }

    /* FAQ */
    .faq-list {
        margin-top: 50px;
    }

    .faq-list li {
        gap: 18px;
        grid-template-columns: 38px 1fr;
        min-height: 0;
        padding: 36px 0;
    }

    .faq-list li > div {
        font-size: 15px;
        grid-column: 2;
    }

    .faq-list h2 {
        padding: 0;
    }

    /* Paginas editoriales */
    .page-main {
        padding-top: 78px;
    }

    .editorial-page {
        padding: clamp(96px, 24vw, 120px) 20px clamp(72px, 18vw, 100px);
    }

    .editorial-page__header {
        padding-bottom: clamp(56px, 14vw, 75px);
    }

    .editorial-page__header .section__eyebrow,
    .rsvp-page__header .section__eyebrow {
        font-size: 10px;
        margin-bottom: clamp(48px, 12vw, 70px);
    }

    .display-heading {
        font-size: clamp(36px, 10.5vw, 40px);
    }

    .editorial-page__body {
        font-size: 16px;
        padding-top: clamp(48px, 12vw, 65px);
    }

    /* RSVP */
    .rsvp-page {
        padding: 0 18px;
    }

    .rsvp-page__header {
        align-items: center;
        display: flex;
        flex-direction: column;
        height: auto;
        justify-content: flex-start;
        min-height: 100svh;
        padding: clamp(120px, 18svh, 145px) 0 clamp(64px, 10svh, 90px);
    }

    .rsvp-page__header .editorial-number,
    .rsvp-page__header .display-heading,
    .rsvp-page__header .editorial-stars,
    .rsvp-page__header .editorial-divider,
    .rsvp-page__intro {
        left: auto;
        position: static;
        top: auto;
        transform: none;
    }

    .rsvp-page__header .editorial-number {
        margin-bottom: clamp(52px, 10svh, 82px);
    }

    .rsvp-page__header .display-heading {
        font-size: clamp(36px, 10.5vw, 40px);
        margin-bottom: clamp(48px, 9svh, 76px);
        max-width: 310px;
        width: 100%;
    }

    .rsvp-page__header .editorial-stars,
    .rsvp-page__header .editorial-divider {
        margin-bottom: clamp(48px, 9svh, 78px);
    }

    .rsvp-page__intro {
        font-size: 19px;
        line-height: 1.25;
        max-width: 520px;
    }

    .rsvp-page__intro p + p {
        margin-top: 24px;
    }

    .rsvp-form__section,
    .rsvp-form__section--transportation,
    .rsvp-form__section--accommodation {
        min-height: 0;
        padding: 50px 0;
    }

    .rsvp-form__section--attendance {
        transition: padding-bottom 0.25s var(--ease);
    }

    .rsvp-form:not(.has-attendance-response) .rsvp-form__section--attendance {
        min-height: 0;
        padding-bottom: 152px;
    }

    .rsvp-form__section--identity h2,
    .rsvp-form__section--attendance h2,
    .rsvp-form__section--transportation h2,
    .rsvp-form__section--accommodation h2,
    .rsvp-form__section--dietary h2,
    .rsvp-form__section--contact h2 {
        margin-bottom: 28px;
    }

    .rsvp-form__section--events {
        padding-top: 30px;
    }

    .rsvp-form__section--events h2 {
        margin-bottom: 28px;
    }

    .rsvp-form__prompt {
        font-size: 12px;
        line-height: 1.35;
    }

    .rsvp-form__section--transportation .rsvp-form__prompt,
    .rsvp-form__section--accommodation .rsvp-form__prompt,
    .rsvp-form__section--dietary .rsvp-form__prompt,
    .rsvp-form__section--contact .rsvp-form__prompt {
        margin: 0 auto 32px;
        max-width: 330px;
    }

    .choice-grid--attendance,
    .choice-grid--events,
    .choice-grid--transportation,
    .choice-grid--accommodation,
    .choice-grid--dietary {
        column-gap: 0;
        grid-template-columns: 1fr;
        justify-content: stretch;
        row-gap: 18px;
        width: min(100%, 330px);
    }

    .choice-card span,
    .choice-chip span {
        min-height: 28px;
    }

    .choice-grid--dietary {
        margin-inline: auto;
    }

    .field--other {
        margin-top: 26px;
        max-width: 100%;
    }

    .field textarea {
        min-height: 140px;
    }

    .rsvp-form__footer {
        padding-top: 30px;
    }

    .rsvp-form:not(.is-attending).has-attendance-response .rsvp-form__section--contact {
        min-height: 300px;
    }

    .rsvp-form:not(.is-attending).has-attendance-response .rsvp-form__footer {
        padding-top: 90px;
    }

    .rsvp-form__section--contact {
        padding-bottom: 70px;
    }

    .field-grid {
        grid-template-columns: 1fr;
    }
}

/* ------------------------------------------------------------
   PANTALLAS CHICAS — < 401px
   ------------------------------------------------------------ */
@media (max-width: 400px) {
    .mobile-menu__nav .site-header__link {
        font-size: clamp(26px, 8.4vw, 30px);
    }

    .figma-hero__name {
        font-size: clamp(23px, 7.6vw, 26px);
    }

    .figma-destinations {
        gap: 24px 6px;
    }
}

@media (max-width: 360px) {
    .mobile-menu__footer > span,
    .mobile-menu__footer > time {
        display: none;
    }
}

/* ------------------------------------------------------------
   TELEFONO APAISADO / VIEWPORT BAJO
   ------------------------------------------------------------ */
@media (max-width: 1179px) and (max-height: 560px) {
    .mobile-menu {
        padding-top: 72px;
    }

    .mobile-menu__nav .site-header__link {
        font-size: clamp(20px, 5.2svh, 30px);
        padding: 8px 0;
    }

    .figma-hero {
        min-height: 0;
    }
}

/* ------------------------------------------------------------
   TOUCH: el voto siempre visible
   ------------------------------------------------------------ */
@media (hover: none) {
    .figma-destination__visual::after,
    .figma-destination__vote {
        opacity: 1;
    }

    .figma-destination__vote {
        transform: translate(-50%, -50%);
    }
}

@media (max-width: 767px) {
    .figma-destination__vote[aria-pressed="true"] {
        max-width: calc(100% - 24px);
        width: 210px;
    }
}

/* Selected mobile/tablet frames from the August 2026 Figma feedback. */
@media (min-width: 768px) and (max-width: 1179px) {
    .figma-destination__vote[aria-pressed="true"] {
        font-size: 10px;
        max-width: calc(100% - 16px);
        padding-inline: 10px;
        width: 190px;
    }

    .site-footer__main {
        display: block;
        padding: 0;
    }

    .site-footer__partner {
        margin: 0;
        position: absolute;
    }

    .site-footer__partner--one {
        left: 5%;
        top: 31%;
        width: 28vw;
    }

    .site-footer__partner--two {
        left: auto;
        right: 5%;
        top: 30%;
        width: 27vw;
    }

    .site-footer__center {
        left: 50%;
        position: absolute;
        top: 27%;
        transform: translateX(-50%);
        width: min(30vw, 320px);
    }
}

@media (max-width: 767px) {
    .site-header {
        padding: 14px 14px 0;
    }

    .site-header__inner {
        justify-content: flex-end;
        min-height: 29px;
        position: relative;
    }

    .site-header__right {
        display: block;
        left: 0;
        position: absolute;
        top: 0;
        transition: opacity 0.2s var(--ease);
        z-index: 3;
    }

    .site-header__right .site-header__nav {
        display: none;
    }

    .site-header__right .language-switcher {
        display: flex;
    }

    .site-header__brand {
        left: 50%;
        position: absolute;
        top: 1px;
        transform: translateX(-50%);
    }

    .menu-toggle {
        margin: -8px -8px 0 0;
    }

    .menu-toggle span {
        width: 29px;
    }

    .menu-is-open .site-header {
        color: var(--burgundy) !important;
    }

    .menu-is-open .site-header__right {
        opacity: 0;
        pointer-events: none;
    }

    .mobile-menu {
        background: #e6e79d;
        padding: 108px 24px 14px;
    }

    .mobile-menu__nav .site-header__link {
        font-size: 30px;
        line-height: 1.05;
        padding: 10px 0;
    }

    .mobile-menu__footer {
        align-items: center;
        display: flex;
        flex-direction: column;
        font-size: 10px;
        gap: 3px;
        justify-content: flex-end;
        line-height: 1.25;
        margin-top: 24px;
        text-align: center;
    }

    .mobile-menu__footer > span {
        display: block;
    }

    .mobile-menu__footer a {
        color: inherit;
        text-decoration: none;
    }

    .figma-hero {
        display: block;
        height: 100svh;
        min-height: 720px;
        padding: 0;
    }

    .figma-hero__names {
        display: block;
    }

    .figma-hero__name,
    .figma-hero__ampersand {
        margin: 0;
        position: absolute;
        transform: translateX(-50%);
    }

    .figma-hero__name {
        font-size: 35px;
        line-height: 0.9;
    }

    .figma-hero__name--one {
        left: 50%;
        top: 32.583%;
        width: min(57.7%, 225px);
    }

    .figma-hero__ampersand {
        font-size: 45px;
        left: 50%;
        top: 43.72%;
        width: 80px;
    }

    .figma-hero__name--two {
        left: 50%;
        top: 49.171%;
        width: min(82%, 295px);
    }

    .figma-hero__mobile-break {
        display: block;
    }

    .figma-hero__invitation {
        font-size: 14px;
        left: 50%;
        line-height: 1.2;
        margin: 0;
        max-width: none;
        position: absolute;
        top: 89.692%;
        transform: translateX(-50%);
        width: min(85.64%, 334px);
    }

    .figma-gifts,
    .figma-gifts--standalone {
        display: block;
        height: 100svh;
        min-height: 720px;
        padding: 0 11px 44px;
        position: relative;
    }

    .figma-gifts > .figma-section-label {
        left: 50%;
        position: absolute;
        top: 10.071%;
        transform: translateX(-50%);
        white-space: nowrap;
    }

    .figma-gifts h2,
    .figma-gifts__copy,
    .figma-gifts__question,
    .figma-gifts__vote-copy {
        display: none;
    }

    .figma-destinations {
        column-gap: 6px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        left: 11px;
        margin: 0;
        max-width: none;
        position: absolute;
        row-gap: 24px;
        top: 23.105%;
        width: calc(100% - 22px);
    }

    .figma-destination__visual {
        aspect-ratio: 180.435 / 234.767;
        height: auto;
    }

    .figma-destination__title {
        font-size: 17px;
        line-height: 1.2;
        margin-top: 14px;
        text-wrap: balance;
    }

    .figma-destination__region {
        font-size: 14px;
        line-height: 1.2;
        margin-top: 4px;
    }

    .figma-destination__vote,
    .figma-destination__vote[aria-pressed="true"] {
        height: 30px;
        max-width: calc(100% - 16px);
        opacity: 1;
        transform: translate(-50%, -50%);
        width: 90px;
    }

    .figma-destination__vote[aria-pressed="true"] {
        font-size: 10px;
        padding-inline: 10px;
        white-space: nowrap;
        width: 190px;
    }

    .figma-destination__vote[aria-pressed="true"],
    .figma-destination__vote[aria-pressed="true"]:hover,
    .figma-destination__vote[aria-pressed="true"]:focus-visible {
        background: #ceb849;
    }

    .figma-destination__vote-mobile-label {
        display: none;
    }

    .figma-destination__vote[aria-pressed="true"] [data-vote-button-label] {
        display: none;
    }

    .figma-destination__vote[aria-pressed="true"] .figma-destination__vote-mobile-label {
        display: inline;
    }

    .city-list__item:last-child {
        border-bottom: 0;
    }

    .site-footer {
        height: auto;
        min-height: max(720px, 100vh);
        min-height: max(720px, 100dvh);
    }

    .site-footer__main {
        display: block;
        padding: 0;
    }

    .site-footer__partner {
        margin: 0;
        position: absolute;
    }

    .site-footer__partner--one {
        left: 50%;
        top: 16.56%;
        transform: translateX(-50%);
        width: min(75.484%, 294.385px);
    }

    .site-footer__partner--two {
        left: 50%;
        top: 42.06%;
        transform: translateX(-50%);
        width: min(67.471%, 263.138px);
    }

    .site-footer__center {
        position: static;
        transform: none;
        width: auto;
    }

    .site-footer__crest {
        height: 86px;
        left: 50%;
        position: absolute;
        top: 27.81%;
        transform: translateX(-50%);
        width: 78px;
    }

    .site-footer__fact {
        left: 50%;
        margin: 0;
        position: absolute;
        text-align: center;
        top: 63.625%;
        transform: translateX(-50%);
        width: calc(100% - 36px);
    }

    .site-footer__fact span,
    .site-footer__fact small {
        font-size: 10px;
        line-height: 1.2;
    }

    .site-footer__fact strong {
        font-size: 18px;
        line-height: 0.9;
        margin: 2px 0 0;
    }

    .site-footer__fact .site-footer__country--desktop {
        display: none;
    }

    .site-footer__fact--dates {
        border-top: 1px solid var(--line);
        margin: 0;
        padding-top: 19px;
        top: 70.735%;
        width: 195px;
    }

    .site-footer__fact--dates span {
        display: none;
    }

    .site-footer__fact .site-footer__country--mobile {
        display: block;
        margin: 0 0 2px;
    }

    .site-footer__fact--dates strong {
        margin: 0;
    }

    .site-footer__fact--dates > small:not(.site-footer__country--mobile) {
        margin-top: 9px;
    }

    .site-footer__bottom {
        bottom: 14px;
        display: grid;
        font-size: 9px;
        grid-template-areas:
            "quote-left"
            "quote-right"
            "countdown";
        justify-content: center;
        left: 8px;
        line-height: 1.25;
        right: 8px;
        text-align: center;
    }

    .site-footer__bottom > span:first-child {
        display: block;
        grid-area: quote-left;
    }

    .site-footer__bottom > span:nth-child(2) {
        grid-area: countdown;
        margin-top: 18px;
        min-width: 0;
    }

    .site-footer__bottom > span:last-child {
        display: block;
        grid-area: quote-right;
    }

    .rsvp-form__footer .button {
        width: min(220px, 100%);
    }
}
