/*
Theme Name: PATT-BARN
Template: apparatus
Theme URI: https://www.pixouls.com/
Author: Pixouls
Author URI: https://www.pixouls.com/
Description: Client-specific customizations built on the Apparatus framework by Pixouls.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: apparatus-child
Tags:
*/


/* $TOKENS
--------------------------------------------------------*/
:root {
    --barn-ff-display: "Gowun Batang", Georgia, serif;
    --barn-ff-body: "Raleway", system-ui, sans-serif;

    --barn-fs-display-lg: clamp(4.0rem, 5vw, 6.4rem);
    --barn-fs-display-md: clamp(3.2rem, 3.4vw, 4.4rem);
    --barn-fs-display-sm: clamp(2.4rem, 2.4vw, 3.2rem);

    --barn-ease: cubic-bezier(.2, .7, .1, 1);
    --barn-dur-fast: 240ms;
    --barn-dur: 480ms;

    --barn-radius: .8rem;
}


/* $GLOBAL
--------------------------------------------------------*/
html {
    font-family: var(--barn-ff-body);
}
[id] {
    scroll-margin-top: 10.4rem;
}
::-moz-selection { color: var(--c-l); background-color: var(--c-pri); }
::selection { color: var(--c-l); background-color: var(--c-pri); }


/* $TYPE
--------------------------------------------------------*/
h1, h2, h3, h4, h5 {
    font-family: var(--barn-ff-display);
    font-weight: 400;
}


/* $EYEBROW
--------------------------------------------------------*/
.barn-eyebrow {
    margin: 0 0 1.6rem;
    font-family: var(--barn-ff-body);
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--c-pri);
}


/* $BUTTONS
--------------------------------------------------------*/
.button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
    padding: 1.2rem 2.4rem;
    font-family: var(--barn-ff-body);
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    border-radius: .2rem;
    -webkit-transition: background-color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease), color var(--barn-dur-fast) var(--barn-ease);
    -o-transition: background-color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease), color var(--barn-dur-fast) var(--barn-ease);
    transition: background-color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease), color var(--barn-dur-fast) var(--barn-ease);
}
.button:hover,
.button:focus-visible,
input[type="submit"]:hover,
input[type="submit"]:focus-visible {
    background-color: var(--c-sec);
    border-color: var(--c-sec);
}
/* Underlined text link */
.barn-more {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--c-pri);
    border-bottom: .2rem solid var(--c-pri);
    padding-bottom: .4rem;
    -webkit-transition: color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease);
    -o-transition: color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease);
    transition: color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease);
}
.barn-more:hover,
.barn-more:focus-visible {
    color: var(--c-sec);
    border-color: var(--c-sec);
}


/* $NOTIF
--------------------------------------------------------*/
.notif {
    color: var(--c-l);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
/* Darkened gold on hover -- parent's sec hover blends into the header bar */
.notif:hover {
    background-color: color-mix(in srgb, var(--c-pri) 78%, var(--c-d));
}
    .notif__button {
        background-color: color-mix(in srgb, var(--c-d) 15%, transparent);
    }


/* $HEADER
--------------------------------------------------------*/
.hdr {
    color-scheme: dark;
    background: var(--c-bg);
}
    .hdr__inner {
        height: 9.6rem;
        width: var(--w-lg);
    }
        .hdr__logo-img {
            height: 8.0rem;
            /* Beats WP Rocket's injected width attribute */
            width: auto;
        }
        /* Homepage only: oversized logo spills into the hero until the user scrolls */
        @media only screen and (min-width: 769px) {
            .home .hdr__logo {
                align-self: flex-start;
                position: relative;
                z-index: 5;
            }
            .home .hdr__logo-img {
                height: 14.4rem;
                /* Centers the 8rem scrolled logo in the 9.6rem bar */
                margin-top: 0.8rem;
                -webkit-filter: drop-shadow(0 .8rem 1.6rem color-mix(in srgb, var(--c-b) 25%, transparent));
                        filter: drop-shadow(0 .8rem 1.6rem color-mix(in srgb, var(--c-b) 25%, transparent));
                -webkit-transition: height var(--barn-dur) var(--barn-ease), -webkit-filter var(--barn-dur) var(--barn-ease);
                transition: height var(--barn-dur) var(--barn-ease), -webkit-filter var(--barn-dur) var(--barn-ease);
                -o-transition: height var(--barn-dur) var(--barn-ease), filter var(--barn-dur) var(--barn-ease);
                transition: height var(--barn-dur) var(--barn-ease), filter var(--barn-dur) var(--barn-ease), -webkit-filter var(--barn-dur) var(--barn-ease);
            }
            .home .hdr--scrolled .hdr__logo-img {
                height: 8.0rem;
                /* Shadow would smudge past the bar onto light sections */
                -webkit-filter: none;
                        filter: none;
            }
        }
        .hdr__cta.button {
            padding: 1.1rem 2rem;
        }


/* $NAV
--------------------------------------------------------*/
@media only screen and (min-width: 1025px) {
    .nav__link {
        color: var(--c-fg);
        letter-spacing: .06em;
        height: 9.6rem;
        white-space: nowrap;
    }
    .nav__item::after {
        height: .3rem;
        background: var(--c-25);
    }
    .nav__item--active::after {
        background: var(--c-pri);
    }
}
.nav__link--ext {
    gap: .6rem;
}
    .nav__ext-icon {
        flex: none;
        opacity: .65;
    }
/* Mobile drawer: brand pinstripe chrome instead of the parent's blur panel.
   Switches at 1024 (not the parent's 768) so tablet widths get the drawer
   too — the structural rules below replicate the parent's ≤768 block for
   the 769–1024 range. */
@media only screen and (max-width: 1024px) {
    .hdr__nav-toggle {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
    .nav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        -webkit-transform: translateX(100%);
            -ms-transform: translateX(100%);
                transform: translateX(100%);
        -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.86,0,0.07,1);
        transition: -webkit-transform 0.6s cubic-bezier(0.86,0,0.07,1);
        -o-transition: transform 0.6s cubic-bezier(0.86,0,0.07,1);
        transition: transform 0.6s cubic-bezier(0.86,0,0.07,1);
        transition: transform 0.6s cubic-bezier(0.86,0,0.07,1), -webkit-transform 0.6s cubic-bezier(0.86,0,0.07,1);
        overflow-y: auto;
        -ms-scroll-chaining: none;
            overscroll-behavior: contain;
        background:
            repeating-linear-gradient(90deg,
                color-mix(in srgb, var(--c-w) 4%, transparent) 0 .2rem,
                transparent .2rem 12.8rem),
            var(--c-sec);
        -webkit-backdrop-filter: none;
                backdrop-filter: none;
        color-scheme: dark;
    }
    .nav--open {
        -webkit-transform: translateX(0);
            -ms-transform: translateX(0);
                transform: translateX(0);
    }
    .nav__list {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        width: 100%;
        gap: 0;
        counter-reset: barn-nav;
        padding: 13.6rem 10% 6.4rem;
    }
    .nav__item {
        width: 100%;
        border-bottom: .1rem solid color-mix(in srgb, var(--c-l) 12%, transparent);
        opacity: 0;
        -webkit-transform: translateY(2.4rem);
            -ms-transform: translateY(2.4rem);
                transform: translateY(2.4rem);
        -webkit-transition: opacity .45s var(--barn-ease), -webkit-transform .45s var(--barn-ease);
        transition: opacity .45s var(--barn-ease), -webkit-transform .45s var(--barn-ease);
        -o-transition: opacity .45s var(--barn-ease), transform .45s var(--barn-ease);
        transition: opacity .45s var(--barn-ease), transform .45s var(--barn-ease), -webkit-transform .45s var(--barn-ease);
    }
    /* Staggered entrance once the drawer slides in */
    .nav--open .nav__item {
        opacity: 1;
        -webkit-transform: none;
            -ms-transform: none;
                transform: none;
    }
    .nav--open .nav__item:nth-child(1) { -webkit-transition-delay: .22s; -o-transition-delay: .22s; transition-delay: .22s; }
    .nav--open .nav__item:nth-child(2) { -webkit-transition-delay: .28s; -o-transition-delay: .28s; transition-delay: .28s; }
    .nav--open .nav__item:nth-child(3) { -webkit-transition-delay: .34s; -o-transition-delay: .34s; transition-delay: .34s; }
    .nav--open .nav__item:nth-child(4) { -webkit-transition-delay: .40s; -o-transition-delay: .40s; transition-delay: .40s; }
    .nav--open .nav__item:nth-child(5) { -webkit-transition-delay: .46s; -o-transition-delay: .46s; transition-delay: .46s; }
    .nav--open .nav__item:nth-child(6) { -webkit-transition-delay: .52s; -o-transition-delay: .52s; transition-delay: .52s; }
    .nav--open .nav__item:nth-child(7) { -webkit-transition-delay: .58s; -o-transition-delay: .58s; transition-delay: .58s; }
    .nav__item::after {
        display: none;
    }
        .nav__link {
            width: 100%;
            justify-content: flex-start;
            gap: 1.6rem;
            height: auto;
            padding: 2rem 0;
            font-family: var(--barn-ff-display);
            font-size: 2.8rem;
            font-weight: 400;
            text-transform: none;
            color: var(--c-l);
        }
        /* Gold running index in front of each link */
        .nav__link::before {
            counter-increment: barn-nav;
            content: counter(barn-nav, decimal-leading-zero);
            font-family: var(--barn-ff-body);
            font-size: 1.1rem;
            font-weight: 800;
            letter-spacing: .12em;
            color: var(--c-pri);
        }
        .nav__item--active .nav__link {
            color: var(--c-pri);
        }
        .nav__link--ext {
            gap: 1.6rem;
        }
        .nav__ext-icon {
            width: 1.4rem;
            height: 1.4rem;
        }
}


/* $FRAME
--------------------------------------------------------*/
/* Real frame art extracted from the design PSD. The photo sits in the
   frame's transparent window (insets measured from the art's alpha). */
.barn-frame {
    position: relative;
    display: block;
    -webkit-filter: drop-shadow(0 2.4rem 3.2rem color-mix(in srgb, var(--c-b) 30%, transparent));
            filter: drop-shadow(0 2.4rem 3.2rem color-mix(in srgb, var(--c-b) 30%, transparent));
}
    .barn-frame__art {
        position: relative;
        z-index: 2;
        display: block;
        width: 100%;
        height: auto;
        pointer-events: none;
    }
    /* Window insets pull in an extra 1.2rem so the photo bleeds behind the
       frame lip instead of showing a sliver at the edge */
    .barn-frame__swiper {
        position: absolute;
        z-index: 1;
        overflow: hidden;
    }
    .barn-frame--ornate .barn-frame__swiper {
        inset: calc(15% - 1.2rem) calc(12.4% - 1.2rem) calc(15.8% - 1.2rem) calc(12.4% - 1.2rem);
    }
    .barn-frame--wood .barn-frame__swiper {
        inset: calc(14% - 1.2rem) calc(11.2% - 1.2rem) calc(14.2% - 1.2rem) calc(11.3% - 1.2rem);
    }
        .barn-frame__swiper .swiper-slide {
            height: 100%;
        }
        .barn-frame__img {
            width: 100%;
            height: 100%;
            -o-object-fit: cover;
               object-fit: cover;
        }
        .barn-frame--heritage .barn-frame__img {
            -webkit-filter: grayscale(1) contrast(1.05);
                    filter: grayscale(1) contrast(1.05);
        }


/* $HERO
--------------------------------------------------------*/
.barn-hero {
    color-scheme: dark;
    position: relative;
    background: var(--c-bg);
    color: var(--c-fg);
    overflow: hidden;
}
    .barn-hero__media {
        position: absolute;
        inset: 0 0 0 25%;
    }
        .barn-hero__swiper {
            height: 100%;
        }
            .barn-hero__swiper .swiper-slide {
                height: 100%;
            }
            .barn-hero__swiper picture {
                display: block;
                height: 100%;
            }
            .barn-hero__img {
                width: 100%;
                height: 100%;
                -o-object-fit: cover;
                   object-fit: cover;
            }
        /* Linear fade for copy legibility + elliptical vignette so the photo
           also melts into the dark at its top, right, and bottom edges */
        .barn-hero__media::after {
            content: '';
            z-index: 2;
            position: absolute;
            inset: 0;
            background:
                linear-gradient(90deg, var(--c-d) 0%, color-mix(in srgb, var(--c-d) 55%, transparent) 30%, transparent 65%),
                radial-gradient(ellipse 105% 85% at 52% 48%, transparent 45%, color-mix(in srgb, var(--c-d) 50%, transparent) 80%, color-mix(in srgb, var(--c-d) 85%, transparent) 100%),
                color-mix(in srgb, var(--c-d) 25%, transparent);
            pointer-events: none;
        }
    .barn-hero__inner {
        z-index: 3;
        position: relative;
        width: var(--w-lg);
        margin-inline: auto;
        min-height: min(64rem, calc(100svh - 12.8rem));
        display: flex;
        align-items: center;
    }
        .barn-hero__content {
            max-width: 64rem;
            padding-block: 8rem;
        }
            .barn-hero__title {
                margin: 0 0 4.0rem;
                font-size: var(--barn-fs-display-lg);
                line-height: 1.1;
                color: var(--c-fg);
            }
            .barn-hero__cta {
                display: flex;
                flex-wrap: wrap;
                gap: 1.6rem;
            }
                /* Secondary: ghost button on the dark hero */
                .barn-hero__cta-ghost.button {
                    background-color: transparent;
                    border-color: color-mix(in srgb, var(--c-l) 55%, transparent);
                    color: var(--c-l);
                }
                .barn-hero__cta-ghost.button:hover,
                .barn-hero__cta-ghost.button:focus-visible {
                    background-color: var(--c-l);
                    border-color: var(--c-l);
                    color: var(--c-sec);
                }
@media only screen and (max-width: 768px) {
    .barn-hero__media {
        inset: 0;
    }
    /* Portrait hero: feather runs bottom-to-top so the photo stays visible
       above the copy anchored at the bottom */
    .barn-hero__media::after {
        background:
            linear-gradient(0deg, var(--c-d) 0%, color-mix(in srgb, var(--c-d) 60%, transparent) 32%, transparent 68%),
            color-mix(in srgb, var(--c-d) 15%, transparent);
    }
    .barn-hero__inner {
        min-height: calc(100svh - 12.8rem);
        align-items: flex-end;
    }
    .barn-hero__content {
        padding-block: 16rem 4.8rem;
    }
}


/* $INTRO
--------------------------------------------------------*/
.barn-intro {
    background: var(--c-bg);
    padding-block: 12rem;
}
    .barn-intro__inner {
        width: var(--w-lg);
        margin-inline: auto;
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: center;
    }
    /* Gapless grid: the frame fills its full half; the text column
       carries the breathing room instead */
    @media only screen and (min-width: 769px) {
        .barn-intro__content {
            padding-right: var(--s-lg);
        }
    }
        .barn-intro__eyebrow {
            margin-bottom: 1.6rem;
        }
        .barn-intro__title {
            margin: 0 0 2.4rem;
            font-size: var(--barn-fs-display-md);
            line-height: 1.2;
            color: var(--c-fg);
        }
        .barn-intro__text {
            max-width: 48rem;
            margin-bottom: 4.0rem;
        }
@media only screen and (max-width: 768px) {
    .barn-intro {
        padding-block: 8rem;
    }
    .barn-intro__inner {
        grid-template-columns: 1fr;
        /* Stacked layout needs the vertical breathing room the gapless
           desktop grid gets from the content column's padding */
        row-gap: 4.8rem;
    }
}


/* $EVENTS (marquee band)
--------------------------------------------------------*/
/* Lives inside .barn-intro so the two read as one section */
.barn-events {
    display: grid;
    gap: 2.4rem;
    margin-top: 8.0rem;
    overflow: hidden;
}
        .barn-events__row {
            display: flex;
            overflow: hidden;
            /* Items fade in/out at the band edges */
            -webkit-mask-image: linear-gradient(90deg, transparent, #000 12% 88%, transparent);
                    mask-image: linear-gradient(90deg, transparent, #000 12% 88%, transparent);
        }
            .barn-events__track {
                flex: none;
                list-style: none;
                display: flex;
                align-items: center;
                gap: 4.8rem;
                margin: 0;
                padding: 0 4.8rem 0 0;
                -webkit-animation: barn-marquee 64s linear infinite;
                        animation: barn-marquee 64s linear infinite;
            }
            .barn-events__row--reverse .barn-events__track {
                -webkit-animation-direction: reverse;
                        animation-direction: reverse;
                -webkit-animation-duration: 78s;
                        animation-duration: 78s;
            }
                .barn-events__item {
                    flex: none;
                    display: flex;
                    align-items: center;
                    gap: 4.8rem;
                    font-family: var(--barn-ff-display);
                    font-size: 2.4rem;
                    line-height: 1.4;
                    white-space: nowrap;
                    color: var(--c-sec);
                }
                /* Gold diamond separator, echoing the section divider */
                .barn-events__item::after {
                    content: '';
                    width: .7rem;
                    height: .7rem;
                    background: var(--c-pri);
                    -webkit-transform: rotate(45deg);
                        -ms-transform: rotate(45deg);
                            transform: rotate(45deg);
                }
@-webkit-keyframes barn-marquee {
    to { -webkit-transform: translateX(-100%); transform: translateX(-100%); }
}
@keyframes barn-marquee {
    to { -webkit-transform: translateX(-100%); transform: translateX(-100%); }
}
/* Static, wrapped list when the user prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
    .barn-events__row {
        -webkit-mask-image: none;
                mask-image: none;
    }
    .barn-events__track {
        -webkit-animation: none;
                animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
        gap: 2.4rem 3.2rem;
        padding: 0 5%;
    }
    .barn-events__track[aria-hidden="true"] {
        display: none;
    }
    .barn-events__item {
        gap: 3.2rem;
    }
    .barn-events__item:last-child::after {
        display: none;
    }
}


/* $SPACES (venue spaces)
--------------------------------------------------------*/
.barn-spaces {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: var(--c-qua);
}
    .barn-spaces__media {
        position: relative;
        min-height: 56rem;
    }
        .barn-spaces__swiper {
            position: absolute;
            inset: 0;
        }
            .barn-spaces__swiper .swiper-slide {
                height: 100%;
            }
            .barn-spaces__img {
                width: 100%;
                height: 100%;
                -o-object-fit: cover;
                   object-fit: cover;
            }
    .barn-spaces__panel {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        padding: var(--s-lg);
    }
        .barn-spaces__eyebrow {
            margin-bottom: 2.4rem;
        }
        .barn-spaces__content {
            width: 100%;
            max-width: 44rem;
        }
            .barn-spaces__slide {
                height: auto;
            }
            .barn-spaces__title {
                margin: 0 0 2.0rem;
                font-size: var(--barn-fs-display-md);
                color: var(--c-fg);
            }
            .barn-spaces__text {
                margin: 0;
            }
        /* Arrows + bullets, left-aligned with the copy */
        .barn-spaces__nav {
            display: flex;
            align-items: center;
            gap: 2.4rem;
            width: 100%;
            max-width: 44rem;
            margin-top: 4.8rem;
        }
            .barn-spaces__arrow {
                display: flex;
                align-items: center;
                justify-content: center;
                width: 4.4rem;
                height: 4.4rem;
                border: .1rem solid color-mix(in srgb, var(--c-sec) 30%, transparent);
                border-radius: 50%;
                color: var(--c-sec);
                -webkit-transition: all var(--barn-dur-fast) var(--barn-ease);
                -o-transition: all var(--barn-dur-fast) var(--barn-ease);
                transition: all var(--barn-dur-fast) var(--barn-ease);
            }
            .barn-spaces__arrow:hover,
            .barn-spaces__arrow:focus-visible {
                background: var(--c-pri);
                border-color: var(--c-pri);
                color: var(--c-l);
            }
            .barn-spaces__pagination.swiper-pagination {
                position: static;
                display: flex;
                justify-content: center;
                gap: .8rem;
                width: auto;
            }
                .barn-spaces__pagination .swiper-pagination-bullet {
                    width: 1.2rem;
                    height: 1.2rem;
                    margin: 0;
                    background: var(--c-ter);
                    opacity: 1;
                }
                .barn-spaces__pagination .swiper-pagination-bullet-active {
                    background: var(--c-pri);
                }
@media only screen and (max-width: 768px) {
    .barn-spaces {
        grid-template-columns: 1fr;
    }
    .barn-spaces__media {
        min-height: 0;
        aspect-ratio: 4/3;
    }
    .barn-spaces__panel {
        align-items: center;
        text-align: center;
        padding: var(--s-lg) 10%;
    }
    .barn-spaces__nav {
        justify-content: center;
    }
}


/* $AMENITIES
--------------------------------------------------------*/
.barn-amenities {
    position: relative;
    background: var(--c-bg);
    padding: 9.6rem 0 8rem;
}
    /* Wood band behind the section head + upper half of the cards */
    .barn-amenities::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 44rem;
        background:
            repeating-linear-gradient(90deg,
                color-mix(in srgb, var(--c-w) 4%, transparent) 0 .2rem,
                transparent .2rem 12.8rem),
            var(--c-sec);
    }
    .barn-amenities__head {
        position: relative;
        width: var(--w-md);
        margin-inline: auto;
        text-align: center;
        color: var(--c-l);
    }
        .barn-amenities__title {
            margin: 0 0 1.6rem;
            font-size: var(--barn-fs-display-md);
            color: inherit;
        }
        .barn-amenities__sub {
            margin: 0 0 6.4rem;
            color: color-mix(in srgb, var(--c-l) 80%, transparent);
        }
    .barn-amenities__grid {
        position: relative;
        width: var(--w-lg);
        margin-inline: auto;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: var(--s-md);
    }
    .barn-amenities__cta {
        margin-top: 6.4rem;
        text-align: center;
    }
        .barn-amenity__img {
            width: 100%;
            /* Beats WP Rocket's injected height attribute; aspect-ratio rules */
            height: auto;
            aspect-ratio: 4/5;
            -o-object-fit: cover;
               object-fit: cover;
            border-radius: var(--barn-radius);
            margin-bottom: 2.4rem;
        }
        .barn-amenity__title {
            margin: 0 0 1.2rem;
            font-size: 2.0rem;
        }
        .barn-amenity__text {
            margin: 0;
            font-size: 1.4rem;
        }
@media only screen and (max-width: 768px) {
    .barn-amenities::before {
        height: 32rem;
    }
    .barn-amenities__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--s-md);
    }
}


/* $HERITAGE
--------------------------------------------------------*/
.barn-heritage {
    position: relative;
    /* Above the following section so the frame's drop shadow isn't clipped */
    z-index: 2;
    background: var(--c-bg);
    padding-block: 8rem;
    /* Clip x only; overflow: hidden was cutting off the frame's drop shadow */
    overflow-x: clip;
}
    /* Band: full-width; photo gradient-mapped to brand gold (luminosity blend), under a gold veil */
    .barn-heritage__inner {
        position: relative;
        background:
            radial-gradient(120% 160% at 85% 20%, color-mix(in srgb, var(--c-l) 12%, transparent) 0%, transparent 55%),
            linear-gradient(color-mix(in srgb, var(--c-pri) 72%, transparent), color-mix(in srgb, var(--c-pri) 72%, transparent)),
            var(--barn-heritage-photo, none) center / cover no-repeat,
            var(--c-pri);
        background-blend-mode: normal, normal, luminosity, normal;
    }
        /* Content constrained like .barn-intro__inner */
        .barn-heritage__grid {
            width: var(--w-lg);
            margin-inline: auto;
            display: grid;
            grid-template-columns: 1fr 1fr;
            align-items: center;
        }
        .barn-heritage__content {
            padding-block: 6.4rem;
        }
        /* Gapless grid: the frame fills its full half; the text column
           carries the breathing room instead */
        @media only screen and (min-width: 769px) {
            .barn-heritage__content {
                padding-right: var(--s-lg);
            }
        }
            .barn-heritage__title {
                margin: 0 0 1.6rem;
                font-size: var(--barn-fs-display-md);
                line-height: 1.2;
                color: var(--c-l);
            }
            .barn-heritage__text {
                margin: 0 0 4.0rem;
                color: color-mix(in srgb, var(--c-l) 85%, transparent);
            }
            /* Light button on the gold band (fixed-tone surface) */
            .barn-heritage__cta .button {
                background-color: var(--c-l);
                border-color: var(--c-l);
                color: var(--c-sec);
            }
            .barn-heritage__cta .button:hover,
            .barn-heritage__cta .button:focus-visible {
                background-color: var(--c-sec);
                border-color: var(--c-sec);
                color: var(--c-l);
            }
            /* Frame pokes past the band edges */
            .barn-heritage__media .barn-frame {
                margin-block: -4.8rem;
            }
@media only screen and (max-width: 768px) {
    .barn-heritage {
        padding-block: 6.4rem;
    }
    .barn-heritage__grid {
        grid-template-columns: 1fr;
        /* Stacked layout needs the vertical breathing room the gapless
           desktop grid gets from the content column's padding */
        row-gap: 4.8rem;
    }
    .barn-heritage__content {
        padding-block: 6.4rem 0;
    }
    .barn-heritage__media .barn-frame {
        margin-block: 0 -3.2rem;
    }
}


/* $PAGE-HERO (inside-page title chrome)
--------------------------------------------------------*/
.barn-page-hero {
    background:
        repeating-linear-gradient(90deg,
            color-mix(in srgb, var(--c-w) 4%, transparent) 0 .2rem,
            transparent .2rem 12.8rem),
        var(--c-sec);
    color-scheme: dark;
    text-align: center;
    padding-block: 8.8rem 9.6rem;
}
    .barn-page-hero__inner {
        width: min(94%, var(--w-md));
        margin-inline: auto;
    }
        .barn-page-hero__title {
            margin: 0;
            font-size: var(--barn-fs-display-lg);
            line-height: 1.1;
            color: var(--c-l);
        }
        .barn-page-hero__text {
            max-width: 56rem;
            margin: 2.4rem auto 0;
            color: color-mix(in srgb, var(--c-l) 80%, transparent);
        }
            .barn-page-hero__text a {
                color: var(--c-l);
                font-weight: 700;
                text-decoration: underline;
                text-underline-offset: .3em;
            }
@media only screen and (max-width: 768px) {
    .barn-page-hero {
        padding-block: 6.4rem;
    }
}


/* $PAGE-CONTENT (generic inside-page prose band)
--------------------------------------------------------*/
.barn-page-content {
    background: var(--c-bg);
    padding-block: 8rem 12rem;
}
    .barn-page-content__inner {
        width: min(94%, var(--w-md));
        margin-inline: auto;
    }
    .barn-page-content__inner--center {
        max-width: 56rem;
        text-align: center;
    }
        .barn-page-content__title {
            margin: 0 0 1.6rem;
            font-size: var(--barn-fs-display-md);
            color: var(--c-fg);
        }
        .barn-page-content__cta {
            margin-top: 4rem;
        }


/* $GALLERY
--------------------------------------------------------*/
.barn-gallery {
    background: var(--c-bg);
    padding-block: 9.6rem 12rem;
}
.barn-gallery--page {
    padding-block: 8rem 12rem;
}
    .barn-gallery__inner {
        width: var(--w-lg);
        margin-inline: auto;
    }
        .barn-gallery__title {
            margin: 0 0 4.8rem;
            text-align: center;
            font-size: var(--barn-fs-display-md);
            color: var(--c-fg);
        }
        .barn-gallery__grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: var(--s-sm);
        }
            .barn-gallery__item {
                display: block;
                overflow: hidden;
                border-radius: var(--barn-radius);
            }
                .barn-gallery__img {
                    display: block;
                    width: 100%;
                    /* Beats WP Rocket's injected height attribute; aspect-ratio rules */
                    height: auto;
                    aspect-ratio: 1;
                    -o-object-fit: cover;
                       object-fit: cover;
                    -webkit-transition: -webkit-transform var(--barn-dur) var(--barn-ease);
                    transition: -webkit-transform var(--barn-dur) var(--barn-ease);
                    -o-transition: transform var(--barn-dur) var(--barn-ease);
                    transition: transform var(--barn-dur) var(--barn-ease), -webkit-transform var(--barn-dur) var(--barn-ease);
                }
                .barn-gallery__item:hover .barn-gallery__img,
                .barn-gallery__item:focus-visible .barn-gallery__img {
                    -webkit-transform: scale(1.05);
                        -ms-transform: scale(1.05);
                            transform: scale(1.05);
                }
        .barn-gallery__cta {
            margin-top: 4.8rem;
            text-align: center;
        }
@media only screen and (max-width: 768px) {
    .barn-gallery__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* $FAQ
--------------------------------------------------------*/
.barn-faq {
    position: relative;
    background: var(--c-qui);
    padding-block: 9.6rem;
}
/* Divider on the gallery/FAQ boundary: fading hairline + gold diamond */
.barn-faq::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: min(50%, 56rem);
    height: .1rem;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    background: linear-gradient(90deg,
        transparent 0%,
        color-mix(in srgb, var(--c-pri) 55%, transparent) 18% 46%,
        transparent 47% 53%,
        color-mix(in srgb, var(--c-pri) 55%, transparent) 54% 82%,
        transparent 100%);
}
.barn-faq::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: .8rem;
    height: .8rem;
    -webkit-transform: translate(-50%, -50%) rotate(45deg);
        -ms-transform: translate(-50%, -50%) rotate(45deg);
            transform: translate(-50%, -50%) rotate(45deg);
    background: var(--c-pri);
}
    .barn-faq__inner {
        width: var(--w-md);
        margin-inline: auto;
    }
        .barn-faq__title {
            margin: 0 0 4.8rem;
            text-align: center;
            font-size: var(--barn-fs-display-md);
            color: var(--c-fg);
        }
        .barn-faq__item {
            border-bottom: .1rem solid color-mix(in srgb, var(--c-sec) 15%, transparent);
        }
        .barn-faq__item:first-child {
            border-top: .1rem solid color-mix(in srgb, var(--c-sec) 15%, transparent);
        }
            .barn-faq__q {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 2.4rem;
                padding: 2.4rem 0;
                cursor: pointer;
                list-style: none;
                font-family: var(--barn-ff-display);
                font-size: 2rem;
                line-height: 1.35;
                color: var(--c-fg);
                -webkit-transition: color var(--barn-dur-fast) var(--barn-ease);
                -o-transition: color var(--barn-dur-fast) var(--barn-ease);
                transition: color var(--barn-dur-fast) var(--barn-ease);
            }
            .barn-faq__q::-webkit-details-marker {
                display: none;
            }
            .barn-faq__q:hover,
            .barn-faq__item[open] .barn-faq__q {
                color: var(--c-pri);
            }
                /* Plus icon; vertical bar collapses when open */
                .barn-faq__icon {
                    position: relative;
                    flex: none;
                    width: 1.6rem;
                    height: 1.6rem;
                }
                .barn-faq__icon::before,
                .barn-faq__icon::after {
                    content: '';
                    position: absolute;
                    inset: 50% 0 auto 0;
                    height: .2rem;
                    margin-top: -.1rem;
                    background: currentColor;
                    -webkit-transition: -webkit-transform var(--barn-dur-fast) var(--barn-ease);
                    transition: -webkit-transform var(--barn-dur-fast) var(--barn-ease);
                    -o-transition: transform var(--barn-dur-fast) var(--barn-ease);
                    transition: transform var(--barn-dur-fast) var(--barn-ease), -webkit-transform var(--barn-dur-fast) var(--barn-ease);
                }
                .barn-faq__icon::after {
                    -webkit-transform: rotate(90deg);
                        -ms-transform: rotate(90deg);
                            transform: rotate(90deg);
                }
                .barn-faq__item[open] .barn-faq__icon::after {
                    -webkit-transform: rotate(0deg);
                        -ms-transform: rotate(0deg);
                            transform: rotate(0deg);
                }
            .barn-faq__a {
                padding: 0 4rem 2.4rem 0;
            }
                .barn-faq__a p {
                    margin: 0;
                }
@media only screen and (max-width: 768px) {
    .barn-faq {
        padding-block: 6.4rem;
    }
    .barn-faq__q {
        font-size: 1.8rem;
    }
}


/* $CONTACT
--------------------------------------------------------*/
.barn-contact {
    background: var(--c-qua);
    padding-block: 9.6rem;
}
    .barn-contact__inner {
        width: var(--w-lg);
        margin-inline: auto;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--s-lg);
        align-items: start;
    }
        .barn-contact__title {
            margin: 0 0 1.6rem;
            font-size: var(--barn-fs-display-md);
            color: var(--c-fg);
        }
        .barn-contact__text {
            margin-bottom: 4.0rem;
        }
            .barn-contact__phone {
                font-weight: 700;
                color: var(--c-pri);
                text-decoration: none;
                white-space: nowrap;
            }
            .barn-contact__phone:hover,
            .barn-contact__phone:focus-visible {
                text-decoration: underline;
            }
        /* Form theme (overrides parent .app .gform_wrapper.gravity-theme) */
        .barn-contact__form .gform_wrapper.gravity-theme .gform_fields {
            grid-row-gap: 2.8rem;
        }
        .barn-contact__form .gform_wrapper.gravity-theme .gfield_label {
            font-size: 1.2rem;
            font-weight: 700;
            letter-spacing: .12em;
            text-transform: uppercase;
            margin-bottom: 1rem;
            color: var(--c-sec);
        }
        .barn-contact__form .gform_wrapper.gravity-theme .gfield_required {
            color: var(--c-pri);
        }
        .barn-contact__form .gform_wrapper.gravity-theme .ginput_complex label {
            font-size: 1.1rem;
            font-weight: 600;
            letter-spacing: .1em;
            text-transform: uppercase;
            margin: .8rem 0 0;
            padding: 0;
            color: color-mix(in srgb, var(--c-fg) 55%, transparent);
        }
        .barn-contact__form .gform_wrapper.gravity-theme input[type="text"],
        .barn-contact__form .gform_wrapper.gravity-theme input[type="email"],
        .barn-contact__form .gform_wrapper.gravity-theme input[type="tel"],
        .barn-contact__form .gform_wrapper.gravity-theme input[type="number"],
        .barn-contact__form .gform_wrapper.gravity-theme select,
        .barn-contact__form .gform_wrapper.gravity-theme textarea {
            width: 100%;
            padding: 1.4rem 1.6rem;
            font-family: var(--barn-ff-body);
            font-size: 1.5rem;
            color: var(--c-fg);
            background-color: var(--c-w);
            border: .1rem solid color-mix(in srgb, var(--c-sec) 25%, transparent);
            border-radius: .2rem;
            -webkit-transition: border-color var(--barn-dur-fast) var(--barn-ease), -webkit-box-shadow var(--barn-dur-fast) var(--barn-ease);
            -o-transition: border-color var(--barn-dur-fast) var(--barn-ease), box-shadow var(--barn-dur-fast) var(--barn-ease);
            transition: border-color var(--barn-dur-fast) var(--barn-ease), box-shadow var(--barn-dur-fast) var(--barn-ease);
        }
        .barn-contact__form .gform_wrapper.gravity-theme input:focus-visible,
        .barn-contact__form .gform_wrapper.gravity-theme select:focus-visible,
        .barn-contact__form .gform_wrapper.gravity-theme textarea:focus-visible {
            outline: none;
            border-color: var(--c-pri);
            -webkit-box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--c-pri) 20%, transparent);
                    box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--c-pri) 20%, transparent);
        }
        .barn-contact__form .gform_wrapper.gravity-theme ::-webkit-input-placeholder {
            color: color-mix(in srgb, var(--c-fg) 40%, transparent);
        }
        .barn-contact__form .gform_wrapper.gravity-theme ::placeholder {
            color: color-mix(in srgb, var(--c-fg) 40%, transparent);
        }
        .barn-contact__form .gform_wrapper.gravity-theme select {
            -webkit-appearance: none;
               -moz-appearance: none;
                    appearance: none;
            padding-right: 4.4rem;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23342C17' stroke-width='2'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 1.6rem center;
        }
        .barn-contact__form .gform_wrapper.gravity-theme .gfield textarea.large {
            height: 16rem;
        }
        .barn-contact__form .gform_wrapper.gravity-theme .gform_footer {
            margin-top: 3.2rem;
        }
        .barn-contact__map .map {
            border-radius: var(--barn-radius);
            overflow: hidden;
        }
@media only screen and (max-width: 768px) {
    .barn-contact {
        padding-block: 6.4rem;
    }
    .barn-contact__inner {
        grid-template-columns: 1fr;
    }
}


/* $FOOTER
--------------------------------------------------------*/
.barn-ftr {
    color-scheme: dark;
    background:
        repeating-linear-gradient(90deg,
            color-mix(in srgb, var(--c-w) 4%, transparent) 0 .2rem,
            transparent .2rem 12.8rem),
        var(--c-sec);
    color: var(--c-fg);
    padding-block: 0;
}
    .barn-ftr a {
        text-decoration: none;
    }
    .barn-ftr .barn-ftr__link {
        text-decoration: underline;
        -webkit-text-decoration-style: solid;
                text-decoration-style: solid;
        -webkit-text-decoration-color: currentColor;
                text-decoration-color: currentColor;
        text-decoration-thickness: .1rem;
    }
    .barn-ftr__inner {
        width: var(--w-lg);
        margin-inline: auto;
        padding-block: 6.4rem 4.0rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: var(--s-md);
    }
        .barn-ftr__name {
            margin-bottom: 1.2rem;
            font-size: 1.6rem;
            font-weight: 800;
            color: var(--c-pri);
        }
        .barn-ftr__address {
            font-style: normal;
            font-size: 1.4rem;
            line-height: 1.6;
            margin-bottom: 1.6rem;
        }
        .barn-ftr__phone {
            font-size: 1.4rem;
            color: var(--c-fg);
        }
        .barn-ftr__phone:hover,
        .barn-ftr__phone:focus-visible {
            color: var(--c-pri);
        }
        .barn-ftr__logo-img {
            height: 12.8rem;
            width: auto;
        }
    .barn-ftr__colophon {
        width: var(--w-lg);
        margin-inline: auto;
        padding-block: 2.4rem 4.0rem;
        border-top: .1rem solid var(--c-10);
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: var(--s-md);
        font-size: 1.2rem;
    }
        .barn-ftr__legal {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 2.4rem;
        }
            .barn-ftr__cr {
                color: var(--c-50);
            }
            .barn-ftr__link {
                color: var(--c-50);
                text-decoration: underline;
                text-underline-offset: .3em;
            }
            .barn-ftr__link:hover,
            .barn-ftr__link:focus-visible {
                color: var(--c-pri);
            }
            /* Site credit: "Site by" + Pixouls wordmark */
            .barn-ftr__by {
                display: flex;
                align-items: center;
                gap: .8rem;
                color: var(--c-50);
            }
                .barn-ftr__by-link {
                    display: flex;
                    align-items: center;
                }
                .barn-ftr__by-logo {
                    display: block;
                    height: 4rem;
                    width: auto;
                    opacity: .88;
                    -webkit-transition: opacity var(--barn-dur-fast) var(--barn-ease);
                    -o-transition: opacity var(--barn-dur-fast) var(--barn-ease);
                    transition: opacity var(--barn-dur-fast) var(--barn-ease);
                }
                .barn-ftr__by-link:hover .barn-ftr__by-logo,
                .barn-ftr__by-link:focus-visible .barn-ftr__by-logo {
                    opacity: 1;
                }
        /* Social: circular buttons under the contact info */
        .barn-ftr__social {
            list-style: none;
            margin: 3.2rem 0 0;
            padding: 0;
            display: flex;
            gap: 1.2rem;
        }
            .barn-ftr__social-link {
                display: flex;
                align-items: center;
                justify-content: center;
                width: 4.4rem;
                height: 4.4rem;
                border: .1rem solid var(--c-25);
                border-radius: 50%;
                -webkit-transition: background-color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease);
                -o-transition: background-color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease);
                transition: background-color var(--barn-dur-fast) var(--barn-ease), border-color var(--barn-dur-fast) var(--barn-ease);
            }
            .barn-ftr__social-link:hover,
            .barn-ftr__social-link:focus-visible {
                background: var(--c-pri);
                border-color: var(--c-pri);
            }
            .barn-ftr__social-icon {
                width: 1.8rem;
                height: 1.8rem;
                fill: var(--c-fg);
                -webkit-transition: fill var(--barn-dur-fast) var(--barn-ease);
                -o-transition: fill var(--barn-dur-fast) var(--barn-ease);
                transition: fill var(--barn-dur-fast) var(--barn-ease);
            }
            .barn-ftr__social-link:hover .barn-ftr__social-icon,
            .barn-ftr__social-link:focus-visible .barn-ftr__social-icon {
                fill: var(--c-l);
            }
@media only screen and (max-width: 768px) {
    /* Two columns: logo left, contact info right */
    .barn-ftr__inner {
        flex-direction: row-reverse;
        justify-content: center;
    }
    .barn-ftr__colophon {
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
}


/* $REDUCED-MOTION
--------------------------------------------------------*/
@media (prefers-reduced-motion: reduce) {
    .barn-gallery__img,
    .barn-more,
    .button {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}
