/* Nochebuena: una postal continua con secciones de papel y cuadros suaves. */
:is(.nochebuena-story, .amigo-story, .papa-story) {
  --paper: #fbf6ed;
  --ink: #392e27;
  --accent: #94272d;
  --card: #fffbf4;
  --green: #375d49;
  --line: #dec9a9;
  --ink-serif: 'Cormorant Garamond', Georgia, serif;
  --pale-tartan: repeating-linear-gradient(90deg, transparent 0 24px, #b8424010 24px 27px, transparent 27px 34px, #60836213 34px 49px, transparent 49px 61px), repeating-linear-gradient(0deg, transparent 0 24px, #b8424010 24px 27px, transparent 27px 34px, #60836213 34px 49px, transparent 49px 61px);
}
:is(.nochebuena-story, .amigo-story, .papa-story) .section { padding: clamp(56px, 9vw, 92px) 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .section > .wrap { width: min(630px, calc(100% - 46px)); }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-accent { background: var(--pale-tartan), #f7f0e3; }
:is(.nochebuena-story, .amigo-story, .papa-story) .section-head { margin-bottom: 26px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .kicker { color: var(--green); font-family: var(--ink-serif); letter-spacing: .24em; font-size: .82rem; }
:is(.nochebuena-story, .amigo-story, .papa-story) .section h2 { font: 400 clamp(2.95rem, 8vw, 4.6rem)/.98 'Great Vibes', cursive; color: var(--accent); }
:is(.nochebuena-story, .amigo-story, .papa-story) .section p, :is(.nochebuena-story, .amigo-story, .papa-story) .section address, :is(.nochebuena-story, .amigo-story, .papa-story) .menu-course { font: 500 clamp(1.19rem, 4.5vw, 1.5rem)/1.35 var(--ink-serif); }
:is(.nochebuena-story, .amigo-story, .papa-story) .section-head p { margin-top: 13px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-icon { color: var(--green); font: 2rem/1 Georgia, serif; display: block; margin: 0 0 12px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .panel { padding: clamp(22px, 5.5vw, 40px); border-radius: 15px; border: 1px solid var(--line); background: var(--card); box-shadow: 0 14px 35px #4e351b13; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-outline { outline: 1px solid #e8d8c0; outline-offset: -8px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .btn { border-radius: 999px; min-height: 42px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .btn.secondary { color: var(--accent); border-color: var(--line); }
:is(.nochebuena-story, .amigo-story, .papa-story) .event-card { text-align: center; }
:is(.nochebuena-story, .amigo-story, .papa-story) .event-card strong { font: 700 1.6rem var(--ink-serif); }
:is(.nochebuena-story, .amigo-story, .papa-story) .event-card .actions { display: grid; margin: 18px auto 0; max-width: 335px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .event-card .actions a { margin: 0; display: flex; }
.nochebuena-story .story-quote { text-align: center; background: radial-gradient(ellipse,#f2e7d2,#f8efe0); }
.nochebuena-story blockquote { font: italic 500 clamp(1.65rem,5vw,2.45rem)/1.25 var(--ink-serif); margin: 16px 0 20px; color: #704635; text-wrap: balance; }
.nochebuena-story .hero { border-bottom-width: 14px; }
.nochebuena-story .hero-grid { min-height: calc(100svh - 80px); padding: clamp(115px, 20vh, 170px) 0 105px; }
.nochebuena-story .hero-copy { max-width: 470px; }
.nochebuena-story .hero h1 { max-width: 7.5em; margin-inline: auto; text-wrap: balance; background: linear-gradient(110deg,#852229 25%,#9d6d32 78%); color: transparent; background-clip: text; }
.nochebuena-story .hero-art { width: clamp(105px,22vw,225px); right: 0; bottom: -4px; }
.nochebuena-story .hero-decoration img { height: clamp(114px,18vh,155px); }
.nochebuena-story .hero .lead { font: italic 500 1.35rem/1.3 var(--ink-serif); }
.nochebuena-story .hero .countdown { margin-top: 12px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-nav { position: sticky; top: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .menu-course { padding: 13px 0; text-align: center; }
:is(.nochebuena-story, .amigo-story, .papa-story) .menu-course + .menu-course { border-top: 1px dashed var(--line); }
:is(.nochebuena-story, .amigo-story, .papa-story) .menu-course span { display: block; margin-bottom: 5px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-options { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-choice { position: relative; cursor: pointer; display: inline-flex; align-items: center; margin: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-choice span { display: block; padding: 8px 15px; border: 1px solid var(--line); border-radius: 18px; color: var(--accent); font-size: .83rem; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-choice input:checked + span { background: var(--green); color: white; border-color: var(--green); }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-choice input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 3px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; text-align: center; margin: 20px 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-meta div { border: 1px dashed var(--line); border-radius: 12px; background: #f5ebdc; padding: 12px 6px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-meta strong { font: 700 1.4rem var(--ink-serif); }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-switch { display: flex; gap: 10px; align-items: center; justify-content: center; cursor: pointer; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-switch input { appearance: none; width: 46px; height: 26px; border: 1px solid var(--line); border-radius: 20px; background: #eee3d1; cursor: pointer; position: relative; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-switch input::before { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-switch input:checked { background: var(--green); }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-switch input:checked::before { left: 23px; }
:is(.nochebuena-story, .amigo-story, .papa-story) fieldset { padding: 12px 0 18px; margin: 12px 0 0; border: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) fieldset+fieldset { border-top: 1px dashed var(--line); }
:is(.nochebuena-story, .amigo-story, .papa-story) legend { font: 700 1.27rem var(--ink-serif); padding: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .song-entry { display: flex; align-items: stretch; gap: 8px; }
:is(.nochebuena-story, .amigo-story, .papa-story) .song-entry input { min-width: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .song-entry button { margin: 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .song-list { padding-left: 20px; overflow-wrap: anywhere; }
:is(.nochebuena-story, .amigo-story, .papa-story) .song-list li { margin: 8px 0; }
:is(.nochebuena-story, .amigo-story, .papa-story) .song-remove { background: transparent; color: var(--accent); border: 0; text-decoration: underline; font-size: .78rem; }
:is(.nochebuena-story, .amigo-story, .papa-story) .status { font-family: 'DM Sans', sans-serif!important; font-size: .9rem!important; }
:is(.nochebuena-story, .amigo-story, .papa-story) .gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-end { text-align: center; background: var(--pale-tartan), #f5ead7; border-top: 10px solid transparent; border-image: var(--tartan) 1; }
:is(.nochebuena-story, .amigo-story, .papa-story) .story-end img { width: 170px; margin: 0 auto; }
.nochebuena-story .intro-gift { background: #f3e6d2; }
.nochebuena-story .gift-wrap { z-index: 0; }
.nochebuena-story .gift-wrap::before,.nochebuena-story .gift-wrap::after {
  inset: 0 auto 0 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(0deg,transparent calc(48% - 14px),#af863e calc(48% - 14px),#f9dfa1 48%,#b48332 calc(48% + 14px),transparent calc(48% + 14px)),linear-gradient(90deg,transparent calc(100% - 17px),#f9dfa1 calc(100% - 17px),#b48332 100%),var(--tartan);
  transition: transform .5s ease-in;
}
.nochebuena-story .gift-wrap::after { inset: 0 0 0 auto; transform: scaleX(-1); }
.nochebuena-story .intro-gift.is-opening { opacity: 1; }
.nochebuena-story .intro.is-opening .intro-stage { opacity: 0; }
.nochebuena-story .intro.is-opening .gift-wrap::before { transform: translateX(-101%); }
.nochebuena-story .intro.is-opening .gift-wrap::after { transform: translateX(101%) scaleX(-1); }
.nochebuena-story .intro-stage { max-width: 395px; }
.nochebuena-story .intro-bow { margin-bottom: 25px; }
.nochebuena-story .intro-bow img { width: clamp(155px, 57vw, 235px); }
.nochebuena-story .intro-gift .intro-note { width: min(100%, 340px); margin: auto; }
.nochebuena-story .intro-gift h2 { margin-bottom: 0; }
.nochebuena-story .intro-open { margin-top: clamp(23px, 7vh, 68px); }
@media (max-width:700px) {
  .nochebuena-story .hero-grid { min-height: calc(100svh - 71px); padding-bottom: 105px; }
  .nochebuena-story .hero h1 { font-size: clamp(3.55rem,14vw,5.4rem); }
  .nochebuena-story .hero .date { font-size: .72rem; }
}

/* Amigo Invisible: tarjeta clara sobre un fondo de bastones de caramelo. */
.amigo-story { --green: #45634c; }
.amigo-story .hero-grid { min-height: calc(100svh - 76px); }
.amigo-story .hero-copy { max-width: 510px; }
.amigo-story .story-accent { background-color: #f1e6d8; }
.amigo-story .intro-skip { color: #fff5e7; }
:is(.amigo-story, .papa-story) button.story-music {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 8px;
  padding: 8px 18px;
  border: 1px solid #205738;
  border-radius: 999px;
  background: #286644;
  color: #fff;
  font-size: .85rem;
  font-weight: 700;
  text-decoration: none;
}
:is(.amigo-story, .papa-story) button.story-music:hover { background: #205738; }
:is(.amigo-story, .papa-story) button.story-music:focus-visible { outline: 2px solid #173e2a; outline-offset: 3px; }
.amigo-story .intro button.story-music:focus-visible { outline-color: #fff; }
@media (max-width:700px) {
  .amigo-story .hero-grid { min-height: calc(100svh - 67px); }
}

/* Papá Noel: títulos redondeados y una tarjeta infantil en cada sección. */
.papa-story .section h2 { font: 900 clamp(2.1rem, 7vw, 3.5rem)/1.05 'Nunito',system-ui,sans-serif; }
.papa-story .section .kicker { font-family: 'DM Sans',system-ui,sans-serif; }
.papa-story .section p,.papa-story .section address { font: inherit; }
.papa-story .hero-grid { min-height: calc(100svh - 76px); }
.papa-story .story-accent { background-color: #f6ead5; }
.papa-story .papa-timeline { margin: 0; }
.papa-story .papa-timeline li { grid-template-columns: 4.3rem 1fr; }
.papa-story .papa-timeline li:last-child { border-bottom: 0; }
.papa-story .papa-album-action { margin-top: 22px; text-align: center; }
.papa-story .intro-letter-open { display: block; background: transparent; border: 0; padding: 0; }
.papa-story .intro-letter-open img { margin-block: 0; }
@media(max-width:700px) {
  .papa-story .hero-grid { min-height: calc(100svh - 67px); }
}
