/* ===== Modo Navidad / Año Nuevo · hosted.cl ===== */
:root { --nv-red: #b3121f; --nv-gold: #d9b45a; }

/* Gorro sobre el logo */
.nav-logo .nv-gorro { position: absolute; width: 44px; left: -17px; top: -21px; transform: rotate(-24deg); z-index: 3; pointer-events: none; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .35)); }
header.stuck .nav-logo .nv-gorro { width: 48px; left: -16px; top: -24px; }

/* Gorro sobre la primera letra de los títulos */
.nv-letra { position: relative; display: inline-block; }
.nv-letra .nv-mini { position: absolute; width: .78em; left: -.22em; top: -.42em; transform: rotate(-22deg); pointer-events: none; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .3)); }

/* Esquinas del hero */
.hero .nv-esq { position: absolute; z-index: 4; width: min(30vw, 360px); pointer-events: none; filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .4)); }
.hero .nv-esq-r { right: -14px; bottom: 96px; transform: rotate(180deg); }
.hero .nv-adornos { position: absolute; z-index: 4; right: 6vw; top: calc(var(--tbh) + var(--nh) + 20px); width: min(16vw, 190px); pointer-events: none;
  transform-origin: top center; animation: nv-vaiven 6s ease-in-out infinite; filter: drop-shadow(0 12px 14px rgba(0, 0, 0, .35)); }
@keyframes nv-vaiven { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }

/* Saludo Próspero 2027 en el hero */
.nv-saludo { display: flex; width: fit-content; align-items: center; gap: 14px; margin: 0 0 22px; padding: 10px 22px 10px 12px; border-radius: 999px;
  background: rgba(8, 12, 16, .45); border: 1px solid rgba(217, 180, 90, .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.nv-saludo img { width: 34px; transform: rotate(-14deg); }
.nv-saludo span { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: 1.15rem; color: #fff; letter-spacing: .01em; }
.nv-saludo b { font-style: normal; font-weight: 700; color: var(--nv-gold); }

/* Nieve suave en el hero */
.nv-nieve { position: absolute; inset: 0; z-index: 2; pointer-events: none; }

/* Tarjetas de servicios: ramita en la esquina y gorro en el ícono */
.svc-card .nv-rama { position: absolute; top: -6px; right: -6px; width: 118px; z-index: 3; pointer-events: none; transform: scaleX(-1); filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .35)); }
.svc-photo .svc-badge { overflow: visible; }
.svc-badge .nv-mini { position: absolute; width: 40px; left: -12px; top: -22px; transform: rotate(-24deg); pointer-events: none; }

/* Franja de cierre con guirnalda */
.cta-band { position: relative; }
.cta-band::before { content: ''; position: absolute; left: 0; right: 0; top: -22px; height: 58px; pointer-events: none;
  background: url(guirnalda.webp) repeat-x center top / auto 58px; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .25)); z-index: 2; }
.cta-band .nv-2027 { display: block; font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: 1.05rem; color: var(--nv-gold); margin-bottom: 10px; }

/* Cinta flotante */
.nv-cinta { position: fixed; left: 18px; bottom: 18px; z-index: 450; display: flex; align-items: center; gap: 10px; padding: 9px 16px 9px 10px; border-radius: 14px;
  background: linear-gradient(135deg, #8e0f19, #c8202d); color: #fff; box-shadow: 0 10px 28px rgba(140, 15, 25, .35); font-size: .8rem; font-weight: 700; letter-spacing: .02em; }
.nv-cinta img { width: 30px; }
.nv-cinta small { display: block; font-weight: 500; opacity: .85; font-size: .7rem; }
.nv-cinta button { margin-left: 6px; background: none; border: 0; color: #fff; opacity: .7; font-size: 1rem; cursor: pointer; }

@media (max-width: 900px) {
  .nav-logo .nv-gorro { width: 34px; left: -13px; top: -16px; }
  .hero .nv-esq { width: 42vw; }
  .hero .nv-esq-r { display: none; }
  .hero .nv-adornos { display: none; }
  .svc-card .nv-rama { width: 90px; }
  .nv-saludo span { font-size: 1rem; }
  .nv-cinta { left: 10px; bottom: 10px; padding: 7px 12px 7px 8px; font-size: .74rem; transition: opacity .5s, transform .5s; }
  .nv-cinta.fuera { opacity: 0; transform: translateY(20px); pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) { .hero .nv-adornos { animation: none; } .nv-nieve { display: none; } }

/* ===== Año Nuevo (26-12 al 02-01) ===== */
.nv-anio .nav-logo .nv-gorro { width: 40px; left: -20px; top: -19px; transform: rotate(-24deg); }
.nv-anio .nv-letra .nv-mini { width: .8em; left: -.18em; top: -.72em; transform: rotate(-16deg); }
.nv-anio .svc-badge .nv-mini { width: 30px; left: -6px; top: -26px; }
.nv-anio .hero .nv-esq-r { transform: none; width: min(18vw, 230px); right: 4vw; bottom: 110px; }
.nv-anio .hero .nv-adornos { animation-duration: 8s; width: min(18vw, 220px); }
.nv-anio .svc-card .nv-rama { transform: none; width: 110px; top: -4px; right: -4px; }
.nv-anio .nv-saludo { border-color: rgba(217, 180, 90, .75); }
.nv-anio .nv-cinta { background: linear-gradient(135deg, #1a1d22, #3a3326); border: 1px solid rgba(217, 180, 90, .6); box-shadow: 0 10px 28px rgba(0, 0, 0, .35); }
.nv-anio .nv-cinta img { width: 24px; }
.nv-anio .cta-band::before { display: none; }
@media (max-width: 900px) {
  .nv-anio .nav-logo .nv-gorro { width: 34px; left: -12px; top: -24px; }
  .nv-anio .hero .nv-esq-r { display: block; width: 30vw; right: 2vw; bottom: 120px; }
  .nv-anio .svc-card .nv-rama { width: 84px; }
}
