/*!
Theme Name: AnaluyDava
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.1.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: analuydava
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

AnaluyDava is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
  color: #404040;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu,
    Cantarell, "Helvetica Neue", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
}

p {
  margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}

code,
kbd,
tt,
var {
  font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

big {
  font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
  background: #fff;
}

hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

ul,
ol {
  margin: 0 0 1.5em 3em;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%;
}

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

figure {
  margin: 1em 0;
}

table {
  margin: 0 0 1.5em;
  width: 100%;
}

/* Links
--------------------------------------------- */
a {
  color: #4169e1;
}

a:visited {
  /* color: #800080; */
}

a:hover,
a:focus,
a:active {
  color: #191970;
}

a:focus {
  outline: thin dotted;
}

a:hover,
a:active {
  outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
  border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
  border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
  color: #111;
}

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: 100%;
}

.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.main-navigation ul ul {
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  float: left;
  position: absolute;
  top: 100%;
  left: -999em;
  z-index: 99999;
}

.main-navigation ul ul ul {
  left: -999em;
  top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
  display: block;
  left: auto;
}

.main-navigation ul ul a {
  width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
  left: auto;
}

.main-navigation li {
  position: relative;
}

.main-navigation a {
  display: block;
  text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

@media screen and (min-width: 37.5em) {
  .menu-toggle {
    display: none;
  }

  .main-navigation ul {
    display: flex;
  }
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
  flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
  display: block;
}

.post,
.page {
  margin: 0 0 1.5em;
}

.updated:not(.published) {
  display: none;
}

.page-content,
.entry-content,
.entry-summary {
  margin: 1.5em 0 0;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}

.widget select {
  max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

.wp-caption-text {
  text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.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 !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;

  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}

.alignright {
  /*rtl:ignore*/
  float: right;

  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

:root {
  /* --- PALETA DE COLORES --- */

  /* Azul Principal: Usado para encabezados, footers y textos importantes */
  --clr-primary: #003262;
  --clr-primary-dark: #002347;
  /* Versión más oscura para hover states */

  /* Dorado: Usado para botones (CTA), bordes y detalles caligráficos */
  --clr-accent: #d4af37;
  --clr-accent-light: #f3e5ab;
  /* Dorado muy suave para fondos de cajas */

  /* Verde: Usado para romper la monotonía o secciones de "Lugar/Finca" */
  --clr-secondary: #4a5d23;

  /* Neutros y Blancos */
  --clr-bg-body: #f7f7f7;
  /* Blanco humo, menos agresivo que el blanco puro */
  --clr-bg-card: #ffffff;
  /* Blanco puro para tarjetas de contenido */
  --clr-bg-paper: #edeae0;
  /* Tono "Hueso" para invitaciones digitales */
  --clr-text-main: #333333;
  /* Gris muy oscuro para lectura larga (más cómodo que negro) */
  --clr-text-inv: #ffffff;
  /* Texto sobre fondos oscuros */

  /* --- TIPOGRAFÍA (Sugiero definirla aquí también) --- */
  /* Ejemplo: Serif para títulos (elegancia) y Sans para cuerpo (legibilidad) */
  --font-heading: "Playfair Display", Georgia, serif;
  --font-body: "Lato", Helvetica, Arial, sans-serif;

  /* --- LAYOUT SINGLE PAGE --- */
  --header-height: 80px;
  /* Altura de tu menú fijo */
  --section-spacing: 5rem;
  /* Espaciado consistente entre secciones */
  --border-radius: 8px;
  /* Suavizado de bordes */
  --shadow-card: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* --- RESET BÁSICO Y SINGLE PAGE BEHAVIOR --- */

html {
  scroll-behavior: smooth;
  /* Crucial para el efecto "One Page" al navegar */
  scroll-padding-top: var(--header-height);
  /* Evita que el menú tape el título al hacer scroll */
}

body {
  background-color: var(--clr-bg-body);
  color: var(--clr-text-main);
  font-family: var(--font-body);
  line-height: 1.6;
}

/* --- EJEMPLOS DE USO --- */

/* Títulos */
h1,
h2,
h3,
h4 {
  font-family: var(--font-heading);
  color: var(--clr-primary);
  margin-bottom: 1rem;
}

h2 {
  /* text-align: center;
  text-transform: uppercase;
  letter-spacing: 2px;
  border-bottom: 2px solid var(--clr-accent);
  display: inline-block;
  padding-bottom: 10px; */
}

/* Secciones de la One Page */
section {
  padding: var(--section-spacing) 0; /* Quitamos el 1rem lateral para evitar scroll horizontal */
  width: 100%; /* Forzamos a que el fondo ocupe toda la pantalla */
  /* Eliminamos el max-width */
}

/* Sección alternativa (ej: La Finca o El Menú) */
section.alt-bg {
  background-color: var(--clr-bg-paper);
  width: 100%;
  /* Rompe el contenedor para ir de lado a lado */
  max-width: none;
}

/* Botones (Confirmación de asistencia, mapa, etc) */
.btn-boda {
  background-color: var(--clr-primary);
  color: var(--clr-text-inv);
  padding: 12px 24px;
  border: 2px solid var(--clr-primary);
  text-transform: uppercase;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
}

.btn-boda:hover {
  background-color: var(--clr-accent);
  border-color: var(--clr-accent);
  color: var(--clr-primary);
  /* Texto azul sobre fondo dorado */
}

/* Footer */
.site-footer {
  background-color: var(--clr-primary);
  color: var(--clr-accent-light);
  text-align: center;
  padding: 2rem;
}

/* -----------------HEADER---------------------------- */
/* --- IMPORTAR FUENTES --- */
/* Ejemplo: 'Great Vibes' para cursiva y 'Cinzel' para textos elegantes */
/* @import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Great+Vibes&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&display=swap"); */

:root {
  /* Usamos tus variables azules y doradas */
  --font-script: "Great Vibes", cursive;
  --font-elegant: "Cinzel", serif;
  --font-ana: "Cormorant Garamond";
  --font-symphony: "SymphonyPro-Regular", serif;
  --font-symphony-bold: "SymphonyPro-Bold", serif;
}

/* --- HEADER CONFIGURATION --- */
.site-header {
  position: fixed;
  /* Fijo para que siempre se vea */
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: transparent;
  /* Transparente inicial */
  transition:
    background-color 0.4s ease,
    padding 0.4s ease;
  padding-top: 50px;
  padding-bottom: 20px;
  background-color: transparent;
  transition: all 0.4s ease;
  /* Suaviza el cambio de tamaño */
}

/* Cuando hagamos scroll y añadamos la clase 'scrolled' con JS */
.site-header.scrolled {
  background-color: #2c3646;
  /* Tu azul #003262 con transparencia */
  padding-top: 40px;
  padding-bottom: 5px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

/* --- FLEXBOX MENU --- */
.split-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* Los lados ocupan el mismo espacio para asegurar que el centro sea matemático */
.nav-left,
.nav-right {
  flex: 1;
  display: flex;
  gap: 3rem;
  /* Espacio entre enlaces */
}

.nav-left {
  justify-content: flex-end;
}

/* Alineado a la derecha del bloque izq */
.nav-right {
  justify-content: flex-start;
}

/* Alineado a la izquierda del bloque der */

/* Estilos de Enlaces Normales */
.nav-link {
  font-family: var(--font-elegant);
  color: #ffffff;
  /* Blanco para ver sobre foto */
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 1.2rem;
  transition: color 0.3s;
}

.nav-link:hover {
  color: var(--clr-accent);
  /* Tu dorado al pasar el ratón */
}

/* Estilo de "Home" Central */
.nav-center {
  flex: 0 0 150px;
  /* Ancho fijo para el centro */
  text-align: center;
  margin: 0 2rem;
}

.home-link {
  font-family: var(--font-symphony-bold);
  font-size: 6rem;
  /* Mucho más grande */
  color: #ffffff;
  text-decoration: none;
  line-height: 1;
}

/* --- HERO SECTION & LOGO --- */
.hero-section {
  height: 100vh;
  /* Pantalla completa */
  background-image: url("https://aydwedding.es/75d42a68-93c6-4a98-aea0-3a40dbd16c74/");
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;

  /* Overlay oscuro para que se lea el texto sobre la foto */
  box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.3);
}

.hero-content {
  margin-top: 60px;
  /* Empujamos un poco abajo para compensar el header */
  color: #ffffff;
}

.hero-logo {
  width: 300px;
  /* Ajusta el tamaño de tu PNG */
  display: block;
  margin: 0 auto 2rem auto;
  /* Centrado y separado de los nombres */
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.couple-names {
  font-family: var(--font-symphony-bold);
  font-size: 6.5rem;
  margin: 0;
  line-height: 1.2;
  color: #ffffff;
}

.name-top {
  /* En lugar de pegarse al borde, lo movemos un poco a la izquierda */
  transform: translateX(-20%);
}

.amp {
  font-size: 5rem;
  /* Margen negativo arriba y abajo para juntar los nombres */
  margin: -30px 0;
  opacity: 0.9;
}

.name-bottom {
  /* Lo movemos un poco a la derecha */
  transform: translateX(20%);
}

@media (max-width: 768px) {
  .couple-names {
    font-size: 4rem;
    max-width: 100%;
  }

  .name-top,
  .name-bottom {
    transform: translateX(0);
  }

  /* En móvil mejor centrados */
  .amp {
    margin: 0;
  }
}

.wedding-date {
  font-family: var(--font-elegant);
  letter-spacing: 4px;
  margin-top: 1rem;
  font-size: 1.5rem;
}

/* --- TARTAN Y MANTEL SECTION --- */

.welcome-section {
  min-height: clamp(1000px, 100svh, 1200px);
  padding: clamp(160px, 14vw, 220px) 20px;
  /* Imagen de los cuadros (fondo verde/azul) */
  background-image: url("https://aydwedding.es/tartan/");
  background-size: repeat;
  display: flex;
  justify-content: center;
  align-items: center;
}

.welcome-container {
  max-width: 1050px;
  width: 100%;
  position: relative;
  display: flex;
  justify-content: center;
}

.welcome-card {
  /* Imagen del encaje/blonda blanca */
  width: 100%;
  background-image: url("https://aydwedding.es/mantel/");

  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;

  padding: 120px 100px;
  /* Espacio para que el texto no toque el borde del encaje */
  text-align: center;
  min-height: 700px;
  /* Ajusta según el tamaño de tu imagen de encaje */
  display: flex;
  align-items: center;
  justify-content: center;
}

.welcome-text {
  max-width: 68%;
  /* Forzamos a que el texto se quede en el centro del óvalo */
  color: #333333;
  font-family: var(--font-ana);
  /* O una fuente sans-serif limpia */
  line-height: 1.4;
}

.welcome-title {
  font-family: var(--font-symphony);
  font-size: clamp(3.5rem, 5vw, 4.5rem);
  margin-bottom: 0.5rem;
  margin-top: 0;
  color: #2c3646;
  text-transform: capitalize;
  border: 0;
}

.welcome-text p {
  margin-bottom: 0.4rem;
  margin-top: 0;
  font-size: clamp(1.3rem, 1.8vw, 1.6rem);
}

/* Ajuste móvil */
@media (max-width: 768px) {
  .welcome-section {
    min-height: auto;
    padding: 96px 16px;
  }

  .welcome-card {
    min-height: 600px;
    padding: 60px 40px;
    background-size: 100% 100%;
    /* Estira un poco el encaje en móvil si es necesario */
  }

  .welcome-text {
    max-width: 85%;
    font-size: 0.9rem;
  }
}

/* SECCION  SOBRE LA BODA SECTION ABOUT WEDDING ICONOS SVG */

.about-wedding-section {
  background-color: #223248 !important;
  /* Color azul marino oscuro */
  color: #ffffff;
  padding: 80px 20px;
  font-family: var(--font-ana) !important;
  text-align: center;
}

/* Cabecera principal */
.about-wedding-container {
  margin-bottom: 60px;
}

.about-wedding-container h2 {
  font-family: var(--font-symphony) !important;
  color: #ffffff;
  text-transform: capitalize;
  font-size: 4rem;
  font-weight: normal;
  margin: 0 0 15px 0;
  letter-spacing: 2px;
}

.about-wedding-container p {
  font-size: 1.1rem;
  font-weight: 300;
  margin: 0;
  letter-spacing: 0.5px;
}

/* Contenedor de las 3 columnas */
.details-grid {
  display: flex;
  justify-content: center;
  gap: 40px;
  max-width: 1100px;
  margin: 0 auto;
  flex-wrap: wrap;
  /* Permite que se adapte a móviles */
}

/* Cada columna individual */
.detail-item {
  flex: 1;
  width: 40px;
  height: auto;
  margin-bottom: 15px;
  min-width: 280px;
  padding: 10px;
}

.detail-item img.icon {
  height: 120px;
  width: auto;
  margin-bottom: 25px;
  /* Si tienes SVGs blancos, esto asegura que mantengan proporciones */
  object-fit: contain;
}

.detail-item h3 {
  font-family: var(--font-symphony) !important;
  color: #ffffff;
  letter-spacing: 2px;
  font-size: 2rem;
  font-weight: normal;
  margin: 0 0 15px 0;
}

.detail-item p {
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 300;
  margin: 0;
}

/* Responsive para móviles */
@media (max-width: 768px) {
  .about-wedding-container h2 {
    font-size: 3rem;
  }

  .detail-item h3 {
    font-size: 1.5rem;
  }

  .details-grid {
    gap: 50px;
  }
}

/* SECCION  HORARIO SECTION SCHEDULE */

.schedule-section {
  background-color: #264d3e; /* El verde oscuro de la imagen_9.png */
  color: #ffffff;
  padding: 80px 50px;
  display: flex;
  justify-content: center;
}

.schedule-container {
  max-width: 1200px;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); /* Dos columnas iguales */
  gap: 50px;
  align-items: center;
}

/* Encabezado Izquierdo */
.schedule-header {
  margin-bottom: 40px;
}

.schedule-title {
  font-family: var(--font-symphony-bold) !important; /* Great Vibes */
  font-size: 5rem;
  margin: 0;
  line-height: 1;
  font-weight: normal;
  color: white;
  text-transform: capitalize;
}

.schedule-date {
  font-family: var(--font-ana) !important; /* Cormorant Garamond */
  font-size: 1.5rem;
  letter-spacing: 1px;
  margin-top: 10px;
}

.church-illustration {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  opacity: 1;
  mix-blend-mode: normal;
}

/* Lista de Eventos (Derecha) */
.schedule-list {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
}

.schedule-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 28px 0;
  gap: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5); /* Línea divisoria blanca suave */
}

.schedule-item:last-child {
  border-bottom: none; /* Quitar la última línea */
}

.event-time {
  font-family: var(--font-ana) !important; /* Cinzel */
  font-size: 1.5rem;
  letter-spacing: 1px;
  min-width: 110px;
  white-space: nowrap;
}

.event-name {
  font-family: var(--font-symphony) !important; /* Great Vibes */
  font-size: clamp(2.4rem, 3vw, 2.8rem);
  line-height: 1.25;
  text-align: right;
}

/* Ajustes para Móvil */
@media (max-width: 768px) {
  .schedule-container {
    grid-template-columns: 1fr; /* Una sola columna en móvil */
    text-align: center;
  }

  .schedule-title {
    font-size: 4rem;
  }

  .schedule-item {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .event-name {
    text-align: center;
  }
}

/* SECCION  GALERIA SECTION GALLERY */

.gallery-section {
    background-color: #223248; /* El azul marino oscuro de la imagen.jpg */
    padding: 100px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

/* Decoración floral de fondo (opcional) */
.gallery-section::before {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: url('tu-decoracion-floral.png'); /* Ilustración floral en los bordes */
    background-repeat: no-repeat;
    background-position: left center;
    opacity: 0.1; /* Muy sutil como en la captura */
    pointer-events: none;
}

.gallery-title {
    font-family: var(--font-script) !important; /* Great Vibes */
    color: #ffffff;
    font-size: 5rem;
    margin-bottom: 40px;
    font-weight: normal;
}

.slider-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    max-width: 1000px;
    margin: 0 auto;
}

.main-slide {
    flex: 1;
    max-width: 650px;
    border: 1px solid rgba(255, 255, 255, 0.2); /* Borde fino sutil */
    box-shadow: 0 15px 35px rgba(0,0,0,0.3);
}

.gallery-image {
    width: 100%;
    height: auto;
    display: block;
}

/* Estilo de las flechas */
.slider-arrow {
    background: #ffffff;
    color: #1a2b3c;
    border: none;
    width: 60px;
    height: 60px;
    border-radius: 5px; /* Ligeramente redondeado como en la captura */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.5rem;
    transition: transform 0.3s ease;
}

.slider-arrow:hover {
    transform: scale(1.1);
}

/* Ajuste móvil */
@media (max-width: 768px) {
    .gallery-title {
        font-size: 3.5rem;
    }

    .slider-wrapper {
        gap: 10px;
    }

    .slider-arrow {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* external css: flickity.css */

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body { font-family: sans-serif; }

.gallery {
  background: #EEE;
}

.gallery-cell {
  width: 66%;
  height: 650px;
  margin-right: 10px;
  background: #8C8;
  counter-increment: gallery-cell;
}

/* cell number */
/* .gallery-cell:before {
  display: block;
  text-align: center;
  content: counter(gallery-cell);
  line-height: 200px;
  font-size: 80px;
  color: white;
} */



/*---- SET POSITION FOR SLIDE ----*/

/* SECCION INVITATION */

.invitation-section { position: relative; background: #264d3e; padding: 90px 24px 100px; display: flex; flex-direction: column; align-items: center; overflow: hidden; }
.invitacion__titulo { font-family: var(--font-symphony); font-size: clamp(3.5rem,6vw,5rem); font-weight: normal; color: #fff; margin: 0 0 20px; text-align: center; }
.envelope-hint { font-family: var(--font-ana); font-size: 1.1rem; text-align: center; color: #e4d7b9; margin: 0; }
.envelope-stage { width: min(600px,100%); padding-top: 50px; transition: padding-top 1.65s cubic-bezier(.22,.61,.36,1); }
.envelope-stage.is-open { padding-top: min(340px,56vw); }
.wedding-envelope { position: relative; width: 100%; aspect-ratio: 1.55; perspective: 1400px; isolation: isolate; }
.envelope-lining { position: absolute; inset: 0; background: #223248 url('https://aydwedding.es/tartan/') center/cover; border: 2px solid #182638; border-radius: 5px; box-shadow: 0 24px 40px #10231a55; }
.invitation-letter { position: absolute; bottom: 4%; left: 7%; width: 86%; height: 112%; box-sizing: border-box; padding: 24px 28px; background: #f7f0e1; border: 1px solid #d6c7aa; color: #223248; text-align: center; z-index: 2; box-shadow: 0 4px 16px #0003; opacity: 0; transform: translateY(0); transition: transform 1.1s cubic-bezier(.45,0,.2,1), opacity .45s ease .65s, box-shadow 1.1s ease; }
.letter-crest { display: block; height: 90px; width: 90px; object-fit: contain; margin: 0 auto 12px; filter: brightness(0) saturate(100%) invert(15%) sepia(16%) saturate(1200%) hue-rotate(175deg); }
.invitation-letter h3 { font-family: var(--font-symphony); color: #223248; font-weight: normal; font-size: clamp(2.5rem,5vw,3.5rem); margin: 0 0 12px; }
.invitation-copy p { font-family: var(--font-ana); font-size: clamp(1rem,2.5vw,1.3rem); line-height: 1.45; margin: 0; }
.letter-rule { display: block; width: 70px; margin: 20px auto 0; border-top: 1px solid #b59a61; }
.envelope-pocket { position: absolute; inset: 0; z-index: 3; overflow: hidden; border-radius: 4px; pointer-events: none; }
.envelope-pocket span { position: absolute; inset: 0; }
.pocket-left { background: linear-gradient(120deg,#33455e,#223248); clip-path: polygon(0 0,56% 58%,0 100%); }
.pocket-right { background: linear-gradient(240deg,#33455e,#223248); clip-path: polygon(100% 0,44% 58%,100% 100%); }
.pocket-bottom { background: linear-gradient(0deg,#223248,#30415a); clip-path: polygon(0 100%,0 94%,50% 43%,100% 94%,100% 100%); }
.envelope-flap { position: absolute; top: 0; left: 0; width: 100%; height: 64%; transform-origin: top center; transform-style: preserve-3d; z-index: 5; transition: transform 1.15s cubic-bezier(.45,0,.2,1) .8s, z-index 0s .8s; }
.flap-front,.flap-lining { position: absolute; inset: 0; clip-path: polygon(0 0,100% 0,50% 100%); backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.flap-front { background: linear-gradient(180deg,#34465e,#223248); }
.flap-lining { background: #223248 url('https://aydwedding.es/tartan/') center/cover; transform: rotateY(180deg); }
.envelope-seal { position: absolute; top: 52%; left: 50%; width: 19%; aspect-ratio: 1; z-index: 6; transform: translate(-50%,-50%); transition: opacity .4s ease 1.6s, transform .65s cubic-bezier(.22,.61,.36,1) 1.5s; }
.envelope-seal > img { width: 100%; height: 100%; object-fit: contain; }
.envelope-seal .seal-crest { position: absolute; width: 60%; height: 60%; top: 50%; left: 50%; transform: translate(-50%,-50%); filter: brightness(0) saturate(100%) drop-shadow(0 1px 0 #ffe7a3); opacity: .9; }
.envelope-toggle { position: absolute; inset: 0; z-index: 8; width: 100%; height: 100%; background: transparent; border: 0; padding: 0; cursor: pointer; border-radius: 5px; }
.envelope-toggle:focus-visible { outline: 2px solid #e4d7b9; outline-offset: 8px; }
.envelope-stage.is-open .envelope-flap { transform: rotateX(180deg); z-index: 1; transition: transform 1.2s cubic-bezier(.33,0,.2,1) .18s, z-index 0s .8s; }
.envelope-stage.is-open .envelope-seal { opacity: 0; transform: translate(-50%,-75%) rotate(-9deg) scale(1.06); transition: opacity .45s ease .12s, transform .65s cubic-bezier(.22,.61,.36,1); }
.envelope-stage.is-open .invitation-letter { opacity: 1; transform: translateY(-64%); box-shadow: 0 14px 30px #0003; transition: transform 1.45s cubic-bezier(.16,1,.3,1) 1s, opacity .5s ease .8s, box-shadow 1.45s ease 1s; }
@media (max-width: 640px) { .invitation-section { padding: 64px 20px 72px; } .invitation-letter { padding: 14px 16px; height: 128%; } .letter-crest { width: 54px; height: 54px; margin-bottom: 8px; } .letter-rule { margin-top: 12px; } .envelope-stage.is-open { padding-top: 64vw; } .envelope-stage.is-open .invitation-letter { transform: translateY(-60%); } }
@media (prefers-reduced-motion: reduce) { .envelope-stage,.envelope-flap,.envelope-seal,.invitation-letter,.envelope-stage.is-open .envelope-flap,.envelope-stage.is-open .envelope-seal,.envelope-stage.is-open .invitation-letter { transition: none; } }


/* Profundidad de la invitación y monograma azul marino. */
.envelope-stage { perspective: 1100px; }
.wedding-envelope { perspective: 900px; perspective-origin: 50% 30%; }
.envelope-seal .seal-crest { visibility: hidden; }
.envelope-seal::after { content: ''; position: absolute; width: 60%; height: 60%; top: 50%; left: 50%; transform: translate(-50%,-50%); background: linear-gradient(145deg,#59360e 0%,#805018 45%,#a37128 70%,#694010 100%); filter: drop-shadow(0 -1px .45px #4d2c0cdd) drop-shadow(0 1.2px .5px #ffe9a9f2) drop-shadow(.6px .6px .65px #68401299); -webkit-mask: url('https://aydwedding.es/logoblanco/') center / contain no-repeat; mask: url('https://aydwedding.es/logoblanco/') center / contain no-repeat; }
.flap-front, .flap-lining { filter: drop-shadow(0 7px 5px #0c172830); }
.flap-front::after, .flap-lining::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,#07132260,transparent 65%); opacity: 0; transition: opacity 1.2s ease; }
.envelope-stage.is-open .flap-lining::after { opacity: .65; }
.envelope-stage.is-open .envelope-flap { transform: rotateX(168deg); transition: transform 1.55s cubic-bezier(.25,.65,.18,1.03) .18s, z-index 0s .9s; }
.envelope-stage.is-open .wedding-envelope { animation: envelope-lift 2.7s cubic-bezier(.22,.61,.36,1) both; }
.envelope-stage.is-open .envelope-seal { transform: translate3d(-50%,-75%,36px) rotate(-9deg) scale(1.06); }
@keyframes envelope-lift { 0% { transform: rotateX(0) rotateY(0) translateY(0); } 32% { transform: rotateX(7deg) rotateY(-3deg) translateY(5px); } 68% { transform: rotateX(-2deg) rotateY(1deg) translateY(-3px); } 100% { transform: rotateX(0) rotateY(0) translateY(0); } }
@media (prefers-reduced-motion: reduce) { .envelope-stage.is-open .wedding-envelope { animation: none; } .envelope-stage.is-open .envelope-flap,.flap-front::after,.flap-lining::after { transition: none; } }

/* SECTION CUENTA ATRÁS */
.countdown-section{
  position: relative;
  min-height: 90vh;
  background-image: url("adiccional/foto_movimiento.webp"); /* 👈 pon aquí tu foto */
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* efecto parallax */

  /* Blanco y negro, como en la captura */
  filter: grayscale(100%);

  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* El filtro grayscale en la sección afectaría también al texto si estuviera
   dentro del mismo elemento, así que aplicamos el B/N solo al fondo con un
   pseudo-elemento, y dejamos el contenido fuera de ese filtro */
.countdown-section{
  filter: none; /* anulamos el grayscale de arriba */
}

.countdown-section::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("adiccional/foto_movimiento.webp"); /* 👈 misma foto aquí */
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* efecto parallax */
  z-index: 0;
  filter: grayscale(100%) blur(5px);
  transform: scale(1.02);
}

/* Ligero oscurecido para que el texto blanco resalte, como en tu referencia */
.countdown-overlay{
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

.countdown-content{
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 2rem;
  width: 100%;
  max-width: 1100px;
}

.countdown-title{
  font-family: var(--font-script);
  color: #ffffff;
  font-size: 4.5rem;
  font-weight: normal;
  margin-bottom: 3rem;
}

.countdown-box{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  border: 0px solid rgba(255, 255, 255, 0.6);
  padding: 2.5rem 3rem;
  max-width: 900px;
  margin: 0 auto;
}

.countdown-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 100px;
}

.countdown-number{
  font-family: var(--font-elegant);
  font-size: 4rem;
  color: #ffffff;
  line-height: 1;
}

.countdown-label{
  font-family: var(--font-elegant);
  font-size: 1rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #ffffff;
  margin-top: 12px;
}

.countdown-separator{
  font-family: var(--font-elegant);
  font-size: 3rem;
  color: rgba(255, 255, 255, 0.5);
  align-self: flex-start;
  margin-top: 0.3rem;
}


/* Responsive */
@media (max-width: 768px){
  .countdown-section{
    background-attachment: scroll;
  }

  .countdown-title{
    font-size: 3rem;
  }

  .countdown-box{
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 2rem 1.5rem;
  }

  .countdown-separator{
    display: none; /* en móvil mejor sin separadores, se ve más limpio en grid */
  }

  .countdown-number{
    font-size: 2.8rem;
  }

  .countdown-item{
    min-width: 80px;
  }
}


/* SECCION CONTACTOS */
.contact-section{
  position: relative;
  background-color: #264d3e;   /* mismo verde que schedule / invitation */
  color: #ffffff;
  padding: 100px 80px;
  min-height: 70vh;
  overflow: hidden;
}

/* Escudo/monograma arriba a la derecha */
.contact-crest{
  position: absolute;
  top: 60px;
  right: 60px;
  width: 220px;
  height: auto;
  opacity: 0.9;
}

.contact-title{
  font-family: var(--font-symphony-bold);
  color: #ffffff;
  font-size: 4.5rem;
  font-weight: normal;
  text-align: center;
  margin-bottom: 80px;
  letter-spacing: 1px;
}

.contact-list{
  max-width: 700px;
  margin: 0 auto;
}

.contact-item{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  padding: 30px 0;
  flex-wrap: wrap;
}

.contact-names{
  font-family: var(--font-symphony);
  font-size: 3.5rem;
  text-align: center;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  line-height: 1.3;
  letter-spacing: 1px;
}

.contact-info{
  text-align: left;
  min-width: 220px;
}

.contact-phone{
  font-family: var(--font-ana);
  font-size: 1.5rem;
  margin: 0 0 6px 0;
  color: #ffffff;
}

.contact-divider{
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
  width: 100%;
  max-width: 650px;
  margin: 0 auto;
}

/* Responsive */
@media (max-width: 768px){
  .contact-section{
    padding: 70px 30px;
  }

  .contact-crest{
    width: 130px;
    top: 30px;
    right: 20px;
  }

  .contact-title{
    font-size: 3rem;
    margin-bottom: 60px;
  }

  .contact-item{
    flex-direction: column;
    gap: 15px;
    text-align: center;
  }

  .contact-names{
    text-align: center;
    align-items: center;
  }

  .contact-info{
    text-align: center;
  }
}


/* SECCION TAPETE */
.tapete-section {
  padding: 100px 20px;
  /* Imagen de los cuadros (fondo verde/azul) */
  background-image: url("https://aydwedding.es/tartan/");
  background-size: repeat;
  display: flex;
  justify-content: center;
  align-items: center;
}

.tapete-container {
  max-width: 900px;
  width: 100%;
  position: relative;
  display: flex;
  justify-content: center;
}

/* 1. Contenedor principal: le quitamos el fondo y le damos position: relative */
.tapete-card {
  position: relative;
  text-align: center;
  min-height: 900px;
  width: 100%; /* ✔️ Solucionado */
  max-width: 1500px; /* ✔️ Crecerá hasta 1500px si hay espacio, pero encogerá si la pantalla es pequeña */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

/* 2. El "fondo falso": aquí ponemos la imagen y la rotamos */
.tapete-card::before {
  content: "";
  position: absolute;
  inset: 0; /* Ocupa todo el espacio de .tapete-card */

  /* Ponemos aquí las propiedades de tu imagen */
  background-image: url("https://aydwedding.es/tapete2/");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;

  /* AQUÍ ROTAMOS SOLO LA IMAGEN */
  transform: rotate(90deg);

  /* Lo enviamos detrás del texto */
  z-index: -1;
}

.tapete-text {

  /* Forzamos a que el texto se quede en el centro del óvalo */
  color: #333333;
  font-family: var(--font-symphony);
}



.tapete-text p {
  margin-bottom: 0.4rem;
  margin-top: 0;
  font-size: 2.8rem;
}

/* Ajuste móvil */
@media (max-width: 768px) {
  .tapete-card {
    padding: 60px 40px;
    background-size: 100% 100%;
    /* Estira un poco el encaje en móvil si es necesario */
  }

  .tapete-text {
    max-width: 85%;
    font-size: 0.9rem;
  }
}


/* ┏◚◚◚◚◚◚◚◚◚◚◚◚┓
       ANIMACIONES
   ┗◛◛◛◛◛◛◛◛◛◛◛◛┛ */
/* Estados base de la animación */
[data-animate] {
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s ease;
}
[data-animate].is-visible {
  opacity: 1;
  transform: none;
}

[data-animate="fade-up"]    { transform: translateY(40px); }
[data-animate="fade-down"]  { transform: translateY(-40px); }
[data-animate="fade-left"]  { transform: translateX(-50px); }
[data-animate="fade-right"] { transform: translateX(50px); }
[data-animate="scale-in"]   { transform: scale(0.9); }

/* Stagger: retrasos escalonados para hijos (iconos, items de lista...) */
[data-animate-delay="1"] { transition-delay: .15s; }
[data-animate-delay="2"] { transition-delay: .3s; }
[data-animate-delay="3"] { transition-delay: .45s; }
[data-animate-delay="4"] { transition-delay: .6s; }

.flip-card{
  position: relative;
  display: inline-block;
  width: 1.3em;
  height: 2em;
  perspective: 600px;
  line-height: 1;
}

.flip-card-inner{
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  transition: transform .9s cubic-bezier(.45,0,.2,1);
  will-change: transform;          /* 👈 nuevo: fuerza capa GPU propia */
}

.flip-card.flipping .flip-card-inner{
  transform: rotateX(-180deg);
}

.flip-card-front,
.flip-card-back{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateZ(0.01px);   /* 👈 nuevo: fuerza a cada cara a su propia capa */
  font-family: var(--font-elegant);
  font-size: 4rem;
  color: #ffffff;
  line-height: 1;
}

.flip-card-back{
  transform: rotateX(180deg) translateZ(0.01px);  /* 👈 combina ambos transforms en una sola propiedad */
}

.tapete-card::before {
  animation: tapeteRespira 12s ease-in-out infinite;
}
@keyframes tapeteRespira {
  0%, 100% { transform: rotate(90deg) scale(1); }
  50%      { transform: rotate(90deg) scale(1.03); }
}
/* Hospedaje: dos contactos provisionales, pendientes de datos definitivos. */
.about-wedding-section .details-grid { margin-top: 36px; }
.lodging-contacts { display: grid; gap: 12px; max-width: 340px; margin: 20px auto 0; text-align: left; }
.lodging-contact { padding: 18px 20px; border: 1px solid rgba(228, 215, 185, .35); border-radius: 6px; background: rgba(255, 255, 255, .035); }
.lodging-contact-label { display: block; margin-bottom: 8px; font-family: var(--font-ana); font-size: .75rem; letter-spacing: 1.6px; text-transform: uppercase; color: #e4d7b9; }
.about-wedding-section .lodging-contact-name { font-family: var(--font-ana); font-size: 1.2rem; line-height: 1.35; font-weight: 500; letter-spacing: .2px; overflow-wrap: anywhere; }
.about-wedding-section .lodging-contact-phone { margin-top: 8px; font-size: 1rem; line-height: 1.5; color: #e5e8ed; }
.lodging-contact-phone span { margin-right: 6px; color: #e4d7b9; }

.about-wedding-section .bus-route { margin-top: 18px; padding: 14px 16px; border-top: 1px solid rgba(228,215,185,.35); border-bottom: 1px solid rgba(228,215,185,.35); color: #e4d7b9; line-height: 1.7; }

/* Vestimenta y autobuses: ilustración y trayectos diferenciados. */
.wedding-figure { width: 160px; margin: 24px auto 0; color: #e4d7b9; }
.wedding-figure svg { display: block; width: 100%; height: auto; }
.bus-journeys { display: grid; gap: 12px; margin: 20px auto 0; max-width: 340px; text-align: left; }
.bus-journey { padding: 16px 18px; border: 1px solid rgba(228,215,185,.35); border-radius: 6px; background: rgba(255,255,255,.035); }
.bus-journey-label { display: block; margin-bottom: 10px; font-size: .75rem; line-height: 1.6; letter-spacing: 1px; text-transform: uppercase; color: #e4d7b9; }
.about-wedding-section .bus-journey-route { display: grid; grid-template-columns: minmax(0,1fr) 22px minmax(0,1fr); gap: 6px; align-items: center; font-size: 1rem; line-height: 1.45; overflow-wrap: anywhere; }
.bus-journey-arrow { text-align: center; color: #e4d7b9; font-size: 1.3rem; }

/* Navegación principal y secciones enlazadas · 15 octubre 2026 */
.site-header { padding: 50px 0 20px; background: var(--davana-official-blue); border-bottom: 1px solid rgba(228,215,185,.2); box-shadow: 0 4px 20px rgba(0,0,0,.12); transition: transform .3s ease, background-color .4s ease, padding .4s ease; }
.site-header.scrolled { padding: 24px 0 12px; background: var(--davana-official-blue); }
.site-header.is-hidden { transform: translateY(-110%); pointer-events: none; }
.site-header:focus-within { transform: translateY(0); pointer-events: auto; }
.site-header .split-nav { display: flex; gap: 0; max-width: 1200px; padding: 0 2rem; align-items: center; }
.site-header .nav-left, .site-header .nav-right { display: flex; flex: 1; gap: clamp(18px,3vw,48px); align-items: center; }
.site-header .nav-left { justify-content: flex-end; }
.site-header .nav-right { justify-content: flex-start; }
.site-header .nav-center { flex: 0 0 150px; margin: 0 2rem; }
.site-header .home-link { display: inline-flex; align-items: center; justify-content: center; font-size: 6rem; color: #fff; line-height: 1; }
.site-header .nav-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.2rem; line-height: 1.4; letter-spacing: 2px; white-space: nowrap; border-bottom: 1px solid transparent; }
.site-header .nav-link:hover, .site-header .home-link:hover { color: #e4d7b9; border-bottom-color: #e4d7b9; }
.site-header a:focus-visible { outline: 2px solid #e4d7b9; outline-offset: 6px; border-radius: 2px; }
#hero, #invitation, #registry, #details, #gallery { scroll-margin-top: 190px; }
.registry-section { background: var(--davana-official-blue); color: #fff; padding: 100px 24px; text-align: center; }
.registry-card { max-width: 780px; margin: 0 auto; padding: 56px 40px; border: 1px solid rgba(228,215,185,.5); }
.registry-icon { display: block; width: 190px; max-width: 60%; height: auto; margin: 0 auto 32px; }
.section-eyebrow { font-family: var(--font-ana); font-size: .9rem; letter-spacing: 2px; text-transform: uppercase; color: #e4d7b9; margin: 0 0 16px; }
.registry-section h2, .wedding-gallery-section h2 { font-family: var(--font-symphony-bold); font-weight: normal; font-size: clamp(5rem,6vw,5.5rem); text-transform: capitalize; color: #fff; margin: 15px 0 24px; }
.registry-card > p:not(.section-eyebrow) { font-family: var(--font-ana); font-size: 1.4rem; line-height: 1.6; }
.registry-card .registry-note { font-size: 1.15rem; opacity: .85; }
.registry-link { display: inline-flex; align-items: center; justify-content: center; margin-top: 20px; min-height: 48px; padding: 12px 28px; border: 1px solid #e4d7b9; color: #fff; font-family: var(--font-ana); font-size: 1.2rem; text-decoration: none; }
.registry-link:hover, .registry-link:focus-visible { background: #e4d7b9; color: #223248; transition: 0.5s; }
.wedding-gallery-section { background: var(--davana-official-blue); color: #fff; text-align: center; padding: 100px 24px; }
.wedding-gallery-photo { max-width: 820px; margin: 40px auto 0; padding: 12px; border: 1px solid rgba(228,215,185,.45); }
.wedding-gallery-photo img { display: block; width: 100%; max-height: 700px; object-fit: cover; object-position: center; }
@media (max-width: 700px) {
  .site-header, .site-header.scrolled { padding: 8px 0; }
  .site-header .split-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; padding: 0 16px; }
  .site-header .nav-center { grid-column: 1 / -1; grid-row: 1; margin: 0; }
  .site-header .home-link { font-size: 4rem; }
  .site-header .nav-left, .site-header .nav-right { flex-direction: column; gap: 0; justify-content: center; }
  .site-header .nav-link { min-height: 40px; font-size: .9rem; letter-spacing: 1px; }
  #hero, #invitation, #registry, #details, #gallery { scroll-margin-top: 166px; }
  .registry-section, .º { padding: 72px 20px; }
  .registry-card { padding: 40px 22px; }
}

@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }

/* Home y secciones adaptadas a la altura de pantalla · 15 octubre 2026 */
#page > .wedding-home > section {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100svh;
}
.hero-section { height: auto; }
#page > .wedding-home > .welcome-section { min-height: max(1000px, 100svh); }
#page > .wedding-home > :is(.about-wedding-section, .schedule-section, .invitation-section, .registry-section, .wedding-gallery-section, .contact-section) {
  padding-block: clamp(120px, 12svh, 200px);
}
.about-wedding-section, .registry-section, .wedding-gallery-section, .contact-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.schedule-section { align-items: center; }
.invitation-section { justify-content: center; }
.contact-list { width: 100%; }
#hero, #invitation, #registry, #details, #gallery { scroll-margin-top: 0; }
@media (max-width: 700px) {
  #page > .wedding-home > .welcome-section { min-height: 100svh; }
  #page > .wedding-home > :is(.about-wedding-section, .schedule-section, .invitation-section, .registry-section, .wedding-gallery-section, .contact-section) {
    padding-block: 100px;
  }
}

html { scroll-padding-top: 0; }
.tapete-section { overflow-x: clip; }

/* DAVANA: solapa articulada y profundidad del papel. */
.envelope-stage { perspective: 1000px; perspective-origin: 50% 35%; }
.wedding-envelope { perspective: 850px; perspective-origin: 50% 20%; }
.envelope-flap.has-fold > .flap-front,
.envelope-flap.has-fold > .flap-lining { clip-path: polygon(0 0,100% 0,69% 62%,31% 62%); filter: none; }
.envelope-flap.has-fold > .flap-lining { transform: rotateY(180deg); }
.flap-tip { position: absolute; top: 62%; left: 31%; width: 38%; height: 38%; transform-origin: 50% 0; transform-style: preserve-3d; transform: rotateX(0deg); transition: transform 1s ease .65s; }
.flap-tip > span { position: absolute; inset: -1px 0 0; clip-path: polygon(0 0,100% 0,50% 100%); backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.flap-tip-front { background: linear-gradient(#293b53,#223248); }
.flap-tip-back { transform: rotateY(180deg); background: linear-gradient(#07132255,transparent),#223248 url('https://aydwedding.es/tartan/') center/cover; }
.envelope-stage.is-open .envelope-flap { transform: rotateX(154deg); transition: transform 1.8s cubic-bezier(.3,.65,.2,1) .18s, z-index 0s 1s; }
.envelope-stage.is-open .flap-tip { transform: rotateX(14deg); animation: davana-paper-fold 1.8s ease .18s both; }
@keyframes davana-paper-fold { 0% { transform: rotateX(0deg); } 35% { transform: rotateX(-32deg); } 70% { transform: rotateX(23deg); } 100% { transform: rotateX(14deg); } }
.envelope-stage.is-open .wedding-envelope { animation: davana-envelope-depth 3s cubic-bezier(.22,.61,.36,1) both; }
@keyframes davana-envelope-depth {
  0% { transform: translateY(0) rotateX(0) rotateY(0); }
  35% { transform: translateY(-12px) rotateX(14deg) rotateY(-6deg); }
  70% { transform: translateY(-5px) rotateX(5deg) rotateY(2deg); }
  100% { transform: translateY(0) rotateX(0) rotateY(0); }
}
.envelope-lining { transition: box-shadow 1.6s ease; }
.envelope-stage.is-open .envelope-lining { box-shadow: 0 34px 44px -16px #081b16aa,0 8px 16px #081b1644; }
.flap-front::after { background: linear-gradient(180deg,#081422aa,transparent 70%); }
.envelope-stage.is-open .flap-front::after { opacity: .8; }
.envelope-stage.is-open .invitation-letter { transform: translateY(-64%) rotateX(-4deg); box-shadow: 0 24px 32px -10px #0006,inset 0 1px 0 #fff; transition: transform 1.5s cubic-bezier(.16,1,.3,1) 1.2s,opacity .5s ease 1s,box-shadow 1.5s ease 1.2s; }
@media (max-width: 640px) { .envelope-stage.is-open .invitation-letter { transform: translateY(-60%) rotateX(-3deg); } }
@media (prefers-reduced-motion: reduce) {
  .envelope-stage.is-open .wedding-envelope,.envelope-stage.is-open .flap-tip { animation: none; }
  .flap-tip,.envelope-lining,.envelope-stage.is-open .envelope-flap,.envelope-stage.is-open .invitation-letter { transition: none; }
}


/* Continuidad del mismo lienzo de tartán en ambas partes de la solapa. */
.flap-tip > span { inset: 0; }
.flap-tip-back { background: none; }
.flap-tip-back::before,.flap-tip-back::after {
  content: ''; position: absolute;
  width: 263.157895%; height: 263.157895%;
  left: -81.578947%; top: -163.157895%;
}
.flap-tip-back::before { background: #223248 url('https://aydwedding.es/tartan/') center/cover; }
.flap-tip-back::after { background: linear-gradient(180deg,#07132260,transparent 65%); opacity: 0; transition: opacity 1.2s ease; }
.envelope-stage.is-open .flap-tip-back::after { opacity: .65; }
.envelope-flap.has-fold > .flap-front,
.envelope-flap.has-fold > .flap-lining { clip-path: polygon(0 0,100% 0,68.95% 62.1%,31.05% 62.1%); }

/* Desplazar la fotografía hacia la izquierda para centrar a la pareja. */
.countdown-section,.countdown-section::before { background-position: 65% center; }
@media (max-width: 768px) {
  .countdown-section,.countdown-section::before {
    background-attachment: scroll;
    background-position: 65% center;
  }
}
@media (prefers-reduced-motion: reduce) { .flap-tip-back::after { transition: none; } }

/* DAVANA · responsive integral · 2026-10-21 */
:root { --davana-header-height: 136px; --davana-official-blue: #2c3646; }
body { --davana-admin-offset: 0px; }
body.admin-bar { --davana-admin-offset: 32px; }
.site-header, .site-header.scrolled { top: var(--davana-admin-offset); padding: 5px 0; }
.site-header .split-nav { width: 100%; box-sizing: border-box; }
body #page > .wedding-home > section { min-width: 0; width: 100%; overflow-x: clip; }
#page img, #page svg { max-width: 100%; }
#hero, #details, #gallery, #invitation, #registry { scroll-margin-top: calc(var(--davana-header-height) + var(--davana-admin-offset) + 12px); }
body #page > .wedding-home > .hero-section { height: auto; min-height: 100vh; min-height: 100svh; padding: calc(var(--davana-header-height) + 28px) 24px 48px; }
.hero-content { width: min(100%, 680px); margin: 0; }
.hero-logo { width: 300px; height: auto; margin: 0 auto 16px; }
.couple-names { font-size: 6.5rem; line-height: 1.05; }
.name-top, .name-bottom { transform: none; }
.amp { font-size: .72em; line-height: 1.1; margin: 6px 0; }
.wedding-date { font-size: clamp(1rem, 2.5svh, 1.5rem); line-height: 1.5; letter-spacing: .18em; margin: 24px 0 0; }
.welcome-section, .tapete-section { background-image: url('https://aydwedding.es/tartan/'); background-size: auto; background-repeat: repeat; }
@media (max-width: 1000px) {
  .site-header .split-nav { padding-inline: 24px; }
  .site-header .nav-center { flex-basis: 130px; margin-inline: 18px; }
  .site-header .nav-link { font-size: 1rem; letter-spacing: 1px; }
  .site-header .nav-left, .site-header .nav-right { gap: 22px; }
  .details-grid { gap: 24px; }
  .detail-item { min-width: 230px; }
  .schedule-section { padding-inline: 28px; }
}
@media (max-width: 900px) {
  :root { --davana-header-height: 104px; }
  .site-header, .site-header.scrolled { padding: 8px 0; background: var(--davana-official-blue); }
  .site-header .split-nav { display: grid; grid-template-columns: minmax(0,1fr) 92px minmax(0,1fr); gap: 10px; padding-inline: 16px; }
  .site-header .nav-center { grid-area: 1 / 2; margin: 0; min-width: 0; }
  .site-header .home-link { font-size: 3.4rem; min-height: 64px; }
  .site-header .nav-left, .site-header .nav-right { flex-direction: column; justify-content: center; gap: 0; }
  .site-header .nav-left { grid-area: 1 / 1; }
  .site-header .nav-right { grid-area: 1 / 3; }
  .site-header .nav-link { min-height: 42px; font-size: .875rem; letter-spacing: .06em; white-space: normal; text-align: center; justify-content: center; }
  body #page > .wedding-home > section:not(.hero-section) { min-height: 0; padding: 72px 24px; }
  body #page > .wedding-home > .hero-section { padding: calc(var(--davana-header-height) + 24px) 20px 40px; }
  .hero-logo { width: min(300px,80vw); margin-bottom: 16px; }
  .couple-names { font-size: clamp(3.3rem,17vw,5rem); }
  .wedding-date { font-size: 1.1rem; letter-spacing: .12em; }
  /* Bienvenida móvil como papelería; se conserva el segundo tapete original. */
  .welcome-container, .tapete-container { width: 100%; max-width: 560px; }
  .welcome-card, .tapete-card { position: relative; isolation: isolate; box-sizing: border-box; width: 100%; max-width: 100%; min-height: 0; padding: 0; border: 0; border-radius: 0; outline: 0; box-shadow: none; }
  .welcome-card { aspect-ratio: auto; display: block; padding: 60px 30px 52px; background: #faf6ed; border: 1px solid #d8c6a3; border-radius: 88px 88px 4px 4px; box-shadow: 0 16px 40px #081b1638, inset 0 0 0 7px #faf6ed, inset 0 0 0 8px #d8c6a388; }
  .welcome-card .welcome-text::before { content: 'A · D'; display: block; margin: 0 auto 24px; color: #9e8250; font-size: 1rem; letter-spacing: .3em; }
  .welcome-card .welcome-text::after { content: '✧'; display: block; margin: 26px auto 0; color: #9e8250; font-size: 1.5rem; line-height: 1; }
  .welcome-card::before, .welcome-card::after, .tapete-card::after { content: none; }
  .tapete-card { aspect-ratio: 1120 / 1600; background: none; }
  .tapete-card::before { content: ''; position: absolute; inset: 0; background: url('https://aydwedding.es/tapete2/') center / contain no-repeat; border: 0; border-radius: 0; transform: none; animation: none; z-index: 0; pointer-events: none; }
  .welcome-text, .tapete-text { position: relative; z-index: 1; width: 100%; }
  .welcome-text { max-width: 100%; color: #223248; }
  .tapete-text { max-width: 65%; }
  .welcome-title { font-size: clamp(2.8rem,9vw,4rem); line-height: 1.2; margin: 0 0 18px; }
  .welcome-text p { font-size: 1.125rem; line-height: 1.6; margin: 0 0 18px; }
  .welcome-text p:last-child, .tapete-text p:last-child { margin-bottom: 0; }
  .tapete-text p { font-size: clamp(1.45rem,5.6vw,2.8rem); line-height: 1.5; margin: 0 0 18px; }
  .about-wedding-container { margin-bottom: 32px; }
  .about-wedding-container h2 { font-size: clamp(3rem,8vw,4rem); letter-spacing: 0; }
  .details-grid { display: grid; grid-template-columns: 1fr; width: 100%; max-width: 520px; gap: 48px; }
  .detail-item { width: 100%; min-width: 0; padding: 0; margin: 0; }
  .detail-item > svg { width: 92px; height: 92px; margin: 0 auto 20px; }
  .detail-item h3 { font-size: 2.35rem; }
  .detail-item p { font-size: 1.1rem; }
  .lodging-contacts { max-width: 100%; }
  .bus-journey-route { display: grid; grid-template-columns: minmax(0,1fr) 20px minmax(0,1fr); align-items: center; gap: 8px; }
  .bus-journey-route .screen-reader-text { position: absolute; }
  .bus-journey-route span { overflow-wrap: anywhere; }
  .schedule-container { grid-template-columns: minmax(0,1fr); gap: 32px; max-width: 560px; text-align: center; }
  .schedule-header { margin-bottom: 24px; }
  .schedule-title { font-size: 4rem; }
  .church-illustration { max-width: 380px; margin: 0 auto; }
  .schedule-item { flex-direction: row; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; }
  .event-time { font-size: 1.2rem; min-width: 82px; }
  .event-name { text-align: right; font-size: clamp(1.9rem,6vw,2.5rem); }
  .countdown-section, .countdown-section::before { background-attachment: scroll; }
  .countdown-content { padding: 0; }
  .countdown-title { font-size: clamp(3rem,9vw,4rem); line-height: 1.2; margin-bottom: 32px; }
  .countdown-box { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; max-width: 390px; gap: 28px 16px; padding: 0; }
  .countdown-item { min-width: 0; }
  .countdown-separator { display: none; }
  .countdown-number { font-size: 2.8rem; }
  .flip-card { font-size: clamp(2.2rem,10vw,3rem); width: 2.4em; height: 1.4em; }
  .flip-card-front, .flip-card-back { font-size: inherit; }
  .countdown-label { font-size: .8rem; letter-spacing: .12em; }
  body #page > .wedding-home > .wedding-gallery-section { padding: 72px 20px; }
  .dav-gallery { width: 100%; margin-top: 28px; }
  body .dav-gallery-stage { height: clamp(240px,48svh,480px); }
  .dav-gallery-controls { gap: 12px; }
  .registry-card { width: 100%; box-sizing: border-box; padding: 36px 20px; }
  .registry-icon { width: 150px; }
  .registry-section h2, .wedding-gallery-section h2 { font-size: clamp(3rem,10vw,4.2rem); line-height: 1.2; }
  .registry-card > p:not(.section-eyebrow) { font-size: 1.15rem; }
  .registry-link { max-width: 100%; box-sizing: border-box; font-size: 1.1rem; padding: 12px 18px; }
  .section-eyebrow { font-size: .75rem; letter-spacing: .12em; }
  .invitacion__titulo { font-size: 3.7rem; }
  .envelope-hint { font-size: 1rem; }
  .envelope-stage { max-width: 560px; }
  .contact-crest { position: static; width: 100px; height: auto; margin: 0 auto 24px; }
  .contact-title { font-size: 3.7rem; margin: 0 0 32px; }
  .contact-list { width: 100%; max-width: 560px; }
  .contact-item { flex-direction: column; gap: 16px; padding: 24px 0; }
  .contact-names { min-width: 0; font-size: 2.7rem; line-height: 1.3; }
  .contact-info { min-width: 0; text-align: center; }
  .contact-phone { font-size: 1.2rem; overflow-wrap: anywhere; }
}
@media (max-width: 480px) {
  .site-header .split-nav { grid-template-columns: minmax(0,1fr) 78px minmax(0,1fr); gap: 6px; padding-inline: 10px; }
  .site-header .home-link { font-size: 2.9rem; }
  body #page > .wedding-home > section:not(.hero-section) { padding-inline: 20px; }
  .welcome-text p { font-size: 1.125rem; }
  .invitation-letter { padding: 16px 12px; }
  .invitation-letter h3 { font-size: 2.3rem; }
  .invitation-copy p { font-size: 1rem; line-height: 1.4; }
  .letter-crest { height: 50px; width: 50px; }
  .letter-rule { margin-top: 12px; }
}
@media (max-width: 782px) { body.admin-bar { --davana-admin-offset: 46px; } }
@media (min-width: 901px) and (max-height: 820px) {
  .hero-logo { width: 300px; margin-bottom: 12px; }
  .couple-names { font-size: 6.5rem; }
  .wedding-date { margin-top: 18px; }
}
@media (prefers-reduced-motion: reduce) { .tapete-card::before { animation: none; } }

/* Barra fina: se conserva Home y los enlaces se despliegan en móvil. */
.site-header .home-link { font-size: 5rem; }
.davana-menu-toggle { display: none; }
@media (max-width: 900px) {
  .site-header.has-mobile-menu, .site-header.has-mobile-menu.scrolled { padding: 4px 0; }
  .site-header.has-mobile-menu .split-nav { position: relative; grid-template-columns: 44px minmax(0,1fr) 44px; gap: 8px; }
  .site-header.has-mobile-menu .nav-center { grid-area: 1 / 2; }
  .site-header.has-mobile-menu .home-link { font-size: 3.3rem; min-height: 52px; }
  .davana-menu-toggle { display: flex; grid-area: 1 / 3; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 44px; height: 44px; padding: 8px; border: 1px solid #e4d7b955; border-radius: 3px; background: transparent; color: #e4d7b9; cursor: pointer; }
  .davana-menu-toggle span { display: block; width: 21px; height: 1px; background: currentColor; transition: transform .2s ease; }
  .davana-menu-toggle:focus-visible { outline: 2px solid #e4d7b9; outline-offset: 3px; }
  .site-header.has-mobile-menu .nav-left, .site-header.has-mobile-menu .nav-right { display: none; position: absolute; grid-area: auto; top: 100%; width: 50%; box-sizing: border-box; padding: 10px 12px 16px; background: var(--davana-official-blue); }
  .site-header.has-mobile-menu .nav-left { left: 0; right: auto; }
  .site-header.has-mobile-menu .nav-right { left: 50%; right: auto; }
  .site-header.has-mobile-menu.menu-open .nav-left, .site-header.has-mobile-menu.menu-open .nav-right { display: flex; }
  .site-header.has-mobile-menu .nav-link { min-height: 44px; font-size: .9rem; }
  .site-header.menu-open .davana-menu-toggle span:first-child { transform: translateY(3px) rotate(45deg); }
  .site-header.menu-open .davana-menu-toggle span:last-child { transform: translateY(-3px) rotate(-45deg); }
}

@media (max-width: 360px) { .welcome-card { padding: 50px 24px 42px; border-radius: 72px 72px 4px 4px; } .welcome-title { font-size: 2.8rem; margin-bottom: 18px; } }

/* Cita del tapete: tamaño más discreto solo en escritorio. */
@media (min-width: 901px) {
  .tapete-text p { font-size: 2.8rem; }
  .tapete-text br { display: none; }
}

/* Fotografías con mayor presencia en escritorio, sin recortarlas. */
@media (min-width: 901px) {
  body #page > .wedding-home > .wedding-gallery-section { padding: 64px 24px 48px; }
  body .dav-gallery { width: min(1440px,100%); margin-top: 24px; }
  body .dav-gallery-stage { height: clamp(440px,65svh,860px); }
}

/* Sobre de papel azul y sello según referencia de David · 22-10-2026. */
.wedding-envelope { aspect-ratio: 1.414; }
.envelope-pocket { filter: drop-shadow(0 3px 3px #111d2a55); }
.pocket-left { background: linear-gradient(120deg,#263443,#2a3848 70%); }
.pocket-right { background: linear-gradient(240deg,#263443,#2a3848 70%); }
.pocket-bottom { background: linear-gradient(0deg,#283646,#2b3949); box-shadow: inset 0 -9px 16px #14213035; }
.envelope-flap.has-fold > .flap-front,
.envelope-flap.has-fold > .flap-lining { clip-path: polygon(0 0,100% 0,99.6% 8%,98.4% 18%,96% 26%,73.56% 62.1%,26.44% 62.1%,4% 26%,1.6% 18%,.4% 8%); }
.flap-front { background: linear-gradient(180deg,#304051 0%,#283646 32%,#283646 100%); box-shadow: inset 0 16px 18px -17px #9ba7b45c; }
.flap-tip-front { background: #283646; }
.envelope-flap::before { content: none; }
.envelope-flap { filter: none; }
.envelope-flap::before { content: ''; position: absolute; inset: 0; background: #101c2c88; clip-path: polygon(0 0,100% 0,99.6% 8%,98.4% 18%,96% 26%,73.56% 62.1%,50% 100%,26.44% 62.1%,4% 26%,1.6% 18%,.4% 8%); transform: translateY(4px); filter: blur(2px); backface-visibility: hidden; pointer-events: none; opacity: 0; }
.envelope-stage:not(.is-open) .envelope-flap::before { opacity: 1; transition: opacity 0s 2s; }
.envelope-stage.is-open .envelope-flap { filter: none; }
@media (prefers-reduced-motion: reduce) { .envelope-stage:not(.is-open) .envelope-flap { transition: none; } }
.envelope-seal { top: 62%; width: 17%; filter: drop-shadow(0 3px 2px #111b2855); }

/* Laterales alineados hasta la punta; se conserva la articulación del papel. */
.flap-tip { top: 62.1%; left: 26.44%; width: 47.12%; height: 37.9%; }
.flap-tip-back::before,.flap-tip-back::after { width: 212.2241087%; height: 263.8522427%; left: -56.1120543%; top: -163.8522427%; }
.envelope-hint { opacity: 1; transition: opacity .7s ease; }
.envelope-hint.is-dismissed { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .envelope-hint { transition: none; } }

/* Tapete de referencia, confirmación y cisnes · 22-10-2026. */
.welcome-card { position: relative; isolation: isolate; box-sizing: border-box; width: 100%; min-height: 0; aspect-ratio: 1441 / 1091; padding: 0; background: none; border: 0; border-radius: 0; outline: 0; box-shadow: none; }
.welcome-card::before { content: ''; position: absolute; top: 50%; left: 50%; width: 75.7113%; height: 132.0807%; background: url('tapete-bienvenida-20261022.png') center / 100% 100% no-repeat; transform: translate(-50%,-50%) rotate(90deg); z-index: 0; pointer-events: none; }
.welcome-card::after,.welcome-card .welcome-text::before,.welcome-card .welcome-text::after { content: none; }
.welcome-card .welcome-text { position: relative; z-index: 1; max-width: 60%; width: 60%; color: #2c3646; }
.welcome-card .welcome-title { font-size: clamp(3rem,5vw,4.5rem); line-height: 1.15; margin: 0 0 18px; }
.welcome-card .welcome-text p { font-size: clamp(1.15rem,1.65vw,1.45rem); line-height: 1.4; margin: 0 0 12px; }
.welcome-card .welcome-text > br { display: none; }
.welcome-card .welcome-text p:last-child { margin-bottom: 0; }
.invitation-rsvp { display: inline-flex; position: relative; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; box-sizing: border-box; margin: 12px auto 0; padding: 10px 22px; border: 1px solid #a98b51; border-radius: 3px; background: #2c3646; color: #fff; font-family: var(--font-ana); font-size: 1.1rem; line-height: 1.25; text-decoration: none; transition: background .2s ease,color .2s ease; }
.invitation-rsvp:visited { color: #fff; }
.invitation-rsvp:hover { background: #e4d7b9; color: #2c3646; }
.invitation-rsvp:focus-visible { outline: 2px solid #2c3646; outline-offset: 4px; }
@media (max-width: 900px) {
  body #page > .wedding-home > .hero-section { background-position: 20% center; }
  .welcome-container { max-width: 560px; }
  .welcome-card { aspect-ratio: auto; padding: 0; border-style: solid; border-color: transparent; border-width: 64px 58px 76px; border-image-source: url('tapete-bienvenida-20261022.png'); border-image-slice: 230 210 270 210 fill; border-image-repeat: stretch round; background: none; border-radius: 0; box-shadow: none; }
  .welcome-card::before { content: none; }
  .welcome-card .welcome-text { width: 100%; max-width: 100%; padding: 8px 0; }
  .welcome-card .welcome-title { font-size: clamp(2.6rem,8vw,3.6rem); margin-bottom: 16px; }
  .welcome-card .welcome-text p { font-size: 1.0625rem; line-height: 1.45; margin-bottom: 14px; }
  .invitation-rsvp { padding: 9px 14px; font-size: 1rem; margin-top: 8px; }
}
@media (max-width: 360px) { .welcome-card { border-width: 54px 44px 64px; } .welcome-card .welcome-text p { font-size: 1rem; } }

/* Bienvenida: jerarquía y aire dentro del encaje · 23-10-2026. */
.welcome-card .welcome-text { width: 54%; max-width: 560px; }
.welcome-card .welcome-title { margin-bottom: 26px; }
.welcome-card .welcome-text p { font-size: clamp(1.125rem,1.55vw,1.35rem); line-height: 1.6; margin: 0 0 22px; text-wrap: pretty; }
.welcome-card .welcome-text .welcome-lead { font-size: clamp(1.2rem,1.7vw,1.45rem); line-height: 1.5; margin-bottom: 22px; }
.welcome-card .welcome-text .welcome-closing { font-size: clamp(1.05rem,1.4vw,1.2rem); line-height: 1.5; margin: 28px 0 0; }
@media (max-width: 900px) {
  .welcome-card .welcome-text { width: 100%; max-width: 100%; box-sizing: border-box; padding: 10px 12px; }
  .welcome-card .welcome-title { margin-bottom: 24px; }
  .welcome-card .welcome-text p { font-size: clamp(1rem,2.4vw,1.125rem); line-height: 1.6; margin-bottom: 20px; }
  .welcome-card .welcome-text .welcome-lead { font-size: clamp(1.0625rem,2.5vw,1.1875rem); line-height: 1.5; margin-bottom: 20px; }
  .welcome-card .welcome-text .welcome-closing { font-size: clamp(.96875rem,2.3vw,1.0625rem); line-height: 1.5; margin-top: 26px; }
}

/* Texto original: composición equilibrada · 27-10-2026. */
.welcome-card .welcome-original { width: 55%; max-width: 580px; }
.welcome-card .welcome-original .welcome-title { margin-bottom: 28px; }
.welcome-card .welcome-original p { font-size: clamp(1.125rem,1.5vw,1.3125rem); line-height: 1.55; margin: 0 0 18px; text-wrap: balance; }
.welcome-card .welcome-original .welcome-lead { font-size: clamp(1.2rem,1.65vw,1.4375rem); line-height: 1.5; letter-spacing: .015em; margin-bottom: 24px; }
.welcome-card .welcome-original .welcome-closing { font-size: clamp(1.0625rem,1.35vw,1.1875rem); line-height: 1.55; font-style: italic; margin: 26px auto 0; max-width: 92%; }
@media (max-width: 900px) {
  .welcome-card .welcome-original { width: 100%; max-width: 100%; padding: 14px 10px; }
  .welcome-card .welcome-original .welcome-title { margin-bottom: 24px; }
  .welcome-card .welcome-original p { font-size: clamp(1rem,2.4vw,1.125rem); line-height: 1.55; margin-bottom: 18px; }
  .welcome-card .welcome-original .welcome-lead { font-size: clamp(1.0625rem,2.6vw,1.25rem); line-height: 1.5; margin-bottom: 22px; }
  .welcome-card .welcome-original .welcome-closing { font-size: clamp(.96875rem,2.3vw,1.0625rem); line-height: 1.55; margin-top: 24px; max-width: 100%; }
}

/* Centrado respecto al papel, no al lienzo transparente · 27-10-2026.
   En el PNG vertical (1441 px), el papel ocupa y=230..1168.
   Al rotar 90°, su centro queda 21.5 px a la derecha: 1.4920194%. */
@media (min-width: 901px) {
  .welcome-card .welcome-text { left: 1.4920194%; }
}
@media (max-width: 900px) {
  .welcome-card .welcome-text { left: 0; }
}

/* Portada de boda: final en Contactos, sin contenido de ejemplo. */
.wedding-home { display: block; width: 100%; margin: 0; padding: 0; }

/* El body.page de WordPress hereda margen de entrada; la portada termina en Contactos. */
body.home { margin-bottom: 0; }

.schedule-church-name {
  max-width: 28ch;
  margin: 20px auto 0;
  font-family: var(--font-ana);
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  line-height: 1.4;
  text-align: center;
  text-wrap: balance;
  font-style: italic;
}
