/* Secciones comunes de las plantillas de fiesta (cumpleaños de adultos y adolescentes).
   Va después de kit/base.css; cada diseño pone su portada y su carácter en css/app.css. */

.fs {
  --fs-on-accent: var(--mi-color-acento-on, #1c1c1c);
  --k-orn-1: var(--k-primary); --k-orn-2: var(--k-secondary); --k-orn-3: var(--k-accent);
}
.fs .k-orn { color: var(--k-text); }
.fs:not(.fs--orn) .fs-orn { display: none; }

/* Portada */
.fs-hero { position: relative; display: flex; flex-direction: column; align-items: center; gap: .8rem; padding: clamp(36px, 8vw, 64px) var(--k-gap) clamp(48px, 10vw, 88px); overflow: hidden; text-align: center; }
.fs-hero > * { position: relative; }
.fs-name { margin: .2rem 0 0; font-size: clamp(3rem, 15vw, 5.6rem); line-height: 1; }
.fs-when { display: grid; gap: .1rem; margin: 0; font-size: 1.05rem; font-weight: 600; }
.fs-when span { color: var(--k-muted); font-size: .95rem; font-weight: 400; }
.fs-age { display: grid; place-content: center; width: 92px; height: 92px; margin: 0; border-radius: 50%; background: var(--k-primary); color: var(--k-on-primary); font: 700 .68rem/1 var(--k-font-body); letter-spacing: .16em; text-transform: uppercase; box-shadow: 0 0 0 5px var(--k-surface), 0 12px 24px -12px rgba(0, 0, 0, .45); }
.fs-age strong { display: block; margin-top: 2px; font: 400 2.6rem/1 var(--k-font-title); letter-spacing: 0; text-transform: none; }
.fs-countdown > div { background: var(--k-surface); box-shadow: 0 0 0 1px var(--k-secondary); }
.fs-countdown strong { font-family: var(--k-font-title); }

/* Bienvenida y secciones */
.fs-welcome .k-divider { width: 72px; }
.fs-message { margin: 0 auto; max-width: 28em; font-size: clamp(1.15rem, 4.4vw, 1.35rem); line-height: 1.55; }
.fs-soft { background: color-mix(in srgb, var(--k-secondary) 30%, var(--k-bg)); }
.fs-card h3 { font-family: var(--k-font-body); font-size: 1.3rem; font-weight: 700; }
.fs-note { color: var(--k-muted); }
.fs-hashtag { display: grid; gap: .2rem; margin: 1.6rem 0 0; color: var(--k-primary); font: 400 clamp(1.8rem, 7vw, 2.4rem)/1.1 var(--k-font-title); overflow-wrap: anywhere; }
.fs-hashtag span { color: var(--k-muted); font: 600 .78rem/1.4 var(--k-font-body); letter-spacing: .16em; text-transform: uppercase; }

/* Regalos, confirmación, compartir, pie */
.fs .fs-sobres { background: var(--k-primary); color: var(--k-on-primary); }
.fs-sobres h3 { margin: 0 0 .4rem; font-family: var(--k-font-body); font-size: 1.3rem; font-weight: 700; }
.fs-sobres p { margin: 0; }
.fs-rsvp { text-align: left; }
.fs-share { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.fs-footer { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.fs-footer-orn { display: block; width: 72px; }
.fs-footer .k-quote { font-family: var(--k-font-title); font-style: normal; font-size: 1.5rem; color: var(--k-text); }
