    @font-face {
        font-family: Chivo;
        src: url("fonts/Chivo-Regular.ttf?v=2") format("truetype");
        font-weight: 400;
        font-display: swap
    }

    @font-face {
        font-family: Chivo;
        src: url("fonts/Chivo-Bold.ttf?v=2") format("truetype");
        font-weight: 700;
        font-display: swap
    }

    @font-face {
        font-family: Ultra;
        src: url("fonts/Ultra-Regular.ttf?v=2") format("truetype");
        font-display: swap
    }

    :root {
        --paper: #f8f3e8;
        --ink: #202018;
        --red: #e74e3f;
        --blue: #3659d9;
        --yellow: #f2c84b;
        --green: #176b52;
        --line: rgba(32, 32, 24, .2);
        font-family: Chivo, Arial, sans-serif;
        color: var(--ink);
        scroll-behavior: smooth
    }

    * {
        box-sizing: border-box
    }

    body {
        margin: 0;
        background: var(--paper);
        font-size: 16px;
        line-height: 1.55
    }

    a {
        color: inherit
    }

    button,
    a {
        -webkit-tap-highlight-color: transparent
    }

    .shell {
        width: min(1320px, calc(100% - 72px));
        margin: auto
    }

    .seasonal-offer[hidden] {
        display: none
    }

    .seasonal-offer {
        position: sticky;
        top: 0;
        z-index: 1000;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        width: min(980px, calc(100% - 36px));
        min-height: 52px;
        margin: 0 auto;
        border: 1px solid #c99138;
        border-top: 0;
        border-radius: 0 0 7px 7px;
        background: #173f35;
        box-shadow: 0 5px 18px #17201930;
        color: #fffdf8
    }

    .seasonal-offer-link {
        display: flex;
        flex: 1;
        min-width: 0;
        align-items: center;
        justify-content: center;
        gap: 16px;
        min-height: 50px;
        padding: 8px 14px;
        color: inherit;
        text-decoration: none
    }

    .seasonal-offer-title,
    .seasonal-offer-code {
        font-size: 13px;
        font-weight: 700
    }

    .seasonal-offer-link strong {
        color: #ffd36a;
        font-size: 19px;
        white-space: nowrap
    }

    .seasonal-offer-code {
        color: #f3dfb0
    }

    .seasonal-offer-cta {
        font-size: 12px;
        text-decoration: underline;
        text-underline-offset: 3px
    }

    .seasonal-offer-close {
        flex: 0 0 42px;
        align-self: stretch;
        border: 0;
        border-left: 1px solid #ffffff35;
        background: transparent;
        color: inherit;
        font: 24px/1 Chivo, Arial, sans-serif;
        cursor: pointer
    }

    .seasonal-offer-info {
        flex: 0 0 38px;
        align-self: stretch;
        border: 0;
        border-left: 1px solid #ffffff35;
        background: transparent;
        color: #ffd36a;
        font: 700 18px/1 Chivo, Arial, sans-serif;
        cursor: pointer
    }

    .seasonal-offer-info:hover,
    .seasonal-offer-close:hover {
        background: #ffffff18
    }

    .seasonal-offer-info:focus-visible,
    .seasonal-offer-close:focus-visible,
    .seasonal-offer-link:focus-visible {
        outline: 3px solid #ffd36a;
        outline-offset: -3px
    }

    .seasonal-offer-details {
        display: none;
        flex-basis: 100%;
        padding: 0 22px 14px;
        border-top: 1px solid #ffffff35;
        color: #fffdf8;
        font-size: 13px
    }

    .seasonal-offer:hover .seasonal-offer-details,
    .seasonal-offer.is-expanded .seasonal-offer-details {
        display: block
    }

    .seasonal-offer-details p {
        margin: 12px 0 0
    }

    .topline {
        border-bottom: 1px solid var(--line);
        font-size: 12px;
        letter-spacing: .12em;
        text-transform: uppercase
    }

    .topline .shell {
        height: 42px;
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    .availability {
        display: flex;
        align-items: center;
        gap: 9px
    }

    .dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--green);
        box-shadow: 0 0 0 4px #176b5220
    }

    header .shell {
        height: 86px;
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    .brand {
        display: flex;
        align-items: center;
        gap: 12px;
        text-decoration: none
    }

    .brand img {
        width: 47px;
        height: 47px;
        object-fit: contain
    }

    .brand-name {
        font: 23px/1 Ultra, Georgia, serif;
        letter-spacing: -.04em
    }

    .brand-name span {
        color: var(--red)
    }

    nav {
        display: flex;
        align-items: center;
        gap: 36px
    }

    nav a {
        text-decoration: none;
        font-weight: 700;
        font-size: 14px
    }

    nav a:hover {
        text-decoration: underline;
        text-decoration-color: var(--red);
        text-decoration-thickness: 2px;
        text-underline-offset: 5px
    }

    .nav-cta,
    .button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 14px;
        padding: 14px 19px;
        border: 1px solid var(--ink);
        border-radius: 2px;
        text-decoration: none;
        font-weight: 700;
        font-size: 14px;
        transition: transform .2s, background .2s, color .2s
    }

    .nav-cta:hover,
    .button:hover {
        transform: translateY(-2px);
        background: var(--ink);
        color: white
    }

    .hero {
        display: grid;
        grid-template-columns: 1fr 1fr;
        min-height: 600px;
        border-top: 1px solid var(--line);
        border-bottom: 1px solid var(--line)
    }

    .hero-copy {
        padding: 76px max(7vw, 40px) 66px max(calc((100vw - 1320px)/2), 36px);
        display: flex;
        flex-direction: column;
        justify-content: center
    }

    .eyebrow {
        margin: 0 0 26px;
        color: var(--red);
        font-size: 12px;
        letter-spacing: .17em;
        font-weight: 700;
        text-transform: uppercase
    }

    .hero h1 {
        max-width: 650px;
        margin: 0;
        font: clamp(58px, 7vw, 100px)/.95 Ultra, Georgia, serif;
        letter-spacing: -.065em
    }

    .hero h1 em {
        font-style: normal;
        color: var(--blue)
    }

    .hero-lede {
        max-width: 475px;
        margin: 29px 0 28px;
        font-size: 18px;
        line-height: 1.55
    }

    .hero-actions {
        display: flex;
        align-items: center;
        gap: 20px;
        flex-wrap: wrap
    }

    .button.primary {
        background: var(--red);
        border-color: var(--red);
        color: white;
        padding: 16px 21px
    }

    .button.primary:hover {
        background: #c83c31
    }

    .text-link {
        font-size: 14px;
        font-weight: 700;
        text-underline-offset: 4px
    }

    .hero-image {
        position: relative;
        min-height: 552px;
        margin: 24px 36px 24px 0;
        overflow: hidden;
        background: #b7b1a9
    }

    .hero-image .hero-photo {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 43%
    }

    .hero-image:after {
        content: "";
        position: absolute;
        z-index: 1;
        inset: 0;
        background: linear-gradient(90deg, rgba(32, 32, 24, .08), transparent 35%)
    }

    .image-note {
        position: absolute;
        z-index: 2;
        right: 28px;
        bottom: 28px;
        background: var(--yellow);
        padding: 13px 17px;
        font: 16px Ultra, Georgia, serif;
        transform: rotate(-3deg)
    }

    .hero-stamp {
        position: absolute;
        z-index: 2;
        width: 116px;
        height: 116px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        top: 38px;
        left: -58px;
        background: var(--blue);
        color: white;
        text-align: center;
        font: 15px/1.2 Ultra, Georgia, serif;
        transform: rotate(10deg)
    }

    .proof {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        padding: 27px 0;
        border-bottom: 1px solid var(--line)
    }

    .proof p {
        margin: 0;
        font-size: 13px;
        letter-spacing: .08em;
        text-transform: uppercase
    }

    .proof strong {
        font: 20px Ultra, Georgia, serif;
        color: var(--red)
    }

    .proof-items {
        display: flex;
        gap: clamp(20px, 5vw, 75px);
        font-size: 13px;
        font-weight: 700
    }

    .proof-items span:before {
        content: "✳";
        color: var(--blue);
        margin-right: 9px;
        font-size: 16px
    }

    .section {
        padding: 105px 0
    }

    .section-head {
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: end;
        gap: 30px;
        margin-bottom: 42px
    }

    .section-kicker {
        margin: 0 0 14px;
        color: var(--red);
        text-transform: uppercase;
        letter-spacing: .15em;
        font-size: 12px;
        font-weight: 700
    }

    .section h2 {
        margin: 0;
        max-width: 640px;
        font: clamp(42px, 5vw, 66px)/1 Ultra, Georgia, serif;
        letter-spacing: -.055em
    }

    .section-head>p {
        max-width: 450px;
        margin: 0 0 4px;
        color: #59594f;
        font-size: 17px
    }

    .offer-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 14px
    }

    .offer {
        min-height: 314px;
        padding: 26px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        background: #fffdf8;
        border: 1px solid var(--line);
        position: relative;
        overflow: hidden
    }

    .offer:after {
        content: attr(data-no);
        position: absolute;
        right: -4px;
        top: 26px;
        font: 94px/.8 Ultra, Georgia, serif;
        color: rgba(32, 32, 24, .055)
    }

    .offer-top {
        position: relative;
        z-index: 1;
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: var(--yellow);
        font-size: 20px
    }

    .offer:nth-child(2) .offer-top {
        background: #dbe1ff
    }

    .offer:nth-child(3) .offer-top {
        background: #f8d6ce
    }

    .offer h3 {
        position: relative;
        z-index: 1;
        margin: 30px 0 10px;
        font: 28px Ultra, Georgia, serif
    }

    .offer p {
        position: relative;
        z-index: 1;
        margin: 0;
        color: #59594f;
        max-width: 340px
    }

    .offer a {
        position: relative;
        z-index: 1;
        margin-top: auto;
        padding-top: 24px;
        font-size: 13px;
        font-weight: 700;
        text-decoration: none
    }

    .offer a span {
        color: var(--red);
        font-size: 20px;
        margin-left: 7px
    }

    .audience {
        background: var(--blue);
        color: white;
        padding: 82px 0
    }

    .audience .section-kicker {
        color: var(--yellow)
    }

    .audience .section-head {
        margin-bottom: 37px
    }

    .audience .section-head>p {
        color: #e1e5ff
    }

    .audience-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        border-top: 1px solid #ffffff55
    }

    .audience-card {
        padding: 26px 28px 22px 0;
        border-bottom: 1px solid #ffffff55
    }

    .audience-card+.audience-card {
        padding-left: 28px;
        border-left: 1px solid #ffffff55
    }

    .audience-card h3 {
        margin: 0 0 8px;
        font: 26px Ultra, Georgia, serif
    }

    .audience-card p {
        margin: 0;
        color: #e1e5ff;
        font-size: 15px
    }

    .audience-card a {
        display: inline-block;
        margin-top: 17px;
        font-weight: 700;
        font-size: 13px;
        text-decoration-thickness: 1px;
        text-underline-offset: 4px
    }

    .contact {
        padding: 94px 0;
        background: var(--yellow)
    }

    .contact-inner {
        display: grid;
        grid-template-columns: 1.1fr .9fr;
        gap: 60px;
        align-items: center
    }

    .contact h2 {
        max-width: 620px;
        margin: 0;
        font: clamp(43px, 5.8vw, 76px)/.98 Ultra, Georgia, serif;
        letter-spacing: -.06em
    }

    .contact-copy p {
        max-width: 390px;
        margin: 0 0 24px;
        font-size: 17px
    }

    .contact .button {
        background: var(--ink);
        color: white;
        border-color: var(--ink)
    }

    .contact .button:hover {
        background: transparent;
        color: var(--ink)
    }

    footer {
        background: var(--ink);
        color: white;
        padding: 36px 0
    }

    .footer-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 25px
    }

    .footer-logo {
        display: flex;
        align-items: center;
        gap: 12px;
        text-decoration: none
    }

    .footer-logo img {
        width: 40px;
        height: 40px;
        object-fit: contain
    }

    .footer-logo strong {
        font: 19px Ultra, Georgia, serif
    }

    .footer-links {
        display: flex;
        gap: 25px
    }

    .footer-links a {
        font-size: 13px;
        color: #e4e0d7;
        text-decoration: none
    }

    .copyright {
        font-size: 12px;
        color: #a7a399
    }

    @media(max-width:850px) {
        .shell {
            width: calc(100% - 40px)
        }

        header .shell {
            height: 74px
        }

        .brand img {
            width: 39px;
            height: 39px
        }

        .brand-name {
            font-size: 20px
        }

        nav {
            gap: 18px
        }

        nav a {
            font-size: 13px
        }

        .nav-cta {
            padding: 11px 13px
        }

        .hero {
            grid-template-columns: 1fr;
            min-height: 0
        }

        .hero-copy {
            padding: 72px 40px 56px
        }

        .hero-image {
            min-height: 440px;
            margin: 0 20px 24px
        }

        .hero-stamp {
            left: auto;
            right: 32px;
            top: -42px
        }

        .section {
            padding: 75px 0
        }

        .section-head {
            grid-template-columns: 1fr;
            gap: 18px
        }

        .offer {
            padding: 22px;
            min-height: 330px
        }

        .contact-inner {
            gap: 35px
        }
    }

    @media(max-width:600px) {

        .seasonal-offer {
            width: calc(100% - 20px)
        }

        .seasonal-offer-link {
            flex-wrap: wrap;
            justify-content: flex-start;
            gap: 4px 10px;
            padding: 8px 10px
        }

        .seasonal-offer-title {
            flex-basis: 100%;
            font-size: 12px
        }

        .seasonal-offer-link strong {
            font-size: 16px
        }

        .seasonal-offer-code,
        .seasonal-offer-cta {
            font-size: 11px
        }

        .seasonal-offer-close {
            flex-basis: 36px
        }

        .seasonal-offer-info {
            flex-basis: 34px
        }

        .seasonal-offer-details {
            padding: 0 12px 12px;
            font-size: 12px
        }

        #hero-title {
            font-size: 40px;
        }

        .shell {
            width: calc(100% - 36px)
        }

        .topline .shell {
            height: 36px;
            font-size: 10px
        }

        .topline .shell>span:last-child {
            display: none
        }

        header .shell {
            height: auto;
            min-height: 72px;
            flex-wrap: wrap;
            padding: 13px 0;
            gap: 14px
        }

        .brand {
            margin-right: auto
        }

        .brand img {
            width: 34px;
            height: 34px
        }

        nav {
            order: 3;
            width: 100%;
            justify-content: flex-start;
            border-top: 1px solid var(--line);
            padding: 11px 0 5px;
            gap: 18px;
            overflow-x: auto;
            white-space: nowrap
        }

        nav a {
            font-size: 12px
        }

        .nav-cta {
            font-size: 12px;
            padding: 10px
        }

        .hero-copy {
            padding: 62px 22px 45px
        }

        .hero h1 {
            font-size: clamp(53px, 16vw, 78px)
        }

        .hero-lede {
            font-size: 16px;
            margin: 23px 0
        }

        .hero-image {
            min-height: 340px;
            margin: 0 18px 18px
        }

        .image-note {
            right: 15px;
            bottom: 16px;
            font-size: 13px
        }

        .hero-stamp {
            width: 90px;
            height: 90px;
            font-size: 12px;
            right: 20px;
            top: -34px
        }

        .proof {
            align-items: flex-start;
            flex-direction: column;
            padding: 22px 0;
            gap: 14px
        }

        .proof-items {
            width: 100%;
            justify-content: space-between;
            gap: 10px;
            font-size: 11px
        }

        .proof-items span:before {
            margin-right: 4px
        }

        .section {
            padding: 62px 0
        }

        .section h2 {
            font-size: 44px
        }

        .section-head>p {
            font-size: 15px
        }

        .offer-grid {
            grid-template-columns: 1fr;
            gap: 10px
        }

        .offer {
            min-height: 240px;
            padding: 21px
        }

        .offer h3 {
            margin-top: 20px
        }

        .audience {
            padding: 62px 0
        }

        .audience-grid {
            grid-template-columns: 1fr
        }

        .audience-card,
        .audience-card+.audience-card {
            padding: 22px 0;
            border-left: 0
        }

        .contact {
            padding: 64px 0
        }

        .contact-inner {
            grid-template-columns: 1fr;
            gap: 24px
        }

        .contact h2 {
            font-size: 40px;
        }

        .footer-row {
            align-items: flex-start;
            flex-wrap: wrap
        }

        .footer-links {
            order: 3;
            width: 100%;
            justify-content: space-between;
            gap: 12px
        }

        .copyright {
            margin-left: auto
        }

        .footer-links a {
            font-size: 12px
        }
    }

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

        *,
        *:before,
        *:after {
            transition: none !important
        }
    }

    .page-hero {
        padding: 76px 0 68px;
        border-top: 1px solid var(--line);
        background: linear-gradient(115deg, #fffdf8 0 65%, #f2e8d5 65%)
    }

    .page-hero h1 {
        max-width: 900px;
        margin: 0;
        font: clamp(48px, 7vw, 82px)/.98 Ultra, Georgia, serif;
        letter-spacing: -.06em
    }

    .page-lede {
        max-width: 720px;
        margin: 22px 0 0;
        color: #59594f;
        font-size: 19px
    }

    .landing-copy-cta {
        margin: 36px 0 50px;
        text-align: center
    }

    .landing-copy-cta .button {
        padding: 22px 30px;
        font-size: 17px
    }

    .page-section {
        padding: 64px 0 94px
    }

    .page-content {
        max-width: 950px;
        margin: auto
    }

    .page-hero-with-image .shell {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr);
        align-items: center;
        gap: 54px
    }

    .page-hero-with-image h1 {
        max-width: 700px
    }

    .page-hero-image img {
        display: block;
        width: auto;
        max-width: 100%;
        height: 480px;
        margin-left: auto;
        object-fit: cover;
        border-radius: 18px
    }

    .page-content h2,
    .article-content h2 {
        font: 34px/1.1 Ultra, Georgia, serif;
        letter-spacing: -.04em;
        margin: 0 0 15px
    }

    .page-content h3,
    .article-content h3 {
        font: 25px/1.2 Ultra, Georgia, serif;
        margin: 30px 0 10px
    }

    .page-content p,
    .article-content p {
        max-width: 760px;
        color: #45453e;
        font-size: 17px
    }

    .service-list {
        display: grid;
        gap: 14px
    }

    .pricing-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px
    }

    .pricing-card {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        min-height: 270px;
        padding: 30px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .pricing-card:nth-child(2) {
        background: #f2f1fb
    }

    .pricing-card:nth-child(3) {
        background: #fff1e8
    }

    .pricing-card:nth-child(4) {
        background: #f2f5e9
    }

    .page-content .pricing-card h2 {
        margin: 0 0 14px
    }

    .page-content .pricing-card p {
        max-width: none;
        margin: 0 0 16px
    }

    .page-content .pricing-card .pricing-amount {
        margin: auto 0 14px;
        color: var(--ink);
        font: 24px/1.2 Chivo, Arial, sans-serif;
        font-weight: 700
    }

    .page-content .pricing-footnote {
        max-width: none;
        margin: 20px 0 0;
        font-size: 15px
    }

    .service-detail {
        display: grid;
        grid-template-columns: 78px 1fr;
        gap: 22px;
        align-items: start;
        padding: 28px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .service-detail>span {
        width: 60px;
        height: 60px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: var(--yellow);
        font-size: 30px
    }

    .service-detail:nth-child(2)>span {
        background: #dbe1ff
    }

    .service-detail:nth-child(3)>span {
        background: #f8d6ce
    }

    .service-detail h2 {
        margin: 0 0 8px
    }

    .service-detail p {
        margin: 0
    }

    .content-block {
        margin-top: 54px;
        padding: 38px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .content-block h2 {
        margin-top: 6px
    }

    .occasion-list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
        list-style: none;
        padding: 0;
        margin: 22px 0
    }

    .occasion-list li {
        padding: 14px 16px;
        background: #f8f3e8;
        font-weight: 700
    }

    .story-grid {
        display: grid;
        grid-template-columns: 1fr .78fr;
        gap: 50px;
        align-items: center
    }

    .story-copy h2 {
        margin-bottom: 30px
    }

    .story-copy p:first-of-type {
        margin-top: 0
    }

    .story-image {
        width: 100%;
        max-height: 520px;
        object-fit: cover
    }

    .feature-show {
        background: var(--yellow)
    }

    .feature-show p {
        max-width: 680px
    }

    .inline-link,
    .back-link {
        display: inline-block;
        font-weight: 700;
        text-underline-offset: 4px
    }

    .back-link {
        margin-bottom: 24px;
        text-decoration: none
    }

    .post-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px
    }

    .post-card {
        padding: 30px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .post-card h2 {
        font: 30px/1.1 Ultra, Georgia, serif;
        letter-spacing: -.04em
    }

    .post-card h2 a {
        text-decoration: none
    }

    .post-card p:not(.section-kicker) {
        color: #59594f
    }

    .article-content {
        max-width: 900px;
        padding-top: 58px;
        padding-bottom: 74px
    }

    .archive-note {
        padding: 15px 18px;
        background: #fff3c8;
        border-left: 4px solid var(--yellow);
        font-size: 14px !important
    }

    .photo-strip {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
        margin: 30px 0
    }

    .photo-strip img {
        width: 100%;
        height: 220px;
        object-fit: cover
    }

    .contact-form {
        max-width: 720px;
        margin: 42px auto 0;
        padding: 32px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .form-row {
        display: grid;
        gap: 8px;
        margin-bottom: 19px
    }

    .form-row label {
        font-weight: 700
    }

    .form-row input,
    .form-row select,
    .form-row textarea {
        width: 100%;
        padding: 13px 14px;
        border: 1px solid #aaa79d;
        border-radius: 2px;
        background: #fff;
        color: var(--ink);
        font: 16px Chivo, Arial, sans-serif
    }

    .form-row input:focus,
    .form-row select:focus,
    .form-row textarea:focus {
        outline: 3px solid #3659d933;
        border-color: var(--blue)
    }

    .form-row textarea {
        resize: vertical
    }

    .consent {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin: 22px 0;
        font-size: 13px
    }

    .consent input {
        margin-top: 4px;
        accent-color: var(--blue)
    }

    .contact-form button:disabled {
        opacity: .65;
        cursor: wait
    }

    .form-status {
        min-height: 24px;
        font-weight: 700
    }

    .honeypot {
        position: absolute;
        left: -10000px;
        width: 1px;
        height: 1px;
        overflow: hidden
    }

    .footer-links {
        flex-wrap: wrap
    }

    .nav-cta[aria-current="page"] {
        background: var(--ink);
        color: white
    }

    @media(max-width:850px) {
        .pricing-grid {
            grid-template-columns: 1fr
        }

        .story-grid {
            grid-template-columns: 1fr .7fr;
            gap: 26px
        }

        .page-hero {
            padding: 62px 0
        }

        .page-hero-with-image .shell {
            grid-template-columns: minmax(0, 1fr) minmax(240px, .8fr);
            gap: 28px
        }

        .page-hero-image img {
            height: 390px
        }

        .page-section {
            padding: 48px 0 68px
        }

        .post-grid {
            grid-template-columns: 1fr 1fr
        }
    }

    @media(max-width:600px) {
        .page-hero {
            padding: 48px 0
        }

        .page-hero h1 {
            font-size: 36px;
        }

        .page-hero-with-image .shell {
            grid-template-columns: 1fr;
            gap: 26px
        }

        .page-hero-image img {
            height: 360px;
            margin: 0 auto
        }

        .page-lede {
            font-size: 16px
        }

        .service-detail {
            grid-template-columns: 54px 1fr;
            gap: 14px;
            padding: 20px
        }

        .service-detail>span {
            width: 48px;
            height: 48px;
            font-size: 25px
        }

        .page-content h2,
        .article-content h2 {
            font-size: 28px
        }

        .page-content p,
        .article-content p {
            font-size: 16px
        }

        .content-block {
            padding: 22px;
            margin-top: 34px
        }

        .occasion-list {
            grid-template-columns: 1fr 1fr
        }

        .story-grid {
            grid-template-columns: 1fr;
            gap: 22px
        }

        .story-image {
            max-height: 380px
        }

        .post-grid {
            grid-template-columns: 1fr
        }

        .post-card {
            padding: 22px
        }

        .post-card h2 {
            font-size: 25px
        }

        .contact-form {
            padding: 22px;
            margin-top: 28px
        }

        .photo-strip {
            grid-template-columns: 1fr 1fr
        }

        .photo-strip img {
            height: 160px
        }
    }

    .theatre-section .story-copy h2,
    .theatre-section .story-copy h3,
    .theatre-section .story-copy p {
        color: white
    }

    .theatre-section .archive-note {
        color: var(--ink)
    }

    .about .story-grid {
        margin-bottom: 30pt;
    }

    .about .story-copy h3 {
        font: clamp(42px, 5vw, 66px)/1 Ultra, Georgia, serif;
        font-size: 2em;
        margin-top: 0;
    }

    .about .section-head {
        grid-template-columns: 2fr 1fr;
    }

    @media(max-width:600px) {
        .about .section-head {
            grid-template-columns: 1fr;
        }
    }

    .post-card summary {
        display: grid;
        grid-template-columns: 1fr auto;
        cursor: pointer;
        list-style: none
    }

    .post-card summary::-webkit-details-marker {
        display: none
    }

    .post-card summary .section-kicker {
        grid-column: 1 / -1
    }

    .post-card summary strong {
        font: 25px/1.15 Ultra, Georgia, serif;
        max-width: 420px
    }

    .summary-arrow {
        font-size: 25px;
        color: var(--red);
        align-self: center
    }

    .post-card[open] .summary-arrow {
        transform: rotate(45deg)
    }

    .post-body {
        border-top: 1px solid var(--line);
        margin-top: 18px;
        padding-top: 12px
    }

    .post-body p {
        font-size: 15px !important
    }

    .post-body h3 {
        font-size: 21px !important
    }

    .post-body .photo-strip img {
        height: 150px
    }

    .occasion-inline {
        margin-top: 28px;
        padding: 22px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .occasion-inline p {
        margin: 6px 0 0;
        color: #59594f
    }

    .landing-section {
        padding-top: 64px
    }

    .landing-copy {
        max-width: 900px;
        margin: auto
    }

    .landing-copy-block {
        padding: 20px 0 28px;
        border-bottom: 1px solid var(--line)
    }

    .landing-copy-block h2,
    .faq-block h2 {
        margin: 0 0 12px;
        font: clamp(27px, 3vw, 38px)/1.1 Ultra, Georgia, serif;
        letter-spacing: -.035em
    }

    .landing-copy-block p {
        max-width: 790px;
        margin: 0;
        color: #4d4d45;
        font-size: 18px
    }

    .area-note {
        margin: 18px 0 0;
        color: var(--green);
        font-size: 14px;
        font-weight: 700
    }

    .faq-block {
        max-width: 900px;
        margin: 58px auto 0;
        padding: 34px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .faq-block h2 {
        margin-bottom: 20px
    }

    .faq-item {
        padding: 17px 0;
        border-top: 1px solid var(--line)
    }

    .faq-item summary {
        display: flex;
        justify-content: space-between;
        gap: 24px;
        cursor: pointer;
        font-size: 17px;
        font-weight: 700;
        list-style: none
    }

    .faq-item summary::-webkit-details-marker {
        display: none
    }

    .faq-item summary span {
        color: var(--red);
        font-size: 22px;
        line-height: 1
    }

    .faq-item[open] summary span {
        transform: rotate(45deg)
    }

    .faq-item p {
        max-width: 760px;
        margin: 12px 35px 0 0;
        color: #59594f
    }

    .related-block {
        max-width: 900px;
        margin: 45px auto 0
    }

    .related-links {
        display: flex;
        flex-wrap: wrap;
        gap: 10px
    }

    .related-link {
        display: inline-flex;
        gap: 10px;
        align-items: center;
        padding: 12px 15px;
        background: #e9edff;
        color: var(--ink);
        font-size: 14px;
        font-weight: 700;
        text-decoration: none
    }

    .related-link:hover {
        background: var(--yellow)
    }

    @media(max-width:600px) {
        .landing-section {
            padding-top: 42px
        }

        .landing-copy-block {
            padding: 17px 0 22px
        }

        .landing-copy-block p {
            font-size: 16px
        }

        .faq-block {
            margin-top: 38px;
            padding: 22px
        }

        .faq-item summary {
            font-size: 15px
        }

        .related-block {
            margin-top: 34px
        }

        .related-links {
            gap: 8px
        }

        .related-link {
            font-size: 13px;
            padding: 10px 12px
        }
    }

    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px
    }

    .gallery-grid figure {
        margin: 0;
        padding: 12px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .gallery-grid img {
        height: 280px;
        object-fit: cover
    }

    .gallery-grid figcaption {
        padding: 12px 4px 4px;
        font-weight: 700;
        font-size: 14px;
        color: #45453e
    }

    @media(max-width:600px) {
        .gallery-grid {
            grid-template-columns: 1fr
        }

        .gallery-grid img {
            height: 240px
        }
    }

    .reference-card {
        max-width: 980px;
        margin: 0 auto;
        padding: 34px;
        background: #fffdf8;
        border: 1px solid var(--line)
    }

    .reference-folder {
        margin-top: 24px
    }

    .reference-folder .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px
    }

    .reference-folder .gallery-grid figure {
        padding: 12px
    }

    .reference-folder .gallery-grid img {
        height: auto;
        object-fit: contain
    }

    .reference-card h2 {
        margin: 8px 0 18px;
        font: clamp(38px, 5vw, 58px)/1 Ultra, Georgia, serif;
        letter-spacing: -.045em
    }

    .reference-card .photo-strip {
        margin-top: 28px
    }

    .reference-card .archive-note {
        margin-top: 24px
    }

    @media(max-width:600px) {
        .reference-card {
            padding: 20px
        }

        .reference-folder .gallery-grid {
            grid-template-columns: 1fr
        }

        .reference-folder .gallery-grid img {
            height: auto
        }
    }

    .reference-card .photo-strip img {
        width: 100%;
        height: auto;
        object-fit: contain
    }

    body.cookie-layer-open {
        overflow: hidden
    }

    .cookie-backdrop[hidden] {
        display: none
    }

    .cookie-backdrop {
        position: fixed;
        z-index: 10000;
        inset: 0;
        display: grid;
        place-items: center;
        overflow-y: auto;
        padding: 24px;
        background: rgba(24, 24, 20, .68)
    }

    .cookie-dialog {
        width: min(100%, 610px);
        padding: clamp(24px, 5vw, 42px);
        background: #fffdf8;
        border: 1px solid var(--line);
        box-shadow: 0 22px 80px rgba(0, 0, 0, .25)
    }

    .cookie-dialog h2 {
        margin: 0 0 16px;
        font: clamp(32px, 5vw, 44px)/1.05 Ultra, Georgia, serif;
        letter-spacing: -.045em
    }

    .cookie-dialog>p:not(.section-kicker) {
        color: #45453e;
        font-size: 16px;
        line-height: 1.55
    }

    .cookie-details {
        padding: 14px 16px;
        background: #f8f3e8;
        font-size: 14px !important
    }

    .cookie-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 24px
    }

    .cookie-actions .button {
        min-height: 52px;
        cursor: pointer
    }

    .cookie-reject {
        background: transparent
    }

    .cookie-privacy {
        display: inline-block;
        margin-top: 20px;
        font-size: 14px;
        text-underline-offset: 4px
    }

    .cookie-settings-link {
        padding: 0;
        border: 0;
        background: transparent;
        color: inherit;
        font: inherit;
        text-decoration: underline;
        text-underline-offset: 4px;
        cursor: pointer
    }

    @media(max-width:600px) {
        .cookie-backdrop {
            align-items: end;
            padding: 12px
        }

        .cookie-dialog {
            max-height: calc(100dvh - 24px);
            overflow-y: auto;
            padding: 24px 20px
        }

        .cookie-actions {
            flex-direction: column-reverse
        }

        .cookie-actions .button {
            width: 100%
        }
    }

    body.holiday-promo-open {
        overflow: hidden
    }

    .holiday-promo-backdrop[hidden] {
        display: none
    }

    .holiday-promo-backdrop {
        position: fixed;
        z-index: 9000;
        right: 18px;
        bottom: 18px;
        width: min(460px, calc(100vw - 36px));
        pointer-events: none
    }

    .holiday-promo-dialog {
        position: relative;
        width: 100%;
        padding: 34px 28px 30px;
        overflow: hidden;
        border: 1px solid #d4b876;
        background: radial-gradient(circle at 100% 0, #f3dfb0 0, transparent 32%), #fffdf8;
        box-shadow: 0 12px 42px rgba(0, 0, 0, .28);
        text-align: center;
        pointer-events: auto
    }

    .holiday-promo-dialog:before,
    .holiday-promo-dialog:after {
        position: absolute;
        left: 0;
        width: 100%;
        height: 8px;
        background: repeating-linear-gradient(135deg, #b8322b 0 12px, #fffdf8 12px 24px, #24634c 24px 36px, #fffdf8 36px 48px);
        content: ""
    }

    .holiday-promo-dialog:before {
        top: 0
    }

    .holiday-promo-dialog:after {
        bottom: 0
    }

    .holiday-promo-close {
        position: absolute;
        top: 18px;
        right: 18px;
        width: 42px;
        height: 42px;
        border: 1px solid var(--line);
        border-radius: 50%;
        background: #fffdf8;
        color: var(--ink);
        font-size: 28px;
        line-height: 1;
        cursor: pointer
    }

    .holiday-promo-sparkles {
        margin-bottom: 18px;
        color: #b8322b;
        font-size: 30px
    }

    .holiday-promo-dialog h2 {
        max-width: 500px;
        margin: 0 auto 18px;
        font: clamp(36px, 6vw, 58px)/1 Ultra, Georgia, serif;
        letter-spacing: -.045em
    }

    .holiday-promo-dialog>p:not(.section-kicker) {
        max-width: 440px;
        margin: 0 auto 26px;
        color: #45453e;
        font-size: 18px;
        line-height: 1.55
    }

    .holiday-promo-dialog .button {
        min-height: 56px;
        padding: 18px 26px;
        font-size: 16px
    }

    @media(max-width:600px) {
        .holiday-promo-backdrop {
            right: 12px;
            bottom: 12px;
            width: calc(100vw - 24px)
        }

        .holiday-promo-dialog {
            padding: 42px 22px 34px
        }

        .holiday-promo-close {
            top: 14px;
            right: 14px
        }
    }
/* Language links share the existing navigation row. */
.language-switcher{display:inline-flex;align-items:center;gap:8px;margin-left:20px;font:700 12px/1 sans-serif;letter-spacing:.08em}
.language-switcher a{color:var(--ink);text-decoration:none;opacity:.62}
.language-switcher a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:4px}
.language-switcher span{opacity:.4}
@media(max-width:760px){.language-switcher{margin:14px 0 0}}
