/* Holiday hunt and its separate admin controls share the Momo palette. */
.holiday-hunt { margin:30px 0; min-width:0; scroll-margin-top:16px; }
.holiday-panel { position:relative; padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface); min-width:0; }
.holiday-panel h2 { margin:0 0 10px; font-family:var(--f-display); font-size:28px; line-height:1.3; }
.holiday-panel p { font-size:13px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.holiday-admin-intro { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:20px; }
.holiday-admin-intro > div { flex:1 1 260px; min-width:0; }
.holiday-admin-intro h2 { font-family:var(--f-display); font-size:28px; margin:0 0 10px; }
.holiday-admin-intro p,.holiday-admin-hint { color:var(--muted); font-size:13px; line-height:1.7; margin:0 0 12px; overflow-wrap:anywhere; }
.holiday-admin-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(260px,.8fr); gap:24px; align-items:start; }
.holiday-admin-card { min-width:0; padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.holiday-admin-card h3 { margin:0 0 14px; font-size:19px; }
.holiday-admin-card p { font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.holiday-admin-status { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:14px; }
.holiday-admin-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.holiday-admin-field { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:12px; font-weight:700; }
.holiday-admin-field.full { grid-column:1/-1; }
.holiday-admin-field input,.holiday-admin-field select,.holiday-admin-field textarea { width:100%; min-width:0; max-width:100%; min-height:44px; border:1px solid var(--line); border-radius:12px; padding:11px 12px; background:var(--bg); color:var(--ink); font:inherit; font-size:14px; }
.holiday-admin-field input:focus,.holiday-admin-field select:focus,.holiday-admin-field textarea:focus { outline:2px solid var(--brand); outline-offset:2px; }
.holiday-theme-custom { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; grid-column:1/-1; min-width:0; }
.holiday-theme-preview { grid-column:1/-1; min-width:0; padding:15px; border:1px solid var(--line); border-radius:14px; background:var(--bg); }
.holiday-theme-preview > b { display:block; margin-top:8px; font-size:14px; overflow-wrap:anywhere; }
.holiday-theme-preview > p { margin-bottom:0; color:var(--muted); }
.holiday-theme-symbols { display:flex; flex-wrap:wrap; gap:9px; }
.holiday-theme-symbols > span { display:inline-flex; align-items:center; justify-content:center; width:28px; height:32px; font-size:23px; line-height:1; }
.holiday-admin-form fieldset,.holiday-admin-new-form fieldset { min-width:0; min-inline-size:0; margin:0; padding:0; border:0; }
.holiday-admin-check { display:flex; align-items:flex-start; gap:9px; margin:16px 0; font-size:13px; line-height:1.7; }
.holiday-admin-check input { flex-shrink:0; width:19px; height:19px; margin-top:3px; accent-color:var(--brand); }
.holiday-admin-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.holiday-admin-actions > button,.holiday-admin-intro > button { min-height:44px; white-space:normal; line-height:1.5; }
.holiday-admin-error,.holiday-admin-success { padding:13px 15px; font-size:13px; line-height:1.7; border-radius:14px; overflow-wrap:anywhere; }
.holiday-admin-error { color:var(--brand); background:var(--brand-soft); }
.holiday-admin-success { color:var(--mint); background:var(--mint-soft); }
.holiday-admin-new { border-color:var(--brand); margin-bottom:24px; }
.holiday-admin-new h3 { color:var(--brand); }
.holiday-admin-history { padding:14px; border:1px solid var(--line); border-radius:14px; margin:16px 0; background:var(--bg); }
.holiday-admin-history b { display:block; margin-bottom:5px; overflow-wrap:anywhere; }
.holiday-admin-history small { display:block; color:var(--muted); line-height:1.7; }
.holiday-vip-card { display:flex; flex-direction:column; gap:16px; padding:15px; border:1px solid var(--line); border-radius:16px; margin-top:16px; }
.holiday-vip-card b { display:block; font-size:16px; overflow-wrap:anywhere; }
.holiday-vip-card small { display:block; color:var(--muted); line-height:1.7; overflow-wrap:anywhere; }
.holiday-vip-pill { background:var(--brand-soft); color:var(--brand); }
.holiday-vip-form { display:flex; flex-direction:column; gap:12px; }
.holiday-vip-form button { min-height:44px; white-space:normal; }
.holiday-vip-card > button { min-height:44px; width:100%; white-space:normal; line-height:1.5; }
.holiday-audit { min-width:0; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.holiday-audit-head,.holiday-audit-progress,.holiday-audit-item-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.holiday-audit-head { margin-bottom:14px; }
.holiday-audit-head h4 { margin:0; font-size:19px; }
.holiday-audit-head > button { min-height:44px; max-width:100%; white-space:normal; }
.holiday-audit-summary,.holiday-audit-locations { display:grid; gap:10px; margin:14px 0; font-size:12px; line-height:1.7; }
.holiday-audit-summary > div,.holiday-audit-locations > div { display:grid; grid-template-columns:minmax(85px,.8fr) minmax(0,1.2fr); gap:8px; min-width:0; }
.holiday-audit dt { color:var(--muted); font-weight:700; }
.holiday-audit dd { margin:0; min-width:0; overflow-wrap:anywhere; }
.holiday-audit dd small { display:block; color:var(--muted); }
.holiday-audit-progress { margin:18px 0; }
.holiday-audit-progress .pill { white-space:normal; line-height:1.6; }
.holiday-audit-items { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.holiday-audit-item { min-width:0; padding:13px; border:1px solid var(--line); border-radius:14px; background:var(--bg); }
.holiday-audit-item.found { border-color:var(--mint); }
.holiday-audit-item-head b { min-width:0; overflow-wrap:anywhere; }
.holiday-audit-item-head b > span { font-size:21px; }
.holiday-audit-item-head small { color:var(--muted); font-weight:400; }
.holiday-audit-empty { padding:14px; border:1px dashed var(--line); border-radius:14px; background:var(--bg); }
.holiday-audit-order { margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.holiday-audit-order h5 { margin:0 0 12px; font-size:15px; }
.holiday-panel-head { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; justify-content:space-between; }
.holiday-panel-head > div { flex:1 1 240px; min-width:0; }
.holiday-progress { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-block:16px; font-weight:800; color:var(--brand); }
.holiday-progress progress { flex:1 1 180px; min-width:0; max-width:100%; height:10px; accent-color:var(--brand); }
.holiday-found-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-block:20px; }
.holiday-found-item { display:flex; flex-direction:column; align-items:center; gap:7px; padding:13px 8px; border:1px solid var(--line); border-radius:16px; background:var(--bg); font-size:12px; line-height:1.5; text-align:center; min-width:0; overflow-wrap:anywhere; }
.holiday-found-item > span:first-child { font-size:25px; }
.holiday-found-item.is-found,.holiday-found-item.found { border-color:var(--mint); background:var(--mint-soft); }
.holiday-counter { padding:9px 13px; border-radius:12px; background:var(--brand-soft); color:var(--brand); font-size:22px; font-weight:800; }
#shopHead { flex-wrap:wrap; }
.holiday-entry { flex:0 1 auto; min-width:0; min-height:44px; max-inline-size:100%; margin-block:8px; white-space:normal; line-height:1.5; overflow-wrap:anywhere; }
.holiday-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-block:16px; }
.holiday-actions button,.holiday-actions a { min-height:44px; white-space:normal; line-height:1.5; }
.holiday-hints { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0; list-style:none; font-size:13px; color:var(--muted); }
.holiday-hints li { padding:12px 14px; border:1px solid var(--line); border-radius:12px; overflow-wrap:anywhere; }
details.holiday-hints { display:block; margin-block:18px; }
details.holiday-hints summary { cursor:pointer; min-height:44px; padding:12px 14px; border-radius:12px; background:var(--violet-soft); color:var(--violet); font-weight:800; }
details.holiday-hints ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0; margin-block:12px; list-style:none; }
.holiday-error,.holiday-notice,.holiday-gift-note { padding:12px 14px; border-radius:14px; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.holiday-error { color:var(--brand); background:var(--brand-soft); }
.holiday-notice,.holiday-gift-note { color:var(--ink); background:var(--mint-soft); border:1px solid var(--line); }
.holiday-notice:empty { display:none; }
.holiday-gift-note { display:block; margin-block:12px; }
.holiday-gift-note > span { display:block; margin-top:6px; }
/* Each finding lives in its own reserved space, outside checkout/navigation controls. */
.holiday-spot-host:has(> .holiday-object) { position:relative; padding-bottom:64px; min-width:0; }
.holiday-object { position:absolute; right:10px; bottom:8px; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid transparent; border-radius:14px; background:transparent; color:var(--ink); box-shadow:none; z-index:2; }
.holiday-object:focus-visible { outline:3px solid var(--brand); outline-offset:3px; border-color:var(--brand); background:var(--surface); }
.holiday-object:disabled { cursor:default; opacity:.65; }
/* Keep the tap target still. Only the motif is tucked into the surrounding art;
   the persisted offset gives it the same gentle tilt on every visit. */
.holiday-object-symbol { display:inline-block; font-size:16px; line-height:1; pointer-events:none; opacity:.84; filter:saturate(.74); transform:rotate(calc(-18deg + 36deg * var(--holiday-y-ratio,.5))); transition:opacity .14s ease,filter .14s ease,transform .14s ease; }
.holiday-object:focus-visible .holiday-object-symbol,.holiday-object:active .holiday-object-symbol { opacity:1; filter:none; transform:none; }
@media(hover:hover) and (pointer:fine) {
  .holiday-object:hover { border-color:var(--brand); background:var(--surface); }
  .holiday-object:hover .holiday-object-symbol { opacity:1; filter:none; transform:none; }
}
@media(max-width:640px),(pointer:coarse) { .holiday-object-symbol { font-size:18px; opacity:.9; } }
@media(prefers-reduced-motion:reduce) { .holiday-object-symbol { transition:none; } }
.ticker.holiday-spot-host:has(> .holiday-object) { min-height:54px; padding-right:64px; padding-bottom:0; display:flex; align-items:center; }
.ticker > .holiday-object { right:8px; bottom:5px; }
.ticker.holiday-spot-host:has(> .holiday-object) .ticker-track { max-width:100%; }
footer .ft-cta.holiday-spot-host:has(> .holiday-object),footer .ft-note.holiday-spot-host:has(> .holiday-object) { padding-block-end:64px !important; }
@media(max-width:880px) { .holiday-admin-layout { grid-template-columns:minmax(0,1fr); } }
@media(max-width:640px) {
  .holiday-panel,.holiday-admin-card { padding:18px; border-radius:20px; }
  .holiday-panel h2,.holiday-admin-intro h2 { font-size:24px; }
  .holiday-admin-fields { grid-template-columns:minmax(0,1fr); }
  .holiday-theme-custom { grid-template-columns:minmax(0,1fr); }
  .holiday-admin-field.full { grid-column:auto; }
  .holiday-admin-field input,.holiday-admin-field select,.holiday-admin-field textarea { font-size:16px; }
  .holiday-admin-actions { flex-direction:column; }
  .holiday-admin-actions > button { width:100%; }
  .holiday-admin-intro > button { width:100%; }
  .holiday-audit-summary > div,.holiday-audit-locations > div { grid-template-columns:minmax(0,1fr); gap:3px; }
  .holiday-found-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .holiday-hints { grid-template-columns:minmax(0,1fr); }
  details.holiday-hints ul { grid-template-columns:minmax(0,1fr); }
  .holiday-actions > button { width:100%; }
  .holiday-entry { display:inline-flex; align-items:center; justify-content:center; font-size:13px; padding:10px 14px; }
}
@media(max-width:360px) { .holiday-panel,.holiday-admin-card { padding:15px; } }
/* Personalized targets keep a 44px hit area inside a safe image or static lane. */
.holiday-object[data-holiday-offset] { right:auto; left:calc(4px + (100% - 52px) * var(--holiday-x-ratio,1)); bottom:calc(4px + 12px * var(--holiday-y-ratio,.5)); }
.ticker > .holiday-object[data-holiday-offset] { bottom:calc(4px + 2px * var(--holiday-y-ratio,.5)); }
.tile.holiday-product-spot:has(> .holiday-object) { padding-bottom:0; }
.tile > .holiday-product-object { right:auto; bottom:auto; left:calc(4px + (100% - 52px) * var(--holiday-x-ratio,.5)); top:clamp(4px,calc(54px + (100% - 102px) * var(--holiday-y-ratio,.5)),calc(100% - 48px)); background:transparent; border-color:transparent; box-shadow:none; }
.tile > .holiday-product-object:focus-visible { background:var(--surface); border-color:var(--brand); }
@media(hover:hover) and (pointer:fine) { .tile > .holiday-product-object:hover { background:var(--surface); border-color:var(--brand); } }
.tile > .holiday-product-object { z-index:4; }
