/* ==========================================================================
   K2H THEME · HOMEPAGE
   Hero carousel · Intro · Christmas at K2H · Menus · Newsletter · Group
   Each block is self-contained and prefixed with its component name.
   ========================================================================== */

/* =========================================================================
   1. HERO CAROUSEL  (.k2h-hero)
   ========================================================================= */
.k2h-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(36px, 5vw, 64px) 0 clamp(120px, 12vw, 150px);
    background: var(--k2h-night-gradient);
    color: var(--k2h-on-dark);
    isolation: isolate;
}

/* slowly turning mandala behind the arch */
.k2h-hero__mandala {
    position: absolute;
    z-index: -1;
    top: -14%;
    right: -14%;
    width: min(900px, 130vw);
    aspect-ratio: 1;
    opacity: .2;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 900' fill='none' stroke='%23C9A35E'%3E%3Ccircle cx='450' cy='450' r='420'/%3E%3Ccircle cx='450' cy='450' r='395' stroke-width='22' stroke-dasharray='3 14'/%3E%3Ccircle cx='450' cy='450' r='350' stroke-dasharray='40 10'/%3E%3Ccircle cx='450' cy='450' r='320' stroke-width='10' stroke-dasharray='1 9'/%3E%3Ccircle cx='450' cy='450' r='290' stroke-width='.8'/%3E%3Ccircle cx='450' cy='450' r='240' stroke-width='4' stroke-dasharray='2 18'/%3E%3C/svg%3E") center / contain no-repeat;
    animation: k2h-spin 90s linear infinite;
}

/* all slides share one grid cell → the hero is as tall as its tallest slide */
.k2h-hero__viewport { display: grid; }
.k2h-hero__slide {
    grid-area: 1 / 1;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--k2h-dur-slow) ease, visibility 0s linear var(--k2h-dur-slow);
}
.k2h-hero__slide.is-active {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--k2h-dur-slow) ease, visibility 0s;
}

.k2h-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    align-items: center;
    gap: clamp(32px, 5vw, 72px);
    padding-inline: var(--k2h-gutter);
}

/* copy: staggered entrance whenever a slide becomes active */
.k2h-hero__copy > * {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s var(--k2h-ease), transform .7s var(--k2h-ease);
}
.k2h-hero__slide.is-active .k2h-hero__copy > * { opacity: 1; transform: none; }
.k2h-hero__slide.is-active .k2h-hero__copy > :nth-child(1) { transition-delay: .15s; }
.k2h-hero__slide.is-active .k2h-hero__copy > :nth-child(2) { transition-delay: .25s; }
.k2h-hero__slide.is-active .k2h-hero__copy > :nth-child(3) { transition-delay: .35s; }
.k2h-hero__slide.is-active .k2h-hero__copy > :nth-child(4) { transition-delay: .45s; }

.k2h-hero__title {
    margin: 0 0 22px;
    font-size: var(--k2h-h1);
    line-height: .98;
    color: var(--k2h-on-dark);
}
.k2h-hero__title em {
    display: block;
    font-style: italic;
    color: var(--k2h-gold-300);
}
.k2h-hero__text {
    max-width: 34rem;
    margin: 0 0 30px;
    font-size: var(--k2h-text-xl);
    font-weight: 300;
    line-height: 1.7;
    color: var(--k2h-on-dark-soft);
}

/* visual: palace arch + holly */
.k2h-hero__visual { position: relative; display: flex; justify-content: center; }
.k2h-hero__arch { width: min(460px, 100%); aspect-ratio: 460 / 560; }
.k2h-hero__arch .k2h-arch__frame { border-color: rgba(232, 207, 148, .6); }
.k2h-hero__arch .k2h-arch__media { height: 100%; }
.k2h-hero__arch .k2h-arch__media img { object-position: var(--focus, center); }
.k2h-hero__arch .k2h-arch__media::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 45%;
    background: linear-gradient(0deg, rgba(10, 26, 48, .85), rgba(10, 26, 48, 0));
}
.k2h-hero__slide.is-active .k2h-arch__media img { animation: k2h-kenburns 9s ease-out forwards; }
.k2h-hero__tag {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 26px;
    z-index: 1;
    text-align: center;
    font-family: var(--k2h-font-label);
    font-size: .75rem;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--k2h-gold-300);
}
.k2h-holly {
    position: absolute;
    top: -14px;
    right: calc(50% - min(230px, 50%) - 36px);
    width: 120px;
    height: 90px;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .35));
}

/* controls */
.k2h-hero__controls {
    position: absolute;
    left: 0;
    right: 0;
    bottom: clamp(56px, 7vw, 76px);
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 20px;
    padding-inline: var(--k2h-gutter);
}
.k2h-hero__dots { display: flex; gap: 8px; }
.k2h-hero__dot {
    width: 30px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: width var(--k2h-dur) var(--k2h-ease);
}
.k2h-hero__dot.is-active { width: 64px; }
.k2h-hero__dot-track {
    display: block;
    height: 3px;
    border-radius: 2px;
    background: rgba(247, 240, 227, .28);
    overflow: hidden;
}
.k2h-hero__dot-fill {
    display: block;
    width: 0;
    height: 100%;
    background: var(--k2h-gold-300);
}
.k2h-hero__dot.is-done .k2h-hero__dot-fill { width: 100%; }
.k2h-hero__dot.is-active .k2h-hero__dot-fill { width: 100%; }
/* while autoplaying, the active bar fills over the slide interval; carousel.js advances on animationend */
.k2h-hero.is-playing .k2h-hero__dot.is-active .k2h-hero__dot-fill {
    width: 0;
    animation: k2h-progress var(--k2h-interval, 6.5s) linear forwards;
}
.k2h-hero.is-paused .k2h-hero__dot.is-active .k2h-hero__dot-fill { animation-play-state: paused; }

.k2h-hero__counter {
    margin: 0;
    font-family: var(--k2h-font-label);
    font-size: .8125rem;
    letter-spacing: .2em;
    color: var(--k2h-on-dark-soft);
}
.k2h-hero__nav { display: flex; gap: 10px; margin-left: auto; }

.k2h-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(232, 207, 148, .6);
    border-radius: 50%;
    background: rgba(10, 26, 48, .5);
    color: var(--k2h-gold-300);
    cursor: pointer;
    transition: background-color var(--k2h-dur) ease, transform var(--k2h-dur-fast) ease;
}
.k2h-icon-btn:hover { background: var(--k2h-gold-300); color: var(--k2h-navy-900); }
.k2h-icon-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.k2h-icon-btn .k2h-icon-play { fill: currentColor; stroke: none; }
.k2h-icon-btn .k2h-icon-play,
.k2h-hero.is-stopped .k2h-icon-pause { display: none; }
.k2h-hero.is-stopped .k2h-icon-play { display: block; }

@media (max-width: 991.98px) {
    .k2h-hero { padding-top: 28px; text-align: center; }
    .k2h-hero__grid { grid-template-columns: 1fr; gap: 28px; }
    .k2h-hero__visual { order: -1; }
    .k2h-hero__arch { width: min(340px, 76vw); }
    .k2h-hero__text { margin-inline: auto; }
    .k2h-hero .k2h-btn-row { justify-content: center; }
    .k2h-hero .k2h-eyebrow { justify-content: center; }
    .k2h-hero__controls { justify-content: center; bottom: 52px; }
    .k2h-hero__nav { margin-left: 0; }
    .k2h-hero__counter { display: none; }
    .k2h-holly { width: 92px; height: 70px; right: calc(50% - min(170px, 38vw) - 22px); }
}
@media (max-width: 575.98px) {
    .k2h-hero__title { font-size: clamp(2.4rem, 11vw, 3rem); }
    .k2h-hero__text { font-size: 1rem; }
    .k2h-hero .k2h-btn-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .k2h-hero .k2h-btn-row .k2h-btn { padding-inline: 12px; white-space: normal; }
    .k2h-hero .k2h-btn-row .k2h-btn--link { grid-column: 1 / -1; justify-self: center; }
    .k2h-hero__nav [data-carousel-toggle] { display: none; }
}

/* =========================================================================
   2. INTRO  (.k2h-intro)
   ========================================================================= */
#home-intro.k2h-intro {
    padding: var(--k2h-section-y) 0;
    background: var(--k2h-cream-100);
    color: var(--k2h-ink);
}
.k2h-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
    gap: clamp(40px, 7vw, 96px);
    align-items: center;
}
.k2h-intro__copy p { color: var(--k2h-ink-soft); }
.k2h-intro__copy .k2h-lead { color: var(--k2h-ink); }
.k2h-intro .k2h-heading { text-transform: none; text-align: left; }

.k2h-pillars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 30px 0 34px;
    padding: 0;
    list-style: none;
}
.k2h-pillars li {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 16px;
    border-top: 1px solid var(--k2h-gold-500);
}
.k2h-pillars strong {
    font-family: var(--k2h-font-label);
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--k2h-navy-800);
}
.k2h-pillars span { font-size: .875rem; line-height: 1.55; color: var(--k2h-ink-muted); }

.k2h-intro__visual { position: relative; display: flex; flex-direction: column; align-items: center; }
.k2h-intro__arch { width: min(360px, 100%); aspect-ratio: 360 / 480; }
.k2h-intro__arch .k2h-arch__frame { transform: translate(-16px, -16px); }
.k2h-intro__arch .k2h-arch__media { height: 100%; box-shadow: var(--k2h-shadow-md); }
.k2h-intro__arch .k2h-arch__media img { object-position: 50% 100%; }
.k2h-intro__badge {
    position: relative;
    margin: -28px 0 0;
    padding: 15px 24px;
    background: var(--k2h-crimson-600);
    color: var(--k2h-on-dark);
    font-family: var(--k2h-font-display);
    font-style: italic;
    font-size: 1.25rem;
    text-align: center;
    box-shadow: 0 20px 40px -20px rgba(110, 18, 32, .7);
}

@media (max-width: 991.98px) {
    .k2h-intro__grid { grid-template-columns: 1fr; }
    .k2h-intro__visual { order: -1; }
    .k2h-intro__arch { width: min(300px, 80vw); }
}
@media (max-width: 575.98px) {
    .k2h-pillars { grid-template-columns: 1fr; gap: 12px; }
    .k2h-intro .k2h-btn-row { display: grid; }
}

/* =========================================================================
   3. CHRISTMAS AT K2H  (.k2h-xmas)
   ========================================================================= */
#home-xmas.k2h-xmas {
    position: relative;
    overflow: hidden;
    padding: 0;
    background: var(--k2h-crimson-gradient);
    color: var(--k2h-on-festive);
}
/* scoped with the id: the original stylesheet adds padding + swirls to "#home-xmas div[class^=container]" */
#home-xmas div.k2h-xmas__inner {
    background: none;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: clamp(48px, 7vw, 80px);
    padding: 270px var(--k2h-gutter) clamp(110px, 12vw, 150px);   /* room for the longest bauble (len + size) */
    color: inherit;
}

/* hanging baubles */
.k2h-baubles { position: absolute; inset: 0 0 auto 0; height: 260px; pointer-events: none; }
.k2h-bauble {
    --ball: var(--k2h-gold-500);
    position: absolute;
    top: 0;
    left: var(--x);
    width: var(--size);
    height: calc(var(--len) + var(--size) + 8px);
    margin-left: calc(var(--size) / -2);
    transform-origin: 50% 0;
    animation: k2h-sway 5s ease-in-out var(--delay, 0s) infinite;
}
.k2h-bauble::before {
    content: "";
    position: absolute;
    top: 0;
    left: calc(50% - 6px);
    width: 12px;
    height: calc(var(--len) + 8px);
    background:
        linear-gradient(var(--k2h-gold-500), var(--k2h-gold-300)) center top / 1px var(--len) no-repeat,
        linear-gradient(var(--k2h-gold-300), var(--k2h-gold-600)) center bottom / 12px 8px no-repeat;
}
.k2h-bauble::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, .45), transparent 36%), var(--ball);
    box-shadow: inset 0 0 0 2px rgba(232, 207, 148, .55), 0 10px 20px rgba(0, 0, 0, .35);
    outline: 1px dashed rgba(232, 207, 148, .8);
    outline-offset: calc(var(--size) * -.24);
}
.k2h-bauble--navy { --ball: var(--k2h-navy-600); }
.k2h-bauble--pine { --ball: var(--k2h-pine-500); }
.k2h-bauble--red  { --ball: var(--k2h-crimson-400); }

.k2h-xmas__head { display: flex; flex-direction: column; align-items: center; text-align: center; }
.k2h-xmas__head .k2h-heading { font-size: clamp(2.8rem, 2rem + 3.6vw, 4.8rem); }
.k2h-xmas__intro { max-width: 46rem; margin: 0; font-size: var(--k2h-text-xl); font-weight: 300; line-height: 1.7; }

.k2h-xmas__feature {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: clamp(36px, 5vw, 64px);
    align-items: center;
}
.k2h-xmas__photo { position: relative; }
.k2h-xmas__photo img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9.5;
    object-fit: cover;
    border-radius: 999px 999px 6px 6px / 160px 160px 6px 6px;
    box-shadow: var(--k2h-shadow-lg);
}
.k2h-xmas__photo-frame {
    position: absolute;
    inset: -14px;
    border: 1px solid rgba(232, 207, 148, .55);
    border-radius: 999px 999px 8px 8px / 174px 174px 8px 8px;
    pointer-events: none;
}
.k2h-xmas__panel { display: flex; flex-direction: column; gap: 22px; }
.k2h-xmas__panel p { margin: 0; line-height: 1.75; }
.k2h-xmas__label {
    font-family: var(--k2h-font-label);
    font-size: .8125rem;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: var(--k2h-gold-300);
}

.k2h-countdown__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.k2h-countdown__cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 6px 14px;
    border: 1px solid rgba(232, 207, 148, .45);
    background: rgba(10, 26, 48, .28);
}
.k2h-countdown__value {
    font-family: var(--k2h-font-display);
    font-weight: 600;
    font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.2rem);
    line-height: 1;
    color: #FFFFFF;
    font-variant-numeric: lining-nums tabular-nums;
}
.k2h-countdown__unit { margin-top: 8px; font-size: .6875rem; letter-spacing: .24em; text-transform: uppercase; color: var(--k2h-gold-300); }
.k2h-countdown__done { font-family: var(--k2h-font-display); font-style: italic; font-size: 2rem; color: var(--k2h-gold-300); }

.k2h-xmas__subhead {
    margin: 0 0 22px;
    font-size: 1rem;
    letter-spacing: var(--k2h-tracking-label);
    text-transform: uppercase;
    text-align: center;
    color: var(--k2h-gold-300);
}
.k2h-poster-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2.5vw, 28px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.k2h-poster {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: rgba(6, 16, 31, .35);
    border: 1px solid rgba(232, 207, 148, .35);
    color: var(--k2h-on-dark);
    transition: transform var(--k2h-dur) var(--k2h-ease), box-shadow var(--k2h-dur) ease, border-color var(--k2h-dur) ease;
}
.k2h-poster:hover { transform: translateY(-8px); border-color: var(--k2h-gold-300); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7); color: var(--k2h-on-dark); }
.k2h-poster__media { display: block; aspect-ratio: 4 / 3.2; overflow: hidden; }
.k2h-poster__media img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 1.2s var(--k2h-ease); }
.k2h-poster:hover .k2h-poster__media img { transform: scale(1.05); }
.k2h-poster__body { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px 20px; }
.k2h-poster__name { font-family: var(--k2h-font-label); font-size: 1.05rem; letter-spacing: .06em; color: var(--k2h-gold-300); }
.k2h-poster__note { font-size: .875rem; color: var(--k2h-on-festive); }

.k2h-xmas__extras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.k2h-tile {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 26px 28px;
    border: 1px solid rgba(232, 207, 148, .35);
    background: rgba(247, 240, 227, .06);
    color: var(--k2h-on-dark);
    transition: transform var(--k2h-dur) var(--k2h-ease), background-color var(--k2h-dur) ease;
}
.k2h-tile:hover { transform: translateY(-4px); background: rgba(247, 240, 227, .1); color: var(--k2h-on-dark); }
.k2h-tile__icon { flex: none; width: 52px; height: 52px; fill: none; stroke: var(--k2h-gold-300); stroke-width: 1.5; }
.k2h-tile__body { display: flex; flex-direction: column; gap: 4px; }
.k2h-tile__title { font-family: var(--k2h-font-label); font-size: 1.05rem; letter-spacing: .06em; color: var(--k2h-gold-300); }
.k2h-tile__text { font-size: .9375rem; line-height: 1.55; color: var(--k2h-on-festive); }
.k2h-tile[rel*="external"]::after { display: none; }

@media (max-width: 991.98px) {
    .k2h-xmas__feature { grid-template-columns: 1fr; }
    .k2h-poster-grid { grid-template-columns: repeat(3, minmax(220px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
    .k2h-poster-grid > li { scroll-snap-align: start; }
    .k2h-xmas__extras { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .k2h-baubles { height: 170px; }
    #home-xmas div.k2h-xmas__inner { padding-top: 190px; }
    .k2h-bauble { --size: 34px !important; height: calc(var(--len) * .55 + 42px); }
    .k2h-bauble::before { height: calc(var(--len) * .55 + 8px); background-size: 1px calc(var(--len) * .55), 12px 8px; }
    .k2h-bauble:nth-child(2n) { display: none; }
    .k2h-countdown__grid { gap: 6px; }
    .k2h-countdown__cell { padding: 12px 2px 10px; }
    .k2h-xmas__photo img { border-radius: 999px 999px 6px 6px / 90px 90px 6px 6px; }
    .k2h-xmas__photo-frame { border-radius: 999px 999px 8px 8px / 100px 100px 8px 8px; inset: -8px; }
    .k2h-xmas .k2h-btn-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .k2h-tile { padding: 20px; }
}

/* =========================================================================
   4. MENUS GRID  (.k2h-menus)
   ========================================================================= */
.k2h-menus { background: var(--k2h-cream-100); }
.k2h-menu-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
/* scoped with the id: the original stylesheet colours #home-la-carte, #home-thali … (now card ids) */
#home-menus .k2h-menu-card {
    display: flex;
    flex-direction: column;
    background: var(--k2h-cream-50);
    border: 1px solid var(--k2h-cream-300);
    transition: transform var(--k2h-dur) var(--k2h-ease), box-shadow var(--k2h-dur) ease;
}
#home-menus .k2h-menu-card:hover { transform: translateY(-8px); box-shadow: 0 30px 60px -30px rgba(10, 26, 48, .45); }
.k2h-menu-card__media { padding: 12px 12px 0; }
.k2h-menu-card__media img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / .86;
    object-fit: cover;
    border-radius: 999px 999px 0 0;
    transition: filter var(--k2h-dur) ease;
}
.k2h-menu-card__body { display: flex; flex-direction: column; flex: 1; gap: 10px; padding: 22px 22px 24px; }
.k2h-menu-card__when { margin: 0; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--k2h-gold-700); }
.k2h-menu-card__name { margin: 0; font-size: 1.35rem; letter-spacing: .05em; color: var(--k2h-navy-800); }
.k2h-menu-card__text { flex: 1; margin: 0; font-size: .9375rem; line-height: 1.65; color: var(--k2h-ink-muted); }
.k2h-menu-card__actions { display: grid; gap: 8px; margin-top: 8px; }
.k2h-menu-card__actions .k2h-btn { padding-inline: 14px; }

@media (max-width: 1199.98px) { .k2h-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px)  { .k2h-menu-grid { grid-template-columns: 1fr; } }

/* =========================================================================
   5. NEWSLETTER  (.k2h-newsletter) — themes the Mailchimp embed without
      touching its markup
   ========================================================================= */
#home-newsletter.k2h-newsletter { padding: 0 0 var(--k2h-section-y); background: var(--k2h-cream-100); }
#home-newsletter .newsletter-content.k2h-newsletter__card {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    margin: 0;
    border: 0;
    border-top: 6px solid var(--k2h-gold-500);
    background: var(--k2h-navy-800);
    color: var(--k2h-on-dark);
    box-shadow: 0 50px 90px -50px rgba(10, 26, 48, .85);
    overflow: hidden;
}

/* the wrapped gift */
.k2h-newsletter__gift {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    background: radial-gradient(circle at 50% 45%, var(--k2h-navy-600), var(--k2h-navy-800) 70%);
}
.k2h-newsletter__ribbon { position: absolute; background: linear-gradient(90deg, var(--k2h-gold-600), var(--k2h-gold-300), var(--k2h-gold-600)); }
.k2h-newsletter__ribbon--v { top: 0; bottom: 0; left: calc(50% - 11px); width: 22px; }
.k2h-newsletter__ribbon--h { left: 0; right: 0; top: calc(50% - 11px); height: 22px; background: linear-gradient(0deg, var(--k2h-gold-600), var(--k2h-gold-300), var(--k2h-gold-600)); }
.k2h-newsletter__bow { position: absolute; top: calc(50% - 128px); left: 50%; width: 0; height: 0; }
.k2h-newsletter__bow::before,
.k2h-newsletter__bow::after {
    content: "";
    position: absolute;
    top: -22px;
    width: 58px;
    height: 34px;
    border: 7px solid var(--k2h-gold-400);
    border-radius: 50%;
}
.k2h-newsletter__bow::before { right: 0; transform: rotate(-22deg); }
.k2h-newsletter__bow::after  { left: 0;  transform: rotate(22deg); }
.k2h-newsletter__logo {
    position: relative;
    width: 168px;
    height: 168px;
    border-radius: 50%;
    box-shadow: 0 0 0 8px var(--k2h-navy-800), 0 0 0 9px var(--k2h-gold-300), 0 20px 50px rgba(0, 0, 0, .6);
}

.k2h-newsletter__body { padding: clamp(32px, 5vw, 56px); }
.k2h-newsletter__body .k2h-heading { font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.8rem); text-transform: none; }
.k2h-newsletter__body .colour-gold { color: var(--k2h-gold-300); font-style: italic; font-weight: 600; }

/* Mailchimp classic embed overrides (scoped) */
.k2h-newsletter #mc_embed_signup { background: transparent; font: 400 .9375rem/1.5 var(--k2h-font-body); color: var(--k2h-on-dark-soft); }
.k2h-newsletter #mc_embed_signup form { padding: 0; }
.k2h-newsletter #mc_embed_signup .indicates-required { margin-bottom: 10px; color: var(--k2h-on-dark-soft); font-size: .8125rem; }
.k2h-newsletter #mc_embed_signup .asterisk { color: var(--k2h-gold-300); }
.k2h-newsletter #mc_embed_signup .mc-field-group { padding-bottom: 14px; min-height: 0; width: 100%; }
.k2h-newsletter #mc_embed_signup .mc-field-group label { display: block; margin-bottom: 6px; color: var(--k2h-on-dark-soft); font-size: .875rem; }
.k2h-newsletter #mc_embed_signup .mc-field-group input { display: block; width: 100%; }
.k2h-newsletter #mc_embed_signup .mc-field-group input,
.k2h-newsletter #mc_embed_signup .datefield input {
    height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(232, 207, 148, .4);
    border-radius: 0;
    background: rgba(247, 240, 227, .06);
    color: var(--k2h-on-dark);
    font: inherit;
    text-indent: 0;
}
.k2h-newsletter #mc_embed_signup .mc-field-group input:focus,
.k2h-newsletter #mc_embed_signup .datefield input:focus { border-color: var(--k2h-gold-300); outline: none; box-shadow: 0 0 0 3px rgba(232, 207, 148, .2); }
.k2h-newsletter #mc_embed_signup .datefield { display: flex; align-items: center; gap: 8px; color: var(--k2h-gold-500); }
.k2h-newsletter #mc_embed_signup .datefield .subfield { display: inline-block; }
.k2h-newsletter #mc_embed_signup .datefield input { width: 64px !important; text-align: center; }
.k2h-newsletter #mc_embed_signup .small-meta { font-size: .75rem; color: var(--k2h-on-dark-soft); }
.k2h-newsletter #mc_embed_signup .d-flex > .mc-field-group { flex: 1 1 0; }
.k2h-newsletter #mc_embed_signup .grid { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.k2h-newsletter #mc_embed_signup .size1of2 { width: auto; }
.k2h-newsletter #mc_embed_signup .button,
.k2h-newsletter #mc_embed_signup #mc-embedded-subscribe {
    height: 52px;
    margin: 0 0 14px;
    padding: 0 36px;
    border: 0;
    border-radius: 0;
    background: var(--k2h-gold-gradient);
    background-size: 200% 100%;
    color: var(--k2h-navy-900);
    font: 600 .875rem/1 var(--k2h-font-body);
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background-position var(--k2h-dur) ease, box-shadow var(--k2h-dur) ease;
}
.k2h-newsletter #mc_embed_signup .button:hover { background-position: 100% 0; box-shadow: var(--k2h-glow-gold); }
.k2h-newsletter #mc_embed_signup div.response { color: var(--k2h-gold-300); }

@media (max-width: 767.98px) {
    #home-newsletter .newsletter-content.k2h-newsletter__card { grid-template-columns: 1fr; }
    .k2h-newsletter__gift { min-height: 220px; }
    .k2h-newsletter__logo { width: 120px; height: 120px; }
    .k2h-newsletter__bow { top: calc(50% - 98px); transform: scale(.8); }
    .k2h-newsletter #mc_embed_signup .d-flex { flex-direction: column; gap: 0 !important; }
    .k2h-newsletter #mc_embed_signup .d-flex > .mc-field-group { flex: none; }
    .k2h-newsletter #mc_embed_signup .grid > div,
    .k2h-newsletter #mc_embed_signup .button { width: 100%; }
}

/* =========================================================================
   6. K HOSPITALITY GROUP  (.k2h-group)
   ========================================================================= */
#khospitality.k2h-group { padding: var(--k2h-section-y) 0; background: #FFFFFF; border-top: 1px solid var(--k2h-cream-300); }
.k2h-group__head { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: 44px; }
.k2h-group__logo { width: min(460px, 86%); }
.k2h-group__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
#khospitality .venue-block { border: 1px solid var(--k2h-cream-200); transition: transform var(--k2h-dur) var(--k2h-ease), box-shadow var(--k2h-dur) ease, border-color var(--k2h-dur) ease; }
#khospitality .venue-block:hover { transform: translateY(-6px); border-color: var(--k2h-gold-500); box-shadow: var(--k2h-shadow-md); }
#khospitality .venue-block .inner-box { padding: 24px 18px 20px; }
#khospitality figure.image { display: flex; align-items: center; justify-content: center; height: 160px; margin: 0 0 16px; }
#khospitality figure.image img { max-height: 160px; width: auto; max-width: min(220px, 100%); object-fit: contain; }
#khospitality figure.image img:hover { transform: scale(1.06); }
#khospitality .venue-block .text { border-color: var(--k2h-cream-200) !important; }
#khospitality .venue-block h4 { margin: 10px 0 4px; font-size: 1.05rem; color: var(--k2h-navy-800); }
#khospitality .venue-block p { margin: 0; font-size: .9375rem; color: var(--k2h-ink-muted); }

@media (max-width: 991.98px) { .k2h-group__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { #khospitality figure.image { height: 120px; } #khospitality figure.image img { max-height: 120px; } }

/* =========================================================================
   Shared keyframes
   ========================================================================= */
@keyframes k2h-spin     { to { transform: rotate(360deg); } }
@keyframes k2h-kenburns { from { transform: scale(1); } to { transform: scale(1.08); } }
@keyframes k2h-progress { from { width: 0; } to { width: 100%; } }
@keyframes k2h-sway     { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
