/*
 * Dirección visual Clásica Mediterránea.
 * Esta capa sustituye deliberadamente la primera propuesta sin alterar la
 * lógica del prototipo; se retirará la dirección descartada al pasar a bloques.
 */
:root {
	--ink: #354346;
	--ink-soft: #627174;
	--navy: #819ca3;
	--navy-deep: #59757d;
	--paper: #f7f2e9;
	--paper-light: #fffdf8;
	--stone: #e7ded0;
	--gold: #b59b69;
	--gold-light: #d8c499;
	--line: rgba(53, 67, 70, .18);
	--porcelain: #c9d8d8;
	--porcelain-deep: #78969e;
	--blush: #eaded5;
	--butter: #efe5c9;
	--shadow: 0 30px 80px rgba(67, 82, 83, .13);
}

.ws-theme-classic {
	--navy: var(--sage);
	--navy-deep: var(--ink);
	--porcelain: var(--sage-light);
	--porcelain-deep: var(--sage);
	--blush: var(--contact-background);
	--butter: var(--gate-start);
}
body { background: var(--paper-light); color: var(--ink); }
.section-heading h2 { font-size: clamp(3.5rem, 6vw, 6.9rem); line-height: .94; }
.kicker { color: #9e8455; }
.button { border-radius: 999px; padding-inline: 2.2rem; }
.button.dark { border-color: var(--porcelain-deep); background: var(--porcelain-deep); }
.button.dark:hover { background: var(--gold); }

.prototype-toolbar { border: 0; border-radius: 1rem; background: rgba(255,253,248,.92); box-shadow: 0 15px 45px rgba(53,67,70,.14); }
.plan-switch button { border-radius: 999px; }
.plan-switch button.is-active { background: var(--porcelain-deep); }

/* Apertura: un arco de papelería artesanal, no una tarjeta corporativa. */
.invitation-gate { background: radial-gradient(circle at 50% 42%, rgba(255,255,255,.86) 0 11%, transparent 42%), linear-gradient(135deg, #e9eeee, #f7f2e9 48%, #e5d9cc); color: var(--ink); }
.invitation-gate::before { top: -40vw; left: -18vw; width: 66vw; height: 66vw; border: 1px solid rgba(120,150,158,.24); box-shadow: 0 0 0 28px rgba(120,150,158,.035), 0 0 0 70px rgba(181,155,105,.035); }
.invitation-gate::after { right: -25vw; bottom: -45vw; width: 72vw; height: 72vw; border: 1px solid rgba(181,155,105,.22); box-shadow: 0 0 0 34px rgba(181,155,105,.035); }
.gate-frame { inset: 1.4rem; border-color: rgba(120,150,158,.22); border-radius: 1.5rem; }
.gate-frame span { border-color: var(--porcelain-deep); opacity: .55; }
.invitation-card { width: min(86vw, 500px); min-height: min(650px, calc(100svh - 110px)); gap: 1.35rem; border: 0; border-radius: 48% 48% 1.2rem 1.2rem / 22% 22% 1.2rem 1.2rem; outline: 1px solid rgba(181,155,105,.7); outline-offset: -17px; background: rgba(255,253,248,.96); box-shadow: 0 35px 90px rgba(71,88,89,.17); }
.invitation-card::before { top: 1.9rem; right: 2rem; bottom: auto; left: 2rem; width: auto; height: 44%; border: solid rgba(120,150,158,.3); border-width: 1px 1px 0; border-radius: 50% 50% 0 0 / 38% 38% 0 0; background: none; }
.invitation-card::after { top: auto; right: 3.2rem; bottom: 5.8rem; left: 3.2rem; width: auto; height: 1px; background: linear-gradient(90deg, transparent, var(--gold), transparent); }
.gate-rule { inset: 2rem; border: 0; }
.gate-rule::before, .gate-rule::after { position: absolute; top: 36%; width: 38px; height: 68px; border: solid var(--porcelain-deep); content: ""; opacity: .32; }
.gate-rule::before { left: 0; border-width: 1px 0 1px 1px; border-radius: 40px 0 0 40px; }
.gate-rule::after { right: 0; border-width: 1px 1px 1px 0; border-radius: 0 40px 40px 0; }
.invitation-card small { max-width: 250px; color: var(--porcelain-deep); line-height: 1.7; }
.invitation-card strong { font-size: clamp(3.5rem, 8vw, 5.2rem); line-height: .75; }
.invitation-card strong i { color: var(--gold); }
.monogram { width: 82px; height: 98px; border-color: var(--porcelain-deep); border-radius: 50% 50% 45% 45%; color: var(--porcelain-deep); line-height: 96px; }
.invitation-card b { color: var(--porcelain-deep); }
.gate-hint { bottom: 1.2rem; color: var(--ink); }

/* Cabecera mínima y ligera. */
.site-header { min-height: 78px; border-color: rgba(53,67,70,.12); background: rgba(255,253,248,.9); }
.brand span { border-color: var(--porcelain-deep); border-radius: 50% 50% 45% 45%; color: var(--porcelain-deep); }
.site-header nav a { color: var(--ink-soft); }
.site-header nav a:hover { color: var(--porcelain-deep); }

/* Hero luminoso: foto en arco y nombres con mucho aire. */
.hero { grid-template-columns: 46% 54%; background: linear-gradient(90deg, var(--paper-light), var(--paper) 55%, #edf1ef); }
.hero-photo { grid-column: 2; height: auto; min-height: 0; margin: 2.8rem 3.2rem 5rem 0; overflow: hidden; border: 12px solid rgba(255,255,255,.65); border-radius: 240px 1.5rem 1.5rem 1.5rem; box-shadow: var(--shadow); filter: none; }
.hero-photo::after { position: absolute; inset: 1.2rem; border: 1px solid rgba(255,255,255,.65); border-radius: inherit; content: ""; }
.hero-photo img { filter: saturate(.8) brightness(1.04); }
.hero-card { grid-row: 1; grid-column: 1; min-height: 760px; padding: 6rem 4vw 7rem 7vw; }
.hero-card::before { inset: 4rem 2.3rem 4rem 4.5rem; border: solid rgba(120,150,158,.24); border-width: 1px 0; }
.hero-card::after { position: absolute; top: 15%; left: 8%; width: 130px; height: 170px; border: 1px solid rgba(181,155,105,.28); border-radius: 50% 50% 0 0; content: ""; transform: rotate(-8deg); }
.hero-card h1 { font-size: clamp(4.8rem, 8vw, 8.8rem); line-height: .7; }
.hero-card h1 i { color: var(--porcelain-deep); }
.hero-date { color: var(--ink-soft); }
.ornament { color: var(--gold); }
.countdown { position: relative; padding: 1rem 1.4rem; }
.countdown::before, .countdown::after { position: absolute; top: 50%; width: 34px; height: 1px; background: var(--gold); content: ""; }
.countdown::before { right: 100%; }.countdown::after { left: 100%; }
.countdown strong { color: var(--porcelain-deep); }
.hero-caption { right: 6vw; bottom: 1.8rem; left: auto; width: min(660px, 50vw); border: 1px solid rgba(255,255,255,.6); border-radius: 999px; background: rgba(255,253,248,.9); color: var(--ink); box-shadow: 0 18px 50px rgba(53,67,70,.12); backdrop-filter: blur(12px); }
.hero-caption > span, .hero-caption small { color: var(--porcelain-deep); }

.declaration { min-height: 520px; background: var(--porcelain); }
.declaration .roman { color: var(--porcelain-deep); }
.declaration > p { color: #37484b; font-style: italic; }
.classic-flourish { color: white; }
.classic-flourish i { background: white; }
.classic-flourish b { border-color: white; }

/* Historia con imágenes en arco y una nota más íntima. */
.story { grid-template-columns: .9fr 1.12fr .8fr; padding: 10rem 7vw; background: var(--paper-light); }
.story-heading { padding-top: 5rem; }
.story-heading h2 { font-size: clamp(3.5rem, 5.7vw, 6.4rem); }
.story-main { position: relative; height: 730px; overflow: hidden; border-radius: 1rem 150px 1rem 1rem; box-shadow: var(--shadow); }
.story-main::before { position: absolute; inset: 1rem; z-index: 1; border: 1px solid rgba(255,255,255,.75); border-radius: inherit; content: ""; }
.story-main figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; z-index: 2; padding: 1rem; border-radius: 999px; background: rgba(255,253,248,.9); text-align: center; }
.story-note { align-self: center; padding: 3rem 1rem; border-color: var(--porcelain-deep); }
.story-note blockquote { color: var(--porcelain-deep); }

/* Localizaciones abiertas, sin grandes masas oscuras. */
.locations { padding-block: 10rem; background: linear-gradient(180deg, var(--blush), #f4ece5); }
.locations > header { text-align: center; }
.location-layout { position: relative; grid-template-columns: .95fr 1.05fr; box-shadow: var(--shadow); }
.venue-list { display: grid; gap: 0; padding: 0; background: var(--paper-light); color: var(--ink); }
.venue-list article { grid-template-columns: 44px 52px 1fr; min-height: 50%; padding: 3.2rem; border-color: var(--line); }
.venue-list svg, .venue-number, .venue-list small { color: var(--porcelain-deep); }
.venue-list h3 { font-size: 2.3rem; }
.venue-list address { color: var(--ink-soft); }
.venue-list a { color: var(--porcelain-deep); }
.classic-map { min-height: 700px; background-color: #dbe5e3; background-image: radial-gradient(circle at 18% 24%, rgba(255,255,255,.7) 0 2px, transparent 3px), linear-gradient(rgba(89,117,125,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(89,117,125,.1) 1px, transparent 1px); background-size: 46px 46px, 50px 50px, 50px 50px; }
.map-river { border-color: rgba(255,255,255,.8); }
.map-road { background: rgba(89,117,125,.45); }
.map-pin { border: 5px solid rgba(255,255,255,.7); background: var(--paper-light); }
.map-pin svg { color: var(--porcelain-deep); }

/* Agenda clara, como una cinta ceremonial. */
.agenda { grid-template-columns: .92fr 1.08fr; gap: 0; padding: 8rem 6vw; background: var(--paper); color: var(--ink); }
.agenda-photo { display: flex; align-self: stretch; padding: 0; }
.agenda-photo figure { position: relative; flex: 1; min-height: 820px; overflow: hidden; border-radius: 180px 0 0 1rem; box-shadow: var(--shadow); }
.agenda-photo figcaption { position: absolute; right: 1.2rem; bottom: 1.2rem; left: 1.2rem; padding: 1rem; border-radius: 999px; background: rgba(255,253,248,.9); color: var(--ink-soft); text-align: center; }
.agenda-copy { position: relative; min-height: 820px; margin: 0; padding: 5rem 5vw; border-radius: 0 1rem 1rem 0; background: var(--porcelain); }
.agenda-copy .section-heading.light h2 { color: var(--ink); }
.agenda-copy ol { margin-top: 3rem; }
.agenda-copy li { grid-template-columns: 74px 45px 1fr; }
.agenda-copy time { color: var(--ink-soft); }
.agenda-copy li > span { background: rgba(89,117,125,.3); }
.agenda-copy li > span::after { border-color: white; background: var(--porcelain-deep); box-shadow: 0 0 0 5px rgba(255,255,255,.45); }
.agenda-copy li small { color: var(--ink-soft); }
.agenda-finale { color: var(--ink-soft); }

.memories { padding-block: 10rem; background: var(--paper-light); }
.memory-grid { grid-template-columns: 1fr .8fr 1fr; }
.memory-grid figure { position: relative; height: 620px; overflow: hidden; border-radius: 1rem; box-shadow: var(--shadow); }
.memory-grid figure:last-child { border-radius: 1rem; }
.memory-grid figure:last-child { margin-top: 5rem; }
.memory-grid figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; padding: .85rem; border-radius: 999px; background: rgba(255,253,248,.9); text-align: center; }
.memory-quote blockquote { color: var(--porcelain-deep); }

/* Celebración: galería de retratos, no polaroids tiradas sobre una mesa. */
.celebration-gallery { background: linear-gradient(180deg, var(--sage-light), var(--contact-background)); }
.celebration-gallery > header { align-items: center; }
.album-pages { gap: 1.6rem; }
.album-pages figure { padding: .55rem .55rem 1.4rem; border-radius: .7rem; background: var(--paper-light); box-shadow: 0 16px 45px rgba(74,96,99,.12); overflow: hidden; }
.album-pages figure:nth-child(even) { margin-top: 4rem; transform: none; }
.album-pages figure:nth-child(3n) { transform: none; }
.album-pages figure:nth-child(4n + 2) { border-radius: 100px .7rem .7rem .7rem; }
.album-pages figure:nth-child(4n + 3) { border-radius: .7rem 100px .7rem .7rem; }
.album-pages img { border-radius: inherit; border-bottom-right-radius: 0; border-bottom-left-radius: 0; filter: saturate(.78) brightness(1.03); }
.album-pages figure > span { background: var(--porcelain-deep); }
.album-pages--additional { margin-top: clamp(2rem, 4vw, 4rem); }

.details { padding-block: 10rem; background: var(--paper); }
.detail-grid { gap: 1.3rem; border: 0; }
.detail-grid article { border: 1px solid var(--line) !important; border-top: 4px solid var(--porcelain) !important; border-radius: .8rem; padding: 4.5rem 3rem 3rem; background: var(--paper-light); }
.detail-grid article:nth-child(2) { border-top-color: var(--gold-light) !important; }
.detail-grid article:nth-child(3) { border-top-color: var(--blush) !important; }
.detail-grid svg, .detail-grid article > b, .detail-grid article > span { color: var(--porcelain-deep); }

.collaborative { background: var(--porcelain-deep); }
.collaborative-copy h2 { font-size: clamp(3.7rem, 5.4vw, 6rem); }
.collaborative-copy .kicker, .collaborative-copy li span { color: var(--gold-light); }
.qr-stage { background: linear-gradient(135deg, var(--blush), var(--paper) 52%, var(--butter)); }
.qr-card { border: 0; border-radius: 1rem 100px 1rem 1rem; outline-color: rgba(181,155,105,.65); }
.qr-card img { border-radius: 0; }
.snapshot { border-radius: .6rem; overflow: hidden; }

.calendar-strip { background: var(--butter); }
.calendar-date { border-color: var(--porcelain-deep); }
.calendar-date span, .calendar-strip .kicker { color: var(--porcelain-deep); }

.contact { background: var(--paper-light); }
.direct-contact { gap: 1.4rem; border: 0; }
.direct-contact article { border: 1px solid var(--line) !important; border-radius: .8rem; background: var(--paper); }
.direct-contact article > span { border-color: var(--porcelain-deep); color: var(--porcelain-deep); }
.direct-contact small, .direct-contact p svg { color: var(--porcelain-deep); }
.direct-contact p { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.direct-contact p a { min-height: 42px; justify-content: center; padding: .65rem .8rem; border: 1px solid var(--porcelain-deep); border-radius: 999px; background: var(--paper-light); color: var(--porcelain-deep); transition: background .2s ease, color .2s ease, transform .2s ease; }
.direct-contact p a:first-child { background: var(--porcelain-deep); color: white; }
.direct-contact p a:first-child svg { color: white; }
.direct-contact p a:hover, .direct-contact p a:focus-visible { background: var(--gold); border-color: var(--gold); color: white; transform: translateY(-2px); }
.direct-contact p a:hover svg, .direct-contact p a:focus-visible svg { color: white; }
.rsvp-form { border: 0; box-shadow: var(--shadow); }
.form-intro { border-radius: .8rem 0 0 .8rem; background: var(--porcelain-deep); }
.form-intro .kicker, .form-intro > span { color: #fff8e9; }
.form-fields { background: var(--paper); }
.special-request { border-radius: 999px; background: #e7eeee; }

footer { background: var(--porcelain-deep); }
.footer-monogram { border-color: var(--gold-light); color: white; }
footer small { color: var(--gold-light); }

@media (max-width: 1050px) {
	.hero { grid-template-columns: 1fr; }
	.hero-photo { grid-row: 1; grid-column: 1; min-height: 62svh; margin: 1.5rem 1.5rem 0; }
	.hero-card { grid-row: 2; grid-column: 1; min-height: 660px; }
	.hero-caption { position: relative; right: auto; bottom: auto; width: calc(100% - 3rem); margin: -2rem 1.5rem 2rem; }
	.story { grid-template-columns: 1fr 1fr; }
	.location-layout, .agenda { grid-template-columns: 1fr; }
	.agenda { padding: 6rem 5vw; }
	.agenda-photo figure { min-height: 600px; border-radius: 140px 140px 0 0; }
	.agenda-copy { min-height: auto; margin: 0; border-radius: 0 0 1rem 1rem; }
}

/* Compatibilidad con los bloques dinámicos heredados de Editorial. */
.ws-theme-classic .classic-invitation { overflow: hidden; background: var(--paper-light); }
.ws-theme-classic .classic-main { margin: 0; }
.ws-theme-classic .classic-gate-monogram { display: grid; width: 82px; height: 98px; place-items: center; border: 1px solid var(--porcelain-deep); border-radius: 50% 50% 45% 45%; color: var(--porcelain-deep); font-family: var(--serif); font-size: 2rem; }
.ws-theme-classic .classic-gate-monogram > span { margin-left: -.65rem; font-style: italic; }
.ws-theme-classic .classic-venue-icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--porcelain-deep); border-radius: 50%; color: var(--porcelain-deep); }
.ws-theme-classic .wedding-map { width: 100%; min-height: 700px; }
.ws-theme-classic .map-fallback { display: grid; min-height: 700px; place-content: center; gap: 1rem; padding: 2rem; text-align: center; }
.ws-theme-classic .map-fallback[hidden] { display: none; }

.ws-theme-classic .details-heading { max-width: 900px; margin: 0 auto 4rem; text-align: center; }
.ws-theme-classic .details-heading > p { color: var(--gold); font-size: .68rem; font-weight: 700; letter-spacing: .23em; text-transform: uppercase; }
.ws-theme-classic .details-heading h2 { margin-top: 1rem; font-family: var(--serif); font-size: clamp(3.5rem, 6vw, 6.5rem); font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.ws-theme-classic .details-grid { display: grid; max-width: 1280px; margin: auto; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 1.3rem; border: 0; }
.ws-theme-classic .details-grid article { padding: 4.5rem 3rem 3rem; border: 1px solid var(--line); border-top: 4px solid var(--porcelain); border-radius: .8rem; background: var(--paper-light); }
.ws-theme-classic .details-grid article:nth-child(2) { border-top-color: var(--gold-light); }
.ws-theme-classic .details-grid article:nth-child(3) { border-top-color: var(--blush); }
.ws-theme-classic .detail-icon { color: var(--porcelain-deep); font-family: var(--serif); }
.ws-theme-classic .details-grid h3 { margin: 1.4rem 0 .8rem; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.ws-theme-classic .details-grid article > p:last-of-type { white-space: pre-line; }

.ws-theme-classic .collaborative-album { background: var(--porcelain-deep); }
.ws-theme-classic .collaborative-album__copy h2 { font-family: var(--serif); font-size: clamp(3.7rem, 5.4vw, 6rem); font-weight: 400; letter-spacing: -.05em; line-height: .94; }
.ws-theme-classic .collaborative-album__copy .eyebrow,
.ws-theme-classic .collaborative-album__copy li span { color: var(--gold-light); }
.ws-theme-classic .collaborative-album__button { border-radius: 999px; background: var(--paper-light); color: var(--ink); }
.ws-theme-classic .collaborative-album__visual { background: linear-gradient(135deg, var(--blush), var(--paper) 52%, var(--butter)); }
.ws-theme-classic .collaborative-album__card { border: 0; border-radius: 1rem 100px 1rem 1rem; }

.ws-theme-classic .calendar-strip { background: var(--butter); }
.ws-theme-classic .calendar-strip p { color: var(--porcelain-deep); }
.ws-theme-classic .calendar-button { border-color: var(--porcelain-deep); border-radius: 999px; background: var(--porcelain-deep); color: white; }

.ws-theme-classic .contact { padding: 10rem 6vw; background: var(--paper-light); }
.ws-theme-classic .contact-heading { max-width: 950px; margin: 0 auto 4rem; text-align: center; }
.ws-theme-classic .contact-heading h2 { font-family: var(--serif); font-size: clamp(3.5rem, 6vw, 6.5rem); font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.ws-theme-classic .contact-heading > p { max-width: 680px; margin: 1.4rem auto 0; color: var(--ink-soft); }
.ws-theme-classic .contact-help { max-width: 1180px; margin: auto; }
.ws-theme-classic .contact-direct { margin-bottom: 2rem; color: var(--ink-soft); text-align: center; }
.ws-theme-classic .couple-contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.ws-theme-classic .person-card { display: grid; gap: 2rem; padding: 2.2rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--paper); }
.ws-theme-classic .person-identity { display: flex; align-items: center; gap: 1.2rem; }
.ws-theme-classic .person-initial { display: grid; width: 64px; height: 76px; flex: 0 0 auto; place-items: center; border: 1px solid var(--porcelain-deep); border-radius: 50% 50% 45% 45%; color: var(--porcelain-deep); font-family: var(--serif); font-size: 1.8rem; }
.ws-theme-classic .person-identity p { color: var(--porcelain-deep); font-size: .62rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.ws-theme-classic .person-identity h4 { font-family: var(--serif); font-size: 2.2rem; font-weight: 400; }
.ws-theme-classic .contact-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.ws-theme-classic .contact-actions a,
.ws-theme-classic .contact-action { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .5rem; padding: .7rem 1rem; border: 1px solid var(--porcelain-deep); border-radius: 999px; color: var(--porcelain-deep); font-size: .7rem; font-weight: 700; text-decoration: none; text-transform: uppercase; }
.ws-theme-classic .contact-actions .whatsapp-action { background: var(--whatsapp-background); color: white; }
.ws-theme-classic .contact-actions .icon { width: 18px; height: 18px; }
.ws-theme-classic .request-panel { display: grid; max-width: 1180px; margin: 5rem auto 0; grid-template-columns: .72fr 1.28fr; border: 0; border-radius: .8rem; box-shadow: var(--shadow); overflow: hidden; }
.ws-theme-classic .request-copy { padding: 4rem; background: var(--porcelain-deep); color: white; }
.ws-theme-classic .request-copy .form-step { color: var(--gold-light); }
.ws-theme-classic .request-copy h3 { margin: 1rem 0; font-family: var(--serif); font-size: clamp(2.5rem, 4vw, 4.3rem); font-weight: 400; line-height: .98; }
.ws-theme-classic .request-form { padding: 3rem; background: var(--paper); }
.ws-theme-classic .request-form input,
.ws-theme-classic .request-form select,
.ws-theme-classic .request-form textarea { border-color: var(--line); background: var(--paper-light); }
.ws-theme-classic .request-form .submit-button { border-radius: 999px; background: var(--porcelain-deep); }

@media (max-width: 900px) {
	.ws-theme-classic .details-grid { grid-template-columns: 1fr; }
	.ws-theme-classic .request-panel { grid-template-columns: 1fr; }
	.ws-theme-classic .request-copy { padding: 3rem 2rem; }
}

@media (max-width: 720px) {
	.ws-theme-classic .site-header.is-menu-open nav { display: grid; position: absolute; top: 100%; right: 0; left: 0; gap: 0; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); background: var(--paper-light); }
	.ws-theme-classic .site-header.is-menu-open nav a { padding: .8rem 0; }
	.ws-theme-classic .wedding-map,
	.ws-theme-classic .map-fallback { min-height: 520px; }
	.ws-theme-classic .couple-contacts { grid-template-columns: 1fr; }
	.ws-theme-classic .contact { padding: 6rem 1.25rem; }
	.ws-theme-classic .contact-actions { grid-template-columns: 1fr; }
	.ws-theme-classic .request-form { padding: 2rem 1rem; }
}

@media (max-width: 720px) {
	.invitation-card { min-height: min(570px, calc(100svh - 90px)); padding-inline: 1.4rem; }
	.invitation-card::before { right: 1.2rem; left: 1.2rem; }
	.gate-hint { bottom: 5.5rem; }
	.hero-photo { min-height: 55svh; border-width: 7px; }
	.hero-card { min-height: 620px; padding: 5rem 1.25rem; }
	.hero-card::before { inset: 3rem 1rem; }
	.hero-card::after { width: 85px; height: 110px; }
	.hero-caption { grid-template-columns: auto 1fr; border-radius: 1.2rem; }
	.declaration { min-height: 440px; }
	.story { grid-template-columns: 1fr; }
	.story-heading { padding-top: 0; }
	.story-main { height: 530px; }
	.venue-list article { padding: 2rem 1.5rem; }
	.agenda { padding: 5rem 1.25rem; }
	.agenda-photo figure { min-height: 520px; border-radius: 90px 90px 0 0; }
	.agenda-copy { margin: 0; padding: 5rem 1.25rem; border-radius: 0 0 1rem 1rem; }
	.memory-grid figure { height: 500px; }
	.album-pages { gap: .8rem; }
	.album-pages figure:nth-child(even) { margin-top: 2rem; }
	.detail-grid article { border-radius: .8rem; }
	.direct-contact article { grid-template-columns: 55px 1fr; border-radius: 1rem; }
	.form-intro { border-radius: .8rem .8rem 0 0; }
	.special-request { border-radius: 1rem; }
}

/* Revisión visual 2026-08: navegación integrada y componentes más editoriales. */
.ws-theme-classic a[href],
.ws-theme-classic button:not(:disabled),
.ws-theme-classic [role="button"] {
	cursor: pointer;
}

.ws-theme-classic .button,
.ws-theme-classic .calendar-button,
.ws-theme-classic .collaborative-album__button,
.ws-theme-classic .contact-actions a,
.ws-theme-classic .venue-list a,
.ws-theme-classic .submit-button,
.ws-theme-classic .rsvp-add {
	transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease, border-color .24s ease, color .24s ease;
}

.ws-theme-classic .button:hover,
.ws-theme-classic .button:focus-visible,
.ws-theme-classic .calendar-button:hover,
.ws-theme-classic .calendar-button:focus-visible,
.ws-theme-classic .collaborative-album__button:hover,
.ws-theme-classic .collaborative-album__button:focus-visible,
.ws-theme-classic .contact-actions a:hover,
.ws-theme-classic .contact-actions a:focus-visible,
.ws-theme-classic .submit-button:hover,
.ws-theme-classic .submit-button:focus-visible,
.ws-theme-classic .rsvp-add:hover,
.ws-theme-classic .rsvp-add:focus-visible {
	box-shadow: 0 12px 28px rgb(53 67 70 / 16%);
	transform: translateY(-3px);
}

.ws-theme-classic .site-header {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 100;
	min-height: 88px;
	border-bottom-color: rgb(53 67 70 / 12%);
	background: linear-gradient(180deg, rgb(255 253 248 / 82%), rgb(255 253 248 / 36%) 72%, transparent);
	backdrop-filter: none;
}

.ws-theme-classic .hero {
	min-height: 100svh;
}

.ws-theme-classic .hero-photo,
.ws-theme-classic .hero-card {
	min-height: 100svh;
}

.ws-theme-classic .story-main figcaption,
.ws-theme-classic .memory-grid figcaption,
.ws-theme-classic .agenda-photo figcaption,
.ws-theme-classic .album-pages figcaption {
	display: none;
}

/* El mapa pasa a ser la pieza protagonista y las localizaciones, su leyenda. */
.ws-theme-classic .locations {
	padding: clamp(6rem, 9vw, 9rem) 5vw;
	background: linear-gradient(180deg, color-mix(in srgb, var(--blush) 72%, white), var(--paper));
}

.ws-theme-classic .locations > header {
	max-width: 900px;
	margin: 0 auto clamp(3rem, 5vw, 5rem);
}

.ws-theme-classic .location-layout {
	position: relative;
	display: grid;
	max-width: 1380px;
	min-height: 760px;
	grid-template: 1fr / 1fr;
	box-shadow: none;
}

.ws-theme-classic .classic-map {
	grid-area: 1 / 1;
	min-height: 760px;
	overflow: hidden;
	border: 10px solid var(--paper-light);
	border-radius: 170px 1.2rem 1.2rem;
	box-shadow: var(--shadow);
}

.ws-theme-classic .wedding-map,
.ws-theme-classic .map-fallback {
	min-height: 740px;
}

.ws-theme-classic .venue-list {
	z-index: 4;
	display: grid;
	align-self: end;
	width: min(520px, calc(100% - 4rem));
	margin: 0 0 2rem 2rem;
	grid-area: 1 / 1;
	border: 1px solid rgb(255 255 255 / 75%);
	border-radius: 1rem;
	background: rgb(255 253 248 / 91%);
	box-shadow: 0 24px 70px rgb(53 67 70 / 20%);
	backdrop-filter: blur(18px);
	overflow: hidden;
}

.ws-theme-classic .venue-list article {
	min-height: 0;
	padding: 2rem;
	grid-template-columns: 40px 1fr;
}

.ws-theme-classic .venue-list .classic-venue-icon {
	display: none;
}

.ws-theme-classic .venue-list h3 {
	margin: .35rem 0;
	font-size: clamp(1.65rem, 2.6vw, 2.25rem);
}

.ws-theme-classic .venue-list a {
	display: inline-flex;
	margin-top: 1rem;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-decoration: none;
	text-transform: uppercase;
}

.ws-theme-classic .venue-list a:hover,
.ws-theme-classic .venue-list a:focus-visible {
	color: var(--gold);
	transform: translateX(4px);
}

/* Imagen y agenda comparten exactamente la misma altura. */
.ws-theme-classic .agenda {
	align-items: stretch;
	grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
}

.ws-theme-classic .agenda-photo,
.ws-theme-classic .agenda-photo figure,
.ws-theme-classic .agenda-copy {
	height: 100%;
	min-height: 850px;
}

.ws-theme-classic .agenda-photo figure {
	border-radius: 190px 0 0 1rem;
}

.ws-theme-classic .agenda-photo img,
.ws-theme-classic .agenda-photo .editorial-image-placeholder {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ws-theme-classic .agenda-copy {
	display: flex;
	justify-content: center;
	flex-direction: column;
}

.ws-theme-classic .album-pages figure > span:not(.editorial-image-placeholder) {
	display: none;
}

/* Catálogo común de iconos para información útil. */
.ws-theme-classic .detail-icon,
.ws-theme-editorial .detail-icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin: 0;
	border: 1px solid currentColor;
	border-radius: 50%;
}

.ws-theme-classic .detail-icon svg,
.ws-theme-editorial .detail-icon svg {
	width: 30px;
	height: 30px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

/* El filete interior repite la silueta de la tarjeta QR. */
.ws-theme-classic .collaborative-album__card,
.ws-theme-classic .collaborative-album__card::before {
	border-radius: 1rem 100px 1rem 1rem;
}

.ws-theme-classic .collaborative-album__card {
	padding-top: clamp(3.8rem, 6vw, 5rem);
}

.ws-theme-classic .collaborative-album__card > p {
	display: grid;
	gap: .1rem;
	width: 100%;
	margin-bottom: 1.1rem;
	font-size: clamp(1.55rem, 2.6vw, 2.3rem);
	line-height: .95;
}

.ws-theme-classic .collaborative-album__card > p span {
	overflow-wrap: anywhere;
}

.ws-theme-classic .collaborative-album__card > p i {
	padding: .18rem 0;
}

.ws-theme-classic .collaborative-album__card::before {
	inset: 12px;
	border-radius: .55rem 88px .55rem .55rem;
}

/* Guardar la fecha como recordatorio compacto, no como una banda enorme. */
.ws-theme-classic .calendar-strip {
	width: min(1080px, calc(100% - 3rem));
	margin: clamp(5rem, 8vw, 8rem) auto;
	padding: 2rem 2.2rem;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2rem;
	border: 1px solid color-mix(in srgb, var(--porcelain-deep) 34%, transparent);
	border-radius: 1rem;
	background: color-mix(in srgb, var(--butter) 74%, white);
	box-shadow: 0 18px 55px rgb(53 67 70 / 9%);
}

.ws-theme-classic .calendar-strip div {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .7rem 1.5rem;
	align-items: center;
}

.ws-theme-classic .calendar-strip div p {
	grid-row: 1 / 3;
	padding-right: 1.5rem;
	border-right: 1px solid color-mix(in srgb, var(--porcelain-deep) 38%, transparent);
	font-family: var(--serif);
	font-size: clamp(1.4rem, 2.5vw, 2.15rem);
}

.ws-theme-classic .calendar-strip div span {
	color: var(--ink);
	font-family: var(--serif);
	font-size: clamp(1.35rem, 2.4vw, 2rem);
	line-height: 1.1;
}

.ws-theme-classic .calendar-button {
	width: auto;
	min-height: 48px;
	padding: .75rem 1.25rem;
	white-space: nowrap;
}

/* Contactos claros y formulario con una densidad más razonable. */
.ws-theme-classic .contact {
	padding: clamp(6rem, 8vw, 8rem) 5vw;
}

.ws-theme-classic .contact-heading {
	margin-bottom: 3rem;
}

.ws-theme-classic .person-card {
	align-items: center;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1.5rem;
	padding: 1.5rem;
	border: 0;
	border-left: 4px solid var(--porcelain-deep);
	border-radius: .35rem;
	background: linear-gradient(110deg, var(--paper), var(--paper-light));
	box-shadow: 0 15px 45px rgb(53 67 70 / 9%);
}

.ws-theme-classic .person-initial {
	width: 54px;
	height: 54px;
	border-radius: 50%;
}

.ws-theme-classic .person-identity h4 {
	font-size: 1.85rem;
}

.ws-theme-classic .contact-actions {
	display: flex;
	gap: .55rem;
}

.ws-theme-classic .contact-actions a,
.ws-theme-classic .contact-action {
	min-height: 42px;
	padding: .65rem .85rem;
	border-radius: .35rem;
}

.ws-theme-classic .request-panel {
	max-width: 1120px;
	margin-top: 3.5rem;
	grid-template-columns: .74fr 1.26fr;
	gap: 0;
	padding: 0;
	border-radius: .5rem;
}

.ws-theme-classic .request-copy {
	padding: 2.75rem;
}

.ws-theme-classic .request-copy h3 {
	font-size: clamp(2.35rem, 3.4vw, 3.7rem);
}

.ws-theme-classic .request-form {
	gap: .8rem;
	padding: 2rem;
}

.ws-theme-classic .rsvp-guest {
	gap: 1rem;
	padding: 1.25rem;
	box-shadow: none;
}

.ws-theme-classic .rsvp-primary-contact {
	padding: .9rem;
}

.ws-theme-classic .rsvp-transport-option {
	min-height: 48px;
	padding: .55rem .7rem;
}

@media (max-width: 900px) {
	.ws-theme-classic .hero-photo,
	.ws-theme-classic .hero-card {
		min-height: auto;
	}

	.ws-theme-classic .location-layout,
	.ws-theme-classic .classic-map,
	.ws-theme-classic .wedding-map,
	.ws-theme-classic .map-fallback {
		min-height: 660px;
	}

	.ws-theme-classic .venue-list {
		width: calc(100% - 2rem);
		margin: 0 1rem 1rem;
	}

	.ws-theme-classic .agenda-photo,
	.ws-theme-classic .agenda-photo figure,
	.ws-theme-classic .agenda-copy {
		min-height: 620px;
	}

	.ws-theme-classic .person-card,
	.ws-theme-classic .request-panel {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.ws-theme-classic .site-header {
		min-height: 72px;
		padding-inline: 1.25rem;
	}

	.ws-theme-classic .site-header.is-menu-open nav {
		background: rgb(255 253 248 / 96%);
		backdrop-filter: blur(14px);
	}

	.ws-theme-classic .classic-map {
		border-width: 6px;
		border-radius: 90px 1rem 1rem;
	}

	.ws-theme-classic .venue-list article {
		padding: 1.4rem;
		grid-template-columns: 30px 1fr;
	}

	.ws-theme-classic .agenda-photo,
	.ws-theme-classic .agenda-photo figure {
		height: 520px;
		min-height: 520px;
	}

	.ws-theme-classic .agenda-copy {
		height: auto;
		min-height: 0;
	}

	.ws-theme-classic .calendar-strip,
	.ws-theme-classic .calendar-strip div {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.ws-theme-classic .calendar-strip div p {
		grid-row: auto;
		padding: 0 0 .75rem;
		border-right: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--porcelain-deep) 38%, transparent);
	}

	.ws-theme-classic .calendar-button {
		justify-content: center;
		width: 100%;
	}

	.ws-theme-classic .contact-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ws-theme-classic .request-copy,
	.ws-theme-classic .request-form {
		padding: 1.5rem;
	}
}

/* Remate final: RSVP centrado, calendario continuo y cierre compacto. */
.ws-theme-classic .contact {
	padding-inline: 2vw;
}

.ws-theme-classic .request-panel {
	width: 100%;
	max-width: 1480px;
}

.ws-theme-classic .request-copy {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: .65rem;
	padding: 2rem 3rem 2.25rem;
	text-align: center;
}

.ws-theme-classic .request-copy .form-step {
	color: rgb(255 255 255 / 68%) !important;
}

.ws-theme-classic .request-copy h3 {
	max-width: none;
}

.ws-theme-classic .request-copy > p:last-child {
	max-width: 760px;
	margin: 0;
}

.ws-theme-classic .calendar-strip {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 2.5rem 7vw;
	border-right: 0;
	border-left: 0;
	border-radius: 0;
	box-shadow: none;
}

.ws-theme-classic .site-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	min-height: 230px;
	gap: .55rem;
	padding: 2.5rem 1.5rem;
	text-align: center;
}

.ws-theme-classic .site-footer .footer-monogram,
.ws-theme-classic .site-footer > b {
	display: none;
}

.ws-theme-classic .site-footer > p {
	margin: 0;
	font-size: clamp(1.7rem, 3vw, 2.35rem);
}

.ws-theme-classic .site-footer > small {
	font-size: .62rem;
}

.ws-theme-classic .site-footer > a {
	margin-top: .45rem;
	color: white;
	font-size: .64rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-decoration: none;
	text-transform: uppercase;
}

.ws-theme-classic .site-footer > a:hover,
.ws-theme-classic .site-footer > a:focus-visible {
	color: var(--gold-light);
}

.ws-theme-classic .site-footer > .weddingstory-credit {
	margin-top: .35rem;
	padding: .35rem .65rem;
	border: 0;
	font-size: .68rem;
	letter-spacing: .08em;
	text-transform: none;
}

.ws-theme-classic .site-footer > .weddingstory-credit span {
	display: inline-block;
	margin: 0 .2rem;
	color: var(--gold-light);
	transition: transform .2s ease;
}

.ws-theme-classic .site-footer > .weddingstory-credit:hover span,
.ws-theme-classic .site-footer > .weddingstory-credit:focus-visible span { transform: scale(1.18); }

/* Segunda revisión: elimina líneas heredadas y refuerza las piezas clave. */
.ws-theme-classic .site-header {
	border: 0;
	box-shadow: none;
}

.ws-theme-classic .hero-card::before {
	display: none;
}

/* Sello Clásico: medallón de porcelana inspirado en una pieza heráldica. */
.ws-theme-classic .classic-hero-seal {
	position: absolute;
	top: 49%;
	left: 46%;
	z-index: 8;
	display: grid;
	place-items: center;
	width: clamp(96px, 8vw, 122px);
	aspect-ratio: 1;
	border: 1px solid color-mix(in srgb, var(--gold-light) 82%, transparent);
	background: color-mix(in srgb, var(--porcelain-deep) 94%, transparent);
	box-shadow: inset 0 0 0 7px rgb(255 255 255 / 7%), 0 22px 55px rgb(31 48 52 / 28%);
	clip-path: polygon(18% 0, 82% 0, 100% 18%, 100% 82%, 82% 100%, 18% 100%, 0 82%, 0 18%);
	color: var(--paper-light);
	pointer-events: none;
	transform: translate(-50%, -50%) rotate(-2deg);
	backdrop-filter: blur(6px);
}

.ws-theme-classic .classic-hero-seal::before {
	position: absolute;
	inset: 9px;
	border: 1px solid color-mix(in srgb, var(--porcelain-deep) 34%, transparent);
	content: "";
	clip-path: inherit;
}

.ws-theme-classic .classic-hero-seal svg {
	position: relative;
	z-index: 1;
	width: 82%;
	height: 82%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.25;
}

.ws-theme-classic .classic-hero-seal text {
	fill: currentColor;
	stroke: none;
}

.ws-theme-classic .classic-hero-seal__initials {
	font-family: var(--serif);
	font-size: 24px;
	letter-spacing: .08em;
}

.ws-theme-classic .classic-hero-seal__date {
	fill: var(--gold-light);
	font-family: var(--sans);
	font-size: 6px;
	font-weight: 800;
	letter-spacing: .12em;
}

@media (max-width: 1050px) {
	.ws-theme-classic .classic-hero-seal {
		top: calc(62svh + 1.5rem);
		left: 50%;
	}
}

@media (max-width: 720px) {
	.ws-theme-classic .classic-hero-seal {
		top: calc(55svh + 5rem);
		width: 88px;
	}
}

.ws-theme-classic .locations {
	background:
		radial-gradient(circle at 8% 16%, rgb(255 255 255 / 8%) 0 1px, transparent 2px),
		linear-gradient(145deg, color-mix(in srgb, var(--porcelain-deep) 88%, var(--ink)), var(--porcelain-deep));
	background-size: 28px 28px, auto;
}

.ws-theme-classic .locations > header .kicker {
	color: var(--gold-light);
}

.ws-theme-classic .locations > header h2 {
	color: white;
}

.ws-theme-classic .classic-map {
	border: 12px solid color-mix(in srgb, var(--paper-light) 92%, var(--gold-light));
	border-radius: 1.2rem 190px 1.2rem 1.2rem;
	box-shadow: 0 35px 90px rgb(31 48 52 / 32%);
}

.ws-theme-classic .venue-list {
	align-self: center;
	justify-self: end;
	width: min(500px, calc(100% - 4rem));
	margin: 0 2rem 0 0;
	border-radius: 1rem 120px 1rem 1rem;
}

.ws-theme-classic .venue-list article:first-child {
	padding-top: 2.6rem;
}

.ws-theme-classic .venue-list article:last-child {
	padding-bottom: 2.6rem;
}

.ws-theme-classic .collaborative-album__visual {
	position: relative;
	margin: clamp(2rem, 4vw, 4rem);
	min-height: 610px;
	border: 1px solid color-mix(in srgb, var(--porcelain-deep) 28%, transparent);
	border-radius: 180px 1.2rem 1.2rem;
	background:
		radial-gradient(circle at 50% 47%, transparent 0 30%, color-mix(in srgb, var(--gold) 24%, transparent) 30.2% 30.5%, transparent 30.8% 42%, color-mix(in srgb, var(--porcelain-deep) 18%, transparent) 42.2% 42.5%, transparent 42.8%),
		linear-gradient(145deg, color-mix(in srgb, var(--paper-light) 72%, var(--porcelain)), color-mix(in srgb, var(--blush) 55%, var(--paper)));
	box-shadow: inset 0 0 0 12px rgb(255 255 255 / 25%);
}

.ws-theme-classic .collaborative-album__visual::before {
	position: absolute;
	top: 2rem;
	right: 2rem;
	z-index: 5;
	display: grid;
	width: 58px;
	height: 58px;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--gold) 55%, transparent);
	border-radius: 50%;
	content: "✦";
	color: var(--gold);
	font-family: var(--serif);
	font-size: 1.2rem;
}

.ws-theme-classic .contact {
	padding-inline: 3vw;
}

.ws-theme-classic .contact-help {
	max-width: 1360px;
}

.ws-theme-classic .request-panel {
	width: min(100%, 1400px);
	max-width: 1400px;
	grid-template-columns: minmax(300px, .58fr) minmax(0, 1.42fr);
}

@media (max-width: 900px) {
	.ws-theme-classic .venue-list {
		align-self: end;
		width: calc(100% - 2rem);
		margin: 0 1rem 1rem;
		border-radius: 1rem 75px 1rem 1rem;
	}

	.ws-theme-classic .collaborative-album__visual {
		margin: 1.5rem;
		border-radius: 110px 1rem 1rem;
	}

	.ws-theme-classic .request-panel {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.ws-theme-classic .classic-map {
		border-width: 6px;
		border-radius: 1rem 90px 1rem 1rem;
	}

	.ws-theme-classic .collaborative-album__visual {
		margin: 1rem 0;
		border-radius: 80px 1rem 1rem;
	}
}

/* Tercera revisión: respiración del hero, QR sin soporte y RSVP unificado. */
@media (min-width: 1051px) {
	.ws-theme-classic .hero-photo {
		min-height: calc(100svh - 9rem);
		margin: 7rem 3.2rem 2rem 0;
	}
}

.ws-theme-classic .collaborative-album__visual {
	margin: 0;
	min-height: 670px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.ws-theme-classic .collaborative-album__visual::before {
	display: none;
}

.ws-theme-classic .request-panel {
	display: grid;
	width: min(100%, 1400px);
	grid-template-columns: 1fr;
	border: 1px solid color-mix(in srgb, var(--porcelain-deep) 28%, transparent);
	border-radius: .5rem;
	background: var(--paper);
	box-shadow: 0 24px 65px rgb(53 67 70 / 10%);
	overflow: hidden;
}

.ws-theme-classic .request-copy {
	display: grid;
	align-items: end;
	grid-template-columns: minmax(280px, .7fr) minmax(320px, 1.3fr);
	gap: 1rem 3rem;
	padding: 2rem 3rem;
	background: var(--porcelain-deep);
}

.ws-theme-classic .request-copy .form-step {
	grid-column: 1 / -1;
	margin: 0;
}

.ws-theme-classic .request-copy h3 {
	margin: 0;
	font-size: clamp(2.25rem, 3.4vw, 3.6rem);
}

.ws-theme-classic .request-copy > p:last-child {
	max-width: 650px;
	margin: 0 0 .35rem;
	color: rgb(255 255 255 / 78%);
}

.ws-theme-classic .request-form {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 2rem 3rem 2.5rem;
	background: var(--paper);
	box-shadow: none;
}

.ws-theme-classic .rsvp-guest > legend {
	margin: 0 auto;
	padding: .25rem 1rem;
	color: var(--porcelain-deep);
	font-size: 1.05rem;
	text-align: center;
}

@media (max-width: 1050px) {
	.ws-theme-classic .hero-photo {
		margin-top: 5.5rem;
	}

	.ws-theme-classic .request-copy {
		grid-template-columns: 1fr;
		gap: .75rem;
	}
}

@media (max-width: 720px) {
	.ws-theme-classic .hero-photo {
		margin: 5rem 1rem 0;
	}

	.ws-theme-classic .request-copy,
	.ws-theme-classic .request-form {
		padding: 1.5rem;
	}
}

/* La cabecera RSVP debe prevalecer sobre la composición histórica anterior. */
.ws-theme-classic .contact {
	padding-inline: 2vw;
}

.ws-theme-classic .request-panel {
	width: 100%;
	max-width: 1480px;
}

.ws-theme-classic .request-copy {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: .65rem;
	padding: 2rem 3rem 2.25rem;
	text-align: center;
}

.ws-theme-classic .request-copy .form-step {
	margin: 0;
	color: rgb(255 255 255 / 68%) !important;
}

.ws-theme-classic .request-copy h3 {
	max-width: none;
	margin: 0;
}

.ws-theme-classic .request-copy > p:last-child {
	max-width: 760px;
	margin: 0;
}

@media (max-width: 720px) {
	.ws-theme-classic .request-copy {
		padding: 1.5rem;
	}
}
