/* ALEGIVO Christmas theme (v49). Loaded only while the season switch is on.
   Accents sit on the existing navy / dark surfaces. Countdown JS is optional and tiny. */
html.xmas{
  --xmas-gold:#C9A25A;
  --xmas-gold-2:#E8D09A;
  --xmas-pine:#1B3D32;
  --xmas-pine-2:#245544;
  --xmas-berry:#8B2E2E;
  --xmas-berry-2:#A33A3A;
  --xmas-snow:rgba(255,255,255,.5);
  --xmas-ink:#F8EFD8;
}
html.xmas .topbar{
  background:linear-gradient(90deg,#0B1F3B 0%,#163D32 48%,#3a1f1f 100%);
}
html.xmas header.site{
  border-bottom-color:rgba(201,162,90,.35);
  box-shadow:0 1px 0 rgba(201,162,90,.18);
}
html.xmas .xmas-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 11px;border-radius:999px;
  background:linear-gradient(135deg,rgba(201,162,90,.22),rgba(139,46,46,.18));
  color:inherit;text-decoration:none;font-weight:800;font-size:.86rem;
  border:1px solid rgba(201,162,90,.45);white-space:nowrap;line-height:1.2;
}
html.xmas .xmas-badge .icon{width:15px;height:15px;flex:0 0 auto}
html.xmas .quicklinks .xmas-badge,
html.xmas .nav-utils .xmas-badge{color:var(--text)}
html.xmas .topbar .xmas-badge{color:#F8EFD8;border-color:rgba(232,208,154,.45)}
html.xmas .drawer-quick .xmas-badge{margin:0 0 8px;align-self:flex-start}
html.xmas .xmas-badge:hover{border-color:var(--xmas-gold);color:var(--xmas-gold)}
html.xmas[data-theme="dark"] .xmas-badge{background:linear-gradient(135deg,rgba(201,162,90,.16),rgba(139,46,46,.2));color:#F8EFD8}

/* Light snow: CSS-only dots, pointer-events none, paused when reduced motion */
html.xmas body::before,
html.xmas body::after{
  content:"";pointer-events:none;position:fixed;inset:0;z-index:2;
  background-image:
    radial-gradient(circle,var(--xmas-snow) 1.2px,transparent 1.3px),
    radial-gradient(circle,var(--xmas-snow) 1px,transparent 1.1px),
    radial-gradient(circle,rgba(255,255,255,.35) .8px,transparent .9px);
  background-size:140px 180px, 90px 130px, 60px 90px;
  background-position:0 0, 40px 60px, 10px 20px;
  animation:xmas-snow 28s linear infinite;
  opacity:.22;
}
html.xmas body::after{animation-duration:42s;opacity:.14;background-position:20px 30px, 70px 10px, 5px 80px}
@keyframes xmas-snow{
  from{transform:translateY(-20px)}
  to{transform:translateY(200px)}
}
@media (prefers-reduced-motion:reduce){
  html.xmas body::before,html.xmas body::after{animation:none;opacity:.1}
}
@media (max-width:700px){
  html.xmas body::before,html.xmas body::after{opacity:.12;background-size:180px 220px, 120px 160px, 80px 110px}
}

/* Site-wide festive buttons and deal badges */
html.xmas .btn:not(.secondary):not(.btn-expired):not(.ck-btn):not(.ck-ghost),
html.xmas .searchbar > .btn,
html.xmas header.site .btn{
  background:linear-gradient(135deg,#C9A25A,#8B2E2E 82%);
  color:#fff;border-color:transparent;
  box-shadow:0 8px 18px rgba(139,46,46,.18);
}
html.xmas .btn:not(.secondary):not(.btn-expired):hover,
html.xmas .searchbar > .btn:hover{
  box-shadow:0 12px 22px rgba(139,46,46,.28);
}
html.xmas .discount-badge{
  background:linear-gradient(135deg,#8B2E2E,#C9A25A);
  color:#fff;border:0;box-shadow:0 4px 10px rgba(139,46,46,.28);
}
html.xmas .xmas-gift-badge{
  position:absolute;left:10px;bottom:10px;z-index:2;
  padding:3px 8px;border-radius:999px;
  background:rgba(27,61,50,.92);color:#F8EFD8;
  font:800 .65rem/1.2 Inter,sans-serif;letter-spacing:.04em;text-transform:uppercase;
  pointer-events:none;
}
html.xmas .sale-badge{
  background:linear-gradient(135deg,#8B2E2E,#C9A25A);color:#fff;border:0;
}

/* Site-wide ribbon (in flow, not sticky — no header height shift) */
.xmas-ribbon{position:relative;z-index:3;background:linear-gradient(90deg,#102a28 0%,#0B1F3B 48%,#2a1618 100%);color:#F8EFD8;border-bottom:1px solid rgba(201,162,90,.35)}
.xmas-ribbon-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;min-height:48px;padding:8px 0}
.xmas-ribbon-msg{display:flex;align-items:center;gap:8px;margin:0;font-weight:650;font-size:.92rem;min-width:0;flex:1 1 200px}
.xmas-ribbon-msg .icon{flex:0 0 auto;color:var(--xmas-gold-2)}
.xmas-ribbon-cta{
  display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;
  padding:7px 14px;border-radius:999px;text-decoration:none;font-weight:800;font-size:.86rem;
  background:linear-gradient(135deg,#C9A25A,#8B2E2E 80%);color:#fff;
}
.xmas-ribbon-cta:hover{color:#fff;filter:brightness(1.06)}
.xmas-count{display:flex;align-items:center;gap:6px;flex:0 0 auto;font-variant-numeric:tabular-nums}
.xmas-count-box{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:2.6em;min-height:2.7em;padding:3px 6px;border-radius:8px;
  background:rgba(255,255,255,.08);border:1px solid rgba(201,162,90,.35);color:#F8EFD8;
}
.xmas-count-box b{font-size:1rem;line-height:1.1;font-weight:800;min-width:1.4ch;text-align:center}
.xmas-count-box small{font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:#E8D09A;line-height:1.1}
.xmas-count-cap{font-size:.78rem;color:#E8D09A;margin-left:4px;white-space:nowrap}
.xmas-count-past{flex-direction:column;align-items:flex-start;gap:2px}
.xmas-count-past-l{margin:0;font-weight:800;color:#F8EFD8}
.xmas-count-past small{color:#E8D09A}
.xmas-count-hero{margin:4px 0}
.xmas-count-hero .xmas-count-box{min-width:3.1em;min-height:3.2em;background:rgba(0,0,0,.18)}
.xmas-count-hero .xmas-count-box b{font-size:1.25rem}
@media(max-width:700px){
  .xmas-ribbon-in{padding:8px 0 10px;gap:8px}
  .xmas-ribbon-msg{font-size:.84rem;flex:1 1 100%}
  .xmas-ribbon-cta{width:100%;justify-content:center}
  .xmas-count-cap{display:none}
}

/* Homepage banner */
.xmas-banner{position:relative;z-index:1;padding:18px 0 8px}
.xmas-banner-inner{
  position:relative;overflow:hidden;
  display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;
  padding:20px 24px;border-radius:22px;
  background:
    radial-gradient(600px 160px at 100% 0%,rgba(201,162,90,.28),transparent 60%),
    linear-gradient(115deg,#102a28 0%,#0B1F3B 48%,#2a1618 100%);
  color:#F8FAFC;border:1px solid rgba(201,162,90,.35);
}
.xmas-banner-inner::before,
.xmas-banner-inner::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.xmas-banner-inner::before{width:18px;height:18px;top:10px;right:22px;background:radial-gradient(circle at 35% 35%,#fff 0 2px,transparent 3px),radial-gradient(circle at 50% 50%,transparent 5px,#C9A25A 6px,transparent 7px);opacity:.8}
.xmas-banner-inner::after{width:10px;height:10px;bottom:12px;right:52px;background:radial-gradient(circle at 40% 40%,#E8D09A,transparent 70%);opacity:.7}
.xmas-banner-copy{flex:1 1 240px;min-width:0;position:relative;z-index:1}
.xmas-kicker{margin:0 0 4px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#E8D09A}
.xmas-banner-title{margin:0 0 6px;font-size:clamp(1.2rem,2.6vw,1.7rem);line-height:1.2;letter-spacing:-.02em;font-weight:800}
.xmas-banner-sub{margin:0;color:#d7e4ef;font-size:.95rem;max-width:62ch}
.xmas-banner .btn{flex:0 0 auto;position:relative;z-index:1}
@media(max-width:640px){
  .xmas-banner{padding:12px 0 4px}
  .xmas-banner-inner{padding:16px 16px 18px;border-radius:18px}
  .xmas-banner .btn{width:100%;justify-content:center}
}

html.xmas .hero-cta-row{display:flex;flex-wrap:wrap;gap:10px}
html.xmas .hero-cta-row .btn.xmas-hero-btn,
.xmas-hero-btn{
  background:linear-gradient(135deg,#C9A25A,#8B2E2E 80%);
  box-shadow:0 10px 24px rgba(139,46,46,.28);
}

.xmas-section{position:relative;z-index:1}
.xmas-section .section-title h2{letter-spacing:-.02em}
.xmas-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.xmas-chips a{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.88rem;
  background:var(--surface);color:var(--text);border:1px solid var(--border);
}
.xmas-chips a:hover{border-color:var(--xmas-gold);color:#6b4e12}
html[data-theme="dark"].xmas .xmas-chips a:hover{color:var(--xmas-gold-2)}

/* Gift idea cards (recipient / budget) */
.xmas-ideas{position:relative;z-index:1;padding:8px 0 20px}
.xmas-idea-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;align-items:stretch;
}
.xmas-idea{
  display:flex;flex-direction:column;gap:8px;
  min-height:148px;padding:16px 16px 14px;border-radius:18px;
  text-decoration:none;color:inherit;
  background:var(--surface);border:1px solid var(--border);
  box-shadow:0 1px 0 rgba(11,31,59,.03);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.xmas-idea:hover{border-color:rgba(201,162,90,.7);box-shadow:0 10px 24px rgba(27,61,50,.08);transform:translateY(-1px)}
.xmas-idea-ic{
  display:grid;place-items:center;width:36px;height:36px;border-radius:10px;flex:0 0 auto;
  background:linear-gradient(135deg,rgba(201,162,90,.2),rgba(139,46,46,.14));
  color:#6b4e12;
}
.xmas-idea-ic .icon{width:18px;height:18px}
.xmas-idea-body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.xmas-idea-body strong{font-size:1rem;line-height:1.25;letter-spacing:-.01em}
.xmas-idea-body small{color:var(--muted);font-size:.82rem;line-height:1.4}
.xmas-idea em{font-style:normal;font-size:.75rem;font-weight:800;color:#6b4e12;letter-spacing:.01em;margin-top:auto}
html[data-theme="dark"].xmas .xmas-idea-ic{color:var(--xmas-gold-2)}
html[data-theme="dark"].xmas .xmas-idea em{color:var(--xmas-gold-2)}
@media(max-width:1100px){.xmas-idea-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  .xmas-idea-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .xmas-idea{min-height:136px;padding:14px 12px 12px;border-radius:16px}
}
@media(max-width:340px){.xmas-idea-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){
  .xmas-idea{transition:none}
  .xmas-idea:hover{transform:none}
}

/* Landing page */
.xmas-lp{position:relative;z-index:1;padding-bottom:24px}
.xmas-lp-hero{
  position:relative;overflow:hidden;margin:8px 0 28px;padding:28px 28px 26px;border-radius:24px;
  background:
    radial-gradient(700px 200px at 100% -10%,rgba(201,162,90,.3),transparent 55%),
    linear-gradient(120deg,#102a28 0%,#0B1F3B 50%,#2a1618 100%);
  color:#F8FAFC;border:1px solid rgba(201,162,90,.35);
}
.xmas-lp-hero::before{
  content:"";position:absolute;width:120px;height:120px;right:-20px;top:-20px;pointer-events:none;
  background:radial-gradient(circle at 40% 40%,rgba(232,208,154,.35),transparent 65%);
}
.xmas-lp-hero .agc-crumbs,
.xmas-lp-hero .agc-crumbs a{color:#d7e4ef}
.xmas-lp-hero h1{color:#fff;margin:.15em 0 .4em;font-size:clamp(1.7rem,3.6vw,2.6rem)}
.xmas-lp-lead{margin:0 0 14px;max-width:68ch;color:#e6eef6;font-size:1.05rem;line-height:1.55}
.xmas-lp-stats{display:flex;flex-wrap:wrap;gap:16px 28px;margin:18px 0 0;padding:0;list-style:none}
.xmas-lp-stats li{display:flex;flex-direction:column;gap:2px}
.xmas-lp-stats strong{font-size:1.25rem;color:#E8D09A}
.xmas-lp-stats span{font-size:.82rem;color:#c9d7e4}
.xmas-lp-hero .xmas-count{margin-top:16px}
.xmas-block{margin:8px 0 36px}
.xmas-block .section-sub{max-width:68ch}
.xmas-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:16px;align-items:stretch;
}
.xmas-grid > *{min-width:0;height:100%}
.xmas-note{color:var(--muted);font-size:.92rem;max-width:70ch;margin:8px 0 0}
.xmas-more{margin:8px 0 28px}
.xmas-more-t{margin:0 0 10px;font-weight:800}
.xmas-faq{position:relative;z-index:1}
@media(max-width:640px){
  .xmas-lp-hero{padding:20px 16px 22px;border-radius:18px}
  .xmas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(max-width:400px){
  .xmas-grid{grid-template-columns:1fr}
}

html.xmas .site-footer.fx{box-shadow:inset 0 2px 0 rgba(201,162,90,.25)}
.xmas-foot-note{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin:0 0 14px;padding:12px 16px;border-radius:14px;
  background:rgba(201,162,90,.1);border:1px solid rgba(201,162,90,.28);
  color:rgba(248,239,216,.9);font-size:.92rem;
}
.xmas-foot-note .icon{color:#E8D09A;flex:0 0 auto}
.xmas-foot-note a{color:#E8D09A;font-weight:800;text-decoration:none}
.xmas-foot-note a:hover{text-decoration:underline}

/* Christmas hero: text in the empty dark area (left on desktop, top on mobile).
   On mobile the default hero keeps a 16:9 image strip and puts copy UNDER it;
   for this art we enlarge the image well so the gifts stay visible and the
   headline sits in the empty sky, with sales cards remaining below the image. */
html.xmas .hs-xmas::after{
  background:linear-gradient(90deg,rgba(4,14,28,.72) 0%,rgba(4,14,28,.28) 40%,rgba(4,14,28,.04) 70%);
}
html.xmas .hs-xmas .hero-content .eyebrow{color:#E8D09A}
html.xmas .hs-xmas .hero-bg img{object-position:center right}
html.xmas .hs-xmas.is-active .hero-bg img{animation:none}
@media(max-width:820px){
  html.xmas .hero-slider{
    --img-h:min(calc((100vw - 32px) * 1.22),480px);
    height:calc(var(--img-h) + 230px) !important;
  }
  html.xmas .hs-xmas::after{
    background:linear-gradient(180deg,rgba(4,14,28,.86) 0%,rgba(4,14,28,.50) 28%,rgba(4,14,28,.12) 48%,transparent 68%);
  }
  html.xmas .hs-xmas .hero-content{
    width:100%;
    left:0;
    right:0;
    top:0;
    bottom:auto;
    height:auto;
    max-height:58%;
    padding:20px 18px 12px !important;
    justify-content:flex-start;
  }
  html.xmas .hs-xmas .hero-content h1,
  html.xmas .hs-xmas .hero-content h2{font-size:1.42rem;max-width:18ch;margin-bottom:8px}
  html.xmas .hs-xmas .hero-desc{font-size:.86rem;line-height:1.45;margin-bottom:12px;max-width:36ch}
  html.xmas .hs-xmas .hero-note{display:none}
  html.xmas .hs-xmas .hero-bg img{object-position:center top}
  html.xmas .hero-sales{top:calc(var(--img-h) + 6px)}
}
@media(max-width:560px){
  html.xmas .hero-slider{height:calc(var(--img-h) + 230px) !important}
}
