/* Homepage-only refinements. Approved inner pages retain global.css. */
.hero h1 em {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    margin-top: 0
}

.hero-photo:after {
    display: none
}

.slider.carousel .borussia-slider-controls {
    justify-content: space-between !important
}

.christmas {
    position: relative;
    margin-top: 100px
}

.christmas-copy {
    background: #A10B0C;
    padding-top: 70px;
         margin-top: -20px;
}

.christmas-garland {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    z-index: 2;
    transform: translateY(-82%);
    pointer-events: none;
    height: clamp(65px, 10vw, 130px)
}

.christmas-garland svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible
}

.about-images {
    height: 580px;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 16px;
    padding-bottom: 65px
}

.about-images .about-main {
    position: static;
    width: 100%;
    height: 100%;
    grid-row: 1/3;
    object-position: 55% center
}

.about-images .about-overlap {
    position: static;
    width: 100%;
    height: 100%;
    border: 0;
    grid-column: 2;
    grid-row: 2
}

.about-images .about-third {
    width: 100%;
    height: 100%;
    grid-column: 2;
    grid-row: 1;
    object-position: center
}

.about-images .since {
    bottom: 0
}

.guest-section {
    grid-template-columns: .85fr .85fr 1.3fr;
    gap: 36px;
    align-items: center
}

.guest-intro h2 {
    font-size: clamp(38px, 3.7vw, 54px);
    line-height: 1.08;
    letter-spacing: -1px
}

.guest-intro .eyebrow {
    max-width: 220px;
    line-height: 1.8
}

.guest-video {
    width: 100%;
    max-width: 320px;
    justify-self: center;
    background: #e8dfd2
}

.guest-video video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 9/16;
    object-fit: contain
}

.guest-section .review-window {
    height: 560px
}

.guest-section .review-card {
    padding: 24px
}

.guest-section .review-card blockquote {
    font-size: 23px
}

.guest-section .review-track {
    animation-duration: 60s
}

@media(max-width:1050px) {
    .guest-section {
        grid-template-columns: .8fr 1.2fr;
        gap: 28px
    }

    .guest-intro {
        grid-column: 1/-1
    }

    .guest-intro h2 br {
        display: none
    }

    .guest-video {
        max-width: 300px
    }

    .about-images {
        height: 510px;
        gap: 12px
    }

    .christmas-copy {
        padding-top: 55px
    }
}

@media(max-width:700px) {
    .hero-note {
        font-size: 23px;
        max-width: 340px;
        margin-left: auto;
        margin-right: auto;
        line-height: 1.35
    }

    .hero h1 em {
        display: inline
    }

    .christmas {
        margin-top: 70px
    }

    .christmas-copy {
        padding-top: 48px
    }

    .christmas-garland {
        height: 68px
    }

    .about-images {
        height: 430px;
        gap: 10px;
        padding-bottom: 60px
    }

    .guest-section {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .guest-intro {
        grid-column: auto
    }

    .guest-intro h2 {
        font-size: 44px
    }

    .guest-intro h2 br {
        display: block
    }

    .guest-video {
        max-width: 300px
    }

    .guest-section .review-window {
        height: 500px
    }

    .guest-section .review-card blockquote {
        font-size: 23px
    }
}

@media(prefers-reduced-motion:reduce) {
    .guest-section .review-window {
        height: auto;
        max-height: 560px;
        overflow-y: auto
    }

    .guest-section .review-track {
        animation: none
    }
}

/* Final alignment and festive asset update */
section.slider.carousel {
    position: relative;
    width: min(var(--container, 1280px), calc(100% - 120px))
}

.slider.carousel .borussia-slider-controls {
    position: absolute;
    inset: 0 -52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    pointer-events: none
}

.slider.carousel .borussia-slider-controls button {
    pointer-events: auto;
    flex: none;
    background: var(--paper)
}

.christmas-garland {
    height: auto;
    transform: translateY(-62%);
   
}

.christmas-garland img {
    width: 100%;
    height: auto;
    object-fit: contain
}

.about-images {
    padding-bottom: 0
}

.guest-section {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: center
}

.guest-intro,
.guest-video,
.guest-section .review-window {
    align-self: center
}

.guest-video {
    width: 100%;
    max-width: 300px;
    justify-self: center
}

.guest-section .review-window {
    height: 534px
}

.guest-intro h2 {
    font-size: clamp(38px, 3.7vw, 54px)
}

@media(min-width:701px) and (max-width:1050px) {
    .guest-section {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 24px
    }

    .guest-intro {
        grid-column: auto
    }

    .guest-intro h2 {
        font-size: 36px
    }

    .guest-intro h2 br {
        display: block
    }

    .guest-intro .eyebrow {
        font-size: 10px !important
    }

    .guest-section .review-window {
        height: 440px
    }

    .guest-section .review-card {
        padding: 18px
    }

    .guest-section .review-card blockquote {
        font-size: 21px
    }
}

@media(max-width:700px) {
    section.slider.carousel {
        width: calc(100% - 100px)
    }

    .slider.carousel .borussia-slider-controls {
        inset: 0 -42px
    }

    .slider.carousel .borussia-slider-controls button {
        width: 34px;
        height: 40px
    }

    .christmas-garland {
        height: auto
    }

    .about-images {
        padding-bottom: 0
    }

    .guest-section {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .guest-intro {
        grid-column: auto
    }

    .guest-video {
        max-width: 300px
    }

    .guest-section .review-window {
        height: 500px
    }
}

@media(prefers-reduced-motion:reduce) {
    .guest-section .review-window {
        height: auto;
        max-height: 534px
    }
}

@media(min-width:701px) {
    .christmas {
        margin-top: 170px
    }
}

/* Normal-zoom desktop proportions from the supplied 80% reference.
   Keep the existing column ratios and image aspect ratios. A narrower content
   cap restores the reference gutters without scaling the document or controls.
   Tablet and phone typography retain their existing, readable sizes. */
@media (min-width: 1101px) {
    :root { --container: 992px; }
    .header { height: 86px; }
    .header nav { font-size: 10px; gap: 22px; }
    .brand { width: 136px; }
    .footer-brand { width: 163.2px; }
    .small-button { font-size: 10px; padding: 12px 15px; }
    .small-button span { margin-left: 14px; }
    .eyebrow { font-size: 10px !important; letter-spacing: 1.44px; }
    h2 { font-size: clamp(42px, 4.6vw, 53px); letter-spacing: -1.2px; }
    .hero-intro { padding: 46px 0 32px; }
    .hero h1 { font-size: 94px; letter-spacing: -3.2px; margin-top: 22px; }
    .hero-note { font-size: 22px; margin-top: 18px; }
    .hero-bottom { font-size: 10px; padding: 16px 0; }
    section.slider.carousel { margin: 0 auto 48px; }
    .slider.carousel .borussia-slider-track { --gap: 19px; }
    .christmas { margin-top: 136px; }
    .christmas-copy { padding: 56px 34px 42px; margin-top: -16px; }
    .christmas h2 { font-size: 51px; margin: 18px 0; }
    .date { font-size: 10.5px; letter-spacing: 1px; }
    .christmas-body { font-size: 13.6px; margin-top: 18px; max-width: 312px; }
    .christmas-body p + p { margin-top: 10px; }
    .section { padding: 96px 0; }
    .about { gap: 64px; }
    .about-images { height: 464px; gap: 13px; }
    .about-copy .eyebrow { margin-bottom: 18px; }
    .about-copy p:not(.eyebrow) { font-size: 13.6px; max-width: 384px; }
    .about-copy p + p { margin-top: 13px; }
    .tiny-rule { margin: 21px 0; }
    .outline-button, .light-button {
        font-size: 10px; padding: 13px 18px; min-height: 40px; gap: 27px;
    }
    .outline-button { margin-top: 24px; }
    .section-heading { gap: 40px; margin-bottom: 28px; }
    .section-heading h2 { margin-top: 14px; }
    .section-heading > p { font-size: 13.6px; max-width: 272px; }
    .pillars { gap: 18px; margin-top: 22px; }
    .pillars article { min-height: 264px; padding: 24px; }
    .pillars .eyebrow { font-size: 9px !important; margin-bottom: 10px; }
    .pillars h3 { font-size: 27px; }
    .pillars p:not(.eyebrow) { font-size: 13px; margin-top: 8px; }
    .guest-section { gap: 32px; margin-top: 80px; margin-bottom: 80px; }
    .guest-intro h2 { font-size: 43px; margin: 16px 0; }
    .guest-video { max-width: 240px; }
    .guest-section .review-window { height: 427px; }
    .guest-section .review-card { padding: 19px; }
    .guest-section .review-card blockquote { font-size: 18.4px; }
    .review-group { gap: 16px; padding-bottom: 16px; }
    .review-card .quote-mark { font-size: 44px; height: 28px; }
    .review-author { font-size: 10.5px; margin-top: 16px; }
    .review-author span { font-size: 9px; }
    .gallery-section { margin-top: 80px; margin-bottom: 80px; }
    .gallery { gap: 19px; }
    .gallery img, .gallery img:nth-child(2), .gallery img:nth-child(4) { height: 232px; }
    .gallery figcaption { font-size: 10.5px; padding-top: 10px; }
    .footer-top { padding: 24px 0; font-size: 10px; }
    .footer-main { padding: 40px 0; gap: 24px; }
    .hours .eyebrow { font-size: 9px !important; }
    .hours h3 { font-size: 29px; margin: 14px 0 18px; }
    dl { font-size: 11px; }
    dl div { margin: 12px 0; }
    .special-hours { font-size: 10px; max-width: 208px; }
    .hours .outline-button { margin-top: 18px; }
    .footer-contact { font-size: 11px; padding: 8px 16px; gap: 8px; }
    .footer-contact .script { font-size: 21px; }
    .footer-contact .phone { font-size: 23px; margin: 10px 0; }
    .map-wrap iframe { min-height: 240px; }
    .footer-bottom { font-size: 9px; padding: 19px 0; gap: 16px; }
}
@media (min-width: 1400px) {
    :root { --container: 1240px; 
	} 
	.header nav {
        font-size: 12px;
    }
	    .small-button {
        font-size: 12px;
        padding: 15px 20px;
    }
	    .eyebrow {
        font-size: 12px !important;
    }
	    .about-copy p:not(.eyebrow) {
        max-width: 480px;
        font-size: 17px;
    }
	    .outline-button, .light-button {
        font-size: 14px;
        padding: 16px 23px;
    }
	.section-heading > p {
        font-size: 16px;
    }
	.guest-intro h2 {
        font-size: 53px;
    }
	    .footer-top {
        font-size: 12px;
    }
	.home-cta-copy p {
    font-size: 14px;
}
    dl {
        font-size: 14px;
    }
	    .hours .eyebrow {
        font-size: 12px !important;
    }
	    .footer-contact .script {
        font-size: 26px;
    }
	    .footer-contact {
        font-size: 14px;
    }
	    .footer-bottom {
        font-size: 12px;
    }
	    .brand {
        width: 170px;
    }
	    .gallery img, .gallery img:nth-child(2), .gallery img:nth-child(4) {
        height: 300px;
    }
	    .guest-video {
        max-width: 320px;
    }
	    .pillars article {
        min-height: 300px;
        padding: 24px;
    }
	    .hero-bottom {
        font-size: 14px;
        padding: 16px 0;
    }
}
/* Three gallery slides still fit the compact desktop container at laptop widths.
   This selector also wins over the carousel's later inline 1199px breakpoint. */
@media (min-width: 1101px) and (max-width: 1199px) {
    .slider.carousel .borussia-slider-track { --slides: 3; --gap: 19px; }
}

/* Give tablet review text room; restore the three-column desktop at 1101px. */
@media (min-width: 701px) and (max-width: 1100px) {
    .guest-section { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; }
    .guest-intro { grid-column: 1 / -1; }
    .guest-intro h2 br { display: none; }
}

@media (max-width: 800px) and (min-width: 701px) {
    .header nav { gap: 14px; font-size: 10px; }
    .small-button { font-size: 10px; padding: 12px; white-space: nowrap; }
    .small-button span { margin-left: 8px; }
    .brand { width: 136px; flex-shrink: 0; }
}

/* Grid children may shrink without widening the page on narrow viewports. */
.about > *, .guest-section > *, .footer-main > * { min-width: 0; }

@media (min-width: 1101px) and (prefers-reduced-motion: reduce) {
    .guest-section .review-window { height: auto; max-height: 427px; }
}

/* Closing invitation: main's existing bottom padding owns the section gap.
   The band meets the footer directly, without another margin or spacer. */
.home-cta {
    background: var(--cream);
    background-image: linear-gradient(110deg, var(--cream), color-mix(in srgb, var(--cream) 65%, var(--paper)));
    border-top: 1px solid var(--line);
}

.home-cta-inner {
    width: min(var(--container), calc(100% - 80px));
    margin-inline: auto;
    padding-block: var(--space-half-section);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-group);
}

.home-cta-copy { min-width: 0; }

.home-cta h2 {
    max-width: 590px;
    font-size: clamp(36px, 3.7vw, 43px);
    line-height: 1.08;
    letter-spacing: -1px;
    text-wrap: balance;
}

.home-cta-copy p {
    max-width: 460px;
    margin-top: var(--space-copy);
    font-size: 13.6px;
    line-height: 1.8;
    color: var(--muted);
}

.home-cta-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.home-cta .outline-button {
    margin: 0;
    min-height: 44px;
    white-space: nowrap;
}

.home-cta-primary {
    background: var(--brown);
    color: var(--paper);
}

.home-cta-primary svg { flex-shrink: 0; }

.home-cta-primary:hover {
    background: var(--ink);
    border-color: var(--ink);
}

@media (max-width: 1100px) {
    .home-cta-inner { flex-direction: column; align-items: flex-start; }
    .home-cta-copy p { font-size: 17px; }
}

@media (max-width: 700px) {
    .home-cta-inner { width: calc(100% - 36px); }
    .home-cta-actions { width: 100%; flex-wrap: wrap; }
    .home-cta-actions .outline-button { justify-content: center; flex: 1 1 180px; }
}
