@charset "utf-8";

:root {
    --xmas-red: #c8001c;
    --xmas-red-dark: #970019;
    --xmas-green: #08774f;
    --xmas-gold: #f2c900;
    --xmas-ink: #2a181b;
    --xmas-side-space: 2rem;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #f4f4f4;
    color: var(--xmas-ink);
}

.page.xmas2026-page {
    width: 100%;
    max-width: 375px;
    margin: 0 auto;
    overflow: hidden;
    background: var(--xmas-red);
    box-shadow: 0 0 2.5rem rgba(0,0,0,.12);
}

.xmas2026-hero {
    position: relative;
    padding: 1.6rem 0 0;
    color: #fff;
    text-align: center;
    background:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,.42) 0 2px, transparent 3px),
        radial-gradient(circle at 86% 20%, rgba(255,225,170,.25) 0 8px, transparent 9px),
        linear-gradient(150deg, #850013, #cc001f 62%, #9b0017);
}

.xmas2026-hero__logo {
    position: relative;
    z-index: 2;
    display: block;
    width: 15rem;
    max-height: 2rem;
    margin-left: var(--xmas-side-space);
    object-fit: contain;
    object-position: left center;
}

.xmas2026-hero__copy {
    position: relative;
    z-index: 2;
    margin-top: 2rem;
}

.xmas2026-hero__year {
    color: #ffe07b;
    font-family: Georgia, serif;
    font-size: 1.8rem;
    font-style: italic;
    letter-spacing: .18em;
    text-align: center;
}

.xmas2026-hero h1 {
    margin-top: .4rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4.3rem;
    font-weight: 400;
    line-height: .9;
    letter-spacing: -.04em;
    text-transform: uppercase;
}

.xmas2026-hero__tagline {
    margin-top: 1.5rem;
    color: #ffe9a6;
    font-size: 1.4rem;
    text-align: center;
    letter-spacing: .08em;
}

.xmas2026-hero__cake {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 30rem;
    max-width: none;
    margin: 2rem 0 0;
    object-fit: cover;
    object-position: center 72%;
    filter: drop-shadow(0 2rem 1.5rem rgba(47,0,5,.35));
}

.xmas2026-intro {
    position: relative;
    padding: 3rem var(--xmas-side-space) 4rem;
    overflow: hidden;
    color: #fff;
    text-align: center;
    background: var(--xmas-red);
}

.xmas2026-intro > :not(.xmas2026-sparkles) {
    position: relative;
    z-index: 1;
}

.xmas2026-intro__campaign-logo {
    display: block;
    width: 10rem;
    height: auto;
    margin: 0 auto;
}


.xmas2026-sparkles {
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
}

.xmas2026-sparkles span,
.xmas2026-sparkles::before,
.xmas2026-sparkles::after {
    position: absolute;
    display: block;
    background: #f9d65c;
    clip-path: polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%);
    content: "";
}

.xmas2026-sparkles span:nth-child(1) {
    top: 3.2%; left: 8.9%; width: 1.94rem; height: 1.94rem;
    background-position: -3.33rem -1.91rem;
}
.xmas2026-sparkles span:nth-child(2) {
    top: 2.3%; right: 11.9%; width: 1.99rem; height: 2.02rem;
    background-position: -31.05rem -1.39rem;
}
.xmas2026-sparkles span:nth-child(3) {
    top: 6.9%; left: 2.9%; width: .71rem; height: .71rem;
    background-position: -1.08rem -4.12rem;
}
.xmas2026-sparkles span:nth-child(4) {
    top: 4.9%; right: 5.1%; width: .76rem; height: .73rem;
    background-position: -34.83rem -2.91rem;
}
.xmas2026-sparkles span:nth-child(5) {
    top: 19.1%; left: .1%; width: .76rem; height: .76rem;
    background-position: -.05rem -11.33rem;
}
.xmas2026-sparkles span:nth-child(6) {
    top: 17%; right: 3.3%; width: .66rem; height: .66rem;
    background-position: -35.61rem -10.12rem;
}
.xmas2026-sparkles span:nth-child(7) {
    top: 29.3%; left: .3%; width: 1.99rem; height: 1.99rem;
    background-position: -35.46rem -15.26rem;
}
.xmas2026-sparkles span:nth-child(8) {
    top: 34%; left: 12%; width: .73rem; height: .76rem;
    background-position: -4.51rem -20.19rem;
}
.xmas2026-sparkles::before {
    top: 25.7%; right: .1%; width: 1.99rem; height: 1.99rem;
    background-position: -35.46rem -15.26rem;
}
.xmas2026-sparkles::after {
    top: 32.9%; right: 6.8%; width: .76rem; height: .73rem;
    background-position: -34.2rem -19.56rem;
}

.xmas2026-intro h2 {
    margin-top: 2rem;
    font-weight: 900;
    line-height: 1.2;
}

.xmas2026-intro__title-main,
.xmas2026-intro__title-emphasis {
    display: block;
    white-space: nowrap;
}

.xmas2026-intro__title-main {
    font-size: 3.2rem;
}

.xmas2026-intro__title-emphasis {
    margin-top: 1rem;
    font-size: 3.8rem;
    line-height: 1.08;
}

.xmas2026-intro__period {
    margin-top: 3rem;
    width: 100%;
}

.xmas2026-intro__period-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    gap: .6rem;
}

.xmas2026-intro__period-label {
    flex: 0 0 auto;
    padding: .35rem .45rem;
    color: var(--xmas-red);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.05;
    text-align: left;
    background: #fff;
}

.xmas2026-intro__period-date {
    flex: 0 1 auto;
    min-width: 0;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.xmas2026-intro__period-date span {
    font-size: 1.2rem;
}

.xmas2026-intro__period-note {
    margin-top: 1.5rem;
    font-size: 1.2rem;
    font-weight: 500;
    text-align: center;
}

.xmas2026-intro__lead {
    margin-top: 5rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.9;
    text-align: center;
}

.xmas2026-intro__discount {
    margin-top: 4rem;
    padding: 1.2rem 0;
    text-align: center;
    border-top: .3rem double #fff;
    border-bottom: .3rem double #fff;
}

.xmas2026-intro__discount-title {
    font-size: 1.5rem;
    font-weight: 700;
    text-align: center;
}

.xmas2026-intro__discount-offer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    margin-top: .6rem;
}

.xmas2026-intro__discount-offer p {
    flex: 0 0 auto;
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1.08;
    text-align: left;
}

.xmas2026-intro__discount strong {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: baseline;
    color: #00794e;
    font-family: "Arial Black", Arial, sans-serif;
    font-weight: 900;
    line-height: .9;
    letter-spacing: -.06em;
    -webkit-text-stroke: .1rem #fff;
    paint-order: stroke fill;
    text-shadow: .18rem .18rem 0 #fff;
}

.xmas2026-intro__discount-number {
    font-size: 7.4rem;
    letter-spacing: -.12em;
}

.xmas2026-intro__discount-unit {
    font-size: 4rem;
}

.xmas2026-intro__discount-number + .xmas2026-intro__discount-unit {
    margin-left: .1rem;
}

.xmas2026-intro__discount-unit + .xmas2026-intro__discount-unit {
    margin-left: -.3rem;
}

.xmas2026-intro__note {
    margin-top: 1.5rem;
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 1.7;
    text-align: center;
    white-space: nowrap;
}

.xmas2026-products {
    padding: 4rem var(--xmas-side-space) 5rem;
    background: var(--xmas-red);
}

.xmas2026-ribbon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 2.4rem);
    max-width: 33.5rem;
    min-height: 4.8rem;
    margin: 2.5rem auto 0;
    padding: .7rem 1.8rem .8rem;
    box-sizing: border-box;
    color: #a00400;
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1.15;
    text-align: center;
    background: var(--xmas-gold);
    border-top: .2rem solid #fff;
    border-bottom: .2rem solid #fff;
}

.xmas2026-ribbon::before,
.xmas2026-ribbon::after {
    position: absolute;
    top: -.2rem;
    width: 2.6rem;
    height: calc(100% + .4rem);
    background: var(--xmas-gold);
    border-top: .2rem solid #fff;
    border-bottom: .2rem solid #fff;
    content: "";
}

.xmas2026-ribbon::before {
    left: -2.5rem;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 100% 50%);
}

.xmas2026-ribbon::after {
    right: -2.5rem;
    clip-path: polygon(0 0, 100% 0, 0 50%, 100% 100%, 0 100%);
}

.xmas2026-ribbon span {
    position: relative;
    z-index: 1;
    display: block;
    min-width: 0;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0;
    white-space: nowrap;
}

.xmas2026-recommend {
    margin: 1.5rem calc(var(--xmas-side-space) * -1) 0;
    overflow: hidden;
}

.xmas2026-recommend__track {
    display: flex;
    gap: 1.2rem;
    padding: 0 5.2rem 1rem;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.xmas2026-recommend__track::-webkit-scrollbar {
    display: none;
}

.xmas2026-recommend__slide {
    flex: 0 0 29rem;
    color: #fff;
    text-align: center;
    scroll-snap-align: center;
}

.xmas2026-recommend__image {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: 18rem;
    overflow: hidden;
}

.xmas2026-recommend__image::before {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0.2rem solid #e5c857;
    border-radius: 50%;
    content: "";
}

.xmas2026-recommend__slide img {
    position: relative;
    z-index: 1;
    display: block;
    width: 16rem;
    height: 16rem;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.xmas2026-recommend__slide strong {
    display: block;
    min-height: 4.4rem;
    margin-top: 1.2rem;
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
}

.xmas2026-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
}

.xmas2026-tabs button {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4.6rem;
    gap: .6rem;
    align-items: center;
    min-height: 7.2rem;
    padding: .8rem 1rem .8rem 1.2rem;
    overflow: hidden;
    color: var(--xmas-red-dark);
    font-size: 1.7rem;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
    background: #fff;
    border: .2rem solid var(--xmas-red-dark);
    border-radius: 1.6rem;
}

.xmas2026-tabs button span {
    position: relative;
    z-index: 1;
    min-width: 0;
    text-align: center;
    word-break: keep-all;
}

.xmas2026-tabs button.is-active {
    color: var(--xmas-red-dark);
    background: var(--xmas-gold);
    border-color: #fff;
}

.xmas2026-tabs button img {
    display: block;
    width: 4.6rem;
    height: 4.6rem;
    object-fit: contain;
}

.xmas2026-tabs button[data-category="strawberry"] img {
    transform: none;
}

.xmas2026-tabs button[data-category="chocolate"] img {
    transform: none;
}

.xmas2026-tabs button[data-category="low-carb"] img {
    transform: scale(.88);
}

.xmas2026-grid {
    display: grid;
    gap: 1.5rem;
    margin-top: 1.5rem;
}

body[data-page="catalog"] .xmas2026-grid {
    gap: 1.5rem;
    padding: 0;
    background: transparent;
    border-top: 0;
}

body[data-page="catalog"] .xmas2026-card {
    display: block;
    min-height: 0;
    background: #fff;
    border-bottom: 0;
    border-radius: .7rem;
    box-shadow: 0 .8rem 1.8rem rgba(93,0,14,.22);
}

body[data-page="catalog"] .xmas2026-card:last-child {
    border-bottom: 0;
}

body[data-page="catalog"] .xmas2026-card__image {
    height: 24rem;
    min-height: 24rem;
    padding: .8rem;
    background: #fff;
    border-right: 0;
    border-bottom: 1px solid rgba(151, 0, 25, .14);
}

body[data-page="catalog"] .xmas2026-card__image img {
    width: 21rem;
    height: 21rem;
}

body[data-page="catalog"] .xmas2026-card__no {
    display: block;
}

body[data-page="catalog"] .xmas2026-card__body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
    padding: 1.8rem;
}

body[data-page="catalog"] .xmas2026-card h3 {
    color: var(--xmas-red-dark);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.45;
}

body[data-page="catalog"] .xmas2026-card h3,
body[data-page="catalog"] .xmas2026-card__sale,
body[data-page="catalog"] .xmas2026-card__catalog-details,
body[data-page="catalog"] .xmas2026-card__jan {
    grid-column: 1 / -1;
}

body[data-page="catalog"] .xmas2026-card__sale {
    margin-top: 1rem;
}

body[data-page="catalog"] .xmas2026-card__sale-seal {
    white-space: nowrap;
}

body[data-page="catalog"] .xmas2026-card__sale-price {
    font-size: 3.1rem;
}

.xmas2026-card__sale-seal {
    display: inline-block;
    margin-top: 1rem;
    padding: .4rem .7rem;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 800;
    background: #c52317;
    border-radius: .4rem;
}

.xmas2026-card__sale {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .8rem;
    margin-top: 1rem;
    text-align: right;
}

.xmas2026-card__sale .xmas2026-card__sale-seal,
.xmas2026-card__sale .xmas2026-card__sale-price {
    margin-top: 0;
}

.xmas2026-card__sale-price {
    margin-top: 1rem;
    color: #000;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}

.xmas2026-card__sale-price span {
    font-size: 1.4rem;
}

.xmas2026-card__catalog-details {
    margin-top: 1.5rem;
    padding-top: 1.2rem;
    border-top: .2rem solid #111;
}

.xmas2026-card__catalog-details li {
    position: relative;
    padding-left: 1.2rem;
    color: #111;
    font-size: 1.3rem;
    line-height: 1.6;
}

.xmas2026-card__catalog-details li::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "・";
}

.xmas2026-card {
    background: #fff;
    border-radius: .7rem;
    overflow: hidden;
    box-shadow: 0 .8rem 1.8rem rgba(93,0,14,.22);
}

.xmas2026-card__image {
    position: relative;
    display: grid;
    place-items: center;
    height: 29rem;
    padding: 2rem;
    background: #fff;
    border-bottom: 1px solid rgba(151, 0, 25, .14);
}

.xmas2026-card__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.xmas2026-card__no {
    position: absolute;
    top: 1.2rem;
    left: 1.2rem;
    min-width: 4.4rem;
    padding: .5rem .8rem;
    color: #fff;
    font-family: Georgia, serif;
    font-size: 1.2rem;
    text-align: center;
    background: var(--xmas-red);
    border-radius: 99rem;
}

.xmas2026-card__body {
    padding: 1.8rem;
}

.xmas2026-card h3 {
    color: var(--xmas-red-dark);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.45;
}

.xmas2026-card__price {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.2rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px dotted #aaa;
}

.xmas2026-card__price p {
    font-size: 1.1rem;
}

.xmas2026-card__price strong {
    color: var(--xmas-red);
    font-size: 2.6rem;
    line-height: 1;
}

.xmas2026-card__price small {
    font-size: 1.1rem;
}

.xmas2026-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1.2rem;
}

.xmas2026-card__meta span {
    padding: .5rem .8rem;
    color: #fff;
    font-size: 1.1rem;
    background: var(--xmas-green);
    border-radius: .3rem;
}

.xmas2026-card__jan {
    margin-top: 1.2rem;
    color: #777;
    font-family: ui-monospace, monospace;
    font-size: 1rem;
}

.xmas2026-card__quantity {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .9rem;
    margin-top: 1.6rem;
    padding: 1rem;
    background: #fff6cc;
    border: 1px solid var(--xmas-gold);
    border-radius: .6rem;
    box-shadow: inset 0 0 0 1px rgba(151, 0, 25, .08);
}

.xmas2026-card__quantity:focus-within {
    border-color: #d2ae00;
    box-shadow: 0 0 0 .3rem rgba(242, 201, 0, .35);
}

.xmas2026-card__quantity label {
    flex: 0 0 auto;
    color: #111;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1;
}

.xmas2026-card__quantity select {
    width: 12rem;
    min-height: 4.4rem;
    padding: .8rem 3rem .8rem 1.1rem;
    color: #111;
    font-size: 1.6rem;
    font-weight: 800;
    background: #fff;
    background-image:
        linear-gradient(45deg, transparent 50%, #777 50%),
        linear-gradient(135deg, #777 50%, transparent 50%);
    background-position:
        calc(100% - 1.6rem) 50%,
        calc(100% - 1.1rem) 50%;
    background-repeat: no-repeat;
    background-size: .55rem .55rem, .55rem .55rem;
    border: 1px solid #b8b8b8;
    border-radius: .5rem;
    box-shadow: 0 .2rem 0 rgba(0, 0, 0, .12);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

body[data-page="reservation"] .xmas2026-card__image {
    height: 24rem;
    min-height: 24rem;
    padding: .8rem;
}

body[data-page="reservation"] .xmas2026-card__image img {
    width: 21rem;
    height: 21rem;
}

body[data-page="reservation"] .xmas2026-card__body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 1rem;
    align-items: center;
}

body[data-page="reservation"] .xmas2026-card h3,
body[data-page="reservation"] .xmas2026-card__sale,
body[data-page="reservation"] .xmas2026-card__catalog-details,
body[data-page="reservation"] .xmas2026-card__jan,
body[data-page="reservation"] .xmas2026-card__quantity {
    grid-column: 1 / -1;
}

body[data-page="reservation"] .xmas2026-card__sale {
    margin-top: 1rem;
}

body[data-page="reservation"] .xmas2026-card__sale-seal {
    white-space: nowrap;
}

body[data-page="reservation"] .xmas2026-card__sale-price {
    font-size: 3.1rem;
}

.xmas2026-empty {
    margin: 3rem 0;
    color: #fff;
    font-size: 1.5rem;
    text-align: center;
}

.xmas2026-summary {
    margin-top: 2rem;
    padding: 1.8rem;
    text-align: center;
    background: #fff;
    border: .4rem solid var(--xmas-gold);
}

.xmas2026-summary p,
.xmas2026-summary strong,
.xmas2026-summary small {
    display: block;
    text-align: center;
}

.xmas2026-summary p {
    font-size: 1.3rem;
}

.xmas2026-summary strong {
    margin-top: .4rem;
    color: var(--xmas-red);
    font-size: 2.4rem;
}

.xmas2026-summary__products {
    display: grid;
    gap: .4rem;
    margin-top: .8rem;
    padding: 0;
    color: #111;
    list-style: none;
}

.xmas2026-summary__products li {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
}

.xmas2026-summary button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 1.2rem;
    padding: 1.5rem 3.2rem;
    color: var(--xmas-red-dark);
    font-size: 1.6rem;
    font-weight: 800;
    text-align: center;
    background: var(--xmas-gold);
    border: 0;
}

.xmas2026-summary button::after,
.xmas2026-fixed-link::after {
    position: absolute;
    top: 50%;
    right: 1.8rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: .45rem 0 .45rem .65rem;
    border-color: transparent transparent transparent currentColor;
    content: "";
    transform: translateY(-50%);
}

.xmas2026-summary small {
    margin-top: 1rem;
    color: #777;
    font-size: 1rem;
}

.xmas2026-flow {
    padding: 2rem var(--xmas-side-space) 5rem;
    background: var(--xmas-green);
}

.xmas2026-flow__panel {
    padding: 3.5rem 1.6rem 4rem;
    color: #111;
    background: #fff;
    border-top: .7rem double var(--xmas-gold);
    border-bottom: .7rem double var(--xmas-gold);
}

.xmas2026-flow__panel h2 {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: left;
}

.xmas2026-flow__panel h2 span {
    display: inline-grid;
    flex: 0 0 5rem;
    place-items: center;
    width: 5rem;
    height: 5rem;
    color: #fff;
    font-size: 2.3rem;
    font-family: inherit;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    background: var(--xmas-green);
    border-radius: 50%;
}

.xmas2026-flow__note {
    margin-top: 3rem;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.8;
}

.xmas2026-flow__description {
    margin-top: 2.5rem;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.9;
}

.xmas2026-flow__steps {
    display: grid;
    gap: 1.2rem;
    margin-top: 2.2rem;
}

.xmas2026-flow__steps li {
    position: relative;
    padding-left: 2rem;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.8;
}

.xmas2026-flow__steps li::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "①";
}

.xmas2026-flow__steps li:nth-child(2)::before {
    content: "②";
}

.xmas2026-flow__arrow {
    display: block;
    width: 0;
    height: 0;
    margin: 2rem auto;
    border-right: 1.8rem solid transparent;
    border-left: 1.8rem solid transparent;
    border-top: 2.2rem solid var(--xmas-gold);
}

body[data-page="reservation"] .xmas2026-footer {
    padding-bottom: 8rem;
}

.xmas2026-reservation-header {
    padding: 2rem var(--xmas-side-space) 3rem;
    color: #fff;
    text-align: center;
    background: var(--xmas-red);
}

.xmas2026-reservation-header img {
    display: block;
    width: 15rem;
    margin: 0 auto 3rem 0;
}

.xmas2026-reservation-header > p:not(.xmas2026-reservation-header__lead) {
    color: var(--xmas-gold);
    font-family: Georgia, serif;
    font-size: 1.2rem;
    text-align: center;
    letter-spacing: .14em;
}

.xmas2026-reservation-header h1 {
    margin-top: .8rem;
    font-size: 3.8rem;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
}

.xmas2026-reservation-header__lead {
    margin-top: 2rem;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.xmas2026-reservation-products {
    padding-top: 1rem;
}

.xmas2026-fixed-link {
    position: fixed;
    z-index: 100;
    right: 0;
    bottom: .4rem;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(90%, 34rem);
    margin: auto !important;
    padding: 1.5rem 3.2rem !important;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    background: #00875b;
    border-radius: .5rem;
    box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.25);
}

@media (max-width: 375px) {
    .xmas2026-hero h1 {
        font-size: 12.8vw;
    }

    .xmas2026-card__image {
        height: 76vw;
        max-height: 29rem;
    }

    .xmas2026-tabs button {
        grid-template-columns: minmax(0, 1fr) 5rem;
        gap: .3rem;
        padding-right: .6rem;
        padding-left: .8rem;
        font-size: 1.35rem;
    }

    .xmas2026-tabs button img {
        width: 5rem;
        height: 5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
