/* Hallmark · macrostructure: Catalogue · theme: existing warm-paper/coral/teal
   nav: existing grouped navigation · footer: existing inline links · real approved charts
   Shared navigation/footer and pattern-library.css tokens retained, not redesigned.
   No reveal motion. Pre-emit critique: P4 H4 E4 S5 R5 V3. */
html:has(.christmas-page),body.christmas-page{overflow-x:clip}
html:has(.christmas-page){scrollbar-gutter:stable}
/* Lock the viewport, not body: a scrollable body would steal the sticky header. */
html:has(.christmas-page.site-mobile-nav-open){overflow-y:hidden}
body.christmas-page.site-mobile-nav-open{overflow:clip}
body.christmas-page{background:var(--paper)}
.christmas-page main{width:100%;max-width:none;padding:0}
.christmas-page .wrap{width:min(1200px,calc(100% - 2rem))}
.christmas-page h1,.christmas-page h2,.christmas-page h3{color:var(--ink);max-width:none;letter-spacing:-.025em;font-style:normal;overflow-wrap:anywhere;min-width:0}
.christmas-page h1{font-size:clamp(2rem,3.8vw,3.25rem);line-height:1.12;text-wrap:balance}
.christmas-page h2{font-size:clamp(1.35rem,2.3vw,1.75rem);line-height:1.2}
.christmas-page .crumb ol{flex-wrap:wrap;align-items:center}
.christmas-page .crumb a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
.christmas-intro{padding-block:1rem 1.25rem}
.christmas-intro>p{max-width:66ch;margin:1rem 0;color:var(--ink-soft)}
.christmas-intro .christmas-facts{display:flex;flex-wrap:wrap;gap:.35rem .65rem;font-size:.875rem;font-weight:700;color:var(--teal-dark);margin-bottom:0}
.christmas-library>h2{margin:0 0 1rem}
.christmas-filters{border-block:1px solid var(--line);padding-block:1rem;margin-bottom:1.25rem}
.christmas-filters fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(8rem,calc((100% - .75rem)/2))),1fr));gap:.75rem;border:0;padding:0;margin:0;min-width:0}
.christmas-filters label{display:grid;gap:.3rem;font-size:.875rem;font-weight:700;min-width:0}
.christmas-filters input,.christmas-filters select{width:100%;min-width:0;min-height:44px;padding:.6rem .65rem;border:1px solid var(--ink-faint);border-radius:6px;background:var(--card);color:var(--ink);font-size:1rem;font-weight:400}
.christmas-filters input::placeholder{color:var(--ink-soft)}
.christmas-results{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.75rem;font-size:.875rem}
.christmas-results p{margin:0}
.christmas-page button{min-height:44px;border:1px solid var(--line);border-radius:6px;background:var(--card);padding:.55rem .75rem;cursor:pointer;color:var(--teal-dark);font-weight:700;white-space:nowrap}
.christmas-filters button{border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:3px}
.christmas-page button:disabled,.christmas-filters :disabled{opacity:.55;cursor:not-allowed}
.christmas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,max(8rem,calc((100% - .75rem)/2))),1fr));gap:1.5rem .75rem}
.christmas-card{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.christmas-card[hidden],.christmas-empty[hidden]{display:none}
.christmas-preview{display:block;aspect-ratio:1;background:var(--card)}
.christmas-preview img{width:100%;height:100%;object-fit:contain}
.christmas-card-copy{padding:.75rem}
.christmas-card h3{font-size:1rem;line-height:1.25;min-height:2.5em}
.christmas-card h3 a{text-decoration:none}
.christmas-grid-size{color:var(--ink-soft);font-size:.875rem;margin:.4rem 0}
.christmas-stats{display:flex;flex-wrap:wrap;gap:.15rem .75rem;font-variant-numeric:tabular-nums;font-size:.875rem;margin:.4rem 0 .75rem}
.christmas-stats span{white-space:nowrap}
.christmas-actions{display:grid;gap:.35rem}
.christmas-actions a{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:5px;font-size:.875rem;font-weight:700;white-space:nowrap;text-decoration:none}
.christmas-actions a:first-child{background:var(--teal-dark);color:var(--card)}
.christmas-actions a:last-child{border:1px solid var(--line);color:var(--teal-dark)}
.christmas-caption{font-size:.875rem;color:var(--ink-soft);margin:1.25rem 0 0;max-width:70ch}
.christmas-empty{padding:2rem 1rem;text-align:center;background:var(--card-2);border-radius:8px}
.christmas-empty h3{font-size:1.25rem}
.christmas-guide{padding-top:3.5rem}
.christmas-advice{display:grid;gap:0 2.5rem}
.christmas-advice p{max-width:65ch;color:var(--ink-soft)}
.christmas-advice a,.christmas-questions a{color:var(--teal-dark);text-underline-offset:3px}
.christmas-faq{padding-top:2.5rem}
.christmas-questions{max-width:800px;margin-top:1rem}
.christmas-questions details{border-top:1px solid var(--line);padding-block:.25rem}
.christmas-questions details:last-child{border-bottom:1px solid var(--line)}
.christmas-questions summary{display:list-item;min-height:44px;padding-block:.65rem;cursor:pointer;font-weight:700;line-height:1.4}
.christmas-questions p{max-width:65ch;color:var(--ink-soft);margin:.25rem 0 1rem}
.christmas-more{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding-block:2.5rem 0}
.christmas-more a,.christmas-page .foot-links a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
.christmas-more a{max-width:100%;white-space:normal;overflow-wrap:anywhere;color:var(--teal-dark);font-weight:700;text-underline-offset:4px}
.christmas-page :focus-visible{outline:3px solid var(--teal-dark);outline-offset:3px}
.christmas-page main :where(a,button,input,select,summary){scroll-margin-block:6rem 1rem}
.christmas-page .christmas-preview:focus-visible{outline-offset:-4px}
.christmas-page button:active,.christmas-actions a:active{filter:brightness(.92)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(hover:hover){.christmas-card h3 a:hover,.christmas-more a:hover{text-decoration:underline}.christmas-actions a:hover{filter:brightness(.92)}.christmas-filters input:hover,.christmas-filters select:hover{background:var(--card-2)}}
@media(min-width:40rem){.christmas-page .wrap{width:min(1200px,calc(100% - 3rem))}.christmas-intro{padding-block:1.5rem 2rem}.christmas-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,max(8rem,calc((100% - 3rem)/3))),1fr));gap:1.5rem}.christmas-card-copy{padding:1rem}.christmas-card h3{font-size:1.125rem}.christmas-advice{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:64rem){.christmas-filters fieldset{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(8rem,calc((100% - 2.25rem)/4))),1fr))}.christmas-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,max(8rem,calc((100% - 4.5rem)/4))),1fr))}.christmas-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,6rem),1fr))}.christmas-card h3{min-height:1.25em}}
@media(prefers-reduced-motion:reduce){html:has(.christmas-page){scroll-behavior:auto}.christmas-page *{scroll-behavior:auto}}
