.holiday-page { background: var(--paper); }
.holiday-hero { background: var(--green); color: var(--paper); padding: clamp(2.5rem, 7vw, 6.5rem) clamp(1.25rem, 5vw, 5rem); }
.holiday-hero-inner { max-width: 1200px; margin: auto; }
.holiday-breadcrumb { display: flex; align-items: center; gap: .7rem; margin-bottom: clamp(2.5rem, 7vw, 6rem); font-size: .85rem; }
.holiday-breadcrumb a { color: inherit; text-underline-offset: .3rem; }
.holiday-eyebrow { margin: 0 0 .9rem; color: var(--oxblood); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.holiday-hero .holiday-eyebrow { color: #e6c691; }
.holiday-hero h1 { max-width: 13ch; margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(3.35rem, 8.5vw, 8rem); line-height: .94; letter-spacing: -.055em; color: var(--paper); }
.holiday-hero h1 em { color: #e6c691; }
.holiday-lede { max-width: 45rem; margin: 1.75rem 0; font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.55; color: #f4ecdc; }
.holiday-status { display: inline-flex; gap: .7rem; max-width: 46rem; margin: .5rem 0 0; padding: .85rem 1rem; border: 1px solid #e6c691; border-radius: .65rem; color: #fff7e9; font-size: .92rem; line-height: 1.45; }
.holiday-status span { color: #e6c691; }
.holiday-section { max-width: 1330px; margin: 0 auto; padding: clamp(3rem, 7vw, 6.5rem) clamp(1.25rem, 5vw, 4rem); }
.holiday-section-heading { max-width: 48rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.holiday-section-heading h2, .holiday-note h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: 1.02; letter-spacing: -.045em; color: var(--green); }
.holiday-section-heading > p:last-child { margin: 1rem 0 0; color: #425046; }
.holiday-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem; }
.holiday-card { display: flex; flex-direction: column; min-width: 0; min-height: 25rem; padding: clamp(1.3rem, 3vw, 2.35rem); border: 1px solid #c9c3b4; border-radius: 1rem; background: #fffdf7; box-shadow: 0 10px 25px #173a2a0b; }
.holiday-card-feature { background: #f0e5d1; border-color: #a68e65; }
.holiday-card-top { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: .7rem; font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; color: var(--oxblood); }
.holiday-pill { border: 1px solid currentColor; border-radius: 20rem; padding: .24rem .62rem; letter-spacing: .06em; white-space: nowrap; }
.holiday-product-photo { margin: 1.5rem 0 0; overflow: hidden; border-radius: .55rem; background: #fff; }
.holiday-product-photo img { display: block; width: 100%; height: clamp(15rem, 30vw, 21rem); object-fit: contain; }
.holiday-product-photo figcaption { padding: .4rem .6rem; color: var(--green); font-size: .75rem; font-weight: 800; }
.holiday-gallery { min-width: 0; margin-top: 1.5rem; }
.holiday-gallery-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; border-radius: .55rem; background: #fff; scrollbar-width: none; }
.holiday-gallery-track::-webkit-scrollbar { display: none; }
.holiday-gallery-track:focus-visible { outline: 3px solid var(--oxblood); outline-offset: 3px; }
.holiday-gallery-track .holiday-product-photo { flex: 0 0 100%; min-width: 0; margin: 0; scroll-snap-align: start; }
.holiday-gallery-track figcaption { min-height: 2.7rem; }
.holiday-gallery-controls { display: flex; align-items: center; justify-content: center; gap: .7rem; padding-top: .7rem; color: var(--green); }
.holiday-gallery-controls button { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; padding: 0; border: 1px solid #819186; border-radius: 50%; background: #fffdf7; color: var(--green); font: 700 1.2rem/1 var(--sans); cursor: pointer; }
.holiday-gallery-controls button:hover:not(:disabled), .holiday-gallery-controls button:focus-visible { background: var(--green); color: #fff; }
.holiday-gallery-controls button:disabled { opacity: .35; cursor: not-allowed; }
.holiday-gallery-count { min-width: 2.6rem; text-align: center; font-size: .78rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.holiday-gallery-dots { display: flex; gap: .3rem; }
.holiday-gallery-dots i { width: .35rem; height: .35rem; border-radius: 50%; background: #b4beb5; }
.holiday-gallery-dots i[aria-current="true"] { background: var(--green); }
.holiday-card:has(.holiday-product-photo) h3 { margin-top: 1.5rem; }
.holiday-card h3 { max-width: 17ch; margin: clamp(2.3rem, 5vw, 4rem) 0 .8rem; font-family: var(--serif); font-size: clamp(2.1rem, 4vw, 3.8rem); font-weight: 400; line-height: 1.03; letter-spacing: -.04em; color: var(--green); }
.holiday-card > p { max-width: 54ch; margin: 0 0 1.3rem; color: #36453b; line-height: 1.6; }
.holiday-card-bottom { margin-top: auto; padding: 1.1rem 0 .8rem; border-top: 1px solid #bdb8a8; }
.holiday-card-bottom strong { display: block; color: var(--green); font-size: 1.2rem; }
.holiday-card-bottom small { font-size: .82rem; font-weight: 600; }
.holiday-card-bottom p { margin: .4rem 0 0; color: #48574b; font-size: .9rem; }
.holiday-card > button { width: fit-content; max-width: 100%; min-height: 2.75rem; margin-top: 1rem; padding: .6rem 1rem; border: 1px solid #8e9b8d; border-radius: .4rem; background: #e5e9e0; color: #395344; font: 700 .88rem/1.2 var(--sans); cursor: not-allowed; opacity: 1; }
.holiday-card-small { min-height: 17rem; }
.holiday-card-small h3 { margin-top: 2.2rem; font-size: clamp(1.85rem, 3vw, 2.8rem); }
.holiday-card-small > button { margin-top: auto; }
.holiday-community { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding: clamp(3rem, 6vw, 5.5rem) max(1.25rem, calc((100vw - 1200px)/2)); background: var(--green); color: var(--paper); }
.holiday-community .holiday-eyebrow { color: #e6c691; }
.holiday-community h2 { max-width: 13ch; margin: 0 0 1rem; color: var(--paper); font: 400 clamp(2.6rem, 5vw, 5rem)/1.02 var(--serif); letter-spacing: -.04em; }
.holiday-community-copy > p:last-child { max-width: 38rem; color: #e3e8dc; }
.holiday-community-photo { width: min(100%, 23rem); margin: 0 auto; }
.holiday-community-photo img { display: block; width: 100%; height: auto; border-radius: .6rem; }
.holiday-community-photo figcaption { margin-top: .65rem; color: #e3e8dc; font-size: .82rem; }
.holiday-note { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 2rem; align-items: end; padding: clamp(3rem, 6vw, 5rem) max(1.25rem, calc((100vw - 1200px)/2)); background: #e9e1d3; }
.holiday-note h2 { max-width: 15ch; }
.holiday-note > p { max-width: 38rem; margin: 0; color: #35463b; font-size: 1.08rem; }
.holiday-teaser { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 4vw, 3.25rem) clamp(1.25rem, 5vw, 4rem); background: #e9e1d3; }
.holiday-teaser > div { max-width: 49rem; }
.holiday-teaser-kicker { margin: 0 0 .6rem; color: var(--oxblood); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.holiday-teaser h2 { margin: 0; color: var(--green); font: 400 clamp(2rem, 4vw, 3.5rem)/1.07 var(--serif); letter-spacing: -.04em; }
.holiday-teaser p:last-child { margin: .8rem 0 0; color: #35463b; }
.holiday-teaser a { display: inline-flex; justify-content: center; flex: 0 0 auto; gap: .7rem; min-height: 3rem; align-items: center; padding: .7rem 1rem; border-radius: .4rem; background: var(--green); color: var(--paper); font-weight: 800; text-decoration: none; }
.holiday-teaser a:hover, .holiday-teaser a:focus-visible { background: #265640; color: #fff; }
@media (max-width: 820px) { .holiday-teaser { align-items: stretch; flex-direction: column; } .holiday-teaser a { width: fit-content; } }
@media (max-width: 650px) { .holiday-grid, .holiday-note, .holiday-community { grid-template-columns: 1fr; } .holiday-card { min-height: 0; } .holiday-card h3 { margin-top: 2.2rem; } .holiday-card:has(.holiday-product-photo) h3 { margin-top: 1.5rem; } .holiday-product-photo img { height: 18rem; } .holiday-note { gap: 1.2rem; } .holiday-hero h1 { max-width: 10ch; } }
@media (max-width: 390px) { .holiday-card-top { gap: .5rem; } .holiday-pill { white-space: normal; } .holiday-teaser a { width: 100%; } }
@media (forced-colors: active) { .holiday-status, .holiday-card, .holiday-card > button, .holiday-gallery-controls button, .holiday-teaser a { border: 1px solid CanvasText; } }
