:root {
  --blush-rose: #f4c2c2;
  --blush-petal: #f8e1e4;
  --blush-coral: #ffb7a5;
  --blush-mauve: #e6b8d4;
  --blush-lavender: #e2d5f0;
  --blush-mint: #d4f1e0;
  --blush-cream: #fff8e7;
  --blush-pearl: #f0f4f8;

  --blush-charcoal: #1a1517;
  --blush-surface: #252023;
  --blush-elevated: #2e282b;

  --glass-blush: rgba(248, 225, 228, 0.08);
  --glass-lavender: rgba(226, 213, 240, 0.06);
  --glass-cream: rgba(255, 248, 231, 0.06);

  --border-blush: 1px solid rgba(244, 194, 194, 0.25);
  --border-pearl: 1px solid rgba(255, 255, 255, 0.16);

  --glow-blush: 0 0 30px rgba(244, 194, 194, 0.2);
  --glow-pearl: 0 0 38px rgba(255, 248, 231, 0.16);
  --shadow-soft: 0 22px 45px rgba(26, 21, 23, 0.28);
  --shadow-colored: 0 18px 36px rgba(244, 194, 194, 0.16);

  --font-blush-display: "Bodoni Moda", "Playfair Display", serif;
  --font-blush-body: "Instrument Sans", "Manrope", sans-serif;
  --font-blush-accent: "Great Vibes", cursive;

  --radius-cloud: 34px;
  --radius-pill: 999px;

  --float-gentle: 9s;
  --fade-slow: 1.2s;
}

body.invitation-shell--blush-eternel {
  background:
    radial-gradient(circle at top left, rgba(244, 194, 194, 0.18), transparent 26%),
    radial-gradient(circle at top right, rgba(226, 213, 240, 0.16), transparent 24%),
    linear-gradient(180deg, #1f191c 0%, #161113 55%, #120d10 100%);
  background-size: 100% 100%, 100% 100%, 100% 100%;
}

.blush-eternel-template {
  color: var(--blush-cream);
  font-family: var(--font-blush-body);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.08), transparent 16%),
    linear-gradient(180deg, rgba(37, 32, 35, 0.98), rgba(18, 13, 16, 0.98));
  overflow-x: clip;
  width: 100%;
  max-width: 100vw;
}

.blush-eternel-template img {
  display: block;
  max-width: 100%;
}

.blush-eternel-template a {
  color: inherit;
}

.blush-eternel-template [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity 0.82s cubic-bezier(0.16, 1, 0.3, 1), transform 0.82s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-eternel-template [data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.blush-chip,
.blush-btn,
.blush-inline-link,
.blush-inline-note,
.blush-floating-rsvp,
.blush-location-card__type,
.blush-timeline__badge,
.blush-gift-card__eyebrow,
.blush-rsvp-card__eyebrow,
.blush-soundtrack__eyebrow,
.blush-court-group__label {
  border-radius: var(--radius-pill);
}

.blush-floating-rsvp {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 25;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.9rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(248, 225, 228, 0.16);
  color: #fff;
  text-decoration: none;
  box-shadow: var(--shadow-colored);
  backdrop-filter: blur(18px);
}

.blush-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: clamp(5.25rem, 10vw, 7.5rem) 1.35rem 4.6rem;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(26, 21, 23, 0.96) 0%, rgba(46, 40, 43, 0.88) 28%, rgba(244, 194, 194, 0.34) 68%, rgba(255, 248, 231, 0.18) 100%),
    radial-gradient(circle at top center, rgba(255, 255, 255, 0.12), transparent 26%),
    linear-gradient(180deg, #1a1517 0%, #252023 100%);
}

.blush-hero::before,
.blush-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.blush-hero::before {
  background:
    linear-gradient(180deg, rgba(26, 21, 23, 0.2), rgba(26, 21, 23, 0.42)),
    radial-gradient(circle at top left, rgba(212, 241, 224, 0.12), transparent 24%),
    radial-gradient(circle at bottom right, rgba(255, 183, 165, 0.14), transparent 22%);
}

.blush-hero::after {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.02), transparent 18%, transparent 82%, rgba(255, 255, 255, 0.02)),
    radial-gradient(circle at center, rgba(255, 255, 255, 0.1), transparent 38%);
  mix-blend-mode: screen;
}

.blush-bokeh {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.blush-bokeh__orb {
  position: absolute;
  display: block;
  width: 18rem;
  height: 18rem;
  background: url("../img/bokeh-light.svg") center / contain no-repeat;
  opacity: 0.18;
  animation: blush-bokeh-float var(--float-gentle) ease-in-out infinite;
}

.blush-bokeh__orb--1 {
  top: 5%;
  left: -2%;
  width: 20rem;
  height: 20rem;
}

.blush-bokeh__orb--2 {
  top: 14%;
  right: 6%;
  width: 16rem;
  height: 16rem;
  animation-delay: 1s;
}

.blush-bokeh__orb--3 {
  top: 35%;
  left: 11%;
  width: 14rem;
  height: 14rem;
  animation-delay: 1.8s;
}

.blush-bokeh__orb--4 {
  top: 54%;
  right: 12%;
  width: 21rem;
  height: 21rem;
  animation-delay: 2.4s;
}

.blush-bokeh__orb--5 {
  bottom: 11%;
  left: 6%;
  width: 17rem;
  height: 17rem;
  animation-delay: 3s;
}

.blush-bokeh__orb--6 {
  bottom: 6%;
  right: -1%;
  width: 15rem;
  height: 15rem;
  animation-delay: 3.8s;
}

.blush-bokeh__orb--7 {
  top: 22%;
  left: 44%;
  width: 12rem;
  height: 12rem;
  animation-delay: 4.4s;
}

.blush-bokeh__orb--8 {
  bottom: 28%;
  right: 40%;
  width: 13rem;
  height: 13rem;
  animation-delay: 5s;
}

.blush-hero__grid,
.blush-wardrobe {
  width: min(1180px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 470px);
  gap: clamp(1.6rem, 4vw, 4rem);
  align-items: center;
  position: relative;
  z-index: 1;
}

.blush-hero__copy {
  display: grid;
  gap: 1.2rem;
}

.blush-kicker,
.blush-section-label {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255, 248, 231, 0.78);
}

.blush-title,
.blush-heading,
.blush-location-card h3,
.blush-timeline__card h3,
.blush-gift-card h3,
.blush-rsvp-card h3,
.blush-soundtrack h3,
.blush-swatch-card strong,
.blush-person-card strong {
  font-family: var(--font-blush-display);
}

.blush-title {
  margin: 0;
  font-size: clamp(3rem, 7vw, 5.75rem);
  line-height: 0.92;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-wrap: balance;
  color: #fff;
  text-shadow: 0 14px 34px rgba(26, 21, 23, 0.28);
}

.blush-script {
  margin: -0.3rem 0 0;
  font-family: var(--font-blush-accent);
  font-size: clamp(2.8rem, 4vw, 4rem);
  color: rgba(255, 248, 231, 0.94);
}

.blush-hero__lede,
.blush-copy,
.blush-location-card p,
.blush-timeline__card p,
.blush-gift-card p,
.blush-rsvp-card p,
.blush-soundtrack p,
.blush-person-card p {
  margin: 0;
  max-width: 62ch;
  color: rgba(255, 248, 231, 0.8);
  line-height: 1.72;
}

.blush-chip-row,
.blush-hero__actions,
.blush-rsvp-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.blush-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.4rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  backdrop-filter: blur(14px);
}

.blush-btn,
.blush-inline-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 3rem;
  padding: 0.85rem 1.3rem;
  border: 1px solid transparent;
  text-decoration: none;
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease, background-color 0.24s ease;
}

.blush-btn:hover,
.blush-inline-link:hover {
  transform: translateY(-2px);
}

.blush-btn--primary {
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.94), rgba(255, 183, 165, 0.92));
  color: #2e282b;
  box-shadow: var(--shadow-colored);
}

.blush-btn--ghost,
.blush-inline-link {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  backdrop-filter: blur(14px);
}

.blush-btn:active,
.blush-inline-link:active,
.blush-floating-rsvp:active {
  transform: translateY(1px) scale(0.99);
}

.blush-btn:focus-visible,
.blush-inline-link:focus-visible,
.blush-floating-rsvp:focus-visible,
.blush-lightbox-link:focus-visible,
.blush-mosaic__item:focus-visible {
  outline: 2px solid rgba(255, 248, 231, 0.92);
  outline-offset: 3px;
}

.blush-hero__visual {
  position: relative;
  margin: 0;
  display: grid;
  justify-items: center;
}

.blush-cloud-frame {
  position: relative;
  width: min(100%, 440px);
  padding: 1.15rem;
  border-radius: 43% 57% 48% 52% / 38% 44% 56% 62%;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.06)),
    rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(18px);
  animation: blush-cloud-float 9s ease-in-out infinite;
}

.blush-cloud-frame::before {
  content: "";
  position: absolute;
  inset: -0.45rem;
  background: url("../img/cloud-shape.svg") center / cover no-repeat;
  opacity: 0.42;
  pointer-events: none;
}

.blush-cloud-frame a,
.blush-cloud-frame__placeholder {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  min-height: 520px;
  border-radius: 41% 59% 52% 48% / 40% 40% 60% 60%;
  background: linear-gradient(180deg, rgba(37, 32, 35, 0.38), rgba(37, 32, 35, 0.82));
}

.blush-cloud-frame img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}

.blush-cloud-frame__placeholder {
  gap: 0.9rem;
  padding: 2rem;
}

.blush-cloud-frame__placeholder i {
  font-size: 3rem;
  color: rgba(255, 248, 231, 0.78);
}

.blush-cloud-frame__placeholder span {
  max-width: 16ch;
  text-align: center;
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 248, 231, 0.72);
}

.blush-date-pearl {
  position: absolute;
  left: 50%;
  bottom: -1rem;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  min-width: min(82%, 310px);
  padding: 0.95rem 1.2rem;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(18px);
  box-shadow: var(--shadow-colored);
  justify-content: center;
}

.blush-date-pearl strong {
  font-size: 0.84rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fff;
}

.blush-date-pearl__dot {
  width: 0.95rem;
  height: 0.95rem;
  background: url("../img/pearl.svg") center / contain no-repeat;
  animation: blush-pearl-pulse 3.2s ease-in-out infinite;
}

.blush-shell {
  width: min(100%, 100vw);
  margin: 0;
  padding: 5.3rem 1.5rem 5rem;
  display: grid;
  gap: 4.2rem;
  max-width: 100%;
  overflow-x: hidden;
}

.blush-shell-inner {
  width: min(1180px, 100%);
  margin: 0 auto;
}

.blush-section {
  display: grid;
  gap: 1.4rem;
  margin-bottom: 3.5rem;
}

.blush-section:last-child {
  margin-bottom: 0;
}

.blush-section-head {
  display: grid;
  gap: 0.55rem;
}

.blush-heading {
  margin: 0;
  font-size: clamp(2rem, 3.3vw, 3rem);
  line-height: 1.02;
  color: #fff;
  text-wrap: balance;
}

.blush-welcome-card,
.blush-location-card,
.blush-timeline__card,
.blush-swatch-card,
.blush-gift-card,
.blush-rsvp-card,
.blush-soundtrack,
.blush-wardrobe__visual,
.blush-court-group {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
  border: var(--border-pearl);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),
    rgba(46, 40, 43, 0.76);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(16px);
}

.blush-welcome-card {
  padding: clamp(2rem, 4vw, 3rem);
}

.blush-welcome-card::before {
  content: "";
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 8rem;
  height: 8rem;
  background: url("../img/peony-line.svg") center / contain no-repeat;
  opacity: 0.26;
}

.blush-quote {
  position: relative;
  margin: 0 0 1.2rem;
  padding-left: 1.7rem;
}

.blush-quote__mark {
  position: absolute;
  left: 0;
  top: -0.6rem;
  font-size: 3rem;
  line-height: 1;
  color: var(--blush-petal);
}

.blush-quote p {
  margin: 0;
  max-width: 22ch;
  font-family: var(--font-blush-accent);
  font-size: clamp(1.9rem, 3vw, 2.8rem);
  line-height: 1.16;
  color: #fff;
}

.blush-chip-row--welcome {
  margin-top: 1.4rem;
}

.blush-countdown {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.blush-countdown__unit {
  position: relative;
  padding: 1.45rem 1rem;
  text-align: center;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: var(--shadow-colored);
}

.blush-countdown__unit::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -0.72rem;
  width: 1rem;
  height: 1rem;
  transform: translateY(-50%);
  background: url("../img/pearl.svg") center / contain no-repeat;
  opacity: 0.82;
}

.blush-countdown__unit:last-child::after {
  display: none;
}

.blush-countdown__unit.is-rose {
  background: linear-gradient(180deg, rgba(244, 194, 194, 0.18), rgba(244, 194, 194, 0.08));
}

.blush-countdown__unit.is-coral {
  background: linear-gradient(180deg, rgba(255, 183, 165, 0.18), rgba(255, 183, 165, 0.08));
}

.blush-countdown__unit.is-lavender {
  background: linear-gradient(180deg, rgba(226, 213, 240, 0.2), rgba(226, 213, 240, 0.08));
}

.blush-countdown__unit.is-mint {
  background: linear-gradient(180deg, rgba(212, 241, 224, 0.2), rgba(212, 241, 224, 0.08));
}

.blush-countdown__value {
  display: block;
  font-family: var(--font-blush-display);
  font-size: clamp(2.5rem, 5vw, 3.4rem);
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
  transition: transform 0.3s ease, text-shadow 0.3s ease;
}

.blush-countdown__value.is-tick {
  transform: translate3d(0, -4px, 0) scale(1.03);
  text-shadow: 0 0 18px rgba(255, 248, 231, 0.48);
}

.blush-countdown__label {
  display: block;
  margin-top: 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255, 248, 231, 0.72);
}

/* ============================================
   COUNTDOWN HERO (SECCIÓN DESTACADA)
   ============================================ */
.blush-section--countdown-hero {
  padding: clamp(1.5rem, 3vw, 2.5rem) 0;
  margin-bottom: 0;
}

.blush-countdown-hero {
  position: relative;
  text-align: center;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
    rgba(46, 40, 43, 0.6);
  border: 1px solid rgba(244, 194, 194, 0.15);
  border-radius: var(--radius-cloud);
  backdrop-filter: blur(14px);
  overflow: hidden;
}

/* Glow radial detrás */
.blush-countdown-hero__glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 70%;
  height: 140%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(244, 194, 194, 0.12) 0%, rgba(226, 213, 240, 0.06) 40%, transparent 70%);
  pointer-events: none;
  animation: blush-countdown-glow 5s ease-in-out infinite;
}

@keyframes blush-countdown-glow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

.blush-countdown-hero__label {
  position: relative;
  display: inline-block;
  font-family: var(--font-blush-accent);
  font-size: clamp(1.4rem, 3vw, 1.8rem);
  color: var(--blush-rose);
  margin-bottom: 1.25rem;
  letter-spacing: 0.02em;
}

.blush-countdown--hero {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(0.75rem, 2vw, 1.25rem);
  flex-wrap: wrap;
}

.blush-countdown--hero .blush-countdown__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(1rem, 2vw, 1.5rem) clamp(1.25rem, 2.5vw, 2rem);
  background: linear-gradient(180deg, rgba(244, 194, 194, 0.08), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(244, 194, 194, 0.18);
  border-radius: 22px;
  min-width: clamp(72px, 12vw, 100px);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.blush-countdown--hero .blush-countdown__item:hover {
  border-color: rgba(244, 194, 194, 0.35);
  box-shadow: 0 0 20px rgba(244, 194, 194, 0.12);
}

.blush-countdown--hero .blush-countdown__value {
  font-family: var(--font-blush-display);
  font-size: clamp(2.5rem, 5.5vw, 3.5rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
  transition: transform 0.3s ease, text-shadow 0.3s ease;
}

.blush-countdown--hero .blush-countdown__label {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 248, 231, 0.55);
}

.blush-countdown--hero .blush-countdown__separator {
  font-family: var(--font-blush-display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--blush-rose);
  opacity: 0.4;
  align-self: flex-start;
  margin-top: clamp(0.6rem, 1.5vw, 1rem);
  animation: blush-separator-pulse 1.5s ease-in-out infinite;
}

@keyframes blush-separator-pulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.7; }
}

.blush-countdown-hero__tagline {
  position: relative;
  margin: 1.25rem 0 0;
  font-family: var(--font-blush-body);
  font-size: 0.88rem;
  color: rgba(255, 248, 231, 0.5);
  letter-spacing: 0.04em;
}

/* Animación de tick para countdown */
@keyframes blush-countdown-tick {
  0% { transform: scale(1); }
  50% { transform: scale(1.06); text-shadow: 0 0 14px rgba(244, 194, 194, 0.4); }
  100% { transform: scale(1); }
}

.blush-countdown--hero .blush-countdown__value.is-tick {
  animation: blush-countdown-tick 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ============================================
   TIMELINE ZIG-ZAG
   ============================================ */
.blush-timeline--zigzag {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2rem 0;
  max-width: 900px;
  margin: 0 auto;
}

.blush-timeline--zigzag::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent 0%, var(--blush-rose) 50%, transparent 100%);
  opacity: 0.6;
  z-index: 0;
}

.blush-timeline__step {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 2rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.blush-timeline__step--left {
  direction: rtl;
}

.blush-timeline__step--left .blush-timeline__card {
  direction: ltr;
  text-align: right;
}

.blush-timeline__step--right .blush-timeline__card {
  text-align: left;
}

.blush-timeline__badge {
  grid-column: 2 / 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.2) 0%, rgba(226, 213, 240, 0.15) 100%);
  border: 1px solid rgba(244, 194, 194, 0.3);
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--blush-cream);
  min-width: 100px;
  position: relative;
}

.blush-timeline__badge::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 140%;
  height: 140%;
  background: radial-gradient(circle, rgba(244, 194, 194, 0.1) 0%, transparent 70%);
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

.blush-timeline__step:hover .blush-timeline__badge::before {
  transform: translate(-50%, -50%) scale(1);
}

.blush-timeline__badge i {
  font-size: 1rem;
  color: var(--blush-rose);
}

.blush-timeline__card {
  padding: 1.5rem;
  background: var(--glass-blush);
  border: var(--border-pearl);
  border-radius: var(--radius-cloud);
  backdrop-filter: blur(12px);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-timeline__card:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(244, 194, 194, 0.3);
  transform: translateY(-3px);
  box-shadow: var(--glow-blush);
}

.blush-timeline__card h3 {
  font-family: var(--font-blush-display);
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--blush-cream);
}

.blush-timeline__card p {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--blush-cream);
  opacity: 0.85;
  margin: 0;
}

/* ============================================
   DRESS CODE MEJORADO
   ============================================ */
.blush-section--dress {
  padding: clamp(3rem, 6vw, 5rem) 0;
}

.blush-dress-code--enhanced {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 900px;
  margin: 0 auto;
}

.blush-dress-code__visual--large {
  position: relative;
  border-radius: var(--radius-cloud);
  overflow: hidden;
  aspect-ratio: 3/4;
  border: var(--border-pearl);
}

.blush-dress-code__visual--large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-dress-code__visual--large:hover img {
  transform: scale(1.05);
}

.blush-dress-code__info {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 2rem;
  background: var(--glass-blush);
  border: var(--border-pearl);
  border-radius: var(--radius-cloud);
  backdrop-filter: blur(12px);
}

.blush-dress-code__text {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--blush-cream);
  opacity: 0.9;
  margin: 0;
}

.blush-dress-code__icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.2) 0%, rgba(226, 213, 240, 0.15) 100%);
  border-radius: 50%;
  border: 1px solid rgba(244, 194, 194, 0.25);
  font-size: 1.75rem;
  color: var(--blush-rose);
  align-self: flex-start;
}

/* ============================================
   PARTICIPANTES COMPACTOS
   ============================================ */
.blush-court-groups--compact {
  gap: 2rem;
}

.blush-court-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
}

.blush-court-grid--compact .blush-court-member {
  padding: 1.25rem;
}

.blush-court-grid--compact .blush-court-member__icon {
  width: 40px;
  height: 40px;
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
}

.blush-court-grid--compact .blush-court-member__name {
  font-size: 0.875rem;
}

.blush-court-grid--compact .blush-court-member__role {
  font-size: 0.75rem;
}


.blush-destinations,
.blush-gifts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.blush-location-card,
.blush-gift-card {
  padding: 1.45rem;
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.blush-location-card:hover,
.blush-gift-card:hover,
.blush-swatch-card:hover,
.blush-person-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-colored);
}

.blush-location-card__head,
.blush-court-group__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.blush-location-card__type,
.blush-timeline__badge,
.blush-gift-card__eyebrow,
.blush-rsvp-card__eyebrow,
.blush-soundtrack__eyebrow,
.blush-court-group__label,
.blush-inline-note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.3rem 0.75rem;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.blush-location-card__head i {
  color: var(--blush-petal);
  font-size: 1.15rem;
}

.blush-location-card h3,
.blush-timeline__card h3,
.blush-gift-card h3,
.blush-soundtrack h3 {
  margin: 0.95rem 0 0.55rem;
  font-size: 1.4rem;
  color: #fff;
}

.blush-location-card__note {
  margin-top: 0.9rem;
  color: rgba(255, 248, 231, 0.64);
}

.blush-inline-note {
  margin-top: 0.85rem;
  justify-self: start;
}

.blush-inline-link {
  margin-top: 0.95rem;
}

.blush-timeline {
  position: relative;
  display: grid;
  gap: 2.5rem;
  padding: 2rem 0;
  max-width: 100%;
}

.blush-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: none;
  opacity: 0;
  z-index: 0;
  pointer-events: none;
}

.blush-timeline::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent 0%, rgba(244, 194, 194, 0.9) 20%, rgba(244, 194, 194, 1) 50%, rgba(244, 194, 194, 0.9) 80%, transparent 100%);
  opacity: 0.8;
  z-index: 0;
  pointer-events: none;
  box-shadow: 0 0 20px rgba(244, 194, 194, 0.6);
}

.blush-timeline__step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 5.5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.blush-timeline__step.is-right .blush-timeline__time {
  grid-column: 3 / 4;
  justify-self: start;
}

.blush-timeline__step.is-right .blush-timeline__card {
  grid-column: 1 / 2;
}

.blush-timeline__time {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.4rem;
  min-height: 2.65rem;
  padding: 0.45rem 0.7rem;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-family: var(--font-blush-display);
  font-size: 1.08rem;
  justify-self: end;
  z-index: 1;
}

.blush-timeline__card {
  padding: 1.35rem;
}

.blush-wardrobe {
  align-items: start;
}

.blush-wardrobe__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.blush-swatch-card {
  padding: 1.35rem;
  min-height: 100%;
}

.blush-swatch-card::before {
  content: "";
  display: block;
  width: 4.1rem;
  height: 4.1rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 10px 20px rgba(26, 21, 23, 0.18);
}

.blush-swatch-card.is-petal::before {
  background: linear-gradient(135deg, #f8e1e4, #f4c2c2);
}

.blush-swatch-card.is-coral::before {
  background: linear-gradient(135deg, #ffd2c8, #ffb7a5);
}

.blush-swatch-card.is-lavender::before {
  background: linear-gradient(135deg, #efe8fa, #e2d5f0);
}

.blush-swatch-card.is-mint::before {
  background: linear-gradient(135deg, #ecfbf2, #d4f1e0);
}

.blush-swatch-card__label {
  display: block;
  font-size: 0.76rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 248, 231, 0.68);
}

.blush-swatch-card strong {
  display: block;
  margin: 0.85rem 0 0.6rem;
  font-size: 1.38rem;
  color: #fff;
}

.blush-swatch-card p {
  color: rgba(255, 248, 231, 0.76);
  line-height: 1.68;
}

.blush-wardrobe__visual {
  margin: 0;
  padding: 0.95rem;
  display: grid;
  gap: 1rem;
}

.blush-wardrobe__visual a,
.blush-wardrobe__placeholder {
  display: block;
  overflow: hidden;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
}

.blush-wardrobe__visual img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.blush-wardrobe__placeholder {
  min-height: 420px;
  display: grid;
  place-items: center;
  text-align: center;
  color: rgba(255, 248, 231, 0.74);
}

.blush-wardrobe__placeholder span {
  max-width: 14ch;
  line-height: 1.4;
}

.blush-wardrobe__visual figcaption p {
  color: rgba(255, 248, 231, 0.76);
}

.blush-soundtrack,
.blush-rsvp-card {
  padding: clamp(1.8rem, 4vw, 3rem);
}

.blush-soundtrack {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: start;
}

.blush-soundtrack__meta {
  display: grid;
  gap: 0.75rem;
}

.blush-soundtrack__eyebrow,
.blush-soundtrack__actions {
  margin-top: 0.5rem;
}

.blush-soundtrack__embed {
  width: 100%;
  max-width: 500px;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.3);
}

.blush-soundtrack__embed iframe,
.blush-spotify-embed {
  display: block;
  width: 100%;
  height: 352px;
}

.blush-spotify-embed {
  border-radius: 12px;
  overflow: hidden;
}

.blush-court-groups {
  display: grid;
  gap: 1.2rem;
}

.blush-court-group {
  padding: 1.4rem;
}

.blush-court-group__head {
  margin-bottom: 1rem;
}

.blush-court-group__label {
  margin: 0;
}

.blush-court-group__head span {
  color: rgba(255, 248, 231, 0.62);
  font-size: 0.86rem;
}

.blush-court-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.blush-person-card {
  display: grid;
  justify-items: center;
  gap: 0.8rem;
  padding: 1rem 0.8rem 1.2rem;
  border-radius: 26px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),
    rgba(255, 255, 255, 0.04);
  transition: transform 0.26s ease, box-shadow 0.26s ease;
}

.blush-person-card__halo {
  position: relative;
  display: grid;
  place-items: center;
  width: 7.4rem;
  height: 7.4rem;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.44), rgba(255, 255, 255, 0.08) 45%, rgba(255, 255, 255, 0) 72%),
    linear-gradient(135deg, rgba(248, 225, 228, 0.38), rgba(226, 213, 240, 0.28));
  border: 1px solid rgba(255, 255, 255, 0.26);
  box-shadow: 0 18px 26px rgba(26, 21, 23, 0.18);
}

.blush-person-card__halo::after {
  content: "";
  position: absolute;
  inset: -0.55rem;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.blush-person-card__halo span {
  font-family: var(--font-blush-display);
  font-size: 1.9rem;
  color: #fff;
}

.blush-person-card strong {
  font-size: 1.2rem;
  color: #fff;
  text-align: center;
}

.blush-person-card p {
  font-size: 0.82rem;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 248, 231, 0.58);
}

.blush-mosaic {
  column-count: 3;
  column-gap: 1rem;
  grid-auto-flow: dense;
}

.blush-mosaic__item {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  margin-bottom: 1rem;
  break-inside: avoid;
  display: inline-block;
  width: 100%;
}

.blush-mosaic__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(244, 194, 194, 0.3) 100%);
  opacity: 0;
  transition: opacity 0.24s ease;
  pointer-events: none;
}

.blush-mosaic__item:hover::after {
  opacity: 1;
}

.blush-mosaic__item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.36s ease;
}

.blush-mosaic__item:hover img {
  transform: scale(1.05);
}

/* Variaciones tipo Pinterest */
.blush-mosaic__item--wide {
  grid-column: span 2;
}

.blush-mosaic__item--tall {
  min-height: 500px;
}

.blush-mosaic__item--square {
  aspect-ratio: 1;
}

.blush-gift-card {
  display: grid;
  align-content: start;
}

.blush-rsvp-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: center;
  border-radius: 36px;
}

.blush-rsvp-card::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
}

.blush-rsvp-card__copy {
  display: grid;
  gap: 0.75rem;
}

.blush-rsvp-card h3 {
  margin: 0;
  font-size: clamp(1.9rem, 3.2vw, 2.7rem);
  line-height: 1.02;
}

.blush-rsvp-card__actions {
  justify-content: flex-end;
}

.blush-footer {
  padding: 2rem 1.4rem 3rem;
  text-align: center;
  color: rgba(255, 248, 231, 0.58);
  font-size: 0.84rem;
}

.blush-footer p {
  margin: 0;
}

.blush-footer p + p {
  margin-top: 0.45rem;
}

/* ============================================
   NUEVOS ESTILOS - DISEÑO COMPACTO
   ============================================ */

/* Hero info compacto */
.blush-hero__info {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  font-size: 0.95rem;
  color: rgba(255, 248, 231, 0.85);
  margin: 1rem 0 1.5rem;
}

.blush-hero__info i {
  margin-right: 0.35rem;
  color: var(--blush-rose);
}

.blush-hero__separator {
  color: rgba(255, 248, 231, 0.4);
}

/* ============================================
   SECCIONES - Inspirado en barbie-dream
   ============================================ */

.blush-section {
  position: relative;
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  isolation: isolate;
}

.blush-section::before,
.blush-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.blush-section > * {
  width: min(1180px, calc(100% - clamp(1.5rem, 4vw, 3rem)));
  margin-inline: auto;
  position: relative;
  z-index: 1;
}

.blush-section-head {
  display: grid;
  gap: 0.7rem;
  margin-bottom: 2rem;
  text-align: center;
}

.blush-section-head > div {
  max-width: 42rem;
  margin: 0 auto;
}

.blush-section-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255, 248, 231, 0.7);
  margin-bottom: 0.5rem;
}

.blush-heading {
  margin: 0;
  font-size: clamp(2rem, 4.5vw, 3rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
  text-wrap: balance;
  color: #fff;
}

.blush-copy,
.blush-location-card p,
.blush-timeline__content p,
.blush-gift-card p,
.blush-rsvp-card__copy p {
  max-width: 65ch;
  line-height: 1.74;
  color: rgba(255, 248, 231, 0.85);
}

/* Secciones secundarias con menos protagonismo */
.blush-section--secondary {
  padding: clamp(2rem, 4vw, 3rem) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.blush-section--secondary .blush-heading {
  font-size: clamp(1.5rem, 3.5vw, 2rem);
}

/* Sección RSVP */
.blush-section--rsvp {
  padding: clamp(2rem, 4vw, 3rem) 0;
}

/* Variaciones por sección */
#welcome .blush-section-label,
#schedule .blush-section-label,
#locations .blush-section-label {
  color: rgba(255, 248, 231, 0.7);
}

#dress-code .blush-section-label,
#rsvp .blush-section-label {
  color: var(--blush-rose);
}

/* Decoración sutil entre secciones */
.blush-section + .blush-section {
  margin-top: 0;
}

/* ============================================
   PARTICIPANTS / COURT OF HONOR
   ============================================ */
.blush-section--participants {
  padding: clamp(2rem, 4vw, 3rem) 0;
}

.blush-court-groups {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.blush-court-group {
  background: var(--glass-blush);
  border: var(--border-pearl);
  border-radius: var(--radius-cloud);
  padding: clamp(1.5rem, 3vw, 2rem);
  backdrop-filter: blur(12px);
}

.blush-court-group__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.blush-court-group__head i {
  color: var(--blush-rose);
  font-size: 1.25rem;
}

.blush-court-group__label {
  font-family: var(--font-blush-display);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blush-cream);
}

.blush-court-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.25rem;
}

.blush-court-member {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-cloud);
  padding: 1.5rem;
  text-align: center;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}

.blush-court-member::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--blush-rose), transparent);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.blush-court-member:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(244, 194, 194, 0.3);
  transform: translateY(-4px);
  box-shadow: var(--glow-blush);
}

.blush-court-member:hover::before {
  opacity: 1;
}

.blush-court-member__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.15) 0%, rgba(226, 213, 240, 0.12) 100%);
  border-radius: 50%;
  border: 1px solid rgba(244, 194, 194, 0.2);
  font-size: 1.25rem;
  color: var(--blush-rose);
  transition: all 0.3s ease;
}

.blush-court-member:hover .blush-court-member__icon {
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.25) 0%, rgba(226, 213, 240, 0.18) 100%);
  border-color: var(--blush-rose);
  box-shadow: 0 0 16px rgba(244, 194, 194, 0.3);
  transform: scale(1.08) rotate(3deg);
}

.blush-court-member__name {
  font-family: var(--font-blush-display);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--blush-cream);
  margin-bottom: 0.35rem;
  letter-spacing: 0.02em;
}

.blush-court-member__role {
  font-size: 0.8rem;
  color: var(--blush-rose);
  font-weight: 400;
}

/* ============================================
   FAQ ACCORDION
   ============================================ */
.blush-section--faq {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}

.blush-faq-container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 800px;
  margin: 0 auto;
}

.blush-faq-card {
  background: var(--glass-blush);
  border: var(--border-pearl);
  border-radius: var(--radius-cloud);
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(12px);
}

.blush-faq-card.is-active {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(244, 194, 194, 0.3);
  box-shadow: var(--glow-blush);
}

.blush-faq-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  gap: 1rem;
  transition: all 0.3s ease;
}

.blush-faq-trigger:hover {
  background: rgba(255, 255, 255, 0.03);
}

.blush-faq-question {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
}

.blush-faq-number {
  font-family: var(--font-blush-display);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--blush-rose);
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.15) 0%, rgba(226, 213, 240, 0.12) 100%);
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
  border: 1px solid rgba(244, 194, 194, 0.2);
  flex-shrink: 0;
  letter-spacing: 0.05em;
}

.blush-faq-text {
  font-family: var(--font-blush-body);
  font-size: 1rem;
  font-weight: 500;
  color: var(--blush-cream);
  line-height: 1.5;
}

.blush-faq-icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
  flex-shrink: 0;
  transition: all 0.3s ease;
  position: relative;
}

.blush-faq-icon i {
  position: absolute;
  color: var(--blush-rose);
  font-size: 0.75rem;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-faq-icon .fa-minus {
  opacity: 0;
  transform: rotate(-90deg);
}

.blush-faq-card.is-active .blush-faq-icon {
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.2) 0%, rgba(226, 213, 240, 0.15) 100%);
}

.blush-faq-card.is-active .blush-faq-icon .fa-plus {
  opacity: 0;
  transform: rotate(90deg);
}

.blush-faq-card.is-active .blush-faq-icon .fa-minus {
  opacity: 1;
  transform: rotate(0);
}

.blush-faq-content {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-faq-answer {
  padding: 0 1.5rem 1.5rem 3.5rem;
}

.blush-faq-answer p {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--blush-cream);
  opacity: 0.85;
}

/* Responsive */
@media (max-width: 768px) {
  .blush-section {
    padding: clamp(2rem, 5vw, 3rem) 0;
  }

  .blush-section-head {
    margin-bottom: 1.5rem;
  }

  .blush-heading {
    font-size: clamp(1.5rem, 4vw, 2.2rem);
  }

  .blush-section-label {
    font-size: 0.7rem;
    letter-spacing: 0.12em;
  }

  /* Countdown Hero Responsive */
  .blush-countdown-hero {
    padding: 1.5rem 1.25rem;
  }

  .blush-countdown--hero .blush-countdown__separator {
    margin-top: 0.5rem;
  }

  .blush-countdown-hero__tagline {
    font-size: 0.8rem;
  }

  /* Timeline Zig-Zag Responsive */
  .blush-timeline--zigzag {
    gap: 1.5rem;
  }

  .blush-timeline--zigzag::before {
    left: 20px;
  }

  .blush-timeline__step {
    grid-template-columns: 80px 1fr;
    gap: 1rem;
  }

  .blush-timeline__step--left,
  .blush-timeline__step--right {
    direction: ltr;
  }

  .blush-timeline__step--left .blush-timeline__card,
  .blush-timeline__step--right .blush-timeline__card {
    text-align: left;
  }

  .blush-timeline__badge {
    grid-column: 1 / 2;
    min-width: 70px;
    padding: 0.5rem 0.75rem;
  }

  .blush-timeline__badge i {
    font-size: 0.875rem;
  }

  .blush-timeline__card {
    grid-column: 2 / 3;
    padding: 1.25rem;
  }

  .blush-timeline__card h3 {
    font-size: 1rem;
  }

  .blush-timeline__card p {
    font-size: 0.85rem;
  }

  /* Dress Code Responsive */
  .blush-dress-code--enhanced {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .blush-dress-code__visual--large {
    aspect-ratio: 4/5;
    max-width: 400px;
    margin: 0 auto;
  }

  .blush-dress-code__info {
    padding: 1.5rem;
  }

  .blush-dress-code__icon {
    width: 56px;
    height: 56px;
    font-size: 1.5rem;
  }

  /* Participants Responsive */
  .blush-court-groups {
    gap: 2rem;
  }

  .blush-court-group {
    padding: 1.25rem;
  }

  .blush-court-group__head {
    margin-bottom: 1.25rem;
  }

  .blush-court-group__label {
    font-size: 1rem;
  }

  .blush-court-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1rem;
  }

  .blush-court-member {
    padding: 1.25rem;
  }

  .blush-court-member__icon {
    width: 42px;
    height: 42px;
    font-size: 1.1rem;
    margin-bottom: 0.875rem;
  }

  .blush-court-member__name {
    font-size: 0.9rem;
  }

  .blush-court-member__role {
    font-size: 0.75rem;
  }

  /* FAQ Responsive */
  .blush-faq-container {
    gap: 0.75rem;
  }

  .blush-faq-card {
    border-radius: 16px;
  }

  .blush-faq-trigger {
    padding: 1rem 1.25rem;
  }

  .blush-faq-question {
    gap: 0.75rem;
  }

  .blush-faq-number {
    font-size: 0.7rem;
    padding: 0.3rem 0.55rem;
  }

  .blush-faq-text {
    font-size: 0.9rem;
  }

  .blush-faq-icon {
    width: 26px;
    height: 26px;
  }

  .blush-faq-icon i {
    font-size: 0.7rem;
  }

  .blush-faq-answer {
    padding: 0 1.25rem 1.25rem 3rem;
  }

  .blush-faq-answer p {
    font-size: 0.9rem;
    line-height: 1.7;
  }
}

/* Info Grid (bienvenida + countdown) */
.blush-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}

.blush-info-card {
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.blush-info-card__head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.blush-info-card__head i {
  font-size: 1.25rem;
  color: var(--blush-rose);
}

.blush-info-card__head h3 {
  font-size: 1.1rem;
  margin: 0;
}

.blush-quote-simple {
  font-family: var(--font-blush-accent);
  font-size: 1.5rem;
  color: #fff;
  margin: 0 0 1rem;
  padding-left: 1rem;
  border-left: 2px solid var(--blush-rose);
}

/* Countdown compacto */
.blush-countdown--compact {
  display: flex;
  gap: 1rem;
  justify-content: center;
}

.blush-countdown--compact .blush-countdown__unit {
  padding: 0.75rem;
  min-width: 70px;
}

.blush-countdown--compact .blush-countdown__value {
  font-size: 1.75rem;
}

.blush-countdown--compact .blush-countdown__label {
  font-size: 0.7rem;
}

/* Timeline compacto (lista vertical) */
.blush-timeline--compact {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
  padding-left: 3rem;
}

.blush-timeline--compact::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--blush-rose), transparent);
  opacity: 0.6;
}

.blush-timeline__item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 1rem;
  align-items: start;
}

.blush-timeline__time {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: rgba(255, 248, 231, 0.8);
}

.blush-timeline__time i {
  color: var(--blush-rose);
  font-size: 1rem;
}

.blush-timeline__content h3 {
  font-size: 1.1rem;
  margin: 0 0 0.25rem;
}

.blush-timeline__content p {
  font-size: 0.9rem;
  margin: 0;
  color: rgba(255, 248, 231, 0.7);
}

/* Ubicaciones grid */
.blush-locations-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.blush-location-card__head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: rgba(255, 248, 231, 0.7);
  margin-bottom: 0.5rem;
}

.blush-location-card__head i {
  color: var(--blush-rose);
}

.blush-location-card__address {
  font-size: 0.9rem;
  color: rgba(255, 248, 231, 0.7);
  margin: 0.5rem 0;
}

/* Dress code compacto */
.blush-dress-code {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
}

.blush-dress-code__text {
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(255, 248, 231, 0.85);
}

.blush-dress-code__visual {
  max-width: 300px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.blush-dress-code__visual img {
  width: 100%;
  height: auto;
}

/* RSVP card */

.blush-rsvp-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  padding: 2rem;
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.15), rgba(255, 248, 231, 0.08));
  border-radius: 24px;
  border: 1px solid rgba(244, 194, 194, 0.25);
}

.blush-rsvp-card__copy h2 {
  font-size: 1.5rem;
  margin: 0 0 0.5rem;
}

.blush-rsvp-card__copy p {
  margin: 0;
  color: rgba(255, 248, 231, 0.8);
}

.blush-rsvp-card__actions {
  flex-shrink: 0;
}

/* Secciones secundarias (música, galería, regalos) */
.blush-section--secondary {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* Soundtrack compacto */
.blush-soundtrack {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.5rem;
  align-items: center;
}

.blush-soundtrack__meta strong {
  display: block;
  font-size: 1.1rem;
  margin-bottom: 0.25rem;
}

.blush-soundtrack__meta p {
  margin: 0;
  font-size: 0.9rem;
  color: rgba(255, 248, 231, 0.7);
}

.blush-soundtrack__embed {
  width: 300px;
  border-radius: 12px;
  overflow: hidden;
}

/* Galería grid */
.blush-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 0.75rem;
}

.blush-gallery-item {
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.blush-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}

.blush-gallery-item:hover img {
  transform: scale(1.05);
}

/* Regalos grid */
.blush-gifts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.blush-gift-card {
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.blush-gift-card h4 {
  font-size: 1rem;
  margin: 0 0 0.5rem;
}

.blush-gift-card p {
  font-size: 0.9rem;
  color: rgba(255, 248, 231, 0.7);
  margin: 0 0 0.75rem;
}

/* Responsive para nuevos estilos */
@media (max-width: 768px) {
  .blush-info-grid {
    grid-template-columns: 1fr;
  }

  .blush-dress-code {
    grid-template-columns: 1fr;
  }

  .blush-dress-code__visual {
    max-width: 100%;
  }

  .blush-rsvp-card {
    flex-direction: column;
    text-align: center;
  }

  .blush-rsvp-card__actions {
    width: 100%;
  }

  .blush-soundtrack {
    grid-template-columns: 1fr;
  }

  .blush-soundtrack__embed {
    width: 100%;
  }

  .blush-timeline--compact {
    padding-left: 2.5rem;
  }

  .blush-timeline__item {
    grid-template-columns: 60px 1fr;
  }

  .blush-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .blush-hero__info {
    flex-direction: column;
    gap: 0.5rem;
  }

  .blush-timeline__item {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .blush-timeline__time {
    flex-direction: row;
    font-size: 0.8rem;
  }

  .blush-timeline__time i {
    display: none;
  }

  /* Participants Mobile */
  .blush-court-grid {
    grid-template-columns: 1fr;
  }

  .blush-court-member {
    padding: 1rem;
  }

  .blush-court-member__icon {
    width: 38px;
    height: 38px;
    font-size: 1rem;
    margin-bottom: 0.75rem;
  }

  .blush-court-member__name {
    font-size: 0.875rem;
  }

  /* FAQ Mobile */
  .blush-faq-trigger {
    padding: 0.875rem 1rem;
    gap: 0.625rem;
  }

  .blush-faq-answer {
    padding: 0 1rem 1rem 2.5rem;
  }

  .blush-faq-answer p {
    font-size: 0.85rem;
    line-height: 1.65;
  }
}

/* Scroll to Top Button */
.blush-scroll-top {
  position: fixed;
  bottom: 2rem;
  left: 2rem;
  z-index: 100;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(248, 225, 228, 0.16);
  backdrop-filter: blur(16px);
  color: #fff;
  font-size: 1.2rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 8px 24px rgba(26, 21, 23, 0.3);
}

.blush-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.blush-scroll-top:hover {
  background: rgba(244, 194, 194, 0.3);
  border-color: rgba(244, 194, 194, 0.4);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(244, 194, 194, 0.25);
}

.blush-scroll-top:active {
  transform: translateY(-2px);
}

@media (max-width: 640px) {
  .blush-scroll-top {
    bottom: 1.5rem;
    left: 1.5rem;
    width: 45px;
    height: 45px;
    font-size: 1rem;
  }
}

@keyframes blush-bokeh-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 0.16;
  }

  33% {
    transform: translate3d(18px, -20px, 0) scale(1.07);
    opacity: 0.24;
  }

  66% {
    transform: translate3d(-14px, 16px, 0) scale(0.94);
    opacity: 0.12;
  }
}

@keyframes blush-cloud-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
    border-radius: 43% 57% 48% 52% / 38% 44% 56% 62%;
  }

  50% {
    transform: translate3d(0, -8px, 0);
    border-radius: 48% 52% 42% 58% / 42% 40% 60% 58%;
  }
}

@keyframes blush-pearl-pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.72;
  }

  50% {
    transform: scale(1.12);
    opacity: 1;
  }
}

@media (max-width: 1024px) {
  .blush-hero__grid,
  .blush-wardrobe,
  .blush-soundtrack,
  .blush-rsvp-card {
    grid-template-columns: 1fr;
  }

  .blush-destinations,
  .blush-gifts,
  .blush-court-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blush-timeline::before {
    left: 1rem;
    transform: none;
  }

  .blush-timeline__step,
  .blush-timeline__step.is-right {
    grid-template-columns: 4rem minmax(0, 1fr);
  }

  .blush-timeline__time,
  .blush-timeline__step.is-right .blush-timeline__time,
  .blush-timeline__step.is-right .blush-timeline__card {
    grid-column: auto;
    justify-self: start;
  }

  .blush-countdown {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blush-mosaic__item {
    grid-column: span 6;
  }
}

@media (max-width: 640px) {
  .blush-floating-rsvp {
    right: 0.85rem;
    bottom: 0.85rem;
    padding: 0.75rem 1rem;
  }

  .blush-hero {
    min-height: auto;
    padding-top: 5rem;
  }

  .blush-bokeh__orb--2,
  .blush-bokeh__orb--7,
  .blush-bokeh__orb--8 {
    display: none;
  }

  .blush-shell {
    width: 100%;
    padding: 4rem 1rem 3rem;
    gap: 3.15rem;
  }

  .blush-shell-inner {
    width: 100%;
  }

  .blush-section {
    margin-bottom: 2.5rem;
  }

  .blush-chip-row,
  .blush-hero__actions,
  .blush-rsvp-card__actions {
    flex-direction: column;
  }

  .blush-chip,
  .blush-btn,
  .blush-inline-link,
  .blush-inline-note {
    width: 100%;
  }

  .blush-soundtrack {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .blush-soundtrack__embed {
    max-width: 100%;
  }

  .blush-timeline::before,
  .blush-timeline::after {
    display: none;
  }

  .blush-timeline__step,
  .blush-timeline__step.is-right {
    grid-template-columns: 5.5rem minmax(0, 1fr);
  }

  .blush-timeline__time,
  .blush-timeline__step.is-right .blush-timeline__time {
    grid-column: 1 / 2;
    justify-self: start;
  }

  .blush-timeline__card {
    grid-column: 2 / 3;
  }
}

  .blush-date-pearl {
    min-width: min(88%, 320px);
    gap: 0.6rem;
    padding-inline: 0.9rem;
  }

  .blush-date-pearl strong {
    font-size: 0.74rem;
    letter-spacing: 0.12em;
  }

  .blush-countdown__unit::after {
    display: none;
  }

  .blush-destinations,
  .blush-gifts,
  .blush-court-grid,
  .blush-wardrobe__cards {
    grid-template-columns: 1fr;
  }

  .blush-mosaic {
    column-count: 2;
    column-gap: 0.75rem;
  }

  .blush-mosaic__item {
    border-radius: 16px;
    margin-bottom: 0.75rem;
  }

  .blush-mosaic__item,
  .blush-mosaic__item--wide,
  .blush-mosaic__item--tall {
    min-height: auto;
  }

  .blush-cloud-frame a,
  .blush-cloud-frame__placeholder,
  .blush-cloud-frame img {
    min-height: 400px;
  }
}

@media (max-width: 480px) {
  .blush-mosaic {
    column-count: 1;
  }

  .blush-mosaic__item--tall {
    min-height: 400px;
  }
}

/* ============================================
   HERO — HALO, SPARKLES & TITLE SHIMMER
   ============================================ */
.blush-hero__halo {
  position: absolute;
  inset: -12%;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244, 194, 194, 0.18) 0%, rgba(226, 213, 240, 0.1) 40%, transparent 70%);
  filter: blur(30px);
  animation: blush-halo-breathe 5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes blush-halo-breathe {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.85; transform: scale(1.04); }
}

.blush-hero__sparkle {
  position: absolute;
  z-index: 3;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 248, 231, 0.9);
  pointer-events: none;
  animation: blush-sparkle 3.5s ease-in-out infinite;
}

.blush-hero__sparkle--1 { top: 6%; right: 10%; animation-delay: 0s; }
.blush-hero__sparkle--2 { bottom: 18%; left: 6%; animation-delay: 1.2s; width: 3px; height: 3px; }
.blush-hero__sparkle--3 { top: 35%; right: 4%; animation-delay: 2.4s; }

@keyframes blush-sparkle {
  0%, 100% { opacity: 0; transform: scale(0.5); box-shadow: none; }
  50% { opacity: 1; transform: scale(1); box-shadow: 0 0 6px rgba(255, 248, 231, 0.6), 0 0 14px rgba(244, 194, 194, 0.4); }
}

/* Shimmer sutil en el título */
.blush-title {
  background-image: linear-gradient(110deg, #fff 0%, #fff 40%, rgba(244, 194, 194, 0.7) 50%, #fff 60%, #fff 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: blush-title-shimmer 6s ease-in-out infinite;
}

@keyframes blush-title-shimmer {
  0%, 70%, 100% { background-position: 100% 0; }
  35% { background-position: -100% 0; }
}

/* ============================================
   TIMELINE — NODOS Y LÍNEA PROGRESIVA
   ============================================ */
.blush-timeline__line-progress {
  position: absolute;
  top: 0;
  left: 50%;
  width: 2px;
  height: 0;
  transform: translateX(-50%);
  background: linear-gradient(180deg, var(--blush-rose), var(--blush-lavender));
  z-index: 1;
  pointer-events: none;
  transition: height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 0 12px rgba(244, 194, 194, 0.5);
  border-radius: 1px;
}

.blush-timeline__node {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--blush-surface);
  border: 2px solid rgba(244, 194, 194, 0.3);
  z-index: 2;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 0 0 4px transparent;
}

.blush-timeline__step.is-visible .blush-timeline__node {
  background: var(--blush-rose);
  border-color: var(--blush-rose);
  box-shadow: 0 0 0 4px rgba(244, 194, 194, 0.15), 0 0 10px rgba(244, 194, 194, 0.3);
}

/* ============================================
   PARTICIPANTES — LAYOUT COMPACTO CHIPS
   ============================================ */
.blush-court-groups--tight {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.blush-court-group--tight {
  padding: clamp(0.85rem, 1.5vw, 1.25rem);
}

.blush-court-group--tight .blush-court-group__head {
  margin-bottom: 0.65rem;
}

.blush-court-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.blush-court-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-pill);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-court-chip:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(244, 194, 194, 0.3);
  box-shadow: var(--glow-blush);
  transform: translateY(-2px);
}

.blush-court-chip i {
  color: var(--blush-rose);
  font-size: 0.85rem;
  flex-shrink: 0;
}

.blush-court-chip__name {
  font-family: var(--font-blush-display);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--blush-cream);
  white-space: nowrap;
}

.blush-court-chip__role {
  font-size: 0.72rem;
  color: rgba(255, 248, 231, 0.55);
  white-space: nowrap;
}

.blush-court-chip__role::before {
  content: "·";
  margin-right: 0.35rem;
  color: rgba(255, 248, 231, 0.3);
}

/* ============================================
   GALERÍA — MASONRY PREMIUM
   ============================================ */
.blush-masonry {
  column-count: 3;
  column-gap: 0.85rem;
}

.blush-masonry__item {
  position: relative;
  display: block;
  break-inside: avoid;
  margin-bottom: 0.85rem;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-decoration: none;
}

.blush-masonry__item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-masonry__item:hover img {
  transform: scale(1.04);
}

.blush-masonry__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, transparent 30%, rgba(244, 194, 194, 0.25) 100%);
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}

.blush-masonry__overlay i {
  font-size: 1.25rem;
  color: #fff;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
  transform: translateY(8px);
  transition: transform 0.35s ease;
}

.blush-masonry__item:hover .blush-masonry__overlay {
  opacity: 1;
}

.blush-masonry__item:hover .blush-masonry__overlay i {
  transform: translateY(0);
}

/* ============================================
   REGALOS — CARDS PREMIUM
   ============================================ */
.blush-gifts-grid--premium {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
}

.blush-gift-card--premium {
  position: relative;
  padding: 1.75rem 1.5rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.blush-gift-card--premium:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(244, 194, 194, 0.25);
  transform: translateY(-4px);
  box-shadow: var(--glow-blush);
}

.blush-gift-card__icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(244, 194, 194, 0.15), rgba(226, 213, 240, 0.12));
  border-radius: 50%;
  border: 1px solid rgba(244, 194, 194, 0.2);
  font-size: 1.35rem;
  color: var(--blush-rose);
}

.blush-gift-card__title {
  font-family: var(--font-blush-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: #fff;
  margin: 0;
}

.blush-gift-card__desc {
  font-size: 0.9rem;
  line-height: 1.6;
  color: rgba(255, 248, 231, 0.7);
  margin: 0;
}

.blush-gift-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.2rem;
  margin-top: 0.25rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--blush-cream);
  text-decoration: none;
  background: rgba(244, 194, 194, 0.12);
  border: 1px solid rgba(244, 194, 194, 0.25);
  border-radius: var(--radius-pill);
  transition: all 0.3s ease;
}

.blush-gift-card__cta:hover {
  background: rgba(244, 194, 194, 0.2);
  border-color: var(--blush-rose);
  transform: translateY(-1px);
}

/* ============================================
   PARTICIPANTES — AJUSTE SPACING
   ============================================ */
.blush-section--participants .blush-section-head {
  margin-bottom: 1.25rem;
}

.blush-section--participants .blush-heading {
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
}

/* ============================================
   MÚSICA — LAYOUT COMPACTO
   ============================================ */
.blush-soundtrack--compact {
  display: block;
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
}

.blush-soundtrack--compact .blush-soundtrack__embed {
  width: 100%;
  max-width: 100%;
  border-radius: 14px;
  overflow: hidden;
}

.blush-soundtrack--compact .blush-spotify-embed,
.blush-soundtrack--compact iframe {
  width: 100%;
  height: 152px;
}

.blush-soundtrack__artist {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: rgba(255, 248, 231, 0.5);
  text-align: center;
}

/* ============================================
   RSVP — LIMPIO Y CENTRADO
   ============================================ */
.blush-section--rsvp {
  background: none;
}

.blush-rsvp-card--clean {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  grid-template-columns: none;
  gap: 0.75rem;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
    rgba(46, 40, 43, 0.6);
  border: 1px solid rgba(244, 194, 194, 0.15);
  border-radius: var(--radius-cloud);
  backdrop-filter: blur(14px);
}

.blush-rsvp-card__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--blush-rose);
  margin: 0;
}

.blush-rsvp-card__heading {
  font-family: var(--font-blush-display);
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  line-height: 1.05;
  color: #fff;
  margin: 0;
}

.blush-rsvp-card__copy-text {
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(255, 248, 231, 0.65);
  max-width: 40ch;
  margin: 0;
}

.blush-rsvp-card--clean .blush-btn--primary {
  margin-top: 0.5rem;
}

/* ============================================
   FAQ — SIN FONDO, MEJOR BASE
   ============================================ */
.blush-section--faq {
  background: none;
}

/* Responsive para nuevas mejoras */
@media (max-width: 768px) {
  .blush-masonry {
    column-count: 2;
    column-gap: 0.65rem;
  }

  .blush-masonry__item {
    margin-bottom: 0.65rem;
    border-radius: 12px;
  }

  .blush-court-chip {
    padding: 0.5rem 0.9rem;
  }

  .blush-court-chip__name {
    font-size: 0.85rem;
  }

  .blush-timeline__line-progress {
    left: 20px;
    transform: none;
  }

  .blush-timeline__node {
    width: 10px;
    height: 10px;
  }

  .blush-gift-card--premium {
    padding: 1.5rem 1.25rem;
  }

  .blush-gift-card__icon {
    width: 44px;
    height: 44px;
    font-size: 1.15rem;
  }
}

@media (max-width: 480px) {
  .blush-masonry {
    column-count: 2;
  }

  .blush-court-chip {
    padding: 0.45rem 0.8rem;
    gap: 0.4rem;
  }

  .blush-court-chip__name {
    font-size: 0.8rem;
  }

  .blush-court-chip__role {
    font-size: 0.65rem;
  }
}

@media (max-width: 640px) {
  .blush-timeline__line-progress {
    display: none;
  }

  .blush-timeline__node {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .blush-eternel-template [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .blush-bokeh__orb,
  .blush-cloud-frame,
  .blush-date-pearl__dot,
  .blush-hero__halo,
  .blush-hero__sparkle,
  .blush-title,
  .blush-countdown-hero__glow,
  .blush-countdown--hero .blush-countdown__separator {
    animation: none !important;
  }

  .blush-title {
    -webkit-text-fill-color: #fff;
    background-image: none;
  }

  .blush-timeline__line-progress {
    transition: none !important;
    height: 100% !important;
  }

  .blush-timeline__node {
    background: var(--blush-rose) !important;
    border-color: var(--blush-rose) !important;
  }

  .blush-btn,
  .blush-inline-link,
  .blush-location-card,
  .blush-gift-card,
  .blush-swatch-card,
  .blush-person-card,
  .blush-mosaic__item img,
  .blush-masonry__item img,
  .blush-countdown__value,
  .blush-court-chip {
    transition: none;
  }
}
