/* ===========================================================
   Christmas ornament campaign (temporary — runs through Dec 31)
   Pop-up tag, hero side tab, small-screen strip, campaign page
   =========================================================== */
.xsweep{ --bl:8.5465%; --bt:77.028%; --bw:82.907%; --bh:16.740%; }

/* ---------- shared light sweep (follows the button's scalloped shape) ---------- */
.xsweep{
  position:absolute; pointer-events:none; overflow:hidden;
  -webkit-mask:url("data:image/png;base64,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") center / 100% 100% no-repeat;
          mask:url("data:image/png;base64,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") center / 100% 100% no-repeat;
}
.xsweep::before{
  content:""; position:absolute; top:-25%; bottom:-25%; left:0; width:34%;
  background:linear-gradient(100deg, rgba(255,246,214,0) 0%, rgba(255,246,214,0) 14%,
             rgba(255,244,205,.46) 50%, rgba(255,246,214,0) 86%, rgba(255,246,214,0) 100%);
  transform:translateX(-140%) skewX(-18deg);
  animation:xsweep 3s ease-in-out infinite;
  animation-delay:var(--xsweep-delay,1s);
}
.xsweep::after{ content:""; position:absolute; inset:0; background:rgba(255,238,190,0); transition:background .2s ease; }
@keyframes xsweep{
  0%   { transform:translateX(-140%) skewX(-18deg); }
  30%  { transform:translateX(400%)  skewX(-18deg); }
  100% { transform:translateX(400%)  skewX(-18deg); }
}
@keyframes xsway{
  0%   { transform:rotate(0deg); }
  25%  { transform:rotate(1.4deg); }
  75%  { transform:rotate(-1.4deg); }
  100% { transform:rotate(0deg); }
}
@keyframes xfade{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;} }

/* ---------- pop-up ---------- */
html.xp-lock, html.xp-lock body{ overflow:hidden; }
.xp[hidden]{ display:none; }
.xp{ position:fixed; inset:0; z-index:9999; overscroll-behavior:contain; outline:none; }
.xp-backdrop{
  position:absolute; inset:0; background:rgba(14,17,22,.68);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  opacity:0; transition:opacity .55s ease;
}
.xp.is-open .xp-backdrop{ opacity:1; }
.xp-stage{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right))
          max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
}
.xp-tag{
  position:relative; aspect-ratio:1720 / 2712;
  height:min(92vh, calc((100vw - 28px) / .6342), 1040px);
  opacity:0; transform-origin:50% 50%;
}
@supports (height:1dvh){ .xp-tag{ height:min(92dvh, calc((100vw - 28px) / .6342), 1040px); } }
.xp.is-open .xp-tag{ animation:xpIn .95s cubic-bezier(.2,.85,.25,1) .2s both; }
@keyframes xpIn{
  0%   { opacity:0; transform:translateY(46px) scale(.66); }
  60%  { opacity:1; transform:translateY(-6px) scale(1.025); }
  100% { opacity:1; transform:none; }
}
.xp-img{
  display:block; width:100%; height:100%; user-select:none; -webkit-user-drag:none;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.45));
}
.xp-buy{
  position:absolute; left:8.5465%; top:77.028%; width:82.907%; height:16.740%;
  cursor:pointer; border-radius:7%; -webkit-tap-highlight-color:transparent;
}
.xp-buy .xsweep{ inset:0; --xsweep-delay:2.1s; }
.xp-buy:hover .xsweep::after, .xp-buy:focus-visible .xsweep::after{ background:rgba(255,238,190,.16); }
.xp-buy:focus-visible, .xtab:focus-visible, .xstrip:focus-visible, .xp-x:focus-visible{ outline:3px solid #ffd978; outline-offset:3px; }
.xp-x{
  position:absolute; top:0; right:0; width:46px; height:46px; padding:0; border-radius:50%;
  border:2px solid #c9a24b; background:#fff; color:#7d0b12; cursor:pointer;
  display:grid; place-items:center; box-shadow:0 6px 16px rgba(0,0,0,.42);
  opacity:0; transition:opacity .45s ease 1.05s, transform .15s ease, background .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.xp.is-open .xp-x{ opacity:1; }
.xp-x:hover{ transform:scale(1.08); background:#fff4e0; }
.xp-x svg{ width:20px; height:20px; display:block; }

/* ---------- side tab in the hero (wide screens) ---------- */
.xtab[hidden]{ display:none; }
.xtab{
  position:absolute; z-index:3; display:block; text-decoration:none;
  transition:transform .25s ease; -webkit-tap-highlight-color:transparent;
}
.xtab:hover{ transform:translateY(-4px) scale(1.02); }
.xtab-sway{ position:relative; display:block; transform-origin:50% 5%; }
.xtab.is-live .xtab-sway{ animation:xsway 6s ease-in-out infinite; }
.xtab-img{ display:block; width:100%; height:auto; filter:drop-shadow(0 12px 18px rgba(0,0,0,.42)); }
.xtab .xsweep{ left:var(--bl); top:var(--bt); width:var(--bw); height:var(--bh); --xsweep-delay:.9s; }
.xtab:hover .xsweep::after, .xtab:focus-visible .xsweep::after{ background:rgba(255,238,190,.16); }
.xtab.fade-in{ animation:xfade .6s ease both; }

/* ---------- strip (phones / tablets / narrower laptops) — static, scrolls away ---------- */
.xstrip[hidden]{ display:none; }
.xstrip{
  position:relative; z-index:20; display:flex; align-items:center; justify-content:center; gap:12px;
  padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));
  background:#1d3a2a; color:#fff; text-decoration:none; border-bottom:2px solid #c9a24b;
  font-family:var(--font-body,'Montserrat',Arial,sans-serif);
}
.xstrip.fade-in{ animation:xstripIn .55s cubic-bezier(.2,.8,.2,1) both; }
@keyframes xstripIn{ from{opacity:0; transform:translateY(-14px);} to{opacity:1; transform:none;} }
.xstrip-thumb{ flex:none; width:26px; display:block; transform-origin:50% 5%; animation:xsway 6s ease-in-out infinite; }
.xstrip-thumb img{ display:block; width:100%; height:auto; }
.xstrip-text{ flex:0 1 auto; font-weight:700; font-size:.9rem; line-height:1.2; max-width:17em; }
.xstrip-btn{
  flex:none; position:relative; overflow:hidden; padding:8px 10px; border-radius:8px;
  background:linear-gradient(#a3141f,#7a0d16); color:#fff3cf; border:1.5px solid #c9a24b;
  font-weight:700; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap;
}
.xstrip-btn::before{
  content:""; position:absolute; top:-30%; bottom:-30%; left:0; width:34%;
  background:linear-gradient(100deg, rgba(255,246,214,0), rgba(255,244,205,.5), rgba(255,246,214,0));
  transform:translateX(-140%) skewX(-18deg); animation:xsweep 3s ease-in-out infinite; animation-delay:1.2s;
}
.xstrip:hover .xstrip-btn{ filter:brightness(1.1); }
@media (max-width:380px){ .xstrip{ gap:9px; } .xstrip-text{ font-size:.82rem; } .xstrip-btn{ padding:7px 8px; font-size:.62rem; } }

/* ---------- campaign page (ornament.html) ---------- */
body.orn-page{ background:var(--cream); }
.orn-top{ background:#1d3a2a; border-bottom:2px solid #c9a24b; }
.orn-top .container{ padding-top:12px; padding-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.orn-back{ white-space:nowrap; color:#fff; text-decoration:none; font-weight:700; font-size:.9rem; font-family:var(--font-body); }
.orn-back:hover{ text-decoration:underline; }
.orn-brand{ color:#e9dcb4; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; }
.orn-hero{ padding:56px 0 72px; }
.orn-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:start; }
.orn-eyebrow{ color:#7d0b12; font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.8rem; margin-bottom:10px; }
.orn-h1{ font-family:var(--font-heading); font-weight:400; font-size:clamp(4.2rem,11vw,8.5rem); line-height:.92; color:#a3141f; margin:0; }
.orn-sub{ font-family:var(--font-display); font-weight:700; font-size:clamp(1.3rem,2.6vw,1.9rem); color:#1d3a2a; margin:6px 0 18px; }
.orn-lead{ font-size:1.12rem; line-height:1.55; color:var(--ink); max-width:34em; }
.orn-steps{ list-style:none; margin:28px 0 0; padding:0; display:grid; gap:16px; counter-reset:s; }
.orn-steps li{ counter-increment:s; display:flex; gap:14px; align-items:flex-start; line-height:1.5; }
.orn-steps li::before{
  content:counter(s); flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background:#1d3a2a; color:#f3e6bd; font-weight:700; border:2px solid #c9a24b;
}
.orn-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:26px; }
.orn-flag{ position:absolute; top:-12px; left:20px; background:#c9a24b; color:#241c0a; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:4px 10px; border-radius:999px; }
.orn-card h2{ font-family:var(--font-display); font-size:1.35rem; margin:6px 0 6px; }
.orn-card p{ color:var(--ink-soft); margin:0 0 16px; }
.orn-slot{ border:2px dashed #c9b98f; border-radius:12px; background:#fbf7ec; min-height:260px; display:grid; place-items:center; text-align:center; padding:24px; color:#7a6a3d; font-weight:600; }
.orn-ended{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow); }
.orn-ended a{ color:#a3141f; font-weight:700; }
.orn-foot{ padding:28px 0 40px; color:var(--ink-soft); font-size:.85rem; line-height:1.6; border-top:1px solid var(--line); }
.orn-foot a{ color:inherit; }
@media (max-width:520px){ .orn-brand{ display:none; } }
@media (max-width:860px){ .orn-grid{ grid-template-columns:1fr; gap:36px; } .orn-hero{ padding:36px 0 48px; } }

@media (prefers-reduced-motion: reduce){
  .xsweep::before, .xstrip-btn::before{ display:none; }
  .xtab.is-live .xtab-sway, .xstrip-thumb{ animation:none; }
  .xp.is-open .xp-tag{ animation:none; opacity:1; }
  .xp-backdrop, .xp-x, .xtab{ transition:none; }
  .xtab.fade-in, .xstrip.fade-in{ animation:none; }
}
