@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Montserrat:wght@400;500;600&display=swap');

.kwxmas {
    --kw-burgundy: #4a0d12;
    --kw-burgundy-dark: #27080c;
    --kw-gold: #c99a3d;
    --kw-champagne: #e8d6ad;
    --kw-cream: #f7f1e7;
    --kw-ink: #241f1d;
    --kw-muted: #6f6560;
    --kw-white: #ffffff;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    color: var(--kw-ink);
    background: var(--kw-cream);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.7;
}

.kwxmas *, .kwxmas *::before, .kwxmas *::after { box-sizing: border-box; }
.kwxmas img { display: block; max-width: 100%; }
.kwxmas a { color: inherit; text-decoration: none; }
.kwxmas h1, .kwxmas h2, .kwxmas h3 { font-family: 'Cormorant Garamond', Georgia, serif; margin: 0; color: inherit; letter-spacing: -0.02em; }
.kwxmas h1 { max-width: 900px; font-size: clamp(3.9rem, 8.5vw, 7.6rem); font-weight: 600; line-height: .86; }
.kwxmas h2 { font-size: clamp(2.6rem, 5vw, 4.4rem); font-weight: 600; line-height: .98; }
.kwxmas h3 { font-size: 1.8rem; line-height: 1.05; }
.kwxmas p { margin: 0; }

.kwxmas-wrap { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.kwxmas-wrap--narrow { width: min(780px, calc(100% - 48px)); text-align: center; }
.kwxmas-section { padding: clamp(78px, 9vw, 130px) 0; }
.kwxmas-eyebrow { margin: 0 0 18px; color: var(--kw-gold); font-size: .75rem; font-weight: 600; letter-spacing: .22em; line-height: 1.3; text-transform: uppercase; }
.kwxmas-eyebrow--burgundy { color: var(--kw-burgundy); }

.kwxmas-hero { position: relative; min-height: 760px; display: grid; place-items: center; isolation: isolate; background-image: var(--kw-hero); background-position: center; background-size: cover; color: var(--kw-white); }
.kwxmas-hero__overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20, 4, 7, .9) 0%, rgba(45, 7, 12, .72) 48%, rgba(20, 4, 7, .38) 100%); }
.kwxmas-hero__content { padding: 115px 0 125px; }
.kwxmas-hero__logo { width: 122px; margin-bottom: 42px; filter: drop-shadow(0 4px 16px rgba(0,0,0,.3)); }
.kwxmas-hero__lead { max-width: 680px; margin-top: 30px; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.8; }
.kwxmas-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 38px; }
.kwxmas-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 13px 24px; border: 1px solid transparent; font-size: .74rem; font-weight: 600; letter-spacing: .12em; line-height: 1.3; text-align: center; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.kwxmas-button:hover { transform: translateY(-2px); }
.kwxmas-button--gold { background: var(--kw-gold); color: var(--kw-burgundy-dark) !important; }
.kwxmas-button--ghost { border-color: rgba(255,255,255,.65); color: var(--kw-white) !important; }
.kwxmas-button--ghost:hover { background: rgba(255,255,255,.12); }
.kwxmas-button--burgundy { background: var(--kw-burgundy); color: var(--kw-white) !important; }
.kwxmas-button--cream { background: var(--kw-cream); color: var(--kw-burgundy) !important; }
.kwxmas-hero__scroll { position: absolute; bottom: 30px; left: 50%; display: flex; gap: 12px; align-items: center; transform: translateX(-50%); color: var(--kw-champagne) !important; font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }

.kwxmas-welcome { background: var(--kw-cream); }
.kwxmas-welcome h2 { color: var(--kw-burgundy); }
.kwxmas-welcome p:not(.kwxmas-eyebrow) { max-width: 690px; margin: 28px auto 0; color: var(--kw-muted); font-size: 1.05rem; }
.kwxmas-rule { display: flex; align-items: center; gap: 16px; width: min(340px, 70%); margin: 38px auto 0; color: var(--kw-gold); }
.kwxmas-rule::before, .kwxmas-rule::after { content: ''; height: 1px; flex: 1; background: var(--kw-gold); opacity: .65; }

.kwxmas-experiences { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--kw-burgundy-dark); color: var(--kw-white); }
.kwxmas-experience { position: relative; min-height: 390px; display: flex; flex-direction: column; justify-content: flex-end; padding: 48px 38px; overflow: hidden; isolation: isolate; border-right: 1px solid rgba(255,255,255,.15); }
.kwxmas-experience::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, transparent, rgba(16,2,4,.88)); }
.kwxmas-experience::after { content: ''; position: absolute; inset: 0; z-index: -3; opacity: .28; background-position: center; background-size: cover; transition: transform .5s ease, opacity .5s ease; }
.kwxmas-experience:hover::after { transform: scale(1.04); opacity: .4; }
.kwxmas-experience--events::after, .kwxmas-experience--newyear::after { background-image: var(--kw-hero, linear-gradient(120deg, #4a0d12, #27080c)); }
.kwxmas-experience--workshops::after { background-image: radial-gradient(circle at 30% 30%, rgba(201,154,61,.9), transparent 40%), linear-gradient(135deg, #5a151c, #27080c); }
.kwxmas-experience--dining::after { background-image: var(--kw-feature, linear-gradient(120deg, #4a0d12, #27080c)); }
.kwxmas-experience__number { position: absolute; top: 34px; right: 34px; color: var(--kw-gold); font-family: 'Cormorant Garamond', Georgia, serif; font-size: 2rem; }
.kwxmas-experience h3 { color: var(--kw-white); }
.kwxmas-experience p { margin-top: 14px; color: rgba(255,255,255,.78); font-size: .88rem; line-height: 1.6; }
.kwxmas-experience a { margin-top: 24px; color: var(--kw-champagne); font-size: .7rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }

.kwxmas-calendar { background: var(--kw-burgundy); color: var(--kw-white); }
.kwxmas-calendar__grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(50px, 8vw, 110px); align-items: center; }
.kwxmas-calendar__copy { position: sticky; top: 120px; }
.kwxmas-calendar__copy h2 { color: var(--kw-white); }
.kwxmas-calendar__copy > p:not(.kwxmas-eyebrow) { margin-top: 26px; color: rgba(255,255,255,.75); }
.kwxmas-text-link { display: inline-flex; gap: 12px; margin-top: 34px; color: var(--kw-champagne) !important; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.kwxmas-calendar__image { position: relative; display: block; padding: 10px; background: rgba(255,255,255,.08); box-shadow: 0 28px 70px rgba(0,0,0,.32); }
.kwxmas-calendar__image img { width: 100%; }
.kwxmas-calendar__image span { position: absolute; right: 22px; bottom: 22px; padding: 8px 12px; background: rgba(25,4,7,.82); color: var(--kw-white); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }

.kwxmas-events { background: #fffaf3; }
.kwxmas-heading-row { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; margin-bottom: 58px; }
.kwxmas-heading-row h2 { color: var(--kw-burgundy); }
.kwxmas-heading-row > p { color: var(--kw-muted); }
.kwxmas-event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.kwxmas-event-card { display: grid; grid-template-columns: 108px 1fr; min-height: 250px; background: var(--kw-white); box-shadow: 0 12px 38px rgba(62,27,23,.07); transition: transform .2s ease, box-shadow .2s ease; }
.kwxmas-event-card:hover { transform: translateY(-3px); box-shadow: 0 16px 42px rgba(62,27,23,.12); }
.kwxmas-date { display: flex; flex-direction: column; justify-content: center; align-items: center; background: var(--kw-burgundy); color: var(--kw-white); }
.kwxmas-date span { color: var(--kw-champagne); font-size: .7rem; font-weight: 600; letter-spacing: .16em; }
.kwxmas-date strong { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 3.25rem; font-weight: 600; line-height: 1; }
.kwxmas-event-card__body { display: flex; flex-direction: column; align-items: flex-start; padding: 31px 30px; }
.kwxmas-event-card__type { margin-bottom: 9px; color: var(--kw-gold); font-size: .65rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.kwxmas-event-card h3 { color: var(--kw-burgundy); font-size: 1.55rem; }
.kwxmas-event-card p { margin-top: 12px; color: var(--kw-muted); font-size: .84rem; line-height: 1.55; }
.kwxmas-event-card a { margin-top: auto; padding-top: 18px; color: var(--kw-burgundy); font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.kwxmas-feature { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 650px; background: var(--kw-burgundy-dark); color: var(--kw-white); }
.kwxmas-feature__image { min-height: 500px; background-image: linear-gradient(90deg, transparent 70%, rgba(39,8,12,.35)), var(--kw-feature); background-position: center; background-size: cover; }
.kwxmas-feature__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(58px, 8vw, 110px); }
.kwxmas-feature__content h2 { color: var(--kw-white); }
.kwxmas-feature__content > p:not(.kwxmas-eyebrow) { margin-top: 25px; color: rgba(255,255,255,.76); }
.kwxmas-feature__links { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 34px; }
.kwxmas-feature__links a { border-bottom: 1px solid var(--kw-gold); color: var(--kw-champagne); font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }

.kwxmas-menus { background: #fffaf3; }
.kwxmas-menus__heading { max-width: 720px; margin: 0 auto 55px; text-align: center; }
.kwxmas-menus__heading h2 { color: var(--kw-burgundy); }
.kwxmas-menus__heading > p:not(.kwxmas-eyebrow) { margin-top: 22px; color: var(--kw-muted); }
.kwxmas-menu-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kwxmas-menu-card { min-height: 335px; display: flex; flex-direction: column; align-items: flex-start; padding: 45px 38px; border-top: 4px solid var(--kw-gold); background: var(--kw-white); box-shadow: 0 12px 38px rgba(62,27,23,.07); }
.kwxmas-menu-card--featured { background: var(--kw-burgundy); color: var(--kw-white); }
.kwxmas-menu-card > span { color: var(--kw-gold); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.kwxmas-menu-card h3 { margin-top: 16px; color: var(--kw-burgundy); font-size: 2rem; }
.kwxmas-menu-card--featured h3 { color: var(--kw-white); }
.kwxmas-menu-card p { margin-top: 18px; color: var(--kw-muted); font-size: .88rem; }
.kwxmas-menu-card--featured p { color: rgba(255,255,255,.76); }
.kwxmas-menu-card a { margin-top: auto; padding-top: 28px; border-bottom: 1px solid currentColor; color: var(--kw-burgundy); font-size: .68rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.kwxmas-menu-card--featured a { color: var(--kw-champagne); }

.kwxmas-party { background: var(--kw-champagne); }
.kwxmas-party__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.kwxmas-party h2 { max-width: 580px; color: var(--kw-burgundy); }
.kwxmas-party__grid > div:last-child > p { color: #5b4d46; }
.kwxmas-party .kwxmas-button { margin-top: 28px; }

.kwxmas-stay { position: relative; min-height: 600px; display: grid; align-items: center; isolation: isolate; background-image: var(--kw-stay); background-position: center; background-size: cover; color: var(--kw-white); }
.kwxmas-stay__overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(23,6,8,.9), rgba(23,6,8,.35)); }
.kwxmas-stay__content { padding-block: 95px; }
.kwxmas-stay h2 { color: var(--kw-white); }
.kwxmas-stay__content > p:not(.kwxmas-eyebrow) { max-width: 540px; margin-top: 24px; color: rgba(255,255,255,.83); }

.kwxmas-final { padding: 110px 0; background: var(--kw-burgundy); color: var(--kw-white); text-align: center; }
.kwxmas-final__content { display: flex; flex-direction: column; align-items: center; }
.kwxmas-final__star { margin-bottom: 22px; color: var(--kw-gold); font-size: 1.5rem; }
.kwxmas-final h2 { color: var(--kw-white); }
.kwxmas-final__content > p:not(.kwxmas-eyebrow) { margin-top: 18px; color: var(--kw-champagne); }
.kwxmas-final .kwxmas-button { margin-top: 32px; }
.kwxmas-final__contact { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 35px; color: rgba(255,255,255,.74); font-size: .85rem; }

@media (max-width: 1000px) {
    .kwxmas-experiences { grid-template-columns: repeat(2, 1fr); }
    .kwxmas-calendar__grid { gap: 52px; }
    .kwxmas-event-card { grid-template-columns: 90px 1fr; }
    .kwxmas-feature { grid-template-columns: 1fr 1fr; }
    .kwxmas-menu-grid { grid-template-columns: 1fr 1fr; }
    .kwxmas-menu-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
    .kwxmas { font-size: 15px; }
    .kwxmas-wrap, .kwxmas-wrap--narrow { width: min(100% - 36px, 1180px); }
    .kwxmas-hero { min-height: 690px; background-position: 60% center; }
    .kwxmas-hero__overlay { background: rgba(26,4,7,.74); }
    .kwxmas-hero__content { padding: 90px 0 110px; text-align: center; }
    .kwxmas-hero__logo { width: 106px; margin-inline: auto; }
    .kwxmas-hero__lead { margin-inline: auto; }
    .kwxmas-actions { justify-content: center; }
    .kwxmas-experiences { grid-template-columns: 1fr; }
    .kwxmas-experience { min-height: 300px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.15); }
    .kwxmas-calendar__grid, .kwxmas-heading-row, .kwxmas-party__grid { grid-template-columns: 1fr; gap: 38px; }
    .kwxmas-calendar__copy { position: static; text-align: center; }
    .kwxmas-event-grid { grid-template-columns: 1fr; }
    .kwxmas-feature { grid-template-columns: 1fr; }
    .kwxmas-feature__image { min-height: 390px; }
    .kwxmas-feature__content { padding: 65px 28px; }
    .kwxmas-menu-grid { grid-template-columns: 1fr; }
    .kwxmas-menu-card:last-child { grid-column: auto; }
    .kwxmas-party { text-align: center; }
    .kwxmas-stay__overlay { background: rgba(23,6,8,.68); }
    .kwxmas-stay__content { text-align: center; }
    .kwxmas-stay__content > p:not(.kwxmas-eyebrow) { margin-inline: auto; }
}

@media (max-width: 440px) {
    .kwxmas h1 { font-size: 3.45rem; }
    .kwxmas h2 { font-size: 2.5rem; }
    .kwxmas-actions { flex-direction: column; align-items: stretch; }
    .kwxmas-event-card { grid-template-columns: 76px 1fr; min-height: 270px; }
    .kwxmas-event-card__body { padding: 26px 22px; }
    .kwxmas-date strong { font-size: 2.7rem; }
    .kwxmas-calendar__image { padding: 5px; }
    .kwxmas-calendar__image span { display: none; }
    .kwxmas-final__contact { flex-direction: column; gap: 5px; }
    .kwxmas-final__contact span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .kwxmas *, .kwxmas *::before, .kwxmas *::after { scroll-behavior: auto !important; transition: none !important; }
}
