.rich-content {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, .46)
}

.rich-content:before {
    content: '';
    position: absolute;
    width: 360px;
    height: 360px;
    right: -180px;
    top: -180px;
    border-radius: 50%;
    background: rgba(244, 217, 131, .38)
}

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

.rich-card {
    min-height: 280px;
    padding: 26px;
    border: 1px solid rgba(129, 94, 35, .18);
    border-radius: 20px;
    background: linear-gradient(150deg, rgba(255, 255, 255, .94), rgba(255, 243, 203, .72));
    display: flex;
    flex-direction: column;
    transition: transform .3s ease, box-shadow .3s ease
}

.rich-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 18px 36px rgba(74, 59, 29, .1)
}

.rich-card:nth-child(even) {
    margin-top: 28px
}

.rich-card p {
    color: var(--muted);
    flex: 1
}

.rich-number {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--ink);
    color: white;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 30px
}

.custom-hero {
    width: min(1320px, 94%);
    min-height: 650px;
    margin: 28px auto 0;
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    display: flex;
    align-items: flex-end
}

.custom-hero img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover
}

.custom-hero:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(244, 246, 246, .96) 0%, rgba(244, 246, 246, .78) 40%, rgba(244, 246, 246, .08) 72%)
}

.custom-hero-copy {
    position: relative;
    z-index: 1;
    max-width: 650px;
    padding: clamp(38px, 7vw, 90px)
}

.custom-hero-copy p {
    max-width: 560px;
    font-size: 18px;
    margin: 22px 0 30px
}

.service-showcase {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px
}

.service-showcase article {
    min-height: 390px;
    position: relative;
    overflow: hidden;
    border-radius: 24px
}

.service-showcase img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s ease
}

.service-showcase article:hover img {
    transform: scale(1.045)
}

.service-showcase article>div {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    padding: 22px;
    border-radius: 17px;
    background: rgba(255, 255, 255, .9);
    backdrop-filter: blur(12px)
}

.service-showcase span {
    font-size: 11px;
    font-weight: 800;
    color: var(--clay)
}

.service-showcase p {
    color: var(--muted);
    margin-bottom: 0
}

.project-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px
}

.project-steps>div {
    padding: 28px;
    background: rgba(255, 255, 255, .58);
    border-radius: 18px
}

.project-steps b {
    display: block;
    color: var(--clay);
    margin-bottom: 32px
}

.project-steps p {
    color: var(--muted)
}

.custom-options {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 70px;
    align-items: center
}

.option-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 12px
}

.option-cloud span {
    padding: 17px 22px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .7);
    font-family: Georgia, serif;
    font-size: 19px
}

.project-cta {
    width: min(1160px, 90%);
    margin: 0 auto 90px;
    padding: clamp(36px, 6vw, 72px);
    border-radius: 28px;
    background: linear-gradient(120deg, #2f302b, #8a6d34);
    color: white;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 40px
}

.project-cta>div {
    max-width: 720px
}

.project-cta .eyebrow {
    color: #f4d983
}

.project-cta .button {
    white-space: nowrap;
    background: white;
    color: var(--ink)
}

.footer-grid>div:nth-child(2) a {
    max-width: 290px
}

.footer-grid {
    grid-template-columns: 1.65fr .9fr .9fr 1.25fr
}

.footer-contact a {
    display: inline
}

.editorial-split {
    background: linear-gradient(135deg, rgba(236, 238, 236, .88), rgba(255, 239, 183, .5))
}

.editorial-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(36px, 7vw, 90px);
    align-items: center
}

.editorial-grid.reverse .editorial-image {
    order: 2
}

.editorial-image {
    min-height: 590px;
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 24px 55px rgba(59, 49, 29, .13)
}

.editorial-image img {
    width: 100%;
    height: 100%;
    min-height: 590px;
    object-fit: cover;
    transition: transform .7s ease
}

.editorial-image:hover img {
    transform: scale(1.035)
}

.editorial-copy p {
    color: var(--muted);
    font-size: 17px
}

.check-list {
    list-style: none;
    padding: 0;
    margin: 28px 0 34px
}

.check-list li {
    position: relative;
    padding: 13px 0 13px 34px;
    border-bottom: 1px solid rgba(66, 61, 48, .14)
}

.check-list li:before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--clay);
    font-weight: 800
}

.program-grid,
.group-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 36px
}

.program-grid article,
.group-grid article {
    padding: 32px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: rgba(255, 255, 255, .72)
}

.program-grid article span {
    display: block;
    margin-bottom: 38px;
    color: var(--clay);
    font-weight: 800
}

.program-grid p,
.group-grid p,
.wholesale-facts span {
    color: var(--muted)
}

.wholesale-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    margin-top: 28px;
    overflow: hidden;
    border-radius: 20px;
    background: rgba(255, 255, 255, .65)
}

.wholesale-facts div {
    padding: 28px;
    background: linear-gradient(150deg, #fff, #fff6d8)
}

.wholesale-facts strong,
.wholesale-facts span,
.gift-perks strong {
    display: block
}

.wholesale-facts strong {
    font-family: Georgia, serif;
    font-size: 21px;
    margin-bottom: 12px
}

.faq-panel {
    background: #f4f2eb
}

.faq-layout {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(38px, 8vw, 110px)
}

.faq-layout>div:first-child p {
    color: var(--muted);
    font-size: 17px
}

.details-stack details {
    padding: 22px 0;
    border-bottom: 1px solid var(--line)
}

.details-stack summary {
    cursor: pointer;
    font-family: Georgia, serif;
    font-size: 21px;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 24px
}

.details-stack summary:after {
    content: '+';
    color: var(--clay)
}

.details-stack details[open] summary:after {
    content: '−'
}

.details-stack p {
    color: var(--muted);
    padding-right: 48px
}

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

.moment-grid a {
    min-height: 470px;
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    color: white
}

.moment-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s ease
}

.moment-grid a:hover img {
    transform: scale(1.05)
}

.moment-grid a:after {
    content: '';
    position: absolute;
    inset: 35% 0 0;
    background: linear-gradient(transparent, rgba(24, 22, 16, .78))
}

.moment-grid span {
    position: absolute;
    z-index: 1;
    left: 26px;
    right: 26px;
    bottom: 26px
}

.moment-grid b {
    display: block;
    font-family: Georgia, serif;
    font-size: 26px;
    margin-bottom: 7px
}

.gift-feature {
    background: rgba(255, 248, 224, .64)
}

.gift-perks {
    margin: 28px 0 34px
}

.gift-perks>div {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 15px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line)
}

.gift-perks span {
    color: var(--clay);
    font-size: 12px;
    font-weight: 800
}

.gift-perks p {
    margin: 0
}

.gift-perks strong {
    color: var(--ink);
    margin-bottom: 3px
}

.group-grid {
    grid-template-columns: repeat(4, 1fr)
}

.group-grid article {
    min-height: 220px
}

.center-action {
    text-align: center;
    margin-top: 36px
}

.footer-contact {
    font-style: normal;
    line-height: 1.75
}

.footer-contact strong {
    display: block;
    color: var(--ink);
    margin-bottom: 6px
}

@media(max-width:900px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr
    }
    .rich-grid,
    .project-steps {
        grid-template-columns: repeat(2, 1fr)
    }

    .custom-options {
        grid-template-columns: 1fr;
        gap: 36px
    }

    .editorial-grid,
    .faq-layout {
        grid-template-columns: 1fr
    }

    .editorial-grid.reverse .editorial-image {
        order: 0
    }

    .program-grid,
    .moment-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .wholesale-facts,
    .group-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:760px) {
    .footer-grid {
        grid-template-columns: 1fr
    }
    .rich-grid,
    .service-showcase,
    .project-steps {
        grid-template-columns: 1fr
    }

    .rich-card:nth-child(even) {
        margin-top: 0
    }

    .custom-hero {
        min-height: 590px;
        align-items: end
    }

    .custom-hero:after {
        background: linear-gradient(0deg, rgba(244, 246, 246, .98) 0%, rgba(244, 246, 246, .8) 58%, rgba(244, 246, 246, .08) 100%)
    }

    .custom-hero-copy {
        padding: 32px 24px
    }

    .service-showcase article {
        min-height: 430px
    }

    .editorial-image,
    .editorial-image img {
        min-height: 430px
    }

    .program-grid,
    .moment-grid,
    .wholesale-facts,
    .group-grid {
        grid-template-columns: 1fr
    }

    .moment-grid a {
        min-height: 420px
    }

    .project-cta {
        align-items: flex-start;
        flex-direction: column
    }
}
