@font-face {
    font-family: "AF Stelios";
    src: url("../fonts/AFStelios-Light.woff2") format("woff2"),
         url("../fonts/AFStelios-Light.woff") format("woff");
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: "Engravers Gothic";
    src: url("../fonts/EngraversGothic BT.otf") format("opentype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Plantin";
    src: url("../fonts/PlantinMTProLightIt.TTF") format("truetype");
    font-style: italic;
    font-weight: 300;
    font-display: swap;
}

:root {
    --cream: #f8f5f0;
    --burgundy: #2c0b05;
    --lime: #e8ec9f;
    --line: rgba(44, 11, 5, 0.32);
    --display: "AF Stelios", "Times New Roman", serif;
    --engravers: "Engravers Gothic", Arial, sans-serif;
    --plantin: "Plantin", Georgia, serif;
    --outer: clamp(20px, 1.19vw, 20px);
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -ms-overflow-style: none;
    scroll-behavior: smooth;
    scrollbar-width: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    display: none;
    height: 0;
    width: 0;
}

body {
    margin: 0;
    background-color: var(--ambient-background, var(--cream));
    color: var(--burgundy);
    font-family: var(--display);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.25;
    text-rendering: geometricPrecision;
    transition: background-color 0.25s linear;
}

#main-content {
    background: transparent;
}

.figma-hero__names,
.figma-hero__invitation,
.figma-section-label,
.figma-event h2,
.figma-event__place,
.figma-event__description,
.figma-rsvp h2,
.figma-gifts h2,
.figma-destination__title,
.display-heading,
.event-detail h2,
.event-detail__meta,
.travel-hero h1,
.city-hero h1,
.faq-hero h1,
.travel-stay__intro h2,
.hotel-card__description,
.map-cta h2,
.map-cta > div,
.faq-list h2,
.choice-card > span,
.choice-chip > span,
.site-footer__partner {
    hyphens: none;
    text-wrap: balance;
}

.figma-welcome__copy,
.figma-story__copy,
.figma-gifts__copy,
.story-carousel__slide figcaption,
.event-detail__body,
.travel-hero__intro,
.travel-stay__intro > div,
.travel-logistics__columns p,
.city-hero__intro,
.city-list__item p,
.faq-hero__intro,
.faq-list li > div,
.rsvp-page__intro {
    text-wrap: pretty;
}

body.menu-is-open {
    overflow: hidden;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: inherit;
}

img {
    display: block;
    height: auto;
    max-width: 100%;
}

.edge-media {
    margin-inline: 0;
    max-width: none;
    width: 100%;
}

button {
    border: 0;
}

::selection {
    background: var(--burgundy);
    color: var(--lime);
}

.skip-link {
    background: var(--lime);
    font-family: var(--engravers);
    font-size: 12px;
    left: 15px;
    letter-spacing: 0.15em;
    padding: 12px 18px;
    position: fixed;
    text-transform: uppercase;
    top: -80px;
    z-index: 1000;
}

.skip-link:focus {
    top: 12px;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

html.ajaxify-enabled.is-ajax-loading {
    scroll-behavior: auto;
}

.ajaxify-enabled #main-content {
    transition:
        opacity 150ms var(--ease),
        transform 150ms var(--ease);
}

.ajaxify-enabled.is-ajax-loading #main-content {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
}

.site-header {
    color: var(--burgundy);
    left: 0;
    padding: 14px 5.3vw 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 50;
}

.site-header__inner {
    align-items: flex-start;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    min-height: 38px;
}

.site-header__nav,
.site-header__right {
    align-items: center;
    display: flex;
}

.site-header__nav {
    gap: clamp(22px, 1.85vw, 32px);
}

.site-header__right {
    gap: clamp(40px, 3.35vw, 56px);
    justify-content: flex-end;
}

.site-header__link,
.language-switcher__link {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    line-height: 1.2;
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-header__link::after {
    background: currentColor;
    bottom: -5px;
    content: "";
    height: 1px;
    left: 0;
    position: absolute;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.35s var(--ease);
    width: calc(100% - 0.15em);
}

.site-header__link:hover::after,
.site-header__link:focus-visible::after,
.site-header__link.is-active::after {
    transform: scaleX(1);
    transform-origin: left;
}

.site-header__brand {
    height: 26px;
    justify-self: center;
    width: 52px;
}

.site-header__brand-icon {
    color: inherit;
    display: block;
    height: 26px;
    width: 52px;
}

.language-switcher {
    align-items: center;
    display: flex;
    gap: 6px;
}

.language-switcher__link {
    font-size: 11.67px;
    opacity: 0.5;
}

.language-switcher__link.is-active {
    opacity: 1;
}

.language-switcher__separator {
    font-family: var(--engravers);
    font-size: 10px;
}

.menu-toggle,
.mobile-menu {
    display: none;
}

.figma-section-label {
    font-family: var(--engravers);
    font-size: clamp(11px, 0.833vw, 14px);
    letter-spacing: 0.15em;
    line-height: 1.2;
    margin: 0;
    text-align: center;
    text-transform: uppercase;
}

.figma-hero {
    height: min(56.667vw, 952px);
    min-height: 720px;
    overflow: hidden;
    position: relative;
}

.figma-hero__names {
    font-size: 0;
    font-weight: 300;
    margin: 0;
}

.figma-hero__name,
.figma-hero__ampersand {
    color: var(--burgundy);
    line-height: 0.9;
    position: absolute;
    text-align: center;
}

.figma-hero__name {
    font-family: var(--display);
    font-size: min(2.679vw, 45px);
    letter-spacing: -0.06em;
    text-transform: uppercase;
}

.figma-hero__name--one {
    left: 11.845%;
    top: min(18.393vw, 309px);
    width: 21.965%;
}

.figma-hero__ampersand {
    font-family: var(--plantin);
    font-size: min(2.679vw, 45px);
    font-style: italic;
    left: 39.048%;
    letter-spacing: -0.06em;
    line-height: 0.8;
    top: min(24.643vw, 414px);
    width: 21.965%;
}

.figma-hero__name--two {
    left: 66.31%;
    top: min(26.548vw, 446px);
    width: 22.68%;
}

.figma-hero__invitation {
    font-family: var(--engravers);
    font-size: min(1.072vw, 18px);
    left: 50%;
    letter-spacing: 0.15em;
    line-height: 1;
    margin: 0;
    max-width: 420px;
    position: absolute;
    text-align: center;
    text-transform: none;
    text-wrap: wrap;
    top: min(42.381vw, 712px);
    transform: translateX(-50%);
    width: 25%;
}

.figma-welcome {
    border-top: 1px solid var(--line);
    height: min(45.953vw, 772px);
    min-height: 630px;
    position: relative;
}

.figma-welcome > .figma-section-label {
    left: 50%;
    position: absolute;
    top: min(1.488vw, 25px);
    transform: translateX(-50%);
}

.figma-welcome__copy {
    font-size: min(1.31vw, 22px);
    left: 50%;
    line-height: 1.24;
    position: absolute;
    text-align: center;
    top: min(7.976vw, 134px);
    transform: translateX(-50%);
    width: 36.071%;
}

.figma-welcome__copy p {
    margin: 0;
}

.figma-welcome__stars {
    font-family: var(--engravers);
    font-size: min(1.072vw, 18px);
    left: 50%;
    letter-spacing: 0.15em;
    position: absolute;
    top: min(19.583vw, 329px);
    transform: translateX(-50%);
}

.figma-welcome__photo {
    height: min(14.703vw, 247px);
    left: 50%;
    object-fit: cover;
    position: absolute;
    top: min(23.631vw, 397px);
    transform: translateX(-50%);
    width: min(11.072vw, 186px);
}

.figma-weekend {
    background-color: var(--weekend-background, var(--lime));
    height: min(49.227vw, 827px);
    min-height: 680px;
    position: relative;
}

[data-color-fade].is-color-fade-ready {
    background-color: transparent;
}

[data-color-fade].is-color-fade-ready.is-color-active {
    background-color: transparent;
}

.page-city-guide .site-footer[data-color-fade].is-color-fade-ready,
.page-city-guide .site-footer[data-color-fade].is-color-fade-ready.is-color-active {
    background-color: var(--footer-background, var(--lime));
}

.figma-weekend > .figma-section-label {
    left: 50%;
    position: absolute;
    top: min(2.56vw, 43px);
    transform: translateX(-50%);
}

.figma-weekend__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    left: 7.5%;
    position: absolute;
    right: 7.5%;
    top: min(9.464vw, 159px);
}

.figma-event {
    min-width: 0;
    position: relative;
    text-align: center;
}

.figma-event__number,
.figma-event__date,
.figma-event__place,
.figma-event__description {
    font-family: var(--engravers);
    font-size: min(0.834vw, 14px);
    letter-spacing: 0.15em;
    margin: 0;
}

.figma-event__number {
    height: min(1.607vw, 27px);
    text-transform: uppercase;
}

.figma-event__date {
    margin-top: 0;
}

.figma-event__emblem {
    display: block;
    height: min(7.441vw, 125px);
    margin: min(4.167vw, 70px) auto 0;
    object-fit: contain;
    width: min(7.322vw, 123px);
}

.figma-event h2 {
    font-size: min(1.786vw, 30px);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 0.9;
    margin: min(5.595vw, 94px) auto 0;
    text-transform: uppercase;
}

.figma-event__place {
    margin-top: min(0.834vw, 14px);
}

.figma-event__description {
    margin-top: min(0.417vw, 7px);
}

.figma-event__place a {
    text-underline-offset: 3px;
}

.figma-weekend__details {
    bottom: min(6.607vw, 111px);
    font-family: var(--engravers);
    font-size: min(0.834vw, 14px);
    left: 50%;
    letter-spacing: 0.15em;
    position: absolute;
    text-transform: none;
    transform: translateX(-50%);
}

.figma-story {
    border-bottom: 1px solid var(--line);
    height: min(55.595vw, 934px);
    min-height: 760px;
    position: relative;
}

.figma-story > .figma-section-label {
    left: 50%;
    position: absolute;
    top: min(1.488vw, 25px);
    transform: translateX(-50%);
}

.story-carousel {
    --story-progress: 0;
    left: 2.52%;
    position: absolute;
    top: min(8.333vw, 140px);
    width: 15.953%;
}

.story-carousel__viewport {
    cursor: pointer;
    display: grid;
    min-height: min(26.548vw, 446px);
    overflow: hidden;
    touch-action: pan-y;
}

.story-carousel.is-dragging .story-carousel__viewport {
    cursor: grabbing;
}

.story-carousel__slide {
    grid-area: 1 / 1;
    margin: 0;
    opacity: 0;
    pointer-events: none;
    transition:
        opacity 0.65s var(--ease),
        visibility 0s linear 0.65s;
    visibility: hidden;
    z-index: 0;
}

.story-carousel__slide.is-active {
    opacity: 1;
    pointer-events: auto;
    transition:
        opacity 0.65s var(--ease),
        visibility 0s linear 0s;
    visibility: visible;
    z-index: 1;
}

.story-carousel__media {
    aspect-ratio: 268 / 357;
    display: block;
    overflow: hidden;
    width: 100%;
}

.story-carousel__image {
    -webkit-user-drag: none;
    display: block;
    height: 100%;
    object-fit: contain;
    object-position: center;
    user-select: none;
    width: 100%;
}

.story-carousel__slide figcaption {
    font-family: var(--engravers);
    font-size: min(0.715vw, 12px);
    letter-spacing: 0.15em;
    line-height: 1;
    margin-top: min(0.298vw, 5px);
    min-height: min(3.572vw, 60px);
    text-transform: none;
}

.story-carousel__controls {
    align-items: center;
    display: grid;
    gap: 5px;
    grid-template-columns: repeat(var(--story-count, 5), 1fr);
    margin: min(0.893vw, 15px) auto 0;
    width: 86%;
}

.story-carousel__dot {
    background: transparent;
    border-radius: 0;
    cursor: pointer;
    height: 3px;
    overflow: visible;
    padding: 0;
    position: relative;
}

.story-carousel__dot::before {
    background: #2c0b05;
    content: "";
    height: 1px;
    left: 0;
    position: absolute;
    right: 0;
    top: 1px;
}

.story-carousel__dot::after {
    content: "";
    inset: -8px 0;
    position: absolute;
}

.story-carousel__progress {
    background: #2c0b05;
    height: 3px;
    inset: 0 0 auto;
    position: absolute;
    transform: scaleX(0);
    transform-origin: left center;
}

.story-carousel__dot.is-complete .story-carousel__progress {
    transform: scaleX(1);
}

.story-carousel__dot.is-active .story-carousel__progress {
    transform: scaleX(var(--story-progress));
}

.story-carousel.is-paused .story-carousel__dot.is-active .story-carousel__progress {
    opacity: 0.7;
}

.figma-story__copy {
    font-size: min(1.072vw, 18px);
    left: 50.179%;
    line-height: 1.25;
    position: absolute;
    top: min(19.464vw, 327px);
    width: 44.524%;
}

.figma-story__copy p {
    margin: 0 0 5px;
    text-indent: 45px;
}

.figma-story__cities {
    font-family: var(--engravers);
    font-size: min(0.715vw, 12px);
    left: 26.012%;
    letter-spacing: 0.15em;
    line-height: 1;
    margin: 0;
    position: absolute;
    text-align: center;
    text-transform: uppercase;
    top: min(45.274vw, 760.56px);
    width: 115px;
}

.figma-rsvp {
    border-bottom: 1px solid var(--line);
    height: min(33.274vw, 559px);
    min-height: 510px;
    position: relative;
    text-align: center;
}

.figma-rsvp > .figma-section-label {
    left: 50%;
    position: absolute;
    top: min(1.488vw, 25px);
    transform: translateX(-50%);
}

.figma-rsvp__emblem {
    display: block;
    height: min(7.441vw, 125px);
    left: 50%;
    position: absolute;
    top: min(8.274vw, 139px);
    transform: translateX(-50%);
    width: min(7.322vw, 123px);
}

.figma-rsvp h2 {
    font-size: min(1.786vw, 30px);
    font-weight: 300;
    left: 50%;
    letter-spacing: -0.04em;
    line-height: 0.9;
    margin: 0;
    position: absolute;
    text-transform: uppercase;
    top: min(17.679vw, 297px);
    transform: translateX(-50%);
    width: 285px;
}

.figma-button {
    align-items: center;
    background: transparent;
    border: 1px solid var(--burgundy);
    color: var(--burgundy);
    cursor: pointer;
    display: inline-flex;
    font-family: var(--engravers);
    font-size: 14px;
    height: 40px;
    justify-content: center;
    letter-spacing: 0.15em;
    flex-shrink: 0;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.25s, color 0.25s;
    width: 202px;
}

.figma-button:not(.is-disabled):hover,
.figma-button:not(.is-disabled):focus-visible {
    background: var(--burgundy);
    color: var(--cream);
}

.figma-button:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.hotel-card .figma-button {
    width: 230px;
}

.figma-rsvp .figma-button {
    left: 50%;
    position: absolute;
    top: min(22.679vw, 381px);
    transform: translateX(-50%);
}

.figma-gifts {
    height: min(48.452vw, 814px);
    min-height: 760px;
    position: relative;
}

.figma-gifts > .figma-section-label {
    left: 50%;
    position: absolute;
    top: min(1.488vw, 25px);
    transform: translateX(-50%);
}

.figma-gifts h2 {
    font-size: min(1.786vw, 30px);
    font-weight: 300;
    left: 5.298%;
    letter-spacing: -0.04em;
    line-height: 0.9;
    margin: 0;
    position: absolute;
    text-transform: uppercase;
    top: min(7.917vw, 133px);
    width: 247px;
}

.figma-gifts__copy {
    font-size: min(0.953vw, 16px);
    left: 66.488%;
    line-height: 1.25;
    position: absolute;
    top: min(6.786vw, 114px);
    width: 28.037%;
}

.figma-gifts__copy p {
    margin: 0;
    text-indent: 45px;
}

.figma-gifts__copy p + p {
    margin-top: 12px;
}

.figma-gifts__question {
    font-family: var(--engravers);
    font-size: min(0.834vw, 14px);
    left: 9.345%;
    letter-spacing: 0.15em;
    margin: 0;
    position: absolute;
    text-transform: uppercase;
    top: min(29.941vw, 503px);
    white-space: nowrap;
}

.figma-destinations {
    display: grid;
    gap: min(0.298vw, 5px);
    grid-template-columns: repeat(4, 1fr);
    left: 29.822%;
    position: absolute;
    top: min(20.06vw, 337px);
    width: 65%;
}

.figma-destination {
    background: transparent;
    color: var(--burgundy);
    min-width: 0;
    padding: 0;
}

.figma-destination__visual {
    display: block;
    height: min(20.834vw, 350px);
    overflow: hidden;
    position: relative;
    width: 100%;
}

.figma-destination__visual::after {
    background: rgba(44, 11, 5, 0.2);
    content: "";
    inset: 0;
    opacity: 0;
    position: absolute;
    transition: opacity 0.25s;
}

.figma-destination__image {
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
    width: 100%;
}

.figma-destination:hover .figma-destination__image,
.figma-destination:focus-within .figma-destination__image,
.figma-destination.is-selected .figma-destination__image {
    transform: scale(1.02);
}

.figma-destination:hover .figma-destination__visual::after,
.figma-destination:focus-within .figma-destination__visual::after,
.figma-destination.is-selected .figma-destination__visual::after {
    opacity: 1;
}

.figma-destination__title,
.figma-destination__region {
    display: block;
    text-align: center;
    text-transform: uppercase;
}

.figma-destination__title {
    font-size: min(0.834vw, 14px);
    margin: min(0.893vw, 15px) 0 0;
}

.figma-destination__region {
    font-family: var(--engravers);
    font-size: min(0.834vw, 14px);
    letter-spacing: 0.15em;
    margin: min(0.298vw, 5px) 0 0;
}

.figma-destination__vote {
    background: var(--cream);
    border: 0;
    color: var(--burgundy);
    height: min(2.381vw, 40px);
    left: 50%;
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -42%);
    transition: background-color 0.2s, color 0.2s, opacity 0.2s, transform 0.2s;
    white-space: nowrap;
    width: min(5.953vw, 110px);
    z-index: 3;
}

.figma-destination__vote[aria-pressed="true"] {
    font-size: min(0.715vw, 12px);
    padding-inline: 10px;
    width: min(12.5vw, 200px);
}

.figma-destination__vote:not(.is-disabled):hover,
.figma-destination__vote:not(.is-disabled):focus-visible {
    background: var(--cream);
    color: var(--burgundy);
}

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

.figma-destination:hover .figma-destination__vote,
.figma-destination:focus-within .figma-destination__vote,
.figma-destination.is-selected .figma-destination__vote {
    opacity: 1;
    transform: translate(-50%, -50%);
}

.figma-gifts.is-vote-pending .figma-destination__vote:not(.is-vote-pending-target) {
    opacity: 0 !important;
    pointer-events: none;
}

.figma-gifts.is-vote-pending .figma-destination__vote.is-vote-pending-target {
    opacity: 1;
    transform: translate(-50%, -50%);
}

.figma-gifts__vote-copy {
    font-size: min(0.834vw, 14px);
    left: 9.345%;
    line-height: 1.25;
    position: absolute;
    top: min(32.5vw, 546px);
    width: 17%;
}

.figma-gifts__vote-copy p {
    margin: 0;
}

.figma-gifts__status {
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    line-height: 1px !important;
    margin: -1px !important;
    min-height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}

.form-status.is-error {
    color: #a22e1e;
}

.site-footer {
    background-color: var(--footer-background, var(--lime));
    color: var(--burgundy);
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
    position: relative;
}

.site-footer__main {
    align-items: center;
    display: grid;
    gap: clamp(32px, 5vw, 84px);
    grid-template-areas: "partner-one center partner-two";
    grid-template-columns: minmax(0, 1fr) minmax(280px, 348px) minmax(0, 1fr);
    inset: 0;
    padding: clamp(76px, 10svh, 140px) 8% clamp(70px, 9svh, 120px);
    position: absolute;
}

.site-footer__partner {
    font-size: min(1.786vw, 30px);
    letter-spacing: -0.06em;
    line-height: 0.9;
    margin: 0;
    text-align: center;
    text-transform: uppercase;
    width: auto;
}

.site-footer__partner--one {
    grid-area: partner-one;
}

.site-footer__partner--two {
    grid-area: partner-two;
}

@media (min-width: 768px) {
    .site-footer__partner {
        align-self: center;
        justify-self: center;
        margin-top: 0;
    }

    .site-footer__partner--one {
        transform: translate(71.8px, -102.5px);
        width: 165px;
    }

    .site-footer__partner--two {
        transform: translate(-69.3px, -102.5px);
        width: 240px;
    }
}

@media (min-width: 1180px) {
    .site-footer__partner--one {
        transform: translate(71.8px, -148px);
    }

    .site-footer__partner--two {
        transform: translate(-69.3px, -148px);
    }
}

.site-footer__center {
    grid-area: center;
    width: 100%;
}

.site-footer__crest {
    display: block;
    height: min(7.263vw, 122px);
    margin: 0 auto;
    width: min(6.667vw, 112px);
}

.site-footer__fact {
    margin-top: min(5.298vw, 89px);
    text-align: center;
    text-transform: uppercase;
}

.site-footer__fact--dates {
    border-top: 1px solid var(--line);
    margin-top: min(2.679vw, 45px);
    padding-top: min(1.667vw, 28px);
}

.site-footer__fact span,
.site-footer__fact small {
    display: block;
    font-family: var(--engravers);
    font-size: min(0.834vw, 14px);
    font-weight: 400;
    letter-spacing: 0.15em;
}

.site-footer__fact strong {
    display: block;
    font-size: min(1.191vw, 20px);
    font-weight: 300;
    letter-spacing: -0.06em;
    line-height: 0.9;
    margin: min(0.536vw, 9px) 0 min(0.477vw, 8px);
}

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

.site-footer__bottom {
    bottom: min(0.834vw, 14px);
    display: flex;
    font-family: var(--engravers);
    font-size: min(0.715vw, 12px);
    justify-content: space-between;
    left: 1.19%;
    letter-spacing: 0.15em;
    position: absolute;
    right: 1.19%;
    text-transform: none;
}

.site-footer__bottom > span:nth-child(2) {
    min-width: 194px;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Interior pages */
.page-main {
    min-height: 85vh;
    padding-top: 110px;
}

.editorial-page {
    min-height: 80vh;
    padding: 180px clamp(24px, 9.35vw, 157px);
}

.editorial-page__header {
    border-bottom: 1px solid var(--line);
    padding-bottom: 130px;
    text-align: center;
}

.editorial-page__header .section__eyebrow,
.rsvp-page__header .section__eyebrow {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    margin: 0 0 120px;
    text-transform: uppercase;
}

.display-heading {
    font-size: clamp(44px, 3vw, 52px);
    font-weight: 300;
    letter-spacing: -0.06em;
    line-height: 0.9;
    margin: 0;
    text-transform: uppercase;
}

.editorial-page__body {
    font-size: 18px;
    line-height: 1.25;
    margin: 0 auto;
    max-width: 980px;
    padding-top: 100px;
}

.editorial-page__body h2,
.editorial-page__body h3 {
    font-weight: 300;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

.rich-text a {
    text-underline-offset: 3px;
}

/* RSVP */
.page-main--rsvp {
    color: var(--burgundy);
    padding-top: 0;
}

.rsvp-page {
    margin: 0 auto;
    max-width: 1680px;
    padding: 0 12.142857%;
}

.rsvp-page__header {
    height: 1129.825px;
    position: relative;
    text-align: center;
}

.rsvp-page__header .editorial-number {
    left: 50%;
    position: absolute;
    top: 235px;
    transform: translateX(-50%);
}

.rsvp-page__header .display-heading {
    font-size: 45px;
    left: 50%;
    line-height: 0.88;
    max-width: 360px;
    position: absolute;
    top: 379px;
    transform: translateX(-50%);
    width: 360px;
}

.rsvp-page__header .editorial-stars {
    left: 50%;
    position: absolute;
    top: 557px;
    transform: translateX(-50%);
}

.rsvp-page__header .editorial-divider {
    left: 50%;
    position: absolute;
    top: 557px;
    transform: translateX(-50%);
}

.rsvp-page__intro {
    font-size: 22px;
    left: 50%;
    line-height: 1.23;
    max-width: 600px;
    position: absolute;
    top: 712px;
    transform: translateX(-50%);
    width: 100%;
}

.rsvp-page__intro p {
    margin: 0;
}

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

.rsvp-page__intro p:last-child {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rsvp-form {
    position: relative;
}

.rsvp-form::before {
    background: var(--line);
    content: "";
    height: 1px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.rsvp-form__section {
    border: 0;
    border-bottom: 1px solid var(--line);
    margin: 0;
    padding: 0;
    position: relative;
}

.rsvp-form__section h2 {
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.2em;
    line-height: 17px;
    margin: 0;
    padding: 0;
    text-align: center;
    text-transform: uppercase;
    width: 100%;
}

.rsvp-form__section--identity {
    min-height: 235.175px;
    padding-top: 28px;
}

.rsvp-form__section--identity h2 {
    margin-bottom: 35px;
}

.rsvp-form__section--attendance {
    min-height: 120px;
    padding-top: 27px;
    transition: min-height 0.25s var(--ease);
}

.rsvp-form:not(.has-attendance-response) .rsvp-form__section--attendance {
    min-height: 188px;
}

.rsvp-form__section--attendance h2 {
    margin-bottom: 24px;
}

.rsvp-form__section--events {
    min-height: 159.63px;
    padding-top: 41px;
}

.rsvp-form__section--events h2 {
    letter-spacing: 0.02em;
    margin-bottom: 32px;
    text-transform: none;
}

.rsvp-form__prompt {
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    line-height: 17px;
    margin: 0;
    text-align: center;
}

.rsvp-form__section--transportation {
    min-height: 174.5px;
    padding-top: 28px;
}

.rsvp-form__section--accommodation {
    min-height: 184px;
    padding-top: 28px;
}

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

.rsvp-form__section--transportation .rsvp-form__prompt {
    margin-bottom: 36px;
}

.rsvp-form__section--accommodation .rsvp-form__prompt {
    margin-bottom: 43px;
}

.rsvp-form__section--dietary {
    min-height: 0;
    padding-bottom: 32px;
    padding-top: 27px;
}

.rsvp-form__section--dietary .rsvp-form__prompt {
    margin-bottom: 29px;
}

.rsvp-form__section--contact {
    border-bottom: 0;
    min-height: 327px;
    padding-top: 27px;
}

.rsvp-form__section--contact .rsvp-form__prompt {
    margin-bottom: 26px;
}

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

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

.field-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
    margin: 0 auto;
    max-width: 604px;
}

.field {
    display: flex;
    flex-direction: column;
    position: relative;
}

.field input,
.field select,
.field textarea {
    appearance: none;
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 0;
    color: var(--burgundy);
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.2em;
    min-height: 44px;
    outline: 0;
    padding: 10px 14px;
    text-align: center;
    text-transform: uppercase;
    width: 100%;
}

.field input::placeholder,
.field textarea::placeholder {
    color: rgba(44, 11, 5, 0.38);
    opacity: 1;
}

.field textarea {
    min-height: 150px;
    resize: none;
    text-align: left;
    text-transform: none;
}

.field__floating-label {
    color: rgba(44, 11, 5, 0.38);
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    left: 14px;
    letter-spacing: 0.2em;
    line-height: 16px;
    pointer-events: none;
    position: absolute;
    right: 14px;
    text-align: center;
    text-transform: uppercase;
    top: 50%;
    transform: translateY(-50%);
    transition: color 0.2s var(--ease), font-size 0.2s var(--ease), letter-spacing 0.2s var(--ease), line-height 0.2s var(--ease), top 0.2s var(--ease), transform 0.2s var(--ease);
}

.field input:focus,
.field input:not(:placeholder-shown),
.field input:-webkit-autofill {
    padding-bottom: 5px;
    padding-top: 17px;
}

.field input:focus + .field__floating-label,
.field input:not(:placeholder-shown) + .field__floating-label,
.field input:-webkit-autofill + .field__floating-label {
    color: rgba(44, 11, 5, 0.5);
    font-size: 8px;
    letter-spacing: 0.05em;
    line-height: 10px;
    top: 5px;
    transform: none;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: var(--line);
    outline: 0;
}

.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea,
.rsvp-form__section.is-invalid .choice-card span::before,
.rsvp-form__section.is-invalid .choice-chip span::before {
    border-color: #a22e1e;
}

.field.is-invalid input,
.field.is-invalid input::placeholder,
.field.is-invalid .field__floating-label,
.rsvp-form__section.is-invalid .choice-card span,
.rsvp-form__section.is-invalid .choice-chip span {
    color: #d83b24;
}

.field__error {
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    color: #a22e1e;
    display: block;
    font-size: 1px;
    height: 1px;
    left: 0;
    overflow: hidden;
    position: absolute;
    top: 100%;
    white-space: nowrap;
    width: 1px;
}

.choice-grid {
    display: grid;
    gap: 0;
    margin: 0 auto;
}

.choice-grid--attendance,
.choice-grid--events {
    grid-template-columns: repeat(2, minmax(0, max-content));
    justify-content: center;
}

.choice-grid--attendance {
    column-gap: 54px;
}

.choice-grid--events {
    column-gap: 80px;
}

.choice-grid--transportation {
    column-gap: 46px;
    grid-template-columns: repeat(4, max-content);
    justify-content: center;
}

.choice-grid--accommodation {
    column-gap: 70px;
    grid-template-columns: repeat(3, max-content);
    justify-content: center;
}

.choice-grid--dietary {
    column-gap: 12px;
    grid-template-columns: repeat(3, 155px);
    justify-content: start;
    margin-left: auto;
    margin-right: auto;
    row-gap: 14px;
    width: 489px;
}

.choice-chip:has(input[name="dietary"][value="other"]) span {
    white-space: nowrap;
}

.choice-card,
.choice-chip {
    cursor: pointer;
    display: block;
    position: relative;
}

.choice-card input,
.choice-chip input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.choice-card span,
.choice-chip span {
    align-items: center;
    display: flex;
    font-family: var(--engravers);
    font-size: 14px;
    justify-content: flex-start;
    letter-spacing: 0.01em;
    line-height: 17px;
    min-height: 18px;
    padding-left: 25px;
    position: relative;
    text-align: left;
    text-transform: none;
}

.choice-card span::before,
.choice-chip span::before {
    border: 1px solid var(--burgundy);
    content: "";
    height: 14px;
    left: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
}

.choice-card input:checked + span::before,
.choice-chip input:checked + span::before {
    background: var(--burgundy);
    box-shadow: inset 0 0 0 2px var(--cream);
}

.choice-card input:focus-visible + span,
.choice-chip input:focus-visible + span {
    outline: 1px solid var(--burgundy);
    outline-offset: 4px;
}

.field--other {
    margin: 14px auto 0;
    max-width: 489px;
}

.field--email {
    margin: 0 auto;
    max-width: 604px;
}

.hp-field {
    height: 1px;
    left: -9999px;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.rsvp-form__footer {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 44px;
}

.rsvp-form__footer .button {
    background: var(--burgundy);
    border: 1px solid var(--burgundy);
    color: var(--cream);
    cursor: pointer;
    font-family: var(--engravers);
    font-size: 14px;
    height: 48px;
    letter-spacing: 0.2em;
    padding: 0;
    text-transform: uppercase;
    width: 220px;
}

.form-status {
    color: #d83b24;
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.02em;
    line-height: 17px;
    margin: 13px 0 0;
    min-height: 17px;
    text-transform: none;
}

.rsvp-success {
    align-items: center;
    background: var(--lime);
    color: var(--burgundy);
    display: flex;
    flex-direction: column;
    height: 92px;
    justify-content: center;
    position: relative;
    text-align: center;
    width: 220px;
}

.rsvp-success strong {
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.2em;
    line-height: 17px;
    text-transform: uppercase;
}

.rsvp-success__dove {
    height: 22px;
    margin-top: 12px;
    width: 28px;
}

.rsvp-success__edit {
    background: transparent;
    border: 0;
    cursor: pointer;
    inset: 0;
    position: absolute;
    width: 100%;
}

.rsvp-form.is-complete .rsvp-form__footer .button {
    display: none;
}

.rsvp-form.is-complete .form-status {
    display: none;
}

.rsvp-form__section.is-invalid > .field__error {
    top: auto;
}

.rsvp-form__section.is-invalid .choice-grid + .field__error {
    bottom: 8px;
}

.rsvp-form__section--events.is-invalid .choice-grid + .field__error {
    bottom: 13px;
}

.rsvp-form__section--transportation.is-invalid .choice-grid + .field__error,
.rsvp-form__section--accommodation.is-invalid .choice-grid + .field__error {
    bottom: 9px;
}

.rsvp-form__section--contact.is-invalid .field__error {
    top: 100%;
}

.text-link {
    font-family: var(--engravers);
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.not-found {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 80vh;
    padding: 120px 24px;
    text-align: center;
}

.not-found__number {
    font-family: var(--engravers);
    font-size: 12px;
    letter-spacing: 0.2em;
    margin-bottom: 50px;
}

.not-found .button {
    border: 1px solid var(--burgundy);
    font-family: var(--engravers);
    font-size: 12px;
    letter-spacing: 0.15em;
    margin-top: 45px;
    padding: 15px 26px;
    text-decoration: none;
    text-transform: uppercase;
}

/* Figma interior pages */
.editorial-number,
.editorial-stars,
.page-rule-label {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 0;
    text-transform: uppercase;
}

.editorial-stars {
    font-size: 18px;
    letter-spacing: 0.15em;
    line-height: 18px;
}

.editorial-divider {
    align-items: center;
    display: flex;
    justify-content: center;
    margin-inline: auto;
}

.editorial-divider__image {
    display: block;
    height: auto;
    max-height: 32px;
    max-width: 160px;
    object-fit: contain;
    width: auto;
}

.page-rule-label {
    border-top: 1px solid var(--line);
    padding-top: 25px;
}

.events-page {
    padding-top: 0;
}

.events-page__schedule {
    --events-hero-height: calc(100svh - 100px);
    display: grid;
    grid-template-columns: 50% 50%;
    min-height: 3564px;
    padding: 100px 20px 0;
}

.events-page__invitation {
    align-self: start;
    display: grid;
    height: var(--events-hero-height);
    min-width: 0;
    /* overflow: clip; */
    padding: 0;
    place-items: center;
    position: sticky;
    /* Igual al padding-top de la seccion: el sticky engancha desde el
       primer pixel de scroll, sin deslizarse 10px antes de fijarse. */
    top: 100px;
    width: 100%;
}

.events-page__invitation img {
    display: block;
    height: min(840px, calc(var(--events-hero-height) - 40px));
    max-height: 100%;
    max-width: calc(100% - 40px);
    object-fit: contain;
    width: auto;
    transform: rotate(-4.996deg);
}

.events-page__timeline {
    border-left: 1px solid rgba(44, 11, 5, 0.14);
    padding: 0 7%;
}

.event-detail {
    align-items: center;
    border-bottom: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    min-height: 560px;
    padding: 50px 7%;
    scroll-margin-top: 70px;
    text-align: center;
}

.event-detail__content {
    align-items: center;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.event-detail:first-child {
    justify-content: center;
    min-height: var(--events-hero-height);
}

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

.event-detail:nth-child(3) {
    border-bottom: 0;
    /* Preserve the approved schedule height while the first panel follows the viewport. */
    min-height: calc(2767px - var(--events-hero-height));
    padding-top: 160px;
}

.event-detail__eyebrow,
.event-detail__meta {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 0 0 12px;
}

.event-detail__eyebrow {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    text-transform: uppercase;
}

.event-detail h2 {
    font-size: 22px;
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1;
    margin: 0 0 7px;
    text-transform: uppercase;
}

.event-detail__body {
    font-size: 18px;
    line-height: 23px;
    margin-top: 40px;
    max-width: 544px;
}

.event-detail__body p {
    margin: 0 0 28px;
}

.event-detail:nth-child(-n + 2) .event-detail__body p {
    margin-bottom: 5px;
}

.event-detail__body h3 {
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 32px 0 28px;
    text-transform: uppercase;
}

.event-detail__body h3:first-child {
    margin-top: 40px;
}

.event-detail__body h3:nth-of-type(5) {
    text-transform: none;
}

.event-detail__body table {
    border-collapse: collapse;
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.08em;
    line-height: 17px;
    margin: 56px auto 83px;
    max-width: 410px;
    text-align: left;
    text-transform: none;
    width: 100%;
}

.event-detail__body td {
    border-bottom: 1px solid rgba(44, 11, 5, 0.18);
    padding: 11px 4px;
}

.events-gallery {
    min-height: 1115px;
    padding: 28px 20px 158px;
}

.events-gallery__label {
    font-family: var(--engravers);
    font-size: 11px;
    letter-spacing: 0.16em;
    margin: 0 0 110px;
    text-align: center;
    text-transform: none;
    border-top: 1px solid rgba(44, 11, 5, 0.14);
    padding-top: 76px;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.15em;
    line-height: 17px;
}

.events-gallery__venue {
    text-transform: uppercase;
    display: block;
}

.events-gallery__grid {
    display: grid;
    gap: 140px 15.8%;
    grid-template-columns: repeat(4, 1fr);
}

.events-gallery__grid figure {
    margin: 0;
    min-width: 0;
    overflow: clip;
}

.events-gallery__grid img {
    aspect-ratio: 3 / 4;
    display: block;
    /* height: 270px; */
    max-width: 100%;
    object-fit: cover;
    width: 100%;
}

.travel-hero {
    min-height: 1243px;
    padding: 231px 20px 120px;
    text-align: center;
}

.travel-hero h1,
.city-hero h1,
.faq-hero h1 {
    font-size: 45px;
    font-weight: 300;
    letter-spacing: -0.06em;
    line-height: 0.9;
    margin: 135px auto 38px;
    text-transform: uppercase;
}

.travel-hero h1,
.city-hero h1 {
    max-width: 369px;
}

.travel-hero h1 {
    margin-bottom: 43.5px;
    margin-top: 130px;
}

.travel-hero > .editorial-number,
.city-hero > .editorial-number,
.faq-hero > .editorial-number {
    margin-inline: auto;
    max-width: 100%;
    width: 104px;
}

.travel-hero > .editorial-stars,
.city-hero > .editorial-stars,
.faq-hero > .editorial-stars,
.city-hero > .editorial-divider,
.faq-hero > .editorial-divider {
    margin-inline: auto;
    max-width: 100%;
    width: 416px;
}

.travel-hero__image {
    display: block;
    height: 480px;
    margin-bottom: 25px;
    object-fit: cover;
}

.travel-hero__intro,
.city-hero__intro,
.faq-hero__intro {
    font-size: 22px;
    font-weight: 300;
    letter-spacing: 0;
    line-height: 1.24;
    margin: 45px auto 0;
}

.travel-hero__intro,
.city-hero__intro {
    max-width: 544px;
}

.travel-hero__intro {
    margin-top: 38px;
}

.faq-hero__intro {
    max-width: 496px;
}

.travel-hero__intro p,
.city-hero__intro p,
.faq-hero__intro p {
    margin: 0;
}

.travel-stay {
    min-height: 1003px;
    padding: 0 20px 110px;
}

.travel-stay__intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 250px;
    padding: 78px 72px 40px 69px;
}

.travel-stay__intro h2 {
    font-size: 30px;
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 0.9;
    margin: 19px 0 0;
    max-width: 247px;
    text-transform: uppercase;
    width: 247px;
}

.travel-stay__intro > div {
    font-size: 18px;
    justify-self: end;
    line-height: 1.25;
    max-width: 471px;
    width: 100%;
}

.hotel-grid {
    display: grid;
    gap: 8%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 auto;
    max-width: 1230px;
}

.hotel-card {
    text-align: center;
}

.hotel-card__number,
.hotel-card__location {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    line-height: 17px;
}

.hotel-card__number {
    margin: 0 0 15px;
    text-transform: uppercase;
}

.hotel-card img {
    height: 369px;
    object-fit: cover;
    width: 100%;
}

.hotel-card h3 {
    font-size: 30px;
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 0.9;
    margin: 25px 0 15px;
    text-transform: uppercase;
}

.hotel-card__location {
    margin: 0;
    text-decoration: underline;
    text-underline-offset: 5px;
}

.hotel-card__description {
    font-family: var(--display);
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.3;
    margin: 5px auto 35px;
    max-width: 260px;
}

.figma-button.is-disabled {
    cursor: default;
    opacity: 1;
}

.travel-logistics {
    min-height: 1197px;
    padding: 0 20px 101px;
}

.travel-logistics__image {
    display: block;
    height: 352px;
    margin: 68px auto 69px;
    object-fit: cover;
    width: 270px;
}

.travel-logistics__columns {
    display: grid;
    gap: 7%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 auto;
    max-width: 1230px;
}

.travel-logistics__columns h2 {
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 0 0 61px;
    text-transform: uppercase;
}

.travel-logistics__columns h3 {
    font-family: var(--display);
    font-size: 12px;
    font-weight: 300;
    line-height: 17px;
    margin: 0 0 11px;
    text-transform: uppercase;
}

.travel-logistics__columns p {
    font-size: 14px;
    line-height: 1.3;
    margin: 0 0 55px;
}

.travel-logistics__columns p:last-child {
    margin-bottom: 0;
}

@media (min-width: 768px) {
    .travel-page .map-cta {
        min-height: 642px;
    }

    .travel-page .map-cta__eyebrow {
        margin-bottom: 93px;
    }

    .travel-page .map-cta > div {
        margin-bottom: 47px;
    }
}

.map-cta {
    align-items: center;
    border-top: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    min-height: 540px;
    padding: 30px 20px 80px;
    text-align: center;
}

.map-cta__eyebrow {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 0 0 60px;
    text-transform: uppercase;
}

.map-cta__emblem {
    color: #15151d;
    display: block;
    height: 125px;
    margin-bottom: 52px;
    object-fit: contain;
    width: 123px;
}

.map-cta h2 {
    font-size: 30px;
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 0.9;
    margin: 0 0 18px;
    max-width: 400px;
    text-transform: uppercase;
}

.map-cta > div {
    font-size: 14px;
    line-height: 1.3;
    margin-bottom: 30px;
    max-width: 326px;
}

.map-cta > div p {
    margin: 0;
}

.page-city-guide {
    --ambient-base: var(--burgundy);
    --ambient-base-foreground: var(--cream);
    background-color: var(--ambient-background, var(--burgundy));
    color: var(--cream);
}

.page-city-guide .site-header,
.page-city-guide .site-header a {
    color: var(--cream);
}

.page-city-guide .site-header.is-over-footer,
.page-city-guide .site-header.is-over-footer a,
.page-city-guide .site-header.is-over-light-section,
.page-city-guide .site-header.is-over-light-section a,
.page-city-guide.menu-is-open .site-header,
.page-city-guide.menu-is-open .site-header a {
    color: var(--burgundy);
}

.city-page {
    color: var(--cream);
}

.city-hero,
.city-sections {
    background-color: var(--burgundy);
}

.city-hero {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-height: 952px;
    padding: 235px 20px 100px;
    text-align: center;
}

.city-hero h1 {
    margin-top: 135px;
    max-width: none;
    text-align: center;
    width: 100%;
}

.city-hero .editorial-stars,
.city-hero .editorial-divider {
    margin-top: 65px;
}

.city-hero__intro {
    margin-top: 120px;
}

.city-sections {
    padding: 0 20px 90px;
}

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

.city-section .page-rule-label {
    border-color: color-mix(in srgb, currentColor 30%, transparent);
    padding-bottom: 38px;
}

.city-list {
    margin: 0 auto;
    max-width: 1370px;
}

.city-list__item {
    align-items: center;
    border-bottom: 1px solid color-mix(in srgb, currentColor 30%, transparent);
    display: grid;
    grid-template-columns: 140px 1fr 1.5fr 0.65fr;
    min-height: 185px;
    padding: 14px 0;
    position: relative;
    text-decoration: none;
    z-index: 0;
}

.city-list__item::before {
    background: color-mix(in srgb, currentColor 6%, transparent);
    content: "";
    inset-block: 0;
    left: 50%;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transform: translateX(-50%);
    transition: opacity 0.25s var(--ease);
    width: 100vw;
    z-index: -1;
}

.city-list__item[href] {
    transition: background-color 0.25s var(--ease);
}

.city-list__item[href] img {
    transition: filter 0.25s var(--ease), transform 0.35s var(--ease);
}

.city-list__item[href]:hover::before,
.city-list__item[href]:focus-visible::before {
    opacity: 1;
}

.city-list__item[href]:hover img,
.city-list__item[href]:focus-visible img {
    filter: brightness(0.82);
    transform: scale(1.02);
}

.city-list__item[href]:hover h2,
.city-list__item[href]:focus-visible h2 {
    text-decoration: none;
}

.city-list__item[href]:focus-visible {
    outline: 1px solid currentColor;
    outline-offset: 5px;
}

.city-list__item[aria-disabled="true"] {
    cursor: default;
}

.city-list__item img {
    height: 158px;
    object-fit: cover;
    width: 118px;
}

.city-list__item h2 {
    font-size: 20px;
    font-weight: 300;
    line-height: 1;
    margin: 0;
    text-align: center;
    text-transform: uppercase;
}

.city-list__item p,
.city-list__item span {
    font-family: var(--engravers);
    font-size: 14px;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 0;
    padding: 0 20px;
    text-align: center;
}

.city-list__item span {
    text-transform: uppercase;
}

.city-page .map-cta {
    background-color: var(--cream);
    color: var(--burgundy);
    min-height: 637px;
}

.city-page .map-cta__emblem {
    color: var(--burgundy);
}

@media (min-width: 1180px) {
    .event-detail:nth-child(-n + 2) .event-detail__body {
        text-align: left;
    }

    .event-detail:first-child {
        height: 568px;
        justify-content: flex-start;
        min-height: 568px;
        padding-top: 163px;
    }

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

    .event-detail:nth-child(2) h2 {
        margin-bottom: 3px;
    }

    .event-detail:nth-child(3) {
        height: 2189px;
        min-height: 2189px;
        padding-top: 153px;
    }

    .event-detail:nth-child(3) .event-detail__body {
        margin-top: 40px;
        max-width: 460px;
    }

    .event-detail:nth-child(3) .event-detail__body > p:nth-of-type(3) {
        margin-bottom: 40px;
    }

    .event-detail:nth-child(3) .event-detail__body > p:nth-of-type(5) {
        margin-bottom: 5px;
    }

    .event-detail:nth-child(3) .event-detail__body > p:nth-of-type(6) {
        line-height: 28px;
        margin-bottom: 26px;
    }

    .event-detail:nth-child(3) .event-detail__body h3:nth-of-type(3) {
        margin-top: 29px;
    }

    .event-detail:nth-child(3) .event-detail__body h3:nth-of-type(4) {
        margin-top: 31px;
    }

    .event-detail:nth-child(3) .event-detail__body h3:nth-of-type(5),
    .event-detail:nth-child(3) .event-detail__body h3:nth-of-type(6) {
        margin-top: 31px;
    }

    .event-detail:nth-child(3) .event-detail__body > p:nth-of-type(9),
    .event-detail:nth-child(3) .event-detail__body > p:nth-of-type(10) {
        margin-bottom: 33px;
    }

    .event-detail:nth-child(3) .event-detail__body > p:nth-of-type(11) {
        margin-bottom: 73px;
    }

    .travel-hero h1,
    .city-hero h1 {
        white-space: nowrap;
    }

    .city-hero,
    .faq-hero {
        height: 952px;
    }

    .city-section:nth-child(1) {
        margin-bottom: 101px;
    }

    .city-section:nth-child(2) .city-list__item {
        height: 199.444px;
    }

    .city-section:nth-child(2),
    .city-section:nth-child(3),
    .city-section:nth-child(4) {
        margin-bottom: 103.0625px;
    }

    .city-section:nth-child(3) .city-list__item {
        height: 196.167px;
    }

    .city-section:nth-child(4) .city-list__item {
        height: 188.25px;
    }

}

@media (min-width: 1600px) {
    .travel-hero {
        height: 1243px;
    }

    .travel-stay {
        height: 1016px;
    }

    .hotel-grid {
        column-gap: 142px;
        grid-template-columns: repeat(2, minmax(0, 543px));
        margin-top: 10px;
        max-width: 1228px;
    }

    .hotel-card img {
        height: 369px;
    }

    .travel-logistics {
        height: 1198px;
    }

    .travel-logistics__columns {
        display: block;
        height: 620px;
        margin: 0;
        max-width: none;
        position: relative;
    }

    .travel-logistics__columns article {
        position: absolute;
        top: 0;
    }

    .travel-logistics__columns article:nth-child(1) {
        left: 207px;
        width: 339px;
    }

    .travel-logistics__columns article:nth-child(2) {
        left: 685px;
        width: 338px;
    }

    .travel-logistics__columns article:nth-child(3) {
        left: 1165px;
        width: 337px;
    }

    .travel-logistics__columns article:nth-child(1) p {
        width: 338px;
    }

    .travel-logistics__columns article:nth-child(2) p {
        width: 337px;
    }

    .travel-logistics__columns article:nth-child(3) h2,
    .travel-logistics__columns article:nth-child(3) h3 {
        width: 373.333px;
    }

    .travel-logistics__columns article:nth-child(3) p {
        width: 336px;
    }

    .travel-page .map-cta {
        height: 637px;
        min-height: 637px;
        padding-top: 24px;
    }

    .travel-page .map-cta__eyebrow {
        margin-bottom: 73px;
        width: 351px;
    }

    .travel-page .map-cta__emblem {
        margin-bottom: 70px;
    }

    .travel-page .map-cta h2 {
        margin-bottom: 15px;
        max-width: 285px;
        width: 285px;
    }

    .travel-page .map-cta > div {
        margin-bottom: 34px;
        transform: translateX(-5px);
    }

    .travel-page .map-cta .figma-button {
        transform: translateX(-5px);
    }
}

.faq-hero {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-height: 950px;
    padding: 235px 20px 100px;
    text-align: center;
}

.faq-hero h1 {
    margin-top: 135px;
    max-width: 530px;
}

.faq-hero .editorial-stars,
.faq-hero .editorial-divider {
    margin-top: 70px;
}

.faq-hero__intro {
    margin-top: 125px;
}

.faq-list-section {
    min-height: 2295px;
    padding: 0 20px 90px;
}

.faq-list {
    list-style: none;
    margin: 70px auto 0;
    max-width: 1230px;
    padding: 0;
}

.faq-list li {
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 70px 1fr 1.45fr;
    min-height: 172.25px;
    padding: 42px 0;
}

.faq-list__number,
.faq-list h2 {
    font-family: var(--engravers);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.15em;
    line-height: 17px;
    margin: 0;
    text-transform: uppercase;
}

.faq-list h2 {
    padding-right: 30px;
}

.faq-list li > div {
    font-size: 16px;
    line-height: 20px;
}

.faq-list li > div p {
    margin: 0;
}

.figma-gifts--standalone {
    height: 826px;
}

.figma-gifts--standalone .figma-gifts__question {
    top: 503px;
}

.figma-gifts--standalone .figma-destinations {
    top: 337px;
}

@media (min-width: 1180px) {
    .faq-list-section {
        height: 2293px;
        min-height: 2293px;
        padding-bottom: 0;
    }

    .faq-list li {
        grid-template-columns: 70px 53fr 47fr;
        min-height: 0;
    }

    .faq-list li:not(:first-child) {
        padding-top: 34px;
    }

    .faq-list li:nth-child(1) {
        height: 159px;
    }

    .faq-list li:nth-child(2),
    .faq-list li:nth-child(4) {
        height: 151px;
    }

    .faq-list li:nth-child(3) {
        height: 232px;
    }

    .faq-list li:nth-child(5),
    .faq-list li:nth-child(6),
    .faq-list li:nth-child(7),
    .faq-list li:nth-child(8),
    .faq-list li:nth-child(9),
    .faq-list li:nth-child(11) {
        height: 178px;
    }

    .faq-list li:nth-child(10) {
        height: 205px;
    }

    .faq-list li:nth-child(12) {
        height: 214px;
    }
}

[hidden] {
    display: none !important;
}

.has-js [data-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);
}

.has-js [data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .has-js [data-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* Selected Figma refinements — August 2026. */
.figma-hero__mobile-break,
.figma-destination__vote-mobile-label {
    display: none;
}

.story-carousel__caption-meta,
.story-carousel__caption-body {
    display: block;
}

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

.site-footer__partner {
    background-color: currentColor;
    font-size: 0;
    height: auto;
    margin: 0;
    position: absolute;
    transform: none;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.site-footer__partner--one {
    aspect-ratio: 424 / 97;
    left: 9.524%;
    top: 32.14%;
    width: min(25.238vw, 424px);
    -webkit-mask-image: url("../images/footer-name-emily-mask.png");
    mask-image: url("../images/footer-name-emily-mask.png");
}

.site-footer__partner--two {
    aspect-ratio: 404 / 141;
    left: 67.262%;
    top: 30.474%;
    width: min(24.048vw, 404px);
    -webkit-mask-image: url("../images/footer-name-camilo-mask.png");
    mask-image: url("../images/footer-name-camilo-mask.png");
}

.site-footer__center {
    left: 50%;
    position: absolute;
    top: 29.833%;
    transform: translateX(-50%);
    width: min(20.714vw, 348px);
}

.site-footer__fact--dates {
    margin-top: min(1.845vw, 31px);
}
