/* =========================================================
   PLAYFAIR DISPLAY
========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&display=swap');


/* =========================================================
   GLOBAL RESET
========================================================= */

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

a {
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}


/* =========================================================
   WEDDING NAVBAR
========================================================= */

.wedding-navbar {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    margin: 0;
    padding: 0;
    background: #fffaf7;
    border-bottom: 1px solid rgba(80, 55, 45, 0.12);
}

.wedding-navbar-container {
    width: min(1240px, calc(100% - 40px));
    min-height: 82px;
    margin: 0 auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}


/* =========================================================
   LOGO
========================================================= */

.wedding-navbar-logo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: #30241f;
}

.wedding-logo-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #c39575;
    border-radius: 50%;

    color: #c39575;

    font-family: "Playfair Display", serif;
    font-size: 15px;
    font-weight: 500;
}

.wedding-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.wedding-logo-text strong {
    color: #30241f;

    font-family: "Playfair Display", serif;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: 0.1px;
}

.wedding-logo-text small {
    margin-top: 5px;

    color: #92786a;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 500;

    letter-spacing: 1.4px;
    text-transform: uppercase;
}


/* =========================================================
   MAIN NAVIGATION
========================================================= */

.wedding-navbar-menu {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.wedding-navbar-list {
    display: flex;
    align-items: center;

    gap: 27px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.wedding-nav-item {
    position: relative;
}

.wedding-nav-link {
    position: relative;

    display: inline-flex;
    align-items: center;

    gap: 6px;

    min-height: 82px;
    padding: 0;

    color: #000;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 500;

    white-space: nowrap;

    transition: color 0.3s ease;
}

.wedding-nav-link::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 20px;

    width: 0;
    height: 1px;

    background: #b8896b;

    transition: width 0.3s ease;
}

.wedding-nav-link:hover {
    color: #b06f4e;
}

.wedding-nav-link:hover::after {
    width: 100%;
}

.wedding-nav-link.active {
    color: #b06f4e;
}

.wedding-nav-link.active::after {
    width: 100%;
}

.wedding-home-link i {
    font-size: 8px;

    transition: transform 0.3s ease;
}

.wedding-home-dropdown:hover .wedding-home-link i {
    transform: rotate(180deg);
}


/* =========================================================
   HOME DROPDOWN
========================================================= */

.wedding-home-dropdown-menu {
    position: absolute;

    top: calc(100% - 1px);
    left: 50%;

    width: 270px;

    padding: 9px;

    background: #fffaf7;

    border: 1px solid rgba(80, 55, 45, 0.12);

    box-shadow:
        0 20px 45px rgba(52, 35, 27, 0.13);

    opacity: 0;
    visibility: hidden;

    transform: translate(-50%, 12px);

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease,
        transform 0.3s ease;
}

.wedding-home-dropdown:hover .wedding-home-dropdown-menu {
    opacity: 1;
    visibility: visible;

    transform: translate(-50%, 0);
}

.wedding-home-dropdown-link {
    display: flex;
    align-items: center;

    gap: 13px;

    padding: 13px 12px;

    border-bottom:
        1px solid rgba(80, 55, 45, 0.08);

    color: #382b25;

    transition:
        background 0.3s ease,
        padding-left 0.3s ease;
}

.wedding-home-dropdown-link:last-child {
    border-bottom: none;
}

.wedding-home-dropdown-link:hover {
    padding-left: 17px;

    background: #f7eee9;
}



.wedding-dropdown-content {
    display: flex;
    flex-direction: column;

    gap: 4px;
}

.wedding-dropdown-content strong {
    color: #382b25;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 600;
}

.wedding-dropdown-content small {
    color: #8b7468;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 400;

    line-height: 1.4;
}


/* =========================================================
   NAVBAR ACTIONS
========================================================= */

.wedding-navbar-actions {
    display: flex;
    align-items: center;

    gap: 12px;

    flex: 0 0 auto;
}

.wedding-login-button {
    min-width: 85px;
    height: 42px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    color: #ffffff;

    background: #b8896b;

    border: 1px solid #b8896b;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 500;

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}

.wedding-login-button:hover {
    background: #956b52;
    border-color: #956b52;

    transform: translateY(-2px);
}

.wedding-login-button i {
    font-size: 12px;
}


/* =========================================================
   THEME CONTROLS
========================================================= */

.wedding-navbar-controls {
    display: flex;
    align-items: center;

    gap: 5px;
}

.wedding-theme-button {
    width: 34px;
    height: 34px;

    padding: 0;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #5c4940;

    background: transparent;

    border:
        1px solid rgba(80, 55, 45, 0.15);

    cursor: pointer;

    font-family: "Playfair Display", serif;

    transition:
        color 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease;
}

.wedding-theme-button:hover {
    color: #b06f4e;

    background: #f7eee9;

    border-color: #b8896b;
}

.wedding-theme-button i {
    font-size: 12px;
}


/* =========================================================
   MOBILE MENU BUTTON
========================================================= */

.wedding-mobile-menu-button {
    display: none;

    width: 40px;
    height: 40px;

    padding: 7px;

    background: transparent;

    border:
        1px solid rgba(80, 55, 45, 0.15);

    cursor: pointer;
}

.wedding-mobile-menu-button span {
    display: block;

    width: 100%;
    height: 1px;

    margin: 5px 0;

    background: #493a33;

    transition: 0.3s ease;
}


/* =========================================================
   MOBILE MENU OPEN
========================================================= */

.wedding-mobile-menu-open {
    display: flex !important;
}


/* =========================================================
   MOBILE MENU BUTTON ANIMATION
========================================================= */

.wedding-mobile-button-active span:nth-child(1) {
    transform:
        translateY(6px) rotate(45deg);
}

.wedding-mobile-button-active span:nth-child(2) {
    opacity: 0;
}

.wedding-mobile-button-active span:nth-child(3) {
    transform:
        translateY(-6px) rotate(-45deg);
}


/* =========================================================
   RESPONSIVE - 1200px
========================================================= */

@media (max-width: 1200px) {

    .wedding-navbar-container {
        width:
            min(1100px,
                calc(100% - 30px));
    }

    .wedding-navbar-list {
        gap: 18px;
    }

    .wedding-navbar-actions {
        gap: 8px;
    }
}


/* =========================================================
   RESPONSIVE - 992px
========================================================= */

@media (max-width: 992px) {

    .wedding-navbar-container {
        min-height: 74px;
    }

    .wedding-navbar-menu {
        position: absolute;

        top: 100%;
        left: 15px;
        right: 15px;

        display: none;

        padding: 12px;

        background: #fffaf7;

        border:
            1px solid rgba(80, 55, 45, 0.12);

        box-shadow:
            0 15px 35px rgba(52, 35, 27, 0.12);
    }

    .wedding-navbar-list {
        width: 100%;

        flex-direction: column;
        align-items: stretch;

        gap: 0;
    }

    .wedding-nav-item {
        width: 100%;
    }

    .wedding-nav-link {
        width: 100%;

        min-height: 48px;

        justify-content: space-between;

        padding: 0 12px;
    }

    .wedding-nav-link::after {
        display: none;
    }

    .wedding-home-dropdown-menu {
        position: static;

        width: 100%;

        margin-top: 0;
        padding: 0;

        box-shadow: none;

        border: none;

        opacity: 1;
        visibility: visible;

        transform: none;

        display: none;
    }

    .wedding-mobile-home-open .wedding-home-dropdown-menu {
        display: block;
    }

    .wedding-home-dropdown-link {
        padding-left: 24px;

        background:
            rgba(247, 238, 233, 0.55);
    }

    .wedding-home-dropdown-link:hover {
        padding-left: 29px;
    }

    .wedding-mobile-menu-button {
        display: block;
    }
}


/* =========================================================
   RESPONSIVE - 768px
========================================================= */

@media (max-width: 768px) {

    .wedding-navbar-container {
        width: calc(100% - 30px);

        gap: 12px;
    }

    .wedding-logo-icon {
        width: 40px;
        height: 40px;

        flex-basis: 40px;
    }

    .wedding-logo-text strong {
        font-size: 18px;
    }

    .wedding-logo-text small {
        display: none;
    }

    .wedding-login-button {
        min-width: 40px;

        width: 40px;
        height: 38px;

        padding: 0;
    }

    .wedding-login-button span {
        display: none;
    }
}


/* =========================================================
   RESPONSIVE - 576px
========================================================= */

@media (max-width: 576px) {

    .wedding-navbar-container {
        width: calc(100% - 20px);

        min-height: 68px;
    }

    .wedding-navbar-controls {
        gap: 3px;
    }

    .wedding-theme-button {
        width: 31px;
        height: 31px;
    }

    .wedding-mobile-menu-button {
        width: 36px;
        height: 36px;
    }

    .wedding-navbar-menu {
        left: 10px;
        right: 10px;
    }
}


/* =========================================================
   RESPONSIVE - 420px
========================================================= */

@media (max-width: 420px) {

    .wedding-navbar-controls {
        display: none;
    }

    .wedding-logo-text strong {
        font-size: 17px;
    }

    .wedding-logo-icon {
        width: 38px;
        height: 38px;

        flex-basis: 38px;
    }
}

/* =========================================================
   WEDDING FOOTER
========================================================= */

.wedding-footer {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;

    /* SAME AS HEADER LIGHT MODE */
    background: #fffaf7;

    color: #30241f;

    border-top: 1px solid rgba(80, 55, 45, 0.12);

    font-family: "Playfair Display", serif;
}


/* =========================================================
   FOOTER MAIN
========================================================= */

.wedding-footer-main {
    width: 100%;
    padding: 78px 0 68px;
}

.wedding-footer-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;

    grid-template-columns:
        1.35fr 0.8fr 0.9fr 1.1fr;

    gap: 65px;
}


/* =========================================================
   BRAND
========================================================= */

.wedding-footer-brand {
    position: relative;

    padding-right: 35px;
}

.wedding-footer-logo {
    display: inline-flex;
    align-items: center;

    gap: 13px;

    color: #30241f;
}

.wedding-footer-logo-icon {
    width: 48px;
    height: 48px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 48px;

    border: 1px solid #c39575;
    border-radius: 50%;

    color: #b8896b;

    font-size: 17px;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease;
}

.wedding-footer-logo:hover .wedding-footer-logo-icon {
    background: #f7eee9;
    border-color: #b8896b;
}

.wedding-footer-logo-name {
    color: #30241f;

    font-family: "Playfair Display", serif;
    font-size: 25px;
    font-weight: 700;

    letter-spacing: 0.2px;
}

.wedding-footer-description {
    max-width: 350px;

    margin: 25px 0 28px;

    color: #66544b;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 400;

    line-height: 1.9;
}

.wedding-footer-brand-note {
    display: flex;
    align-items: center;

    gap: 11px;
}

.wedding-footer-brand-note span {
    width: 32px;
    height: 1px;

    flex: 0 0 32px;

    background: #c39575;
}

.wedding-footer-brand-note p {
    margin: 0;

    color: #806d62;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 400;

    letter-spacing: 0.5px;
}


/* =========================================================
   FOOTER COLUMNS
========================================================= */

.wedding-footer-column,
.wedding-footer-contact {
    padding-top: 5px;
}

.wedding-footer-label {
    display: block;

    margin-bottom: 9px;

    color: #b06f4e;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.wedding-footer-column h3,
.wedding-footer-contact h3 {
    margin: 0 0 22px;

    color: #30241f;

    font-family: "Playfair Display", serif;
    font-size: 22px;
    font-weight: 600;

    line-height: 1.3;
}


/* =========================================================
   FOOTER LINKS
========================================================= */

.wedding-footer-column ul {
    display: flex;
    flex-direction: column;

    gap: 12px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.wedding-footer-column ul li {
    margin: 0;
    padding: 0;
}

.wedding-footer-column ul li a {
    position: relative;

    display: inline-block;

    color: #66544b;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 400;

    line-height: 1.5;

    transition:
        color 0.3s ease,
        padding-left 0.3s ease;
}

.wedding-footer-column ul li a::before {
    content: "";

    position: absolute;

    left: 0;
    top: 50%;

    width: 0;
    height: 1px;

    background: #b8896b;

    transform: translateY(-50%);

    transition: width 0.3s ease;
}

.wedding-footer-column ul li a:hover {
    padding-left: 16px;

    color: #b06f4e;
}

.wedding-footer-column ul li a:hover::before {
    width: 9px;
}


/* =========================================================
   CONTACT
========================================================= */

.wedding-footer-contact-item {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 15px;

    color: #66544b;

    text-decoration: none;
}

.wedding-footer-contact-item>span {
    width: 34px;
    height: 34px;

    flex: 0 0 34px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(195, 149, 117, 0.45);

    color: #b8896b;

    font-size: 11px;

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        color 0.3s ease;
}

.wedding-footer-contact-item strong {
    color: #5f4d44;

    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 400;

    line-height: 1.5;

    transition: color 0.3s ease;
}

a.wedding-footer-contact-item:hover strong {
    color: #b06f4e;
}

a.wedding-footer-contact-item:hover>span {
    background: #f7eee9;

    border-color: #b8896b;

    color: #b06f4e;
}


/* =========================================================
   SOCIALS
========================================================= */

.wedding-footer-socials {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-top: 23px;
}

.wedding-footer-socials a {
    width: 34px;
    height: 34px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #66544b;

    background: transparent;

    border: 1px solid rgba(195, 149, 117, 0.4);

    font-size: 11px;

    transition:
        color 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}

.wedding-footer-socials a:hover {
    color: #ffffff;

    background: #b8896b;

    border-color: #b8896b;

    transform: translateY(-3px);
}


/* =========================================================
   FOOTER STATEMENT
========================================================= */

.wedding-footer-statement {
    width: min(1240px, calc(100% - 40px));

    margin: 0 auto;

    display: flex;
    align-items: center;

    gap: 25px;
}

.wedding-footer-statement-line {
    flex: 1;

    height: 1px;

    background: rgba(80, 55, 45, 0.14);
}

.wedding-footer-statement-content {
    display: flex;
    align-items: center;

    gap: 15px;

    white-space: nowrap;
}

.wedding-footer-statement-content span {
    color: #806d62;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 500;

    letter-spacing: 1.7px;
}

.wedding-footer-statement-content i {
    color: #b8896b;

    font-size: 8px;
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.wedding-footer-bottom {
    width: 100%;

    margin-top: 52px;

    border-top:
        1px solid rgba(80, 55, 45, 0.12);
}

.wedding-footer-bottom-container {
    width: min(1240px, calc(100% - 40px));

    min-height: 70px;

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
}

.wedding-footer-bottom-container p,
.wedding-footer-bottom-container span {
    margin: 0;

    color: #806d62;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 400;

    line-height: 1.5;
}

.wedding-footer-bottom-container a {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    color: #b06f4e;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 500;

    transition: color 0.3s ease;
}

.wedding-footer-bottom-container a:hover {
    color: #956b52;
}

.wedding-footer-bottom-container a i {
    font-size: 9px;
}




/* =========================================================
   RESPONSIVE - 1100px
========================================================= */

@media (max-width: 1100px) {

    .wedding-footer-container {
        grid-template-columns:
            1.2fr 0.8fr 0.9fr;

        gap: 45px;
    }

    .wedding-footer-contact {
        grid-column: 2 / 4;
    }
}


/* =========================================================
   RESPONSIVE - 768px
========================================================= */

@media (max-width: 768px) {

    .wedding-footer-main {
        padding: 60px 0 50px;
    }

    .wedding-footer-container {
        width: calc(100% - 30px);

        grid-template-columns: 1fr 1fr;

        gap: 45px 30px;
    }

    .wedding-footer-brand {
        grid-column: 1 / -1;

        padding-right: 0;
    }

    .wedding-footer-contact {
        grid-column: auto;
    }

    .wedding-footer-statement {
        width: calc(100% - 30px);
    }

    .wedding-footer-bottom-container {
        width: calc(100% - 30px);

        flex-wrap: wrap;

        justify-content: center;

        padding: 18px 0;
    }
}


/* =========================================================
   RESPONSIVE - 576px
========================================================= */

@media (max-width: 576px) {

    .wedding-footer-main {
        padding: 50px 0 42px;
    }

    .wedding-footer-container {
        width: calc(100% - 24px);

        grid-template-columns: 1fr;

        gap: 38px;
    }

    .wedding-footer-brand,
    .wedding-footer-contact {
        grid-column: auto;
    }

    .wedding-footer-logo-name {
        font-size: 23px;
    }

    .wedding-footer-description {
        max-width: 100%;
    }

    .wedding-footer-statement {
        width: calc(100% - 24px);

        gap: 12px;
    }

    .wedding-footer-statement-content {
        gap: 8px;
    }

    .wedding-footer-statement-content span {
        font-size: 8px;

        letter-spacing: 1px;
    }

    .wedding-footer-statement-content i {
        font-size: 6px;
    }

    .wedding-footer-bottom {
        margin-top: 40px;
    }

    .wedding-footer-bottom-container {
        width: calc(100% - 24px);

        flex-direction: column;

        gap: 10px;

        text-align: center;
    }
}


/* =========================================================
   RESPONSIVE - 420px
========================================================= */

@media (max-width: 420px) {

    .wedding-footer-statement-content span:nth-of-type(2) {
        display: none;
    }

    .wedding-footer-statement-content i:nth-of-type(2) {
        display: none;
    }
}

/* =====================================================
   WEDDING EXPERIENCE SECTION
====================================================== */

.wedding-experience-section {
    position: relative;
    width: 100%;
    padding: 115px 0;
    background: #fffaf7;
    overflow: hidden;
    font-family: "Playfair Display", serif;
}


/* CONTAINER */

.wedding-experience-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.9fr 1.3fr;
    gap: 100px;

    align-items: center;
}


/* =====================================================
   INTRO
====================================================== */

.wedding-experience-intro {
    max-width: 470px;
    opacity: 0;
    transform: translateX(-45px);
    animation: weddingExperienceIntro 0.9s ease forwards;
}


.wedding-experience-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 22px;

    font-size: 11px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;

    color: #b06f4e;
}


.wedding-experience-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;

    background: #c39575;
}


.wedding-experience-intro h2 {
    margin: 0 0 25px;

    font-size: clamp(38px, 4vw, 56px);
    line-height: 1.12;
    font-weight: 600;

    color: #30241f;
}


.wedding-experience-intro h2 span {
    display: block;

    color: #b8896b;
    font-style: italic;
    font-weight: 500;
}


.wedding-experience-intro p {
    max-width: 420px;
    margin: 0 0 30px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;

    color: #66544b;
}


/* SERVICE LINK */

.wedding-experience-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    padding-bottom: 8px;

    text-decoration: none;

    font-size: 13px;
    font-weight: 600;

    color: #30241f;

    border-bottom: 1px solid #c39575;

    transition:
        color 0.3s ease,
        gap 0.3s ease;
}


.wedding-experience-link i {
    font-size: 11px;
}


.wedding-experience-link:hover {
    color: #b06f4e;
    gap: 17px;
}


/* =====================================================
   PROCESS
====================================================== */

.wedding-experience-process {
    position: relative;
}


.wedding-experience-process::before {
    content: "";

    position: absolute;
    top: 28px;
    bottom: 28px;
    left: 25px;

    width: 1px;

    background: rgba(195, 149, 117, 0.35);
}


/* STEP */

.wedding-experience-step {
    position: relative;

    display: grid;
    grid-template-columns: 52px 1fr 58px;
    align-items: center;

    gap: 25px;

    min-height: 155px;
    padding: 28px 30px 28px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.12);

    opacity: 0;
    transform: translateX(45px);

    animation: weddingExperienceStep 0.8s ease forwards;
}


.wedding-experience-step:nth-child(1) {
    animation-delay: 0.15s;
}

.wedding-experience-step:nth-child(2) {
    animation-delay: 0.3s;
}

.wedding-experience-step:nth-child(3) {
    animation-delay: 0.45s;
}


/* NUMBER */

.wedding-experience-step-number {
    position: relative;
    z-index: 2;

    width: 51px;
    height: 51px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #fffaf7;
    border: 1px solid #c39575;

    font-size: 12px;
    font-weight: 600;

    color: #b06f4e;
}


/* CONTENT */

.wedding-experience-step-content span {
    display: block;

    margin-bottom: 8px;

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;

    color: #b06f4e;
}


.wedding-experience-step-content h3 {
    margin: 0 0 10px;

    font-size: 23px;
    line-height: 1.25;
    font-weight: 600;

    color: #30241f;
}


.wedding-experience-step-content p {
    max-width: 520px;
    margin: 0;

    font-size: 13px;
    line-height: 1.8;
    font-weight: 400;

    color: #66544b;
}


/* ICON */

.wedding-experience-step-icon {
    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #f7eee9;

    color: #b8896b;

    font-size: 19px;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}


.wedding-experience-step:hover .wedding-experience-step-icon {
    background: #b8896b;
    color: #ffffff;
    transform: rotate(8deg);
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingExperienceIntro {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes weddingExperienceStep {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 1100px) {

    .wedding-experience-container {
        grid-template-columns: 1fr 1.25fr;
        gap: 55px;
    }

}


@media (max-width: 768px) {

    .wedding-experience-section {
        padding: 85px 0;
    }

    .wedding-experience-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .wedding-experience-intro {
        max-width: 650px;
    }

    .wedding-experience-intro h2 {
        font-size: 42px;
    }

}


@media (max-width: 576px) {

    .wedding-experience-section {
        padding: 70px 0;
    }

    .wedding-experience-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-experience-intro h2 {
        font-size: 36px;
    }

    .wedding-experience-step {
        grid-template-columns: 45px 1fr;
        gap: 18px;

        padding: 25px 0;
    }

    .wedding-experience-step-number {
        width: 45px;
        height: 45px;
    }

    .wedding-experience-step-icon {
        display: none;
    }

    .wedding-experience-process::before {
        left: 22px;
    }

}


@media (max-width: 420px) {

    .wedding-experience-intro h2 {
        font-size: 32px;
    }

    .wedding-experience-step-content h3 {
        font-size: 20px;
    }

}

/* =====================================================
   HOME HERO BANNER
====================================================== */

.wedding-home-hero {

    position: relative;
    width: 100%;
    min-height: calc(100vh - 82px);

    display: flex;
    align-items: center;

    overflow: hidden;

    background: #30241f;

    font-family: "Playfair Display", serif;
}


/* =====================================================
   BACKGROUND VIDEO
====================================================== */

.wedding-home-hero-video {

    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    overflow: hidden;

    z-index: 0;

    background: #30241f;

}


.wedding-home-hero-video video {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
    object-position: center;

    transform: scale(1.04);

    animation:
        weddingHeroVideo 1.6s ease forwards;

}


/* =====================================================
   OVERLAY
====================================================== */

.wedding-home-hero-overlay {

    position: absolute;
    inset: 0;

    z-index: 1;

    background:

        linear-gradient(90deg,

            rgba(35, 25, 20, 0.88) 0%,

            rgba(35, 25, 20, 0.72) 38%,

            rgba(35, 25, 20, 0.35) 68%,

            rgba(35, 25, 20, 0.18) 100%);

}


/* =====================================================
   CONTAINER
====================================================== */

.wedding-home-hero-container {

    position: relative;

    z-index: 2;

    width: min(1240px, calc(100% - 40px));

    min-height: calc(100vh - 82px);

    margin: 0 auto;

    display: flex;

    align-items: center;

    padding: 90px 0 100px;

}


/* =====================================================
   MAIN CONTENT
====================================================== */

.wedding-home-hero-content {

    width: min(700px, 65%);

    opacity: 0;

    transform: translateY(45px);

    animation:
        weddingHeroContentReveal 1s 0.25s ease forwards;

}


/* =====================================================
   KICKER
====================================================== */

.wedding-home-hero-kicker {

    display: flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 25px;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 3px;

    text-transform: uppercase;

    color: #e2c1aa;

}


.wedding-home-hero-kicker span {

    display: block;

    width: 34px;

    height: 1px;

    background: #c39575;

}


/* =====================================================
   HEADING
====================================================== */

.wedding-home-hero-content h1 {

    max-width: 720px;

    margin: 0 0 25px;

    font-size: clamp(48px, 6vw, 78px);

    line-height: 1.04;

    font-weight: 500;

    letter-spacing: -1.5px;

    color: #ffffff;

}


.wedding-home-hero-content h1 em {

    display: block;

    margin-top: 8px;

    font-weight: 400;

    font-style: italic;

    color: #dfb394;

}


/* =====================================================
   DESCRIPTION
====================================================== */

.wedding-home-hero-content p {

    max-width: 520px;

    margin: 0 0 35px;

    font-family: "Playfair Display", serif;

    font-size: 13px;

    line-height: 1.9;

    font-weight: 400;

    color: rgba(255, 255, 255, 0.78);

}


/* =====================================================
   ACTIONS
====================================================== */

.wedding-home-hero-actions {

    display: flex;

    align-items: center;

    gap: 28px;

}


/* PRIMARY */

.wedding-home-hero-primary {

    display: inline-flex;

    align-items: center;

    gap: 14px;

    min-height: 50px;

    padding: 0 25px;

    text-decoration: none;

    background: #b8896b;

    color: #ffffff;

    font-size: 12px;

    font-weight: 600;

    transition:
        background 0.3s ease,
        gap 0.3s ease,
        transform 0.3s ease;

}


.wedding-home-hero-primary i {

    font-size: 10px;

}


.wedding-home-hero-primary:hover {

    background: #956b52;

    gap: 19px;

    transform: translateY(-2px);

}


/* SECONDARY */

.wedding-home-hero-secondary {

    position: relative;

    padding-bottom: 7px;

    text-decoration: none;

    font-size: 12px;

    font-weight: 500;

    color: #ffffff;

    border-bottom: 1px solid rgba(255, 255, 255, 0.55);

    transition:
        color 0.3s ease,
        border-color 0.3s ease;

}


.wedding-home-hero-secondary:hover {

    color: #dfb394;

    border-color: #dfb394;

}


/* =====================================================
   RIGHT DETAIL
====================================================== */

.wedding-home-hero-detail {

    position: absolute;

    right: 0;

    bottom: 145px;

    width: 170px;

    display: flex;

    flex-direction: column;

    opacity: 0;

    transform: translateX(30px);

    animation:
        weddingHeroDetailReveal 0.9s 0.8s ease forwards;

}


.wedding-home-hero-detail-line {

    width: 42px;

    height: 1px;

    margin-bottom: 18px;

    background: #c39575;

}


.wedding-home-hero-detail span {

    margin-bottom: 13px;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 2px;

    color: #d7b69e;

}


.wedding-home-hero-detail strong {

    margin-bottom: 6px;

    font-size: 15px;

    font-weight: 400;

    color: #ffffff;

}


/* =====================================================
   SCROLL INDICATOR
====================================================== */

.wedding-home-hero-scroll {

    position: absolute;

    left: 0;

    bottom: 32px;

    display: flex;

    align-items: center;

    gap: 15px;

    opacity: 0;

    animation:
        weddingHeroScrollReveal 0.8s 1.1s ease forwards;

}


.wedding-home-hero-scroll span {

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 2px;

    color: rgba(255, 255, 255, 0.62);

}


.wedding-home-hero-scroll-line {

    width: 60px;

    height: 1px;

    background: rgba(255, 255, 255, 0.45);

}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingHeroVideo {

    from {

        opacity: 0;

        transform: scale(1.10);

    }

    to {

        opacity: 1;

        transform: scale(1.04);

    }

}


@keyframes weddingHeroContentReveal {

    from {

        opacity: 0;

        transform: translateY(45px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes weddingHeroDetailReveal {

    from {

        opacity: 0;

        transform: translateX(30px);

    }

    to {

        opacity: 1;

        transform: translateX(0);

    }

}


@keyframes weddingHeroScrollReveal {

    from {

        opacity: 0;

        transform: translateY(15px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


/* =====================================================
   TABLET
====================================================== */

@media (max-width: 992px) {

    .wedding-home-hero {

        min-height: 720px;

    }

    .wedding-home-hero-container {

        min-height: 720px;

    }

    .wedding-home-hero-content {

        width: 75%;

    }

    .wedding-home-hero-detail {

        right: 20px;

    }

}


/* =====================================================
   MOBILE
====================================================== */

@media (max-width: 768px) {

    .wedding-home-hero {

        min-height: 680px;

    }

    .wedding-home-hero-container {

        min-height: 680px;

        width: min(100% - 30px, 1240px);

        padding: 80px 0 90px;

    }


    .wedding-home-hero-overlay {

        background:

            linear-gradient(90deg,

                rgba(35, 25, 20, 0.88),

                rgba(35, 25, 20, 0.58));

    }


    .wedding-home-hero-content {

        width: 100%;

        max-width: 620px;

    }


    .wedding-home-hero-content h1 {

        font-size: clamp(42px, 10vw, 62px);

    }


    .wedding-home-hero-detail {

        display: none;

    }

}


/* =====================================================
   SMALL MOBILE
====================================================== */

@media (max-width: 576px) {

    .wedding-home-hero {

        min-height: 650px;

    }


    .wedding-home-hero-container {

        min-height: 650px;

        padding: 65px 0 80px;

    }


    .wedding-home-hero-kicker {

        font-size: 8px;

        letter-spacing: 2px;

    }


    .wedding-home-hero-kicker span {

        width: 25px;

    }


    .wedding-home-hero-content h1 {

        font-size: 42px;

        line-height: 1.08;

        letter-spacing: -0.5px;

    }


    .wedding-home-hero-content p {

        font-size: 13px;

        line-height: 1.8;

    }


    .wedding-home-hero-actions {

        flex-wrap: wrap;

        gap: 20px;

    }


    .wedding-home-hero-primary {

        min-height: 48px;

        padding: 0 20px;

    }


    .wedding-home-hero-scroll {

        bottom: 22px;

    }

}


@media (max-width: 420px) {

    .wedding-home-hero-content h1 {

        font-size: 37px;

    }


    .wedding-home-hero-content p {

        max-width: 100%;

    }

}



/* =====================================================
   WEDDING PHILOSOPHY SECTION
====================================================== */

.wedding-philosophy-section {
    position: relative;
    width: 100%;
    overflow: hidden;

    padding: 125px 0;

    background: #f8f1ed;

    font-family: "Playfair Display", serif;
}


/* =====================================================
   CONTAINER
====================================================== */

.wedding-philosophy-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.35fr 1.3fr 0.45fr;

    align-items: center;

    gap: 70px;
}


/* =====================================================
   LEFT VISUAL
====================================================== */

.wedding-philosophy-visual {
    position: relative;

    min-height: 380px;

    display: flex;
    align-items: center;
    justify-content: center;
}


.wedding-philosophy-number {
    position: absolute;

    top: 0;
    left: 0;

    font-size: 92px;
    line-height: 1;

    font-weight: 500;

    color: rgba(184, 137, 107, 0.18);
}


.wedding-philosophy-vertical-text {
    position: absolute;

    left: 2px;
    bottom: 12px;

    writing-mode: vertical-rl;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 3px;

    color: #92786a;
}


.wedding-philosophy-circle {
    width: 150px;
    height: 150px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(184, 137, 107, 0.45);
    border-radius: 50%;

    color: #b8896b;

    font-size: 30px;

    transform: rotate(-8deg);

    transition:
        transform 0.5s ease,
        background 0.5s ease;
}


.wedding-philosophy-circle::before {
    content: "";

    position: absolute;

    width: 185px;
    height: 185px;

    border: 1px dashed rgba(184, 137, 107, 0.28);

    border-radius: 50%;
}


.wedding-philosophy-circle:hover {
    transform: rotate(0deg) scale(1.04);
    background: rgba(255, 255, 255, 0.35);
}


/* =====================================================
   MAIN CONTENT
====================================================== */

.wedding-philosophy-content {
    max-width: 700px;

    opacity: 0;

    transform: translateY(45px);

    animation:
        weddingPhilosophyReveal 0.9s 0.15s ease forwards;
}


.wedding-philosophy-label {
    display: block;

    margin-bottom: 22px;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 3px;

    color: #b06f4e;
}


.wedding-philosophy-content h2 {
    margin: 0;

    max-width: 700px;

    font-size: clamp(42px, 5vw, 64px);
    line-height: 1.12;

    font-weight: 500;

    color: #30241f;
}


.wedding-philosophy-content h2 em {
    display: block;

    color: #b8896b;

    font-weight: 400;
    font-style: italic;
}


.wedding-philosophy-divider {
    width: 65px;
    height: 1px;

    margin: 30px 0;

    background: #c39575;
}


.wedding-philosophy-lead {
    max-width: 650px;

    margin: 0 0 18px;

    font-size: 17px;
    line-height: 1.75;

    font-weight: 500;

    color: #4d3d35;
}


.wedding-philosophy-text {
    max-width: 620px;

    margin: 0;

    font-size: 13px;
    line-height: 1.9;

    font-weight: 400;

    color: #6d5c53;
}


/* =====================================================
   SIGNATURE
====================================================== */

.wedding-philosophy-signature {
    display: flex;
    align-items: center;

    gap: 16px;

    margin-top: 35px;
}


.wedding-philosophy-signature-line {
    width: 42px;
    height: 1px;

    background: #b8896b;
}


.wedding-philosophy-signature div {
    display: flex;
    flex-direction: column;

    gap: 3px;
}


.wedding-philosophy-signature strong {
    font-size: 12px;
    font-weight: 600;

    color: #30241f;
}


.wedding-philosophy-signature small {
    font-family: "Playfair Display", serif;

    font-size: 11px;

    color: #92786a;
}


/* =====================================================
   QUOTE
====================================================== */

.wedding-philosophy-quote {
    align-self: end;

    padding: 28px 0 0 28px;

    border-left: 1px solid rgba(184, 137, 107, 0.35);

    opacity: 0;

    transform: translateX(30px);

    animation:
        weddingPhilosophyQuote 0.9s 0.45s ease forwards;
}


.wedding-philosophy-quote i {
    margin-bottom: 18px;

    font-size: 22px;

    color: #c39575;
}


.wedding-philosophy-quote p {
    margin: 0 0 18px;

    font-size: 19px;
    line-height: 1.55;

    font-style: italic;
    font-weight: 400;

    color: #4d3d35;
}


.wedding-philosophy-quote span {
    font-size: 9px;
    font-weight: 600;

    letter-spacing: 2px;

    color: #92786a;
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingPhilosophyReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingPhilosophyQuote {

    from {
        opacity: 0;
        transform: translateX(30px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =====================================================
   TABLET
====================================================== */

@media (max-width: 1100px) {

    .wedding-philosophy-container {
        grid-template-columns: 0.3fr 1.35fr;
        gap: 55px;
    }

    .wedding-philosophy-quote {
        display: none;
    }

}


/* =====================================================
   MOBILE
====================================================== */

@media (max-width: 768px) {

    .wedding-philosophy-section {
        padding: 90px 0;
    }

    .wedding-philosophy-container {
        width: min(100% - 30px, 1240px);

        grid-template-columns: 1fr;

        gap: 45px;
    }

    .wedding-philosophy-visual {
        min-height: 180px;

        justify-content: flex-start;
    }

    .wedding-philosophy-number {
        font-size: 70px;
    }

    .wedding-philosophy-circle {
        width: 115px;
        height: 115px;

        margin-left: 55px;

        font-size: 24px;
    }

    .wedding-philosophy-circle::before {
        width: 145px;
        height: 145px;
    }

    .wedding-philosophy-vertical-text {
        bottom: 0;
    }

    .wedding-philosophy-content h2 {
        font-size: 43px;
    }

    .wedding-philosophy-lead {
        font-size: 16px;
    }

}


@media (max-width: 480px) {

    .wedding-philosophy-section {
        padding: 75px 0;
    }

    .wedding-philosophy-content h2 {
        font-size: 36px;
    }

    .wedding-philosophy-lead {
        font-size: 15px;
    }

}


/* =====================================================
   SIGNATURE WEDDING STYLES
====================================================== */

.wedding-styles-section {
    position: relative;
    width: 100%;
    overflow: hidden;

    padding: 125px 0;

    background: #fffaf7;

    font-family: "Playfair Display", serif;
}


.wedding-styles-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 1.05fr 0.95fr;

    align-items: center;
    gap: 95px;
}


/* =====================================================
   IMAGE COMPOSITION
====================================================== */

.wedding-styles-gallery {
    position: relative;

    min-height: 620px;

    opacity: 0;
    transform: translateX(-45px);

    animation:
        weddingStylesGalleryReveal 1s 0.15s ease forwards;
}


.wedding-styles-main-image {
    position: absolute;

    top: 0;
    left: 55px;

    width: 70%;
    height: 525px;

    overflow: hidden;
}


.wedding-styles-main-image img,
.wedding-styles-small-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.7s ease;
}


.wedding-styles-main-image:hover img,
.wedding-styles-small-image:hover img {
    transform: scale(1.05);
}


/* SMALL IMAGE 1 */

.wedding-styles-small-one {
    position: absolute;

    left: 0;
    bottom: 35px;

    width: 190px;
    height: 245px;

    overflow: hidden;

    border: 8px solid #fffaf7;
}


/* SMALL IMAGE 2 */

.wedding-styles-small-two {
    position: absolute;

    right: 0;
    bottom: 0;

    width: 175px;
    height: 210px;

    overflow: hidden;

    border: 8px solid #fffaf7;
}


/* NUMBER */

.wedding-styles-gallery-number {
    position: absolute;

    top: 15px;
    right: 20px;

    font-size: 86px;
    line-height: 1;

    font-weight: 500;

    color: rgba(255, 255, 255, 0.8);

    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}


/* =====================================================
   CONTENT
====================================================== */

.wedding-styles-content {
    max-width: 530px;

    opacity: 0;
    transform: translateX(45px);

    animation:
        weddingStylesContentReveal 0.9s 0.35s ease forwards;
}


.wedding-styles-label {
    display: block;

    margin-bottom: 20px;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 3px;

    color: #b06f4e;
}


.wedding-styles-content h2 {
    margin: 0 0 25px;

    font-size: clamp(42px, 4.8vw, 61px);
    line-height: 1.08;

    font-weight: 500;

    color: #30241f;
}


.wedding-styles-content h2 em {
    display: block;

    color: #b8896b;

    font-style: italic;
    font-weight: 400;
}


.wedding-styles-intro {
    margin: 0 0 35px;

    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;

    color: #66544b;
}


/* =====================================================
   STYLE LIST
====================================================== */

.wedding-styles-list {
    border-top: 1px solid rgba(80, 55, 45, 0.13);
}


.wedding-styles-item {
    display: grid;
    grid-template-columns: 40px 1fr;

    gap: 15px;

    padding: 19px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.13);

    transition:
        padding-left 0.3s ease,
        background 0.3s ease;
}


.wedding-styles-item>span {
    padding-top: 2px;

    font-size: 10px;
    font-weight: 600;

    color: #b8896b;
}


.wedding-styles-item h3 {
    margin: 0 0 5px;

    font-size: 17px;
    font-weight: 600;

    color: #30241f;
}


.wedding-styles-item p {
    margin: 0;

    font-size: 12px;
    line-height: 1.65;
    font-weight: 400;

    color: #74635a;
}


.wedding-styles-item:hover {
    padding-left: 8px;
}


/* =====================================================
   BUTTON
====================================================== */

.wedding-styles-button {
    display: inline-flex;
    align-items: center;
    gap: 13px;

    margin-top: 32px;
    padding-bottom: 8px;

    text-decoration: none;

    font-size: 12px;
    font-weight: 600;

    color: #30241f;

    border-bottom: 1px solid #b8896b;

    transition:
        gap 0.3s ease,
        color 0.3s ease;
}


.wedding-styles-button:hover {
    gap: 18px;
    color: #b06f4e;
}


.wedding-styles-button i {
    font-size: 10px;
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingStylesGalleryReveal {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes weddingStylesContentReveal {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =====================================================
   TABLET
====================================================== */

@media (max-width: 1100px) {

    .wedding-styles-container {
        gap: 55px;
    }

    .wedding-styles-gallery {
        min-height: 550px;
    }

    .wedding-styles-main-image {
        height: 470px;
    }

    .wedding-styles-small-one {
        width: 155px;
        height: 205px;
    }

    .wedding-styles-small-two {
        width: 145px;
        height: 180px;
    }

}


/* =====================================================
   MOBILE
====================================================== */

@media (max-width: 768px) {

    .wedding-styles-section {
        padding: 90px 0;
    }

    .wedding-styles-container {
        width: min(100% - 30px, 1240px);

        grid-template-columns: 1fr;

        gap: 65px;
    }

    .wedding-styles-gallery {
        min-height: 470px;
    }

    .wedding-styles-main-image {
        left: 45px;

        width: calc(100% - 100px);
        height: 410px;
    }

    .wedding-styles-small-one {
        width: 140px;
        height: 185px;
    }

    .wedding-styles-small-two {
        width: 130px;
        height: 160px;
    }

    .wedding-styles-content h2 {
        font-size: 43px;
    }

}


@media (max-width: 480px) {

    .wedding-styles-section {
        padding: 75px 0;
    }

    .wedding-styles-gallery {
        min-height: 390px;
    }

    .wedding-styles-main-image {
        left: 30px;

        width: calc(100% - 65px);
        height: 340px;
    }

    .wedding-styles-small-one {
        width: 105px;
        height: 145px;

        border-width: 5px;
    }

    .wedding-styles-small-two {
        width: 100px;
        height: 125px;

        border-width: 5px;
    }

    .wedding-styles-gallery-number {
        right: 8px;
        font-size: 60px;
    }

    .wedding-styles-content h2 {
        font-size: 36px;
    }

}

/* =====================================================
   REAL WEDDING STORY SECTION
====================================================== */

.wedding-story-section {
    position: relative;
    width: 100%;
    overflow: hidden;

    padding: 125px 0;

    background: #f3eee9;

    font-family: "Playfair Display", serif;
}


.wedding-story-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 1.15fr 0.85fr;

    align-items: center;
    gap: 95px;
}


/* =====================================================
   IMAGE
====================================================== */

.wedding-story-image-wrap {
    position: relative;

    padding: 0 35px 35px 0;

    opacity: 0;
    transform: translateX(-45px);

    animation:
        weddingStoryImageReveal 0.9s 0.15s ease forwards;
}


.wedding-story-image {
    position: relative;

    width: 100%;
    height: 590px;

    overflow: hidden;
}


.wedding-story-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(180deg,
            transparent 55%,
            rgba(35, 25, 20, 0.38));
}


.wedding-story-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-story-image:hover img {
    transform: scale(1.04);
}


/* IMAGE BORDER */

.wedding-story-image-wrap::before {
    content: "";

    position: absolute;

    top: 28px;
    left: 28px;
    right: 0;
    bottom: 0;

    border: 1px solid #c39575;

    pointer-events: none;
}


/* CAPTION */

.wedding-story-image-caption {
    position: absolute;

    left: 25px;
    bottom: 58px;

    z-index: 2;

    display: flex;
    flex-direction: column;

    gap: 5px;
}


.wedding-story-image-caption span {
    font-size: 9px;
    font-weight: 600;

    letter-spacing: 2.5px;

    color: #f5e9e1;
}


.wedding-story-image-caption strong {
    font-size: 14px;
    font-weight: 500;

    color: #ffffff;
}


/* =====================================================
   CONTENT
====================================================== */

.wedding-story-content {
    max-width: 480px;

    opacity: 0;
    transform: translateX(45px);

    animation:
        weddingStoryContentReveal 0.9s 0.35s ease forwards;
}


.wedding-story-label {
    display: block;

    margin-bottom: 25px;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 3px;

    color: #b06f4e;
}


.wedding-story-quote-icon {
    margin-bottom: 18px;

    font-size: 24px;

    color: #c39575;
}


.wedding-story-content h2 {
    margin: 0 0 25px;

    font-size: clamp(43px, 5vw, 64px);
    line-height: 1.05;

    font-weight: 500;

    color: #30241f;
}


.wedding-story-content h2 em {
    display: block;

    color: #b8896b;

    font-style: italic;
    font-weight: 400;
}


.wedding-story-text {
    margin: 0;

    max-width: 440px;

    font-size: 14px;
    line-height: 2;

    font-weight: 400;

    color: #66544b;
}


/* =====================================================
   COUPLE
====================================================== */

.wedding-story-couple {
    display: flex;
    align-items: center;

    gap: 15px;

    margin-top: 32px;
}


.wedding-story-couple-line {
    width: 40px;
    height: 1px;

    background: #b8896b;
}


.wedding-story-couple div {
    display: flex;
    flex-direction: column;

    gap: 4px;
}


.wedding-story-couple strong {
    font-size: 13px;
    font-weight: 600;

    color: #30241f;
}


.wedding-story-couple span {
    font-size: 10px;

    color: #92786a;
}


/* =====================================================
   LINK
====================================================== */

.wedding-story-link {
    display: inline-flex;
    align-items: center;
    gap: 13px;

    margin-top: 34px;
    padding-bottom: 8px;

    text-decoration: none;

    font-size: 12px;
    font-weight: 600;

    color: #30241f;

    border-bottom: 1px solid #b8896b;

    transition:
        gap 0.3s ease,
        color 0.3s ease;
}


.wedding-story-link:hover {
    gap: 18px;
    color: #b06f4e;
}


.wedding-story-link i {
    font-size: 10px;
}


/* =====================================================
   ANIMATION
====================================================== */

@keyframes weddingStoryImageReveal {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes weddingStoryContentReveal {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 1100px) {

    .wedding-story-container {
        gap: 55px;
    }

    .wedding-story-image {
        height: 520px;
    }

}


@media (max-width: 768px) {

    .wedding-story-section {
        padding: 90px 0;
    }

    .wedding-story-container {
        width: min(100% - 30px, 1240px);

        grid-template-columns: 1fr;

        gap: 60px;
    }

    .wedding-story-image-wrap {
        padding-right: 25px;
        padding-bottom: 25px;
    }

    .wedding-story-image {
        height: 500px;
    }

    .wedding-story-content {
        max-width: 650px;
    }

    .wedding-story-content h2 {
        font-size: 46px;
    }

}


@media (max-width: 480px) {

    .wedding-story-section {
        padding: 75px 0;
    }

    .wedding-story-image-wrap {
        padding-right: 18px;
        padding-bottom: 18px;
    }

    .wedding-story-image-wrap::before {
        top: 18px;
        left: 18px;
    }

    .wedding-story-image {
        height: 420px;
    }

    .wedding-story-image-caption {
        left: 18px;
        bottom: 35px;
    }

    .wedding-story-content h2 {
        font-size: 38px;
    }

}

/* =========================================================
   WEDDING SERVICES MOSAIC
========================================================= */

.wedding-services-mosaic {
    position: relative;
    width: 100%;
    padding: 125px 0;
    background: #fffaf7;
    overflow: hidden;
    font-family: "Playfair Display", serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.wedding-services-mosaic-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;

    grid-template-columns:
        1fr 1.05fr 1fr;

    grid-template-rows:
        285px 220px;

    gap: 18px;
}


/* =========================================================
   IMAGE BLOCK
========================================================= */

.wedding-services-mosaic-image {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: #eee4de;
}


.wedding-services-mosaic-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform 0.7s ease,
        filter 0.7s ease;
}


.wedding-services-mosaic-image:hover img {
    transform: scale(1.06);
    filter: brightness(0.9);
}


/* =========================================================
   IMAGE POSITIONS
========================================================= */

.wedding-services-mosaic-image-one {
    grid-column: 1;
    grid-row: 1 / span 2;
}


.wedding-services-mosaic-center {
    grid-column: 2;
    grid-row: 1 / span 2;
}


.wedding-services-mosaic-image-two {
    grid-column: 3;
    grid-row: 1;
}


.wedding-services-mosaic-image-three {
    grid-column: 3;
    grid-row: 2;
}


.wedding-services-mosaic-image-four {
    display: none;
}


/* =========================================================
   IMAGE OVERLAY
========================================================= */

.wedding-services-mosaic-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(to top,
            rgba(25, 17, 13, 0.72),
            rgba(25, 17, 13, 0.02) 55%);

    pointer-events: none;
}


/* =========================================================
   IMAGE LABEL
========================================================= */

.wedding-services-mosaic-image-label {
    position: absolute;

    left: 24px;
    right: 24px;
    bottom: 20px;

    z-index: 2;

    display: flex;
    align-items: center;
    gap: 12px;

    color: #ffffff;
}


.wedding-services-mosaic-image-label span {
    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 500;

    opacity: 0.72;
}


.wedding-services-mosaic-image-label strong {
    font-family: "Playfair Display", serif;
    font-size: 19px;
    font-weight: 600;

    letter-spacing: 0.2px;
}


/* =========================================================
   CENTER CONTENT
========================================================= */

.wedding-services-mosaic-center {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 42px 42px;

    text-align: center;

    background: #f3eee9;

    border: 1px solid rgba(80, 55, 45, 0.08);

    animation: weddingServicesMosaicCenterReveal 0.9s ease both;
}


.wedding-services-mosaic-eyebrow {
    display: block;

    margin-bottom: 18px;

    color: #b06f4e;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;

    letter-spacing: 2.2px;
}


/* =========================================================
   ICON
========================================================= */

.wedding-services-mosaic-icon {
    width: 42px;
    height: 42px;

    margin-bottom: 17px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #c39575;
    border-radius: 50%;

    color: #b8896b;

    font-size: 14px;
}


.wedding-services-mosaic-center h2 {
    max-width: 390px;

    margin: 0 0 18px;

    color: #30241f;

    font-size: clamp(28px, 3vw, 39px);
    font-weight: 600;

    line-height: 1.12;
}


.wedding-services-mosaic-center h2 em {
    display: block;

    color: #b06f4e;

    font-style: italic;
    font-weight: 500;
}


.wedding-services-mosaic-center p {
    max-width: 365px;

    margin: 0 0 25px;

    color: #66544b;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 400;

    line-height: 1.8;
}


/* =========================================================
   BUTTON
========================================================= */

.wedding-services-mosaic-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 11px 20px;

    color: #ffffff;
    background: #b8896b;

    text-decoration: none;

    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 500;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}


.wedding-services-mosaic-button i {
    font-size: 10px;

    transition: transform 0.3s ease;
}


.wedding-services-mosaic-button:hover {
    background: #956b52;
    transform: translateY(-2px);
}


.wedding-services-mosaic-button:hover i {
    transform: translateX(4px);
}


/* =========================================================
   ENTRANCE ANIMATIONS
========================================================= */

.wedding-services-mosaic-image-one {
    animation: weddingServicesMosaicImageLeft 0.9s ease both;
}


.wedding-services-mosaic-image-two {
    animation: weddingServicesMosaicImageRight 0.9s ease 0.12s both;
}


.wedding-services-mosaic-image-three {
    animation: weddingServicesMosaicImageBottom 0.9s ease 0.2s both;
}


@keyframes weddingServicesMosaicImageLeft {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingServicesMosaicCenterReveal {

    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes weddingServicesMosaicImageRight {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingServicesMosaicImageBottom {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-services-mosaic {
        padding: 100px 0;
    }


    .wedding-services-mosaic-container {
        grid-template-columns: 1fr 1fr;

        grid-template-rows:
            310px 280px 220px;
    }


    .wedding-services-mosaic-image-one {
        grid-column: 1;
        grid-row: 1 / span 2;
    }


    .wedding-services-mosaic-center {
        grid-column: 2;
        grid-row: 1 / span 2;

        padding: 32px 28px;
    }


    .wedding-services-mosaic-image-two {
        grid-column: 1;
        grid-row: 3;
    }


    .wedding-services-mosaic-image-three {
        grid-column: 2;
        grid-row: 3;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-services-mosaic {
        padding: 80px 0;
    }


    .wedding-services-mosaic-container {
        width: min(100% - 30px, 600px);

        display: grid;

        grid-template-columns: 1fr;

        grid-template-rows: auto;

        gap: 14px;
    }


    .wedding-services-mosaic-image-one,
    .wedding-services-mosaic-center,
    .wedding-services-mosaic-image-two,
    .wedding-services-mosaic-image-three {
        grid-column: auto;
        grid-row: auto;
    }


    .wedding-services-mosaic-image-one {
        height: 390px;
    }


    .wedding-services-mosaic-center {
        min-height: 390px;

        padding: 40px 25px;
    }


    .wedding-services-mosaic-image-two,
    .wedding-services-mosaic-image-three {
        height: 230px;
    }

}


@media (max-width: 480px) {

    .wedding-services-mosaic {
        padding: 65px 0;
    }


    .wedding-services-mosaic-container {
        width: calc(100% - 30px);
    }


    .wedding-services-mosaic-image-one {
        height: 320px;
    }


    .wedding-services-mosaic-center {
        min-height: 360px;
        padding: 32px 20px;
    }


    .wedding-services-mosaic-center h2 {
        font-size: 29px;
    }


    .wedding-services-mosaic-center p {
        font-size: 13px;
        line-height: 1.7;
    }


    .wedding-services-mosaic-image-two,
    .wedding-services-mosaic-image-three {
        height: 200px;
    }

}

/* =========================================================
   WEDDING EXPERIENCE JOURNEY
========================================================= */

.wedding-journey-section {
    position: relative;
    width: 100%;
    padding: 125px 0;
    overflow: hidden;

    background: #f3eee9;

    font-family: "Playfair Display", serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.wedding-journey-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-journey-intro {
    max-width: 650px;
    margin-bottom: 65px;

    animation: weddingJourneyIntroReveal 0.9s ease both;
}


.wedding-journey-kicker {
    display: block;
    margin-bottom: 18px;

    color: #b06f4e;

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 2.2px;
}


.wedding-journey-intro h2 {
    margin: 0 0 20px;

    color: #30241f;

    font-size: clamp(34px, 4vw, 52px);
    font-weight: 600;

    line-height: 1.08;
}


.wedding-journey-intro h2 em {
    display: block;

    color: #b06f4e;

    font-style: italic;
    font-weight: 500;
}


.wedding-journey-intro p {
    max-width: 560px;
    margin: 0;

    color: #66544b;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.85;
}


/* =========================================================
   VISUAL
========================================================= */

.wedding-journey-visual {
    position: relative;

    display: grid;
    grid-template-columns: 1fr;

    margin-bottom: 72px;

    animation: weddingJourneyImageReveal 1s ease 0.12s both;
}


.wedding-journey-image {
    position: relative;

    width: 100%;
    height: 430px;

    overflow: hidden;
}


.wedding-journey-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(90deg,
            rgba(28, 19, 15, 0.5),
            transparent 55%);

    pointer-events: none;
}


.wedding-journey-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-journey-image:hover img {
    transform: scale(1.04);
}


/* =========================================================
   IMAGE NOTE
========================================================= */

.wedding-journey-image-note {
    position: absolute;

    left: 35px;
    bottom: 32px;

    z-index: 2;

    max-width: 340px;

    color: #ffffff;
}


.wedding-journey-image-note span {
    display: block;

    margin-bottom: 8px;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 2px;

    opacity: 0.8;
}


.wedding-journey-image-note strong {
    display: block;

    font-size: 22px;
    font-weight: 500;

    line-height: 1.3;
}


/* =========================================================
   TIMELINE
========================================================= */

.wedding-journey-timeline {
    position: relative;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    border-top: 1px solid rgba(80, 55, 45, 0.18);

    animation: weddingJourneyTimelineReveal 0.9s ease 0.25s both;
}


.wedding-journey-timeline::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 0;
    width: 25%;

    height: 2px;

    background: #b8896b;
}


.wedding-journey-step {
    position: relative;

    min-height: 245px;

    padding: 32px 28px 20px;

    border-right: 1px solid rgba(80, 55, 45, 0.14);

    transition:
        background 0.35s ease,
        transform 0.35s ease;
}


.wedding-journey-step:last-child {
    border-right: 0;
}


.wedding-journey-step:hover {
    background: rgba(255, 250, 247, 0.55);

    transform: translateY(-4px);
}


.wedding-journey-step-number {
    margin-bottom: 25px;

    color: #b8896b;

    font-size: 14px;
    font-weight: 600;
}


.wedding-journey-step-content span {
    display: block;

    margin-bottom: 9px;

    color: #b06f4e;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1.8px;
}


.wedding-journey-step-content h3 {
    margin: 0 0 12px;

    color: #30241f;

    font-size: 21px;
    font-weight: 600;

    line-height: 1.25;
}


.wedding-journey-step-content p {
    margin: 0;

    color: #66544b;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.75;
}


/* =========================================================
   STATEMENT
========================================================= */

.wedding-journey-statement {
    display: flex;
    align-items: center;
    gap: 24px;

    margin-top: 65px;

    animation: weddingJourneyStatementReveal 0.8s ease 0.4s both;
}


.wedding-journey-statement-line {
    flex: 1;

    height: 1px;

    background: rgba(80, 55, 45, 0.18);
}


.wedding-journey-statement p {
    margin: 0;

    color: #806d62;

    font-size: 13px;
    font-weight: 400;

    text-align: center;
}


.wedding-journey-statement strong {
    color: #30241f;
    font-weight: 600;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingJourneyIntroReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes weddingJourneyImageReveal {

    from {
        opacity: 0;
        transform: scale(0.97);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}


@keyframes weddingJourneyTimelineReveal {

    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes weddingJourneyStatementReveal {

    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-journey-section {
        padding: 100px 0;
    }


    .wedding-journey-timeline {
        grid-template-columns: repeat(2, 1fr);
    }


    .wedding-journey-step {
        border-bottom: 1px solid rgba(80, 55, 45, 0.14);
    }


    .wedding-journey-step:nth-child(2) {
        border-right: 0;
    }


    .wedding-journey-step:nth-child(3) {
        border-bottom: 0;
    }


    .wedding-journey-step:nth-child(4) {
        border-bottom: 0;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-journey-section {
        padding: 80px 0;
    }


    .wedding-journey-container {
        width: calc(100% - 30px);
    }


    .wedding-journey-intro {
        margin-bottom: 45px;
    }


    .wedding-journey-intro h2 {
        font-size: 36px;
    }


    .wedding-journey-image {
        height: 350px;
    }


    .wedding-journey-image-note {
        left: 25px;
        bottom: 25px;
        right: 25px;
    }


    .wedding-journey-image-note strong {
        font-size: 20px;
    }


    .wedding-journey-timeline {
        grid-template-columns: 1fr;
    }


    .wedding-journey-step,
    .wedding-journey-step:nth-child(2),
    .wedding-journey-step:nth-child(3) {
        border-right: 0;
        border-bottom: 1px solid rgba(80, 55, 45, 0.14);
    }


    .wedding-journey-step:last-child {
        border-bottom: 0;
    }


    .wedding-journey-statement {
        gap: 14px;
    }

}


@media (max-width: 480px) {

    .wedding-journey-section {
        padding: 65px 0;
    }


    .wedding-journey-intro h2 {
        font-size: 31px;
    }


    .wedding-journey-image {
        height: 290px;
    }


    .wedding-journey-step {
        min-height: auto;
        padding: 28px 20px;
    }


    .wedding-journey-statement-line {
        display: none;
    }

}

/* =========================================================
   WEDDING MOMENTS GALLERY
========================================================= */

.wedding-moments-section {
    position: relative;
    width: 100%;
    padding: 125px 0;
    overflow: hidden;

    background: #fffaf7;

    font-family: "Playfair Display", serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.wedding-moments-container {
    position: relative;

    width: min(1240px, calc(100% - 40px));
    min-height: 650px;

    margin: 0 auto;

    display: grid;

    grid-template-columns: 0.85fr 1.25fr 0.7fr;

    gap: 28px;

    align-items: center;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-moments-intro {
    position: relative;

    padding: 45px 10px 45px 0;

    animation: weddingMomentsIntroReveal 0.9s ease both;
}


.wedding-moments-number {
    position: absolute;

    top: -15px;
    left: 0;

    color: rgba(184, 137, 107, 0.18);

    font-size: 100px;
    font-weight: 500;

    line-height: 1;
}


.wedding-moments-label {
    position: relative;
    z-index: 1;

    display: block;

    margin-bottom: 18px;

    color: #b06f4e;

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 2px;
}


.wedding-moments-intro h2 {
    position: relative;
    z-index: 1;

    margin: 0 0 22px;

    color: #30241f;

    font-size: clamp(31px, 3.2vw, 44px);
    font-weight: 600;

    line-height: 1.12;
}


.wedding-moments-intro h2 em {
    display: block;

    color: #b06f4e;

    font-style: italic;
    font-weight: 500;
}


.wedding-moments-intro p {
    max-width: 350px;

    margin: 0 0 28px;

    color: #66544b;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.85;
}


/* =========================================================
   LINK
========================================================= */

.wedding-moments-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    color: #30241f;

    text-decoration: none;

    font-size: 12px;
    font-weight: 600;

    border-bottom: 1px solid #b8896b;

    padding-bottom: 7px;

    transition:
        color 0.3s ease,
        gap 0.3s ease;
}


.wedding-moments-link i {
    color: #b8896b;
    font-size: 10px;
}


.wedding-moments-link:hover {
    color: #b06f4e;
    gap: 15px;
}


/* =========================================================
   MAIN IMAGE
========================================================= */

.wedding-moments-main-image {
    position: relative;

    height: 590px;

    overflow: hidden;

    animation: weddingMomentsMainReveal 1s ease 0.12s both;
}


.wedding-moments-main-image::before {
    content: "";

    position: absolute;

    inset: 14px;

    z-index: 1;

    border: 1px solid rgba(255, 255, 255, 0.55);

    pointer-events: none;
}


.wedding-moments-main-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-moments-main-image:hover img {
    transform: scale(1.045);
}


/* =========================================================
   MAIN CAPTION
========================================================= */

.wedding-moments-main-caption {
    position: absolute;

    left: 32px;
    bottom: 30px;

    z-index: 2;

    color: #ffffff;
}


.wedding-moments-main-caption span {
    display: block;

    margin-bottom: 6px;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 2px;

    opacity: 0.8;
}


.wedding-moments-main-caption strong {
    display: block;

    font-size: 20px;
    font-weight: 500;
}


/* =========================================================
   SIDE IMAGES
========================================================= */

.wedding-moments-side {
    display: flex;
    flex-direction: column;

    gap: 24px;

    animation: weddingMomentsSideReveal 0.9s ease 0.22s both;
}


.wedding-moments-small-image {
    position: relative;

    width: 100%;

    overflow: hidden;

    background: #eee4de;
}


.wedding-moments-small-top {
    height: 275px;
}


.wedding-moments-small-bottom {
    height: 235px;
}


.wedding-moments-small-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.7s ease;
}


.wedding-moments-small-image:hover img {
    transform: scale(1.06);
}


.wedding-moments-small-image::after {
    content: "";

    position: absolute;

    inset: 0;

    background: linear-gradient(to top,
            rgba(25, 17, 13, 0.62),
            transparent 55%);
}


.wedding-moments-small-image span {
    position: absolute;

    left: 18px;
    bottom: 17px;

    z-index: 2;

    color: #ffffff;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 1.7px;
}


/* =========================================================
   QUOTE
========================================================= */

.wedding-moments-quote {
    position: absolute;

    left: 29%;
    bottom: -8px;

    width: 230px;

    padding: 20px 24px;

    background: #f3eee9;

    border-left: 3px solid #b8896b;

    z-index: 4;

    animation: weddingMomentsQuoteReveal 0.8s ease 0.4s both;
}


.wedding-moments-quote i {
    display: block;

    margin-bottom: 9px;

    color: #b8896b;

    font-size: 14px;
}


.wedding-moments-quote p {
    margin: 0;

    color: #66544b;

    font-size: 13px;
    font-weight: 500;

    font-style: italic;

    line-height: 1.55;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingMomentsIntroReveal {

    from {
        opacity: 0;
        transform: translateX(-40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingMomentsMainReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes weddingMomentsSideReveal {

    from {
        opacity: 0;
        transform: translateX(40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingMomentsQuoteReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-moments-section {
        padding: 100px 0;
    }


    .wedding-moments-container {
        grid-template-columns: 0.9fr 1.1fr;

        min-height: auto;
    }


    .wedding-moments-intro {
        grid-column: 1;
        grid-row: 1;
    }


    .wedding-moments-main-image {
        grid-column: 2;
        grid-row: 1;

        height: 520px;
    }


    .wedding-moments-side {
        grid-column: 1 / span 2;
        grid-row: 2;

        display: grid;
        grid-template-columns: 1fr 1fr;
    }


    .wedding-moments-small-top,
    .wedding-moments-small-bottom {
        height: 250px;
    }


    .wedding-moments-quote {
        left: auto;
        right: 4%;
        bottom: 215px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-moments-section {
        padding: 80px 0;
    }


    .wedding-moments-container {
        width: calc(100% - 30px);

        display: flex;
        flex-direction: column;

        gap: 22px;
    }


    .wedding-moments-intro {
        width: 100%;

        padding: 35px 0 15px;
    }


    .wedding-moments-number {
        font-size: 80px;
    }


    .wedding-moments-main-image {
        width: 100%;
        height: 430px;
    }


    .wedding-moments-side {
        width: 100%;

        display: grid;
        grid-template-columns: 1fr 1fr;

        gap: 14px;
    }


    .wedding-moments-small-top,
    .wedding-moments-small-bottom {
        height: 210px;
    }


    .wedding-moments-quote {
        position: relative;

        left: auto;
        right: auto;
        bottom: auto;

        width: calc(100% - 30px);

        margin: -55px auto 0;
    }

}


@media (max-width: 480px) {

    .wedding-moments-section {
        padding: 65px 0;
    }


    .wedding-moments-intro h2 {
        font-size: 30px;
    }


    .wedding-moments-main-image {
        height: 350px;
    }


    .wedding-moments-main-caption {
        left: 24px;
        bottom: 24px;
    }


    .wedding-moments-side {
        grid-template-columns: 1fr;
    }


    .wedding-moments-small-top,
    .wedding-moments-small-bottom {
        height: 220px;
    }

}

/* =========================================================
   SIGNATURE WEDDING PACKAGES
========================================================= */

.wedding-packages-preview {
    position: relative;
    width: 100%;
    padding: 125px 0;
    overflow: hidden;

    background: #f8f1ed;

    font-family: "Playfair Display", serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.wedding-packages-preview-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.9fr 1.1fr;

    gap: 85px;

    align-items: center;
}


/* =========================================================
   VISUAL
========================================================= */

.wedding-packages-preview-visual {
    position: relative;

    min-height: 650px;

    animation: weddingPackagesVisualReveal 0.95s ease both;
}


.wedding-packages-preview-image {
    position: absolute;

    top: 0;
    left: 0;

    width: calc(100% - 35px);
    height: 590px;

    overflow: hidden;

    background: #e7ddd7;
}


.wedding-packages-preview-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(to top,
            rgba(30, 20, 16, 0.48),
            transparent 52%);
}


.wedding-packages-preview-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-packages-preview-image:hover img {
    transform: scale(1.05);
}


/* =========================================================
   IMAGE BORDER
========================================================= */

.wedding-packages-preview-image::before {
    content: "";

    position: absolute;

    top: 15px;
    left: 15px;
    right: 15px;
    bottom: 15px;

    z-index: 2;

    border: 1px solid rgba(255, 255, 255, 0.5);

    pointer-events: none;
}


/* =========================================================
   BADGE
========================================================= */

.wedding-packages-preview-badge {
    position: absolute;

    right: 0;
    bottom: 45px;

    z-index: 4;

    width: 190px;

    padding: 25px 24px;

    background: #fffaf7;

    border: 1px solid rgba(80, 55, 45, 0.1);

    box-shadow: 0 18px 45px rgba(50, 35, 28, 0.08);
}


.wedding-packages-preview-badge span {
    display: block;

    margin-bottom: 8px;

    color: #b06f4e;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 1.7px;
}


.wedding-packages-preview-badge strong {
    display: block;

    color: #30241f;

    font-size: 22px;
    font-weight: 500;

    line-height: 1.25;
}


/* =========================================================
   NUMBER
========================================================= */

.wedding-packages-preview-number {
    position: absolute;

    right: 8px;
    top: 8px;

    z-index: 5;

    color: rgba(184, 137, 107, 0.2);

    font-size: 82px;
    font-weight: 500;

    line-height: 1;
}


/* =========================================================
   CONTENT
========================================================= */

.wedding-packages-preview-content {
    animation: weddingPackagesContentReveal 0.9s ease 0.15s both;
}


.wedding-packages-preview-label {
    display: block;

    margin-bottom: 17px;

    color: #b06f4e;

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 2.2px;
}


.wedding-packages-preview-content h2 {
    max-width: 600px;

    margin: 0 0 20px;

    color: #30241f;

    font-size: clamp(34px, 4vw, 49px);
    font-weight: 600;

    line-height: 1.08;
}


.wedding-packages-preview-content h2 em {
    display: block;

    color: #b06f4e;

    font-style: italic;
    font-weight: 500;
}


.wedding-packages-preview-intro {
    max-width: 570px;

    margin: 0 0 35px;

    color: #66544b;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.85;
}


/* =========================================================
   PACKAGE ROW
========================================================= */

.wedding-package-row {
    position: relative;

    display: grid;
    grid-template-columns: 45px 1fr 20px;

    gap: 18px;

    align-items: center;

    padding: 22px 0;

    border-top: 1px solid rgba(80, 55, 45, 0.15);

    transition:
        padding 0.3s ease,
        background 0.3s ease;
}


.wedding-package-row:last-of-type {
    border-bottom: 1px solid rgba(80, 55, 45, 0.15);
}


.wedding-package-row:hover {
    padding-left: 12px;
    padding-right: 12px;

    background: rgba(255, 250, 247, 0.65);
}


.wedding-package-row-number {
    align-self: flex-start;

    padding-top: 3px;

    color: #b8896b;

    font-size: 12px;
    font-weight: 600;
}


.wedding-package-row-heading {
    display: flex;
    align-items: baseline;
    gap: 13px;

    margin-bottom: 6px;
}


.wedding-package-row-heading h3 {
    margin: 0;

    color: #30241f;

    font-size: 21px;
    font-weight: 600;
}


.wedding-package-row-heading span {
    color: #92786a;

    font-size: 10px;
    font-weight: 400;
}


.wedding-package-row-content p {
    max-width: 480px;

    margin: 0;

    color: #66544b;

    font-size: 12px;
    font-weight: 400;

    line-height: 1.65;
}


.wedding-package-row>i {
    color: #b8896b;

    font-size: 11px;

    transition: transform 0.3s ease;
}


.wedding-package-row:hover>i {
    transform: translateX(5px);
}


/* =========================================================
   FEATURED PACKAGE
========================================================= */

.wedding-package-row-featured {
    padding-right: 90px;
}


.wedding-package-row-featured::before {
    content: "";

    position: absolute;

    left: 0;
    top: 16px;
    bottom: 16px;

    width: 2px;

    background: #b8896b;
}


.wedding-package-row-tag {
    position: absolute;

    right: 0;
    top: 23px;

    padding: 5px 8px;

    color: #b06f4e;

    border: 1px solid rgba(176, 111, 78, 0.28);

    font-size: 8px;
    font-weight: 600;

    letter-spacing: 1px;
}


/* =========================================================
   BUTTON
========================================================= */

.wedding-packages-preview-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-top: 30px;

    padding: 12px 21px;

    color: #ffffff;
    background: #b8896b;

    text-decoration: none;

    font-size: 12px;
    font-weight: 500;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}


.wedding-packages-preview-button:hover {
    background: #956b52;
    transform: translateY(-2px);
}


.wedding-packages-preview-button i {
    font-size: 10px;

    transition: transform 0.3s ease;
}


.wedding-packages-preview-button:hover i {
    transform: translateX(4px);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingPackagesVisualReveal {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingPackagesContentReveal {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-packages-preview {
        padding: 100px 0;
    }

    .wedding-packages-preview-container {
        grid-template-columns: 0.85fr 1.15fr;
        gap: 45px;
    }

    .wedding-packages-preview-visual {
        min-height: 570px;
    }

    .wedding-packages-preview-image {
        height: 520px;
    }

    .wedding-packages-preview-badge {
        width: 165px;
        padding: 20px;
    }

    .wedding-packages-preview-badge strong {
        font-size: 19px;
    }

    .wedding-package-row-heading {
        display: block;
    }

    .wedding-package-row-heading span {
        display: block;
        margin-top: 4px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-packages-preview {
        padding: 80px 0;
    }

    .wedding-packages-preview-container {
        width: calc(100% - 30px);

        grid-template-columns: 1fr;

        gap: 55px;
    }

    .wedding-packages-preview-visual {
        min-height: 450px;
    }

    .wedding-packages-preview-image {
        width: calc(100% - 25px);
        height: 410px;
    }

    .wedding-packages-preview-badge {
        right: 0;
        bottom: 10px;
    }

    .wedding-packages-preview-number {
        right: 0;
    }

    .wedding-packages-preview-content h2 {
        font-size: 36px;
    }

    .wedding-package-row {
        grid-template-columns: 38px 1fr 15px;
        gap: 12px;
    }

    .wedding-package-row-featured {
        padding-right: 0;
        padding-top: 55px;
    }

    .wedding-package-row-tag {
        top: 15px;
        right: auto;
        left: 50px;
    }

}


@media (max-width: 480px) {

    .wedding-packages-preview {
        padding: 65px 0;
    }

    .wedding-packages-preview-visual {
        min-height: 370px;
    }

    .wedding-packages-preview-image {
        height: 340px;
    }

    .wedding-packages-preview-badge {
        width: 155px;
        padding: 17px;
    }

    .wedding-packages-preview-badge strong {
        font-size: 18px;
    }

    .wedding-packages-preview-content h2 {
        font-size: 31px;
    }

    .wedding-package-row-heading h3 {
        font-size: 19px;
    }

    .wedding-package-row-content p {
        font-size: 12px;
    }

}

/* =========================================================
   WEDDING VENDOR PARTNERS PREVIEW
========================================================= */

.wedding-vendors-preview {
    position: relative;

    width: 100%;

    padding: 125px 0;

    overflow: hidden;

    background: #fffaf7;

    font-family: "Playfair Display", serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.wedding-vendors-preview-container {
    width: min(1240px, calc(100% - 40px));

    margin: 0 auto;

    display: grid;

    grid-template-columns: 0.9fr 1.1fr;

    grid-template-rows: auto auto;

    column-gap: 90px;

    row-gap: 65px;

    align-items: center;
}


/* =========================================================
   HEADING
========================================================= */

.wedding-vendors-preview-heading {
    grid-column: 1 / -1;

    max-width: 680px;

    animation: weddingVendorsHeadingReveal 0.9s ease both;
}


.wedding-vendors-preview-label {
    display: block;

    margin-bottom: 17px;

    color: #b06f4e;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 2.2px;
}


.wedding-vendors-preview-heading h2 {
    margin: 0;

    color: #30241f;

    font-size: clamp(35px, 4vw, 52px);

    font-weight: 600;

    line-height: 1.08;
}


.wedding-vendors-preview-heading h2 em {
    display: block;

    color: #b06f4e;

    font-style: italic;

    font-weight: 500;
}


/* =========================================================
   GALLERY
========================================================= */

.wedding-vendors-preview-gallery {
    position: relative;

    height: 525px;

    animation: weddingVendorsGalleryReveal 1s ease 0.12s both;
}


/* =========================================================
   PHOTO BASE
========================================================= */

.wedding-vendor-photo {
    position: absolute;

    overflow: hidden;

    background: #eee4de;

    box-shadow:
        0 20px 45px rgba(50, 35, 28, 0.08);
}


.wedding-vendor-photo img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-vendor-photo:hover img {
    transform: scale(1.06);
}


/* =========================================================
   MAIN PHOTO
========================================================= */

.wedding-vendor-photo-main {
    top: 0;
    left: 8%;

    width: 60%;
    height: 440px;

    z-index: 2;
}


.wedding-vendor-photo-main::after {
    content: "";

    position: absolute;

    inset: 13px;

    border: 1px solid rgba(255, 255, 255, 0.55);

    pointer-events: none;
}


/* =========================================================
   SMALL PHOTO 01
========================================================= */

.wedding-vendor-photo-one {
    top: 35px;
    right: 0;

    width: 31%;
    height: 190px;

    z-index: 3;
}


/* =========================================================
   SMALL PHOTO 02
========================================================= */

.wedding-vendor-photo-two {
    bottom: 8px;
    left: 0;

    width: 35%;
    height: 205px;

    z-index: 3;
}


/* =========================================================
   SMALL PHOTO 03
========================================================= */

.wedding-vendor-photo-three {
    right: 8%;
    bottom: 0;

    width: 38%;
    height: 230px;

    z-index: 1;
}


/* =========================================================
   DECORATIVE WORD
========================================================= */

.wedding-vendors-gallery-word {
    position: absolute;

    left: 45%;
    bottom: 5px;

    z-index: 5;

    color: #ffffff;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 3px;

    transform: rotate(-90deg);

    transform-origin: center;
}


/* =========================================================
   INFORMATION
========================================================= */

.wedding-vendors-preview-info {
    padding: 10px 0;

    animation: weddingVendorsInfoReveal 0.9s ease 0.22s both;
}


.wedding-vendors-preview-intro {
    max-width: 480px;

    margin: 0 0 30px;

    color: #66544b;

    font-size: 13px;

    font-weight: 400;

    line-height: 1.85;
}


/* =========================================================
   VENDOR LIST
========================================================= */

.wedding-vendors-list {
    border-top: 1px solid rgba(80, 55, 45, 0.15);
}


.wedding-vendor-item {
    position: relative;

    display: grid;

    grid-template-columns: 38px 1fr 20px;

    align-items: center;

    gap: 15px;

    min-height: 65px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.15);

    transition:
        padding 0.3s ease,
        background 0.3s ease;
}


.wedding-vendor-item:hover {
    padding-left: 12px;

    background: #f8f1ed;
}


.wedding-vendor-item span {
    color: #b8896b;

    font-size: 11px;

    font-weight: 600;
}


.wedding-vendor-item strong {
    color: #30241f;

    font-size: 15px;

    font-weight: 500;
}


.wedding-vendor-item i {
    color: #b8896b;

    font-size: 10px;

    transition: transform 0.3s ease;
}


.wedding-vendor-item:hover i {
    transform: translateX(4px);
}


/* =========================================================
   BUTTON
========================================================= */

.wedding-vendors-preview-button {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-top: 30px;

    padding: 12px 21px;

    color: #ffffff;

    background: #b8896b;

    text-decoration: none;

    font-size: 12px;

    font-weight: 500;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}


.wedding-vendors-preview-button:hover {
    background: #956b52;

    transform: translateY(-2px);
}


.wedding-vendors-preview-button i {
    font-size: 10px;

    transition: transform 0.3s ease;
}


.wedding-vendors-preview-button:hover i {
    transform: translateX(4px);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingVendorsHeadingReveal {

    from {
        opacity: 0;

        transform: translateY(35px);
    }

    to {
        opacity: 1;

        transform: translateY(0);
    }
}


@keyframes weddingVendorsGalleryReveal {

    from {
        opacity: 0;

        transform: translateX(-45px);
    }

    to {
        opacity: 1;

        transform: translateX(0);
    }
}


@keyframes weddingVendorsInfoReveal {

    from {
        opacity: 0;

        transform: translateX(45px);
    }

    to {
        opacity: 1;

        transform: translateX(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-vendors-preview {
        padding: 100px 0;
    }


    .wedding-vendors-preview-container {
        column-gap: 45px;
    }


    .wedding-vendors-preview-gallery {
        height: 470px;
    }


    .wedding-vendor-photo-main {
        height: 390px;
    }


    .wedding-vendor-photo-one {
        height: 165px;
    }


    .wedding-vendor-photo-two {
        height: 180px;
    }


    .wedding-vendor-photo-three {
        height: 200px;
    }


    .wedding-vendor-item strong {
        font-size: 14px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-vendors-preview {
        padding: 80px 0;
    }


    .wedding-vendors-preview-container {
        width: calc(100% - 30px);

        display: flex;

        flex-direction: column;

        gap: 45px;
    }


    .wedding-vendors-preview-heading {
        width: 100%;
    }


    .wedding-vendors-preview-heading h2 {
        font-size: 36px;
    }


    .wedding-vendors-preview-gallery {
        width: 100%;

        height: 500px;
    }


    .wedding-vendor-photo-main {
        left: 7%;

        width: 62%;

        height: 400px;
    }


    .wedding-vendor-photo-one {
        width: 34%;

        height: 170px;
    }


    .wedding-vendor-photo-two {
        width: 38%;

        height: 175px;
    }


    .wedding-vendor-photo-three {
        right: 4%;

        width: 42%;

        height: 190px;
    }


    .wedding-vendors-preview-info {
        width: 100%;
    }

}


@media (max-width: 480px) {

    .wedding-vendors-preview {
        padding: 65px 0;
    }


    .wedding-vendors-preview-heading h2 {
        font-size: 31px;
    }


    .wedding-vendors-preview-gallery {
        height: 410px;
    }


    .wedding-vendor-photo-main {
        width: 64%;

        height: 330px;
    }


    .wedding-vendor-photo-one {
        width: 34%;

        height: 140px;
    }


    .wedding-vendor-photo-two {
        width: 40%;

        height: 145px;
    }


    .wedding-vendor-photo-three {
        width: 43%;

        height: 160px;
    }


    .wedding-vendors-gallery-word {
        display: none;
    }


    .wedding-vendor-item {
        grid-template-columns: 30px 1fr 15px;

        gap: 10px;

        min-height: 62px;
    }


    .wedding-vendor-item strong {
        font-size: 13px;
    }

}

/* =========================================================
   CLIENT PLANNING STUDIO
========================================================= */

.wedding-planning-studio {
    position: relative;
    width: 100%;
    padding: 125px 0;
    background: #f3eee9;
    overflow: hidden;
}


.wedding-planning-studio-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    align-items: center;
    gap: 90px;
}


/* =========================================================
   CONTENT
========================================================= */

.wedding-planning-studio-content {
    position: relative;
    z-index: 3;

    opacity: 0;
    transform: translateX(-55px);

    animation: weddingPlanningContentReveal 1s ease forwards;
    animation-delay: 0.15s;
}


.wedding-planning-studio-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 20px;

    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #b8896b;
}


.wedding-planning-studio-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: #b8896b;
}


.wedding-planning-studio-content h2 {
    max-width: 550px;
    margin: 0 0 22px;

    font-family: "Playfair Display", serif;
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1.08;
    font-weight: 600;
    color: #30241f;
}


.wedding-planning-studio-content h2 em {
    display: block;

    font-style: italic;
    font-weight: 400;
    color: #b8896b;
}


.wedding-planning-studio-intro {
    max-width: 510px;
    margin: 0 0 35px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #6e5b50;
}


/* =========================================================
   FEATURES
========================================================= */

.wedding-planning-studio-features {
    display: flex;
    flex-direction: column;
    gap: 0;

    max-width: 560px;
}


.wedding-planning-studio-feature {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 16px;

    padding: 18px 0;

    border-top: 1px solid rgba(80, 55, 45, 0.14);
}


.wedding-planning-studio-feature:last-child {
    border-bottom: 1px solid rgba(80, 55, 45, 0.14);
}


.wedding-planning-studio-feature-number {
    padding-top: 2px;

    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 600;
    color: #b8896b;
}


.wedding-planning-studio-feature h3 {
    margin: 0 0 5px;

    font-family: "Playfair Display", serif;
    font-size: 17px;
    line-height: 1.3;
    font-weight: 600;
    color: #30241f;
}


.wedding-planning-studio-feature p {
    max-width: 450px;
    margin: 0;

    font-size: 13px;
    line-height: 1.7;
    font-weight: 400;
    color: #75655d;
}


/* =========================================================
   ACTIONS
========================================================= */

.wedding-planning-studio-actions {
    display: flex;
    align-items: center;
    gap: 22px;

    margin-top: 35px;
}


.wedding-planning-studio-primary,
.wedding-planning-studio-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    min-height: 48px;
    padding: 0 22px;

    text-decoration: none;

    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.4px;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}


.wedding-planning-studio-primary {
    background: #b8896b;
    color: #ffffff;
}


.wedding-planning-studio-primary:hover {
    background: #956b52;
    transform: translateY(-3px);
}


.wedding-planning-studio-primary i {
    font-size: 11px;
}


.wedding-planning-studio-secondary {
    position: relative;
    color: #30241f;
}


.wedding-planning-studio-secondary::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: 5px;

    width: 100%;
    height: 1px;

    background: #b8896b;

    transform-origin: left;
    transform: scaleX(1);

    transition: transform 0.3s ease;
}


.wedding-planning-studio-secondary:hover {
    color: #b06f4e;
}


/* =========================================================
   VISUAL
========================================================= */

.wedding-planning-studio-visual {
    position: relative;
    min-height: 650px;

    opacity: 0;
    transform: translateX(55px);

    animation: weddingPlanningVisualReveal 1s ease forwards;
    animation-delay: 0.3s;
}


.wedding-planning-studio-image {
    position: absolute;

    top: 0;
    right: 0;

    width: 76%;
    height: 540px;

    overflow: hidden;
}


.wedding-planning-studio-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(180deg,
            rgba(48, 36, 31, 0.03),
            rgba(48, 36, 31, 0.18));
}


.wedding-planning-studio-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-planning-studio-image:hover img {
    transform: scale(1.04);
}


/* =========================================================
   DASHBOARD CARD
========================================================= */

.wedding-planning-studio-dashboard {
    position: absolute;

    left: 0;
    bottom: 35px;

    width: 72%;

    padding: 28px;

    background: rgba(255, 250, 247, 0.97);

    border: 1px solid rgba(80, 55, 45, 0.1);

    box-shadow: 0 24px 65px rgba(48, 36, 31, 0.16);

    backdrop-filter: blur(10px);

    z-index: 5;
}


.wedding-planning-studio-dashboard-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    padding-bottom: 20px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.12);
}


.wedding-planning-studio-dashboard-top span {
    display: block;

    margin-bottom: 5px;

    font-size: 9px;
    letter-spacing: 1.8px;
    font-weight: 600;
    color: #a48677;
}


.wedding-planning-studio-dashboard-top strong {
    display: block;

    font-family: "Playfair Display", serif;
    font-size: 20px;
    font-weight: 600;
    color: #30241f;
}


.wedding-planning-studio-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    padding: 7px 10px;

    font-size: 10px;
    font-weight: 600;

    color: #6b786b;
    background: #f0f3ed;
}


.wedding-planning-studio-status i {
    font-size: 6px;
}


/* =========================================================
   PROGRESS
========================================================= */

.wedding-planning-studio-progress {
    padding: 20px 0;
}


.wedding-planning-studio-progress-heading {
    display: flex;
    justify-content: space-between;

    margin-bottom: 9px;

    font-size: 11px;
    font-weight: 500;
    color: #66564e;
}


.wedding-planning-studio-progress-heading strong {
    font-weight: 600;
    color: #b8896b;
}


.wedding-planning-studio-progress-bar {
    width: 100%;
    height: 4px;

    background: #eadfd8;

    overflow: hidden;
}


.wedding-planning-studio-progress-bar span {
    display: block;

    width: 78%;
    height: 100%;

    background: #b8896b;

    animation: weddingPlanningProgress 1.5s ease forwards;
}


/* =========================================================
   MINI CARDS
========================================================= */

.wedding-planning-studio-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}


.wedding-planning-studio-mini-card {
    min-height: 90px;
    padding: 15px;

    background: #f8f1ed;

    display: flex;
    flex-direction: column;
    justify-content: center;

    transition:
        transform 0.3s ease,
        background 0.3s ease;
}


.wedding-planning-studio-mini-card:hover {
    transform: translateY(-3px);
    background: #f3e8e1;
}


.wedding-planning-studio-mini-card i {
    margin-bottom: 8px;

    font-size: 13px;
    color: #b8896b;
}


.wedding-planning-studio-mini-card span {
    margin-bottom: 3px;

    font-size: 10px;
    color: #8a766b;
}


.wedding-planning-studio-mini-card strong {
    font-family: "Playfair Display", serif;
    font-size: 14px;
    font-weight: 600;
    color: #30241f;
}


/* =========================================================
   DASHBOARD FOOTER
========================================================= */

.wedding-planning-studio-dashboard-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-top: 18px;
    padding-top: 15px;

    border-top: 1px solid rgba(80, 55, 45, 0.12);

    font-size: 10px;
}


.wedding-planning-studio-dashboard-footer span:first-child {
    color: #6d756a;
}


.wedding-planning-studio-dashboard-footer span:first-child i {
    margin-right: 5px;
    color: #7f927d;
}


.wedding-planning-studio-dashboard-footer span:last-child {
    color: #b06f4e;
    font-weight: 600;
}


/* =========================================================
   FLOATING NOTE
========================================================= */

.wedding-planning-studio-note {
    position: absolute;

    right: -15px;
    top: 470px;

    width: 210px;

    display: flex;
    align-items: flex-start;
    gap: 12px;

    padding: 17px;

    background: #30241f;
    color: #ffffff;

    box-shadow: 0 15px 35px rgba(48, 36, 31, 0.2);

    z-index: 7;

    animation: weddingPlanningNoteFloat 4s ease-in-out infinite;
}


.wedding-planning-studio-note>i {
    padding-top: 2px;

    font-size: 13px;
    color: #c39575;
}


.wedding-planning-studio-note span {
    display: block;

    margin-bottom: 5px;

    font-size: 8px;
    letter-spacing: 1.4px;
    color: #c39575;
}


.wedding-planning-studio-note strong {
    display: block;

    font-family: "Playfair Display", serif;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 500;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingPlanningContentReveal {

    from {
        opacity: 0;
        transform: translateX(-55px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingPlanningVisualReveal {

    from {
        opacity: 0;
        transform: translateX(55px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingPlanningProgress {

    from {
        width: 0;
    }

    to {
        width: 78%;
    }
}


@keyframes weddingPlanningNoteFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-planning-studio {
        padding: 95px 0;
    }


    .wedding-planning-studio-container {
        grid-template-columns: 1fr;
        gap: 65px;
    }


    .wedding-planning-studio-content {
        max-width: 720px;
        margin: 0 auto;
    }


    .wedding-planning-studio-visual {
        width: min(700px, 100%);
        margin: 0 auto;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-planning-studio {
        padding: 75px 0;
    }


    .wedding-planning-studio-container {
        width: min(100% - 30px, 600px);
        gap: 45px;
    }


    .wedding-planning-studio-content h2 {
        font-size: 40px;
    }


    .wedding-planning-studio-actions {
        flex-wrap: wrap;
        gap: 10px;
    }


    .wedding-planning-studio-visual {
        min-height: 560px;
    }


    .wedding-planning-studio-image {
        width: 88%;
        height: 420px;
    }


    .wedding-planning-studio-dashboard {
        width: 84%;
        padding: 20px;
    }


    .wedding-planning-studio-note {
        right: 0;
        top: 375px;
        width: 175px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .wedding-planning-studio-content h2 {
        font-size: 34px;
    }


    .wedding-planning-studio-intro {
        line-height: 1.8;
    }


    .wedding-planning-studio-feature {
        grid-template-columns: 32px 1fr;
        gap: 10px;
    }


    .wedding-planning-studio-dashboard {
        width: 94%;
        padding: 16px;
    }


    .wedding-planning-studio-dashboard-top strong {
        font-size: 16px;
    }


    .wedding-planning-studio-dashboard-grid {
        gap: 7px;
    }


    .wedding-planning-studio-mini-card {
        min-height: 78px;
        padding: 11px;
    }


    .wedding-planning-studio-note {
        display: none;
    }


    .wedding-planning-studio-visual {
        min-height: 500px;
    }


    .wedding-planning-studio-image {
        width: 100%;
        height: 360px;
    }

}

/* =========================================================
   WHY COUPLES CHOOSE US
========================================================= */

.wedding-why-us {
    position: relative;
    width: 100%;
    padding: 130px 0;

    background: #fffaf7;

    overflow: hidden;
}


.wedding-why-us-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADING
========================================================= */

.wedding-why-us-heading {
    max-width: 850px;
    margin-bottom: 80px;

    opacity: 0;
    transform: translateY(45px);

    animation: weddingWhyHeadingReveal 0.9s ease forwards;
}


.wedding-why-us-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;

    margin-bottom: 20px;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;

    color: #b8896b;
}


.wedding-why-us-eyebrow::before {
    content: "";

    width: 36px;
    height: 1px;

    background: #b8896b;
}


.wedding-why-us-heading h2 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.08;
    font-weight: 600;

    color: #30241f;
}


.wedding-why-us-heading h2 em {
    display: block;

    font-style: italic;
    font-weight: 400;

    color: #b8896b;
}


/* =========================================================
   MAIN EDITORIAL AREA
========================================================= */

.wedding-why-us-main {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;

    gap: 90px;
    align-items: center;
}


/* =========================================================
   VISUAL
========================================================= */

.wedding-why-us-visual {
    position: relative;
    min-height: 610px;

    opacity: 0;
    transform: translateX(-55px);

    animation: weddingWhyVisualReveal 1s ease forwards;
    animation-delay: 0.2s;
}


.wedding-why-us-image {
    position: absolute;

    top: 0;
    left: 0;

    width: 82%;
    height: 540px;

    overflow: hidden;
}


.wedding-why-us-image::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(180deg,
            rgba(48, 36, 31, 0.02),
            rgba(48, 36, 31, 0.18));
}


.wedding-why-us-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.8s ease;
}


.wedding-why-us-image:hover img {
    transform: scale(1.045);
}


/* =========================================================
   IMAGE CAPTION
========================================================= */

.wedding-why-us-image-caption {
    position: absolute;

    right: 0;
    bottom: 30px;

    width: 245px;

    padding: 25px 24px;

    background: #f3eee9;

    z-index: 3;

    box-shadow: 0 18px 45px rgba(48, 36, 31, 0.12);
}


.wedding-why-us-image-caption span {
    display: block;

    margin-bottom: 9px;

    font-size: 9px;
    letter-spacing: 1.8px;
    font-weight: 600;

    color: #b8896b;
}


.wedding-why-us-image-caption strong {
    display: block;

    font-family: "Playfair Display", serif;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 500;

    color: #30241f;
}


/* =========================================================
   TRUST POINTS
========================================================= */

.wedding-why-us-points {
    display: flex;
    flex-direction: column;

    border-top: 1px solid rgba(80, 55, 45, 0.14);

    opacity: 0;
    transform: translateX(55px);

    animation: weddingWhyPointsReveal 1s ease forwards;
    animation-delay: 0.35s;
}


.wedding-why-us-point {
    display: grid;
    grid-template-columns: 48px 1fr;

    gap: 20px;

    padding: 28px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.14);
}


.wedding-why-us-point-index {
    padding-top: 3px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 600;

    color: #b8896b;
}


.wedding-why-us-point-content h3 {
    margin: 0 0 8px;

    font-family: "Playfair Display", serif;
    font-size: 21px;
    line-height: 1.3;
    font-weight: 600;

    color: #30241f;
}


.wedding-why-us-point-content p {
    max-width: 540px;

    margin: 0;

    font-size: 13px;
    line-height: 1.8;
    font-weight: 400;

    color: #75655d;
}


/* =========================================================
   BOTTOM STATS
========================================================= */

.wedding-why-us-stats {
    display: grid;
    grid-template-columns: 0.8fr 0.8fr 0.8fr 1.6fr;

    margin-top: 90px;

    border-top: 1px solid rgba(80, 55, 45, 0.14);
    border-bottom: 1px solid rgba(80, 55, 45, 0.14);

    opacity: 0;
    transform: translateY(40px);

    animation: weddingWhyStatsReveal 0.9s ease forwards;
    animation-delay: 0.55s;
}


.wedding-why-us-stat {
    min-height: 145px;

    padding: 28px 25px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border-right: 1px solid rgba(80, 55, 45, 0.14);
}


.wedding-why-us-stat strong {
    margin-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 36px;
    line-height: 1;

    font-weight: 500;

    color: #b8896b;
}


.wedding-why-us-stat span {
    font-size: 11px;
    line-height: 1.6;

    color: #75655d;
}


.wedding-why-us-stat-quote {
    padding-left: 40px;

    flex-direction: row;
    align-items: center;
    gap: 18px;
}


.wedding-why-us-stat-quote i {
    font-size: 22px;

    color: #c39575;
}


.wedding-why-us-stat-quote span {
    max-width: 300px;

    font-family: "Playfair Display", serif;
    font-size: 16px;
    line-height: 1.5;

    color: #30241f;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingWhyHeadingReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes weddingWhyVisualReveal {

    from {
        opacity: 0;
        transform: translateX(-55px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingWhyPointsReveal {

    from {
        opacity: 0;
        transform: translateX(55px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingWhyStatsReveal {

    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-why-us {
        padding: 100px 0;
    }


    .wedding-why-us-main {
        grid-template-columns: 1fr;

        gap: 65px;
    }


    .wedding-why-us-visual {
        width: min(700px, 100%);
        margin: 0 auto;
    }


    .wedding-why-us-points {
        width: min(700px, 100%);
        margin: 0 auto;
    }


    .wedding-why-us-stats {
        grid-template-columns: repeat(2, 1fr);
    }


    .wedding-why-us-stat:nth-child(2) {
        border-right: none;
    }


    .wedding-why-us-stat:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(80, 55, 45, 0.14);
    }


    .wedding-why-us-stat-quote {
        grid-column: span 2;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-why-us {
        padding: 75px 0;
    }


    .wedding-why-us-container {
        width: min(100% - 30px, 600px);
    }


    .wedding-why-us-heading {
        margin-bottom: 55px;
    }


    .wedding-why-us-heading h2 {
        font-size: 42px;
    }


    .wedding-why-us-visual {
        min-height: 510px;
    }


    .wedding-why-us-image {
        width: 90%;
        height: 450px;
    }


    .wedding-why-us-image-caption {
        bottom: 15px;
        width: 215px;
    }


    .wedding-why-us-point {
        grid-template-columns: 38px 1fr;
        gap: 12px;

        padding: 22px 0;
    }


    .wedding-why-us-point-content h3 {
        font-size: 18px;
    }


    .wedding-why-us-stats {
        margin-top: 60px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .wedding-why-us-heading h2 {
        font-size: 35px;
    }


    .wedding-why-us-visual {
        min-height: 420px;
    }


    .wedding-why-us-image {
        width: 100%;
        height: 370px;
    }


    .wedding-why-us-image-caption {
        width: 195px;
        padding: 18px;
    }


    .wedding-why-us-image-caption strong {
        font-size: 15px;
    }


    .wedding-why-us-point-content p {
        line-height: 1.7;
    }


    .wedding-why-us-stats {
        grid-template-columns: 1fr;
    }


    .wedding-why-us-stat,
    .wedding-why-us-stat:nth-child(2) {
        min-height: 110px;

        border-right: none;
        border-bottom: 1px solid rgba(80, 55, 45, 0.14);
    }


    .wedding-why-us-stat:last-child {
        border-bottom: none;
    }


    .wedding-why-us-stat-quote {
        grid-column: auto;

        padding-left: 25px;
    }

}

/* =========================================================
   WEDDING FILM VIDEO SECTION
========================================================= */

.wedding-film {
    position: relative;

    width: 100%;
    min-height: 720px;

    overflow: hidden;

    background: #30241f;
}


/* =========================================================
   VIDEO
========================================================= */

.wedding-film-video {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    overflow: hidden;
}


.wedding-film-video-element {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transform: scale(1.03);

    animation: weddingFilmVideoReveal 1.8s ease forwards;
}


/* =========================================================
   OVERLAY
========================================================= */

.wedding-film-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(90deg,
            rgba(30, 21, 18, 0.82) 0%,
            rgba(30, 21, 18, 0.48) 48%,
            rgba(30, 21, 18, 0.28) 100%);

    z-index: 2;
}


/* =========================================================
   CONTENT
========================================================= */

.wedding-film-content {
    position: relative;

    z-index: 3;

    width: min(1240px, calc(100% - 40px));

    min-height: 720px;

    margin: 0 auto;

    padding-top: 155px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;

    justify-content: center;


    opacity: 0;

    transform: translateY(45px);

    animation:
        weddingFilmContentReveal 1s ease 0.3s forwards;
}


/* =========================================================
   EYEBROW
========================================================= */

.wedding-film-eyebrow {
    display: inline-flex;

    align-items: center;

    gap: 11px;

    margin-bottom: 24px;

    font-family: "Playfair Display", serif;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 2.4px;

    color: #e3c7b4;
}


.wedding-film-eyebrow::before {
    content: "";

    width: 40px;
    height: 1px;

    background: #c39575;
}


/* =========================================================
   PLAY BUTTON
========================================================= */

.wedding-film-play {
    width: 72px;
    height: 72px;

    margin-bottom: 28px;

    display: flex;

    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255, 255, 255, 0.65);

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.08);

    backdrop-filter: blur(7px);

    color: #ffffff;

    transition:
        transform 0.35s ease,
        background 0.35s ease,
        border-color 0.35s ease;
}


.wedding-film-play i {
    margin-left: 3px;

    font-size: 17px;
}


.wedding-film-play:hover {
    transform: scale(1.1);

    background: #b8896b;

    border-color: #b8896b;
}


/* =========================================================
   HEADING
========================================================= */

.wedding-film-content h2 {
    max-width: 760px;

    margin: 0 0 22px;

    font-family: "Playfair Display", serif;

    font-size: clamp(48px, 6vw, 78px);

    line-height: 1.02;

    font-weight: 500;

    color: #ffffff;
}


.wedding-film-content h2 em {
    display: block;

    font-style: italic;

    font-weight: 400;

    color: #dfb99d;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.wedding-film-content p {
    max-width: 520px;

    margin: 0 0 30px;

    font-size: 13px;

    line-height: 1.9;

    font-weight: 400;

    color: rgba(255, 255, 255, 0.78);
}


/* =========================================================
   LINK
========================================================= */

.wedding-film-link {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    padding-bottom: 7px;

    border-bottom: 1px solid #c39575;

    text-decoration: none;

    font-size: 12px;

    font-weight: 600;

    letter-spacing: 0.4px;

    color: #ffffff;

    transition:
        color 0.3s ease,
        gap 0.3s ease;
}


.wedding-film-link i {
    font-size: 11px;

    transition: transform 0.3s ease;
}


.wedding-film-link:hover {
    color: #dfb99d;

    gap: 16px;
}


.wedding-film-link:hover i {
    transform: translateX(3px);
}


/* =========================================================
   BOTTOM LABEL
========================================================= */

.wedding-film-bottom {
    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    z-index: 4;

    width: min(1240px, calc(100% - 40px));

    margin: 0 auto;

    padding: 22px 0;

    display: flex;

    align-items: center;

    justify-content: space-between;

    border-top: 1px solid rgba(255, 255, 255, 0.22);
}


.wedding-film-bottom span {
    font-size: 9px;

    font-weight: 600;

    letter-spacing: 2px;

    color: rgba(255, 255, 255, 0.58);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingFilmVideoReveal {

    from {
        opacity: 0;
        transform: scale(1.08);
    }

    to {
        opacity: 1;
        transform: scale(1.03);
    }
}


@keyframes weddingFilmContentReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-film,
    .wedding-film-content {
        min-height: 650px;
    }


    .wedding-film-content {
        padding-top: 110px;
    }


    .wedding-film-content h2 {
        font-size: 60px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-film {
        min-height: 620px;
    }


    .wedding-film-content {
        width: min(100% - 30px, 600px);

        min-height: 620px;

        padding-top: 80px;

        justify-content: center;
    }


    .wedding-film-overlay {
        background:
            linear-gradient(90deg,
                rgba(30, 21, 18, 0.84),
                rgba(30, 21, 18, 0.56));
    }


    .wedding-film-content h2 {
        font-size: 48px;
    }


    .wedding-film-content p {
        max-width: 470px;
    }


    .wedding-film-play {
        width: 62px;
        height: 62px;
    }


    .wedding-film-bottom {
        width: min(100% - 30px, 600px);
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .wedding-film {
        min-height: 570px;
    }


    .wedding-film-content {
        min-height: 570px;
    }


    .wedding-film-content h2 {
        font-size: 39px;
    }


    .wedding-film-content p {
        font-size: 12px;

        line-height: 1.75;
    }


    .wedding-film-bottom span {
        font-size: 7px;

        letter-spacing: 1.2px;
    }

}

/* =========================================================
   WEDDING FAQ
========================================================= */

.wedding-faq {
    width: 100%;
    padding: 125px 0;
    background: #f8f1ed;
    overflow: hidden;
}


.wedding-faq-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 100px;
    align-items: start;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-faq-intro {
    position: sticky;
    top: 120px;

    opacity: 0;
    transform: translateX(-45px);

    animation: weddingFaqIntroReveal 0.9s ease forwards;
}


.wedding-faq-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 20px;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;

    color: #b8896b;
}


.wedding-faq-eyebrow::before {
    content: "";

    width: 35px;
    height: 1px;

    background: #b8896b;
}


.wedding-faq-intro h2 {
    margin: 0 0 22px;

    font-family: "Playfair Display", serif;
    font-size: clamp(40px, 4.5vw, 60px);
    line-height: 1.08;
    font-weight: 600;

    color: #30241f;
}


.wedding-faq-intro h2 em {
    display: block;

    font-style: italic;
    font-weight: 400;

    color: #b8896b;
}


.wedding-faq-intro p {
    max-width: 430px;

    margin: 0 0 30px;

    font-size: 13px;
    line-height: 1.85;
    font-weight: 400;

    color: #75655d;
}


.wedding-faq-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;

    padding-bottom: 7px;

    border-bottom: 1px solid #b8896b;

    text-decoration: none;

    font-size: 12px;
    font-weight: 600;

    color: #30241f;

    transition: gap 0.3s ease, color 0.3s ease;
}


.wedding-faq-link:hover {
    gap: 16px;
    color: #b06f4e;
}


.wedding-faq-link i {
    font-size: 10px;
}


/* =========================================================
   FAQ LIST
========================================================= */

.wedding-faq-list {
    border-top: 1px solid rgba(80, 55, 45, 0.15);

    opacity: 0;
    transform: translateX(45px);

    animation: weddingFaqListReveal 0.9s ease forwards;
    animation-delay: 0.2s;
}


.wedding-faq-item {
    border-bottom: 1px solid rgba(80, 55, 45, 0.15);
}


.wedding-faq-question {
    width: 100%;
    min-height: 82px;

    padding: 0;

    border: 0;
    outline: none;

    background: transparent;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    cursor: pointer;

    text-align: left;

    font-family: "Playfair Display", serif;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 500;

    color: #30241f;
}


.wedding-faq-question i {
    flex: 0 0 auto;

    width: 28px;
    height: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(80, 55, 45, 0.2);

    border-radius: 50%;

    font-size: 10px;
    font-weight: 400;

    color: #b8896b;

    transition:
        transform 0.3s ease,
        background 0.3s ease,
        color 0.3s ease;
}


.wedding-faq-item.active .wedding-faq-question i {
    transform: rotate(45deg);

    background: #b8896b;
    color: #ffffff;

    border-color: #b8896b;
}


/* =========================================================
   ANSWER
========================================================= */

.wedding-faq-answer {
    display: grid;
    grid-template-rows: 0fr;

    transition: grid-template-rows 0.4s ease;
}


.wedding-faq-answer p {
    overflow: hidden;

    max-width: 650px;

    margin: 0;

    padding: 0;

    font-size: 13px;
    line-height: 1.85;
    font-weight: 400;

    color: #75655d;

    transition:
        padding 0.4s ease,
        opacity 0.3s ease;

    opacity: 0;
}


.wedding-faq-item.active .wedding-faq-answer {
    grid-template-rows: 1fr;
}


.wedding-faq-item.active .wedding-faq-answer p {
    padding: 0 55px 25px 0;
    opacity: 1;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingFaqIntroReveal {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


@keyframes weddingFaqListReveal {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-faq {
        padding: 100px 0;
    }


    .wedding-faq-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }


    .wedding-faq-intro {
        position: static;
        max-width: 700px;
    }


    .wedding-faq-intro p {
        max-width: 600px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-faq {
        padding: 75px 0;
    }


    .wedding-faq-container {
        width: min(100% - 30px, 600px);
        gap: 45px;
    }


    .wedding-faq-intro h2 {
        font-size: 42px;
    }


    .wedding-faq-question {
        min-height: 75px;

        font-size: 16px;
    }


    .wedding-faq-question i {
        width: 25px;
        height: 25px;
    }


    .wedding-faq-item.active .wedding-faq-answer p {
        padding-right: 40px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .wedding-faq-intro h2 {
        font-size: 35px;
    }


    .wedding-faq-question {
        min-height: 70px;

        font-size: 15px;

        gap: 12px;
    }


    .wedding-faq-answer p {
        font-size: 12px;
        line-height: 1.75;
    }


    .wedding-faq-item.active .wedding-faq-answer p {
        padding-right: 0;
        padding-bottom: 20px;
    }

}

/* =====================================================
   FINAL WEDDING CONSULTATION CTA
====================================================== */

.wedding-final-cta {
    position: relative;
    width: 100%;
    min-height: 650px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #30241f;
    isolation: isolate;
}


/* =====================================================
   BACKGROUND IMAGE
====================================================== */

.wedding-final-cta-image {
    position: absolute;
    inset: 0;
    z-index: -3;

    background-image:
        url("../images/090924172585976966de87b9b1e3a.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transform: scale(1.03);

    animation:
        weddingFinalCtaImageReveal 1.6s cubic-bezier(.22, .61, .36, 1) both;
}


/* =====================================================
   DARK OVERLAY
====================================================== */

.wedding-final-cta-overlay {
    position: absolute;
    inset: 0;
    z-index: -2;

    background:
        linear-gradient(90deg,
            rgba(35, 25, 21, 0.82) 0%,
            rgba(35, 25, 21, 0.62) 48%,
            rgba(35, 25, 21, 0.76) 100%);
}


/* =====================================================
   FRAME
====================================================== */

.wedding-final-cta-frame {
    position: relative;

    width: min(1180px, calc(100% - 60px));
    min-height: 540px;

    margin: 55px auto;

    padding: 70px 75px 35px;

    border: 1px solid rgba(255, 255, 255, 0.24);

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    animation:
        weddingFinalCtaFrameReveal 1s cubic-bezier(.22, .61, .36, 1) .15s both;
}


/* =====================================================
   TOP LINE
====================================================== */

.wedding-final-cta-topline {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 16px;

    color: #e6c7b2;

    font-family: "Playfair Display", serif;

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 3px;
    text-transform: uppercase;

    animation:
        weddingFinalCtaTopReveal 1s ease .35s both;
}


.wedding-final-cta-topline span {
    display: block;

    width: 42px;
    height: 1px;

    background: #c39575;

    opacity: .8;
}


/* =====================================================
   CONTENT
====================================================== */

.wedding-final-cta-content {
    width: min(760px, 100%);

    margin: 0 auto;

    text-align: center;

    animation:
        weddingFinalCtaContentReveal 1.1s cubic-bezier(.22, .61, .36, 1) .45s both;
}


.wedding-final-cta-kicker {
    margin: 0 0 20px;

    color: #e3c9b8;

    font-family: "Playfair Display", serif;

    font-size: 15px;
    font-weight: 400;

    font-style: italic;
}


.wedding-final-cta-content h2 {
    margin: 0;

    color: #ffffff;

    font-family: "Playfair Display", serif;

    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.08;

    font-weight: 500;

    letter-spacing: -1.5px;
}


.wedding-final-cta-content h2 em {
    display: block;

    color: #d8af94;

    font-weight: 500;
}


.wedding-final-cta-description {
    max-width: 590px;

    margin: 25px auto 0;

    color: rgba(255, 255, 255, 0.78);

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.9;
}


/* =====================================================
   ACTIONS
====================================================== */

.wedding-final-cta-actions {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 14px;

    margin-top: 34px;
}


.wedding-final-cta-primary,
.wedding-final-cta-secondary {
    min-height: 48px;

    padding: 0 25px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    text-decoration: none;

    font-family: "Playfair Display", serif;

    font-size: 12px;
    font-weight: 600;

    letter-spacing: .5px;

    transition:
        transform .3s ease,
        background .3s ease,
        color .3s ease,
        border-color .3s ease;
}


/* Primary */

.wedding-final-cta-primary {
    background: #c39575;

    color: #ffffff;

    border: 1px solid #c39575;
}


.wedding-final-cta-primary i {
    font-size: 11px;

    transition:
        transform .3s ease;
}


.wedding-final-cta-primary:hover {
    background: #b17e60;

    border-color: #b17e60;

    transform: translateY(-3px);
}


.wedding-final-cta-primary:hover i {
    transform: translateX(4px);
}


/* Secondary */

.wedding-final-cta-secondary {
    color: #ffffff;

    border: 1px solid rgba(255, 255, 255, 0.42);

    background: rgba(255, 255, 255, 0.05);
}


.wedding-final-cta-secondary:hover {
    background: #ffffff;

    color: #30241f;

    border-color: #ffffff;

    transform: translateY(-3px);
}


/* =====================================================
   BOTTOM AREA
====================================================== */

.wedding-final-cta-bottom {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 20px;

    animation:
        weddingFinalCtaBottomReveal 1s ease .8s both;
}


.wedding-final-cta-note {
    display: flex;
    align-items: center;

    gap: 10px;

    color: rgba(255, 255, 255, 0.62);

    font-family: "Playfair Display", serif;

    font-size: 11px;
    font-weight: 400;

    letter-spacing: .3px;
}


.wedding-final-cta-note i {
    color: #d8af94;

    font-size: 12px;
}


.wedding-final-cta-number {
    color: rgba(255, 255, 255, 0.35);

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 500;

    letter-spacing: 2px;
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingFinalCtaImageReveal {

    from {
        opacity: 0;
        transform: scale(1.12);
    }

    to {
        opacity: 1;
        transform: scale(1.03);
    }

}


@keyframes weddingFinalCtaFrameReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingFinalCtaTopReveal {

    from {
        opacity: 0;
        transform: translateY(-15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingFinalCtaContentReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingFinalCtaBottomReveal {

    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 992px) {

    .wedding-final-cta {
        min-height: 600px;
    }


    .wedding-final-cta-frame {
        width: min(900px, calc(100% - 40px));

        min-height: 500px;

        padding: 55px 45px 30px;
    }


    .wedding-final-cta-content h2 {
        font-size: clamp(40px, 6vw, 58px);
    }

}


@media (max-width: 768px) {

    .wedding-final-cta {
        min-height: 570px;
    }


    .wedding-final-cta-frame {
        width: calc(100% - 30px);

        min-height: 510px;

        margin: 35px auto;

        padding: 42px 25px 25px;
    }


    .wedding-final-cta-topline {
        font-size: 9px;

        letter-spacing: 2px;
    }


    .wedding-final-cta-topline span {
        width: 25px;
    }


    .wedding-final-cta-kicker {
        font-size: 13px;
    }


    .wedding-final-cta-content h2 {
        font-size: 40px;

        line-height: 1.12;
    }


    .wedding-final-cta-description {
        margin-top: 20px;

        font-size: 13px;

        line-height: 1.75;
    }


    .wedding-final-cta-actions {
        flex-direction: column;

        width: 100%;

        margin-top: 28px;
    }


    .wedding-final-cta-primary,
    .wedding-final-cta-secondary {
        width: min(280px, 100%);
    }

}


@media (max-width: 480px) {

    .wedding-final-cta {
        min-height: 560px;
    }


    .wedding-final-cta-frame {
        width: calc(100% - 20px);

        min-height: 520px;

        padding: 35px 18px 22px;
    }


    .wedding-final-cta-topline {
        gap: 8px;

        font-size: 8px;

        letter-spacing: 1.5px;
    }


    .wedding-final-cta-content h2 {
        font-size: 34px;

        letter-spacing: -.8px;
    }


    .wedding-final-cta-kicker {
        font-size: 12px;

        margin-bottom: 15px;
    }


    .wedding-final-cta-description {
        font-size: 12px;
    }


    .wedding-final-cta-bottom {
        align-items: center;
    }


    .wedding-final-cta-note {
        font-size: 9px;
    }


    .wedding-final-cta-number {
        font-size: 10px;
    }

}


@media (max-width: 360px) {

    .wedding-final-cta-content h2 {
        font-size: 30px;
    }


    .wedding-final-cta-note {
        font-size: 8px;
    }

}

/* =====================================================
   SERVICES PAGE BANNER
====================================================== */

.wedding-services-banner {
    position: relative;
    width: 100%;
    min-height: 420px;
    overflow: hidden;
    background: #30241f;
    isolation: isolate;
}


/* =====================================================
   IMAGE
====================================================== */

.wedding-services-banner-image {
    position: absolute;
    inset: 0;
    z-index: -3;

    background-image:
        url("../images/joeyy-lee-lqEfU4OjB0Q-unsplash.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transform: scale(1.04);
}


/* =====================================================
   OVERLAY
====================================================== */

.wedding-services-banner-overlay {
    position: absolute;
    inset: 0;
    z-index: -2;

    background:
        linear-gradient(90deg,
            rgba(30, 22, 19, .84) 0%,
            rgba(30, 22, 19, .64) 48%,
            rgba(30, 22, 19, .50) 100%);
}


/* =====================================================
   CONTAINER
====================================================== */

.wedding-services-banner-container {
    position: relative;

    width: min(1240px, calc(100% - 40px));

    min-height: 420px;

    margin: 0 auto;

    padding: 90px 0 35px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}


/* =====================================================
   MAIN CONTENT
====================================================== */

.wedding-services-banner-content {
    width: min(760px, 75%);

    margin-top: 20px;
}


.wedding-services-banner-content h1 {
    margin: 0;

    color: #ffffff;

    font-family: "Playfair Display", serif;

    font-size: clamp(46px, 6vw, 76px);

    line-height: 1.08;

    font-weight: 500;

    letter-spacing: -1.8px;
}


.wedding-services-banner-content h1 em {
    display: block;

    color: #d8af94;

    font-weight: 500;
}


.wedding-services-banner-content p {
    max-width: 610px;

    margin: 28px 0 0;

    color: rgba(255, 255, 255, .76);

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.9;
}



/* =====================================================
   BANNER ANIMATIONS
====================================================== */

@keyframes weddingServicesBannerContent {

    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingServicesBannerSide {

    from {
        opacity: 0;
        transform:
            translate(30px, -45%);
    }

    to {
        opacity: 1;
        transform:
            translate(0, -45%);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 992px) {

    .wedding-services-banner {
        min-height: 570px;
    }

    .wedding-services-banner-container {
        min-height: 570px;
    }

    .wedding-services-banner-content {
        width: 78%;
    }

    .wedding-services-banner-content h1 {
        font-size: 56px;
    }

    .wedding-services-banner-side {
        right: 5px;
    }

}


@media (max-width: 768px) {

    .wedding-services-banner {
        min-height: 560px;
    }

    .wedding-services-banner-container {
        width: calc(100% - 30px);
        min-height: 560px;
        padding-top: 70px;
    }

    .wedding-services-banner-content {
        width: 100%;
    }

    .wedding-services-banner-content h1 {
        font-size: 44px;
        letter-spacing: -1px;
    }

    .wedding-services-banner-content p {
        max-width: 540px;
        margin-top: 22px;
    }

    .wedding-services-banner-side {
        display: none;
    }

}


@media (max-width: 480px) {

    .wedding-services-banner {
        min-height: 530px;
    }

    .wedding-services-banner-container {
        min-height: 530px;
    }

    .wedding-services-banner-eyebrow {
        font-size: 9px;
        letter-spacing: 2px;
    }

    .wedding-services-banner-eyebrow::before {
        width: 25px;
    }

    .wedding-services-banner-content h1 {
        font-size: 36px;
        line-height: 1.12;
    }

    .wedding-services-banner-content p {
        font-size: 12px;
        line-height: 1.75;
    }

    .wedding-services-banner-bottom {
        bottom: 20px;
        font-size: 8px;
    }

}


@media (max-width: 360px) {

    .wedding-services-banner-content h1 {
        font-size: 32px;
    }

}

/* =====================================================
   SERVICES — WHAT WE DO
====================================================== */

.wedding-services-intro {
    position: relative;

    width: 100%;

    padding: 125px 0 0;

    background: #fffaf7;

    overflow: hidden;
}


.wedding-services-intro-container {
    width: min(1180px, calc(100% - 40px));

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(300px, .9fr) minmax(400px, 1.1fr);

    gap: 100px;

    align-items: start;
}


/* =====================================================
   LEFT HEADING
====================================================== */

.wedding-services-intro-heading {
    position: relative;

    padding-top: 18px;

    animation:
        weddingServicesIntroHeading .9s cubic-bezier(.22, .61, .36, 1) both;
}


.wedding-services-intro-number {
    display: block;

    margin-bottom: 28px;

    color: #c39575;

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 600;

    letter-spacing: 2px;
}


.wedding-services-intro-heading h2 {
    max-width: 470px;

    margin: 0;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: clamp(42px, 5vw, 62px);

    line-height: 1.08;

    font-weight: 500;

    letter-spacing: -1.2px;
}


.wedding-services-intro-heading h2 em {
    display: block;

    margin-top: 5px;

    color: #b8896b;

    font-weight: 500;
}


/* =====================================================
   RIGHT CONTENT
====================================================== */

.wedding-services-intro-content {
    padding-top: 5px;

    animation:
        weddingServicesIntroContent .9s cubic-bezier(.22, .61, .36, 1) .18s both;
}


.wedding-services-intro-line {
    width: 70px;
    height: 1px;

    margin-bottom: 30px;

    background: #c39575;
}


.wedding-services-intro-lead {
    max-width: 620px;

    margin: 0;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: 20px;
    font-weight: 500;

    line-height: 1.65;
}


.wedding-services-intro-text {
    max-width: 590px;

    margin: 28px 0 0;

    color: #68736d;

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.9;
}


/* =====================================================
   SIGNATURE
====================================================== */

.wedding-services-intro-signature {
    margin-top: 42px;

    padding-top: 20px;

    border-top: 1px solid rgba(48, 36, 31, .14);

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;
}


.wedding-services-intro-signature span {
    color: #92786a;

    font-family: "Playfair Display", serif;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 2px;
}


.wedding-services-intro-signature strong {
    color: #b8896b;

    font-family: "Playfair Display", serif;

    font-size: 15px;
    font-weight: 500;

    font-style: italic;
}


/* =====================================================
   SERVICE STRIP
====================================================== */

.wedding-services-intro-strip {
    width: min(1240px, calc(100% - 40px));

    margin: 105px auto 0;

    border-top: 1px solid rgba(48, 36, 31, .14);

    display: grid;

    grid-template-columns: repeat(4, 1fr);
}


.wedding-services-intro-strip-item {
    min-height: 110px;

    padding: 25px 24px;

    border-right: 1px solid rgba(48, 36, 31, .14);

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    transition:
        background .3s ease,
        transform .3s ease;
}


.wedding-services-intro-strip-item:last-child {
    border-right: 0;
}


.wedding-services-intro-strip-item:hover {
    background: #f8f1ed;

    transform: translateY(-5px);
}


.wedding-services-intro-strip-item span {
    color: #c39575;

    font-family: "Playfair Display", serif;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1px;
}


.wedding-services-intro-strip-item strong {
    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: 17px;
    font-weight: 500;
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingServicesIntroHeading {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes weddingServicesIntroContent {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 992px) {

    .wedding-services-intro {
        padding-top: 100px;
    }


    .wedding-services-intro-container {
        grid-template-columns: 1fr 1fr;

        gap: 55px;
    }


    .wedding-services-intro-heading h2 {
        font-size: 46px;
    }


    .wedding-services-intro-lead {
        font-size: 18px;
    }


    .wedding-services-intro-strip {
        margin-top: 80px;
    }

}


@media (max-width: 768px) {

    .wedding-services-intro {
        padding-top: 80px;
    }


    .wedding-services-intro-container {
        width: calc(100% - 30px);

        grid-template-columns: 1fr;

        gap: 55px;
    }


    .wedding-services-intro-heading h2 {
        max-width: 600px;

        font-size: 44px;
    }


    .wedding-services-intro-strip {
        width: calc(100% - 30px);

        margin-top: 70px;

        grid-template-columns: repeat(2, 1fr);
    }


    .wedding-services-intro-strip-item {
        border-bottom: 1px solid rgba(48, 36, 31, .14);
    }


    .wedding-services-intro-strip-item:nth-child(2) {
        border-right: 0;
    }

}


@media (max-width: 480px) {

    .wedding-services-intro {
        padding-top: 65px;
    }


    .wedding-services-intro-heading h2 {
        font-size: 36px;
    }


    .wedding-services-intro-lead {
        font-size: 16px;

        line-height: 1.65;
    }


    .wedding-services-intro-text {
        font-size: 12px;

        line-height: 1.8;
    }


    .wedding-services-intro-signature {
        align-items: flex-start;

        flex-direction: column;

        gap: 12px;
    }


    .wedding-services-intro-strip {
        grid-template-columns: 1fr;

        margin-top: 55px;
    }


    .wedding-services-intro-strip-item {
        min-height: 85px;

        border-right: 0;
    }


    .wedding-services-intro-strip-item:nth-child(2) {
        border-right: 0;
    }

}

/* =====================================================
   SERVICES — WEDDING PLANNING
====================================================== */

.wedding-planning-service {
    position: relative;

    width: 100%;

    padding: 125px 0;

    background: #f8f1ed;

    overflow: hidden;
}


.wedding-planning-service-container {
    width: min(1180px, calc(100% - 40px));

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(420px, .9fr) minmax(420px, 1.1fr);

    gap: 95px;

    align-items: center;
}


/* =====================================================
   VISUAL
====================================================== */

.wedding-planning-service-visual {
    position: relative;

    padding-bottom: 48px;

    animation:
        weddingPlanningServiceVisual 1s cubic-bezier(.22, .61, .36, 1) both;
}


.wedding-planning-service-image {
    position: relative;

    width: 100%;

    aspect-ratio: .82 / 1;

    overflow: hidden;

    background: #e7ddd7;
}


.wedding-planning-service-image::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(180deg,
            transparent 55%,
            rgba(30, 20, 17, .18));
}


.wedding-planning-service-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform .8s cubic-bezier(.22, .61, .36, 1);
}


.wedding-planning-service-visual:hover .wedding-planning-service-image img {
    transform: scale(1.04);
}


/* =====================================================
   IMAGE CAPTION
====================================================== */

.wedding-planning-service-caption {
    position: absolute;

    left: -25px;
    bottom: 0;

    width: 220px;

    min-height: 95px;

    padding: 20px 22px;

    background: #30241f;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    box-shadow:
        0 18px 45px rgba(48, 36, 31, .16);
}


.wedding-planning-service-caption span {
    color: #c39575;

    font-family: "Playfair Display", serif;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1px;
}


.wedding-planning-service-caption p {
    margin: 0;

    color: rgba(255, 255, 255, .72);

    font-family: "Playfair Display", serif;

    font-size: 9px;
    font-weight: 500;

    line-height: 1.7;

    letter-spacing: 1.5px;
}


/* =====================================================
   CONTENT
====================================================== */

.wedding-planning-service-content {
    animation:
        weddingPlanningServiceContent 1s cubic-bezier(.22, .61, .36, 1) .18s both;
}


.wedding-planning-service-heading {
    padding-bottom: 35px;

    border-bottom: 1px solid rgba(48, 36, 31, .14);
}


.wedding-planning-service-label {
    display: block;

    margin-bottom: 18px;

    color: #b8896b;

    font-family: "Playfair Display", serif;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 2.5px;
}


.wedding-planning-service-heading h2 {
    max-width: 620px;

    margin: 0;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: clamp(40px, 4.5vw, 57px);

    line-height: 1.1;

    font-weight: 500;

    letter-spacing: -1px;
}


.wedding-planning-service-heading h2 em {
    display: block;

    color: #b8896b;

    font-weight: 500;
}


.wedding-planning-service-heading>p {
    max-width: 600px;

    margin: 25px 0 0;

    color: #68736d;

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.9;
}


/* =====================================================
   STEPS
====================================================== */

.wedding-planning-service-steps {
    position: relative;

    margin-top: 10px;
}


.wedding-planning-service-steps::before {
    content: "";

    position: absolute;

    left: 19px;
    top: 25px;
    bottom: 25px;

    width: 1px;

    background: rgba(195, 149, 117, .38);
}


.wedding-planning-service-step {
    position: relative;

    display: grid;

    grid-template-columns: 40px 1fr;

    gap: 22px;

    padding: 25px 0;

    border-bottom: 1px solid rgba(48, 36, 31, .10);

    animation:
        weddingPlanningStepReveal .7s ease both;
}


.wedding-planning-service-step:nth-child(1) {
    animation-delay: .35s;
}


.wedding-planning-service-step:nth-child(2) {
    animation-delay: .48s;
}


.wedding-planning-service-step:nth-child(3) {
    animation-delay: .61s;
}


.wedding-planning-service-step:last-child {
    border-bottom: 0;
}


.wedding-planning-service-step-no {
    position: relative;

    z-index: 1;

    width: 39px;
    height: 39px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: #f8f1ed;

    border: 1px solid #c39575;

    border-radius: 50%;

    color: #b8896b;

    font-family: "Playfair Display", serif;

    font-size: 10px;
    font-weight: 600;
}


.wedding-planning-service-step h3 {
    margin: 2px 0 7px;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: 17px;
    font-weight: 600;
}


.wedding-planning-service-step p {
    max-width: 480px;

    margin: 0;

    color: #68736d;

    font-family: "Playfair Display", serif;

    font-size: 12px;
    font-weight: 400;

    line-height: 1.75;
}


/* =====================================================
   LINK
====================================================== */

.wedding-planning-service-link {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    margin-top: 25px;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: 12px;
    font-weight: 600;

    text-decoration: none;

    border-bottom: 1px solid #b8896b;

    padding-bottom: 7px;

    transition:
        color .3s ease,
        gap .3s ease;
}


.wedding-planning-service-link i {
    color: #b8896b;

    font-size: 10px;

    transition:
        transform .3s ease;
}


.wedding-planning-service-link:hover {
    color: #b06f4e;

    gap: 17px;
}


.wedding-planning-service-link:hover i {
    transform: translateX(4px);
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingPlanningServiceVisual {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes weddingPlanningServiceContent {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes weddingPlanningStepReveal {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 992px) {

    .wedding-planning-service {
        padding: 100px 0;
    }


    .wedding-planning-service-container {
        grid-template-columns:
            minmax(320px, .9fr) minmax(350px, 1.1fr);

        gap: 55px;
    }


    .wedding-planning-service-heading h2 {
        font-size: 43px;
    }

}


@media (max-width: 768px) {

    .wedding-planning-service {
        padding: 80px 0;
    }


    .wedding-planning-service-container {
        width: calc(100% - 30px);

        grid-template-columns: 1fr;

        gap: 65px;
    }


    .wedding-planning-service-visual {
        width: min(600px, 100%);

        margin: 0 auto;
    }


    .wedding-planning-service-image {
        aspect-ratio: 1 / 1.08;
    }


    .wedding-planning-service-content {
        width: 100%;
    }


    .wedding-planning-service-heading h2 {
        font-size: 42px;
    }

}


@media (max-width: 480px) {

    .wedding-planning-service {
        padding: 65px 0;
    }


    .wedding-planning-service-container {
        width: calc(100% - 30px);

        gap: 50px;
    }


    .wedding-planning-service-caption {
        left: -8px;

        width: 190px;

        min-height: 85px;

        padding: 16px 18px;
    }


    .wedding-planning-service-heading h2 {
        font-size: 35px;
    }


    .wedding-planning-service-heading>p {
        font-size: 12px;

        line-height: 1.8;
    }


    .wedding-planning-service-step {
        grid-template-columns: 34px 1fr;

        gap: 15px;

        padding: 20px 0;
    }


    .wedding-planning-service-step-no {
        width: 34px;
        height: 34px;

        font-size: 9px;
    }


    .wedding-planning-service-steps::before {
        left: 16px;
    }


    .wedding-planning-service-step h3 {
        font-size: 15px;
    }


    .wedding-planning-service-step p {
        font-size: 11px;
    }

}

/* =====================================================
   SERVICES — WEDDING DECORATION
====================================================== */

.wedding-decoration-service {
    position: relative;

    width: 100%;

    padding: 125px 0;

    background: #fffaf7;

    overflow: hidden;
}


.wedding-decoration-service-container {
    width: min(1240px, calc(100% - 40px));

    margin: 0 auto;
}


/* =====================================================
   INTRO
====================================================== */

.wedding-decoration-service-intro {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 50px;

    margin-bottom: 55px;

    animation:
        weddingDecorationIntro .9s cubic-bezier(.22, .61, .36, 1) both;
}


.wedding-decoration-service-label {
    display: block;

    color: #b8896b;

    font-family: "Playfair Display", serif;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 2.5px;
}


.wedding-decoration-service-intro h2 {
    width: min(600px, 60%);

    margin: 0;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: clamp(43px, 5.5vw, 68px);

    line-height: 1.04;

    font-weight: 500;

    letter-spacing: -1.5px;
}


.wedding-decoration-service-intro h2 em {
    display: block;

    color: #b8896b;

    font-weight: 500;
}


/* =====================================================
   MAIN STAGE
====================================================== */

.wedding-decoration-service-stage {
    position: relative;

    min-height: 570px;

    animation:
        weddingDecorationStage 1s cubic-bezier(.22, .61, .36, 1) .2s both;
}


.wedding-decoration-service-image {
    position: relative;

    width: 76%;

    height: 570px;

    margin-left: auto;

    overflow: hidden;

    background: #eee4df;
}


.wedding-decoration-service-image::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(90deg,
            rgba(20, 15, 12, .08),
            transparent 50%,
            rgba(20, 15, 12, .15));
}


.wedding-decoration-service-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform 1s cubic-bezier(.22, .61, .36, 1);
}


.wedding-decoration-service-stage:hover .wedding-decoration-service-image img {
    transform: scale(1.035);
}


/* =====================================================
   FLOATING NOTES
====================================================== */

.wedding-decoration-service-note {
    position: absolute;

    width: 245px;

    padding: 22px 23px;

    background: rgba(255, 250, 247, .96);

    border: 1px solid rgba(48, 36, 31, .10);

    box-shadow:
        0 18px 45px rgba(48, 36, 31, .12);

    backdrop-filter: blur(8px);

    animation:
        weddingDecorationNote .8s cubic-bezier(.22, .61, .36, 1) both;
}


.wedding-decoration-service-note span {
    display: block;

    margin-bottom: 13px;

    color: #c39575;

    font-family: "Playfair Display", serif;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1px;
}


.wedding-decoration-service-note strong {
    display: block;

    margin-bottom: 8px;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: 16px;
    font-weight: 600;
}


.wedding-decoration-service-note p {
    margin: 0;

    color: #68736d;

    font-family: "Playfair Display", serif;

    font-size: 11px;
    font-weight: 400;

    line-height: 1.75;
}


.wedding-decoration-note-one {
    left: 0;
    top: 55px;

    animation-delay: .42s;
}


.wedding-decoration-note-two {
    left: 7%;
    bottom: 35px;

    animation-delay: .57s;
}


.wedding-decoration-note-three {
    right: 0;
    top: 225px;

    animation-delay: .72s;
}


/* =====================================================
   BOTTOM
====================================================== */

.wedding-decoration-service-bottom {
    width: 76%;

    margin-left: auto;

    padding-top: 28px;

    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 50px;

    border-top: 1px solid rgba(48, 36, 31, .14);

    animation:
        weddingDecorationBottom .8s ease .85s both;
}


.wedding-decoration-service-bottom p {
    max-width: 540px;

    margin: 0;

    color: #68736d;

    font-family: "Playfair Display", serif;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.85;
}


.wedding-decoration-service-bottom a {
    flex-shrink: 0;

    display: inline-flex;

    align-items: center;

    gap: 12px;

    padding-bottom: 7px;

    border-bottom: 1px solid #b8896b;

    color: #30241f;

    font-family: "Playfair Display", serif;

    font-size: 11px;
    font-weight: 600;

    text-decoration: none;

    transition:
        color .3s ease,
        gap .3s ease;
}


.wedding-decoration-service-bottom a i {
    color: #b8896b;

    font-size: 10px;

    transition:
        transform .3s ease;
}


.wedding-decoration-service-bottom a:hover {
    color: #b06f4e;

    gap: 17px;
}


.wedding-decoration-service-bottom a:hover i {
    transform: translateX(4px);
}


/* =====================================================
   ANIMATIONS
====================================================== */

@keyframes weddingDecorationIntro {

    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingDecorationStage {

    from {
        opacity: 0;
        transform: scale(.98);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }

}


@keyframes weddingDecorationNote {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes weddingDecorationBottom {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 992px) {

    .wedding-decoration-service {
        padding: 100px 0;
    }


    .wedding-decoration-service-stage {
        min-height: 510px;
    }


    .wedding-decoration-service-image {
        width: 73%;
        height: 510px;
    }


    .wedding-decoration-service-note {
        width: 215px;

        padding: 18px;
    }


    .wedding-decoration-note-three {
        top: 205px;
    }


    .wedding-decoration-service-bottom {
        width: 73%;
    }

}


@media (max-width: 768px) {

    .wedding-decoration-service {
        padding: 80px 0;
    }


    .wedding-decoration-service-intro {
        display: block;

        margin-bottom: 40px;
    }


    .wedding-decoration-service-intro h2 {
        width: 100%;

        margin-top: 18px;

        font-size: 45px;
    }


    .wedding-decoration-service-stage {
        min-height: auto;

        display: flex;

        flex-direction: column;

        gap: 14px;
    }


    .wedding-decoration-service-image {
        width: 100%;

        height: 480px;

        margin: 0;
    }


    .wedding-decoration-service-note {
        position: relative;

        inset: auto !important;

        width: 100%;

        box-shadow: none;
    }


    .wedding-decoration-service-bottom {
        width: 100%;

        margin-top: 35px;

        flex-direction: column;

        gap: 25px;
    }

}


@media (max-width: 480px) {

    .wedding-decoration-service {
        padding: 65px 0;
    }


    .wedding-decoration-service-container {
        width: calc(100% - 30px);
    }


    .wedding-decoration-service-intro h2 {
        font-size: 36px;
    }


    .wedding-decoration-service-image {
        height: 390px;
    }


    .wedding-decoration-service-note {
        padding: 18px;
    }


    .wedding-decoration-service-note strong {
        font-size: 15px;
    }


    .wedding-decoration-service-note p {
        font-size: 11px;
    }


    .wedding-decoration-service-bottom p {
        font-size: 12px;
    }

}

/* =========================================================
   SERVICES — VENDOR MANAGEMENT
========================================================= */

.wedding-vendor-management {
    position: relative;
    width: 100%;
    padding: 120px 0;
    background: #f3eee9;
    overflow: hidden;
}

.wedding-vendor-management-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.82fr 1.18fr;
    gap: 90px;
    align-items: start;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-vendor-management-intro {
    position: sticky;
    top: 120px;
    padding-top: 8px;
    animation: weddingVendorIntroReveal 0.9s ease both;
}

.wedding-vendor-management-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 28px;
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
    color: #92786a;
}

.wedding-vendor-management-label::before {
    content: "";
    width: 34px;
    height: 1px;
    background: #b8896b;
}

.wedding-vendor-management-intro h2 {
    margin: 0;
    max-width: 470px;
    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 4.3vw, 66px);
    line-height: 1.04;
    font-weight: 600;
    letter-spacing: -1.5px;
    color: #30241f;
}

.wedding-vendor-management-intro h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
    font-weight: 500;
}

.wedding-vendor-management-intro p {
    max-width: 430px;
    margin: 30px 0 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #665850;
}


/* =========================================================
   SIGNATURE MARK
========================================================= */

.wedding-vendor-management-signature {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 55px;
}

.wedding-vendor-management-signature span {
    font-family: "Playfair Display", serif;
    font-size: 44px;
    line-height: 1;
    color: #b8896b;
    font-weight: 500;
}

.wedding-vendor-management-signature div {
    width: 54px;
    height: 1px;
    background: rgba(48, 36, 31, 0.25);
}

.wedding-vendor-management-signature small {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    line-height: 1.5;
    letter-spacing: 1.7px;
    color: #92786a;
}


/* =========================================================
   DIRECTORY
========================================================= */

.wedding-vendor-management-directory {
    width: 100%;
    animation: weddingVendorDirectoryReveal 1s ease 0.15s both;
}

.wedding-vendor-management-item {
    position: relative;
    display: grid;
    grid-template-columns: 58px 1fr 42px;
    align-items: center;
    gap: 24px;
    width: 100%;
    min-height: 145px;
    padding: 28px 4px 28px 0;
    text-decoration: none;
    border-top: 1px solid rgba(48, 36, 31, 0.16);
    transition:
        padding 0.35s ease,
        background 0.35s ease,
        border-color 0.35s ease;
}

.wedding-vendor-management-item:last-child {
    border-bottom: 1px solid rgba(48, 36, 31, 0.16);
}

.wedding-vendor-management-item:hover {
    padding-left: 22px;
    padding-right: 22px;
    background: #fffaf7;
    border-color: #b8896b;
}

.wedding-vendor-management-number {
    align-self: start;
    padding-top: 3px;
    font-family: "Playfair Display", serif;
    font-size: 14px;
    font-weight: 600;
    color: #b8896b;
}

.wedding-vendor-management-content {
    min-width: 0;
}

.wedding-vendor-management-mini {
    display: block;
    margin-bottom: 9px;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-vendor-management-content h3 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(23px, 2.1vw, 31px);
    line-height: 1.2;
    font-weight: 600;
    color: #30241f;
    transition: color 0.3s ease;
}

.wedding-vendor-management-item:hover .wedding-vendor-management-content h3 {
    color: #b06f4e;
}

.wedding-vendor-management-content p {
    max-width: 570px;
    margin: 10px 0 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.7;
    font-weight: 400;
    color: #75665e;
}

.wedding-vendor-management-arrow {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(48, 36, 31, 0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #92786a;
    font-size: 11px;
    transition:
        transform 0.35s ease,
        background 0.35s ease,
        color 0.35s ease,
        border-color 0.35s ease;
}

.wedding-vendor-management-item:hover .wedding-vendor-management-arrow {
    transform: rotate(45deg);
    background: #b8896b;
    border-color: #b8896b;
    color: #ffffff;
}


/* =========================================================
   ENTRANCE ANIMATIONS
========================================================= */

@keyframes weddingVendorIntroReveal {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingVendorDirectoryReveal {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =========================================================
   RESPONSIVE — 1200px
========================================================= */

@media (max-width: 1200px) {

    .wedding-vendor-management {
        padding: 100px 0;
    }

    .wedding-vendor-management-container {
        gap: 60px;
    }

}


/* =========================================================
   RESPONSIVE — 992px
========================================================= */

@media (max-width: 992px) {

    .wedding-vendor-management {
        padding: 90px 0;
    }

    .wedding-vendor-management-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .wedding-vendor-management-intro {
        position: relative;
        top: auto;
    }

    .wedding-vendor-management-intro h2 {
        max-width: 650px;
    }

    .wedding-vendor-management-intro p {
        max-width: 650px;
    }

    .wedding-vendor-management-signature {
        margin-top: 35px;
    }

}


/* =========================================================
   RESPONSIVE — 768px
========================================================= */

@media (max-width: 768px) {

    .wedding-vendor-management {
        padding: 75px 0;
    }

    .wedding-vendor-management-container {
        width: min(100% - 30px, 680px);
        gap: 45px;
    }

    .wedding-vendor-management-intro h2 {
        font-size: clamp(38px, 9vw, 52px);
    }

    .wedding-vendor-management-item {
        grid-template-columns: 42px 1fr 36px;
        gap: 15px;
        min-height: 135px;
        padding: 25px 0;
    }

    .wedding-vendor-management-item:hover {
        padding-left: 12px;
        padding-right: 12px;
    }

    .wedding-vendor-management-content h3 {
        font-size: 23px;
    }

}


/* =========================================================
   RESPONSIVE — 480px
========================================================= */

@media (max-width: 480px) {

    .wedding-vendor-management {
        padding: 60px 0;
    }

    .wedding-vendor-management-container {
        width: calc(100% - 30px);
    }

    .wedding-vendor-management-intro h2 {
        font-size: 37px;
        letter-spacing: -0.7px;
    }

    .wedding-vendor-management-intro p {
        margin-top: 22px;
        line-height: 1.75;
    }

    .wedding-vendor-management-signature {
        margin-top: 30px;
    }

    .wedding-vendor-management-item {
        grid-template-columns: 32px 1fr;
        gap: 12px;
        min-height: auto;
        padding: 22px 0;
    }

    .wedding-vendor-management-arrow {
        display: none;
    }

    .wedding-vendor-management-content h3 {
        font-size: 21px;
    }

    .wedding-vendor-management-content p {
        font-size: 12.5px;
        line-height: 1.65;
    }

}


/* =========================================================
   RESPONSIVE — 360px
========================================================= */

@media (max-width: 360px) {

    .wedding-vendor-management-intro h2 {
        font-size: 33px;
    }

    .wedding-vendor-management-content h3 {
        font-size: 19px;
    }

}


/* =========================================================
   SERVICES — WEDDING COORDINATION
========================================================= */

.wedding-coordination-service {
    position: relative;
    width: 100%;
    padding: 125px 0 110px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-coordination-service-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wedding-coordination-service-header {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 80px;
    align-items: end;
    margin-bottom: 85px;
    animation: weddingCoordinationHeaderReveal 0.9s ease both;
}

.wedding-coordination-service-label {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 25px;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;
    color: #92786a;
}

.wedding-coordination-service-label::before {
    content: "";
    width: 35px;
    height: 1px;
    background: #b8896b;
}

.wedding-coordination-service-title h2 {
    max-width: 720px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.04;
    font-weight: 600;
    letter-spacing: -1.5px;
    color: #30241f;
}

.wedding-coordination-service-title h2 em {
    display: block;
    color: #b8896b;
    font-weight: 500;
    font-style: italic;
}

.wedding-coordination-service-intro {
    padding-bottom: 5px;
}

.wedding-coordination-service-index {
    display: block;
    margin-bottom: 18px;
    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #b8896b;
}

.wedding-coordination-service-intro p {
    max-width: 390px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #6f6058;
}


/* =========================================================
   FLOW
========================================================= */

.wedding-coordination-service-flow {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid rgba(48, 36, 31, 0.16);
    border-bottom: 1px solid rgba(48, 36, 31, 0.16);
}

.wedding-coordination-service-step {
    position: relative;
    min-height: 370px;
    padding: 28px 30px 35px;
    border-right: 1px solid rgba(48, 36, 31, 0.14);
    transition:
        background 0.35s ease,
        transform 0.35s ease;
    animation: weddingCoordinationStepReveal 0.8s ease both;
}

.wedding-coordination-service-step:nth-child(1) {
    animation-delay: 0.1s;
}

.wedding-coordination-service-step:nth-child(2) {
    animation-delay: 0.2s;
}

.wedding-coordination-service-step:nth-child(3) {
    animation-delay: 0.3s;
}

.wedding-coordination-service-step:nth-child(4) {
    animation-delay: 0.4s;
    border-right: 0;
}

.wedding-coordination-service-step:hover {
    background: #f7eee9;
    transform: translateY(-7px);
}

.wedding-coordination-service-step-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 85px;
}

.wedding-coordination-service-step-top span {
    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 600;
    color: #b8896b;
}

.wedding-coordination-service-step-top i {
    width: 31px;
    height: 31px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(48, 36, 31, 0.18);
    border-radius: 50%;
    font-size: 10px;
    color: #92786a;
    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.wedding-coordination-service-step:hover .wedding-coordination-service-step-top i {
    background: #b8896b;
    border-color: #b8896b;
    color: #ffffff;
    transform: translateY(4px);
}

.wedding-coordination-service-step-content {
    padding-right: 5px;
}

.wedding-coordination-service-step-label {
    display: block;
    margin-bottom: 13px;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.7px;
    color: #92786a;
}

.wedding-coordination-service-step-content h3 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 26px;
    line-height: 1.2;
    font-weight: 600;
    color: #30241f;
}

.wedding-coordination-service-step-content p {
    margin: 17px 0 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 400;
    color: #76665d;
}


/* =========================================================
   FOOTER STATEMENT
========================================================= */

.wedding-coordination-service-footer {
    margin-top: 70px;
    animation: weddingCoordinationFooterReveal 0.9s ease 0.35s both;
}

.wedding-coordination-service-footer-line {
    width: 100%;
    height: 1px;
    background: rgba(48, 36, 31, 0.16);
    margin-bottom: 25px;
}

.wedding-coordination-service-footer-content {
    display: grid;
    grid-template-columns: 0.5fr 1fr auto;
    align-items: center;
    gap: 35px;
}

.wedding-coordination-service-footer-content>span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-coordination-service-footer-content strong {
    font-family: "Playfair Display", serif;
    font-size: clamp(21px, 2.2vw, 30px);
    line-height: 1.3;
    font-weight: 500;
    font-style: italic;
    color: #30241f;
}

.wedding-coordination-service-footer-content a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 13px 20px;
    text-decoration: none;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: #ffffff;
    background: #b8896b;
    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.wedding-coordination-service-footer-content a:hover {
    background: #956b52;
    transform: translateY(-3px);
}

.wedding-coordination-service-footer-content a i {
    font-size: 10px;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingCoordinationHeaderReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingCoordinationStepReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingCoordinationFooterReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   1200px
========================================================= */

@media (max-width: 1200px) {

    .wedding-coordination-service {
        padding: 105px 0 90px;
    }

    .wedding-coordination-service-header {
        gap: 55px;
    }

    .wedding-coordination-service-step {
        padding-left: 22px;
        padding-right: 22px;
    }

}


/* =========================================================
   992px
========================================================= */

@media (max-width: 992px) {

    .wedding-coordination-service {
        padding: 90px 0;
    }

    .wedding-coordination-service-header {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-bottom: 60px;
    }

    .wedding-coordination-service-intro p {
        max-width: 650px;
    }

    .wedding-coordination-service-flow {
        grid-template-columns: repeat(2, 1fr);
    }

    .wedding-coordination-service-step {
        min-height: 330px;
        border-bottom: 1px solid rgba(48, 36, 31, 0.14);
    }

    .wedding-coordination-service-step:nth-child(2) {
        border-right: 0;
    }

    .wedding-coordination-service-step:nth-child(3) {
        border-bottom: 0;
    }

    .wedding-coordination-service-step:nth-child(4) {
        border-bottom: 0;
    }

    .wedding-coordination-service-footer-content {
        grid-template-columns: 1fr 1fr;
    }

    .wedding-coordination-service-footer-content a {
        justify-self: start;
    }

}


/* =========================================================
   768px
========================================================= */

@media (max-width: 768px) {

    .wedding-coordination-service {
        padding: 75px 0;
    }

    .wedding-coordination-service-container {
        width: min(100% - 30px, 680px);
    }

    .wedding-coordination-service-title h2 {
        font-size: clamp(38px, 9vw, 53px);
    }

    .wedding-coordination-service-flow {
        grid-template-columns: 1fr;
    }

    .wedding-coordination-service-step {
        min-height: auto;
        padding: 27px 22px 35px;
        border-right: 0;
        border-bottom: 1px solid rgba(48, 36, 31, 0.14);
    }

    .wedding-coordination-service-step:nth-child(3) {
        border-bottom: 1px solid rgba(48, 36, 31, 0.14);
    }

    .wedding-coordination-service-step:nth-child(4) {
        border-bottom: 0;
    }

    .wedding-coordination-service-step-top {
        margin-bottom: 45px;
    }

    .wedding-coordination-service-footer-content {
        grid-template-columns: 1fr;
        gap: 18px;
    }

}


/* =========================================================
   480px
========================================================= */

@media (max-width: 480px) {

    .wedding-coordination-service {
        padding: 60px 0;
    }

    .wedding-coordination-service-container {
        width: calc(100% - 30px);
    }

    .wedding-coordination-service-title h2 {
        font-size: 37px;
        letter-spacing: -0.7px;
    }

    .wedding-coordination-service-step {
        padding: 24px 17px 30px;
    }

    .wedding-coordination-service-step-top {
        margin-bottom: 35px;
    }

    .wedding-coordination-service-step-content h3 {
        font-size: 23px;
    }

    .wedding-coordination-service-footer {
        margin-top: 50px;
    }

}


/* =========================================================
   360px
========================================================= */

@media (max-width: 360px) {

    .wedding-coordination-service-title h2 {
        font-size: 33px;
    }

    .wedding-coordination-service-step-content h3 {
        font-size: 21px;
    }

}

/* =========================================================
   SERVICES — WEDDING SERVICE COMMAND BOARD
========================================================= */

.wedding-service-command {
    position: relative;
    width: 100%;
    padding: 125px 0;
    background: #30241f;
    color: #ffffff;
    overflow: hidden;
}

.wedding-service-command-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   TOP
========================================================= */

.wedding-service-command-top {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 45px;
    align-items: start;
    margin-bottom: 80px;
    animation: weddingCommandTopReveal 0.9s ease both;
}

.wedding-service-command-number {
    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 600;
    color: #c39575;
}

.wedding-service-command-heading>span {
    display: block;
    margin-bottom: 20px;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;
    color: #c5a99a;
}

.wedding-service-command-heading h2 {
    max-width: 780px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(45px, 5.5vw, 76px);
    line-height: 1.03;
    font-weight: 600;
    letter-spacing: -1.5px;
    color: #fffaf7;
}

.wedding-service-command-heading h2 em {
    color: #c39575;
    font-weight: 500;
    font-style: italic;
}


/* =========================================================
   MAIN BOARD
========================================================= */

.wedding-service-command-board {
    display: grid;
    grid-template-columns: 0.65fr 0.75fr 1.35fr;
    min-height: 510px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    animation: weddingCommandBoardReveal 1s ease 0.15s both;
}


/* =========================================================
   LEFT SIDE
========================================================= */

.wedding-service-command-side {
    padding: 55px 45px 45px 0;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.wedding-service-command-side-line {
    width: 45px;
    height: 1px;
    margin-bottom: 28px;
    background: #c39575;
}

.wedding-service-command-side p {
    max-width: 250px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #d2c4bc;
}

.wedding-service-command-side small {
    display: block;
    max-width: 230px;
    margin-top: 110px;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    line-height: 1.8;
    letter-spacing: 1.8px;
    color: #92786a;
}


/* =========================================================
   CENTER
========================================================= */

.wedding-service-command-center {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.wedding-service-command-ring {
    position: relative;
    width: 210px;
    height: 210px;
    border: 1px solid rgba(195, 149, 117, 0.7);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wedding-service-command-ring::before {
    content: "";
    position: absolute;
    inset: 15px;
    border: 1px solid rgba(195, 149, 117, 0.25);
    border-radius: 50%;
}

.wedding-service-command-ring::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    top: -3px;
    left: 50%;
    transform: translateX(-50%);
    background: #c39575;
    border-radius: 50%;
}

.wedding-service-command-ring span {
    position: relative;
    z-index: 2;
    text-align: center;
    font-family: "Playfair Display", serif;
    font-size: 17px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 1px;
    color: #fffaf7;
}

.wedding-service-command-center-label {
    margin-top: 25px;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #92786a;
}


/* =========================================================
   SERVICE LIST
========================================================= */

.wedding-service-command-list {
    padding-left: 45px;
}

.wedding-service-command-row {
    display: grid;
    grid-template-columns: 42px 1fr 28px;
    gap: 20px;
    align-items: center;
    min-height: 127px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    transition:
        padding 0.35s ease,
        background 0.35s ease;
}

.wedding-service-command-row:last-child {
    border-bottom: 0;
}

.wedding-service-command-row:hover {
    padding-left: 15px;
    background: rgba(195, 149, 117, 0.07);
}

.wedding-service-command-row>span {
    font-family: "Playfair Display", serif;
    font-size: 12px;
    color: #c39575;
}

.wedding-service-command-row strong {
    display: block;
    margin-bottom: 6px;
    font-family: "Playfair Display", serif;
    font-size: 25px;
    line-height: 1.2;
    font-weight: 600;
    color: #fffaf7;
}

.wedding-service-command-row p {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 400;
    color: #bcaea6;
}

.wedding-service-command-row>i {
    font-size: 10px;
    color: #92786a;
    transition:
        transform 0.3s ease,
        color 0.3s ease;
}

.wedding-service-command-row:hover>i {
    transform: translateX(6px);
    color: #c39575;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-service-command-bottom {
    display: grid;
    grid-template-columns: auto 80px 1fr;
    align-items: center;
    gap: 22px;
    margin-top: 32px;
    animation: weddingCommandBottomReveal 0.9s ease 0.35s both;
}

.wedding-service-command-bottom span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-service-command-bottom div {
    height: 1px;
    background: rgba(255, 255, 255, 0.18);
}

.wedding-service-command-bottom strong {
    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 500;
    font-style: italic;
    color: #e8ddd7;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingCommandTopReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingCommandBoardReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingCommandBottomReveal {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   1200px
========================================================= */

@media (max-width: 1200px) {

    .wedding-service-command {
        padding: 105px 0;
    }

    .wedding-service-command-board {
        grid-template-columns: 0.6fr 0.7fr 1.4fr;
    }

    .wedding-service-command-side {
        padding-right: 30px;
    }

    .wedding-service-command-list {
        padding-left: 30px;
    }

}


/* =========================================================
   992px
========================================================= */

@media (max-width: 992px) {

    .wedding-service-command {
        padding: 90px 0;
    }

    .wedding-service-command-top {
        margin-bottom: 60px;
    }

    .wedding-service-command-board {
        grid-template-columns: 1fr 1fr;
    }

    .wedding-service-command-side {
        min-height: 300px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    }

    .wedding-service-command-center {
        min-height: 300px;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    }

    .wedding-service-command-list {
        grid-column: 1 / -1;
        padding-left: 0;
    }

    .wedding-service-command-row {
        padding: 0 25px;
    }

    .wedding-service-command-side small {
        margin-top: 65px;
    }

}


/* =========================================================
   768px
========================================================= */

@media (max-width: 768px) {

    .wedding-service-command {
        padding: 75px 0;
    }

    .wedding-service-command-container {
        width: min(100% - 30px, 680px);
    }

    .wedding-service-command-top {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .wedding-service-command-heading h2 {
        font-size: clamp(40px, 9vw, 58px);
    }

    .wedding-service-command-board {
        grid-template-columns: 1fr;
    }

    .wedding-service-command-side {
        min-height: auto;
        padding: 35px 0;
        border-right: 0;
    }

    .wedding-service-command-side small {
        margin-top: 35px;
    }

    .wedding-service-command-center {
        min-height: 350px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    }

    .wedding-service-command-list {
        grid-column: auto;
    }

    .wedding-service-command-row {
        min-height: 115px;
        padding: 0;
    }

    .wedding-service-command-row:hover {
        padding-left: 10px;
    }

    .wedding-service-command-bottom {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .wedding-service-command-bottom div {
        display: none;
    }

}


/* =========================================================
   480px
========================================================= */

@media (max-width: 480px) {

    .wedding-service-command {
        padding: 60px 0;
    }

    .wedding-service-command-container {
        width: calc(100% - 30px);
    }

    .wedding-service-command-heading h2 {
        font-size: 37px;
        letter-spacing: -0.6px;
    }

    .wedding-service-command-center {
        min-height: 300px;
    }

    .wedding-service-command-ring {
        width: 175px;
        height: 175px;
    }

    .wedding-service-command-row {
        grid-template-columns: 32px 1fr 20px;
        gap: 12px;
    }

    .wedding-service-command-row strong {
        font-size: 22px;
    }

    .wedding-service-command-row p {
        font-size: 11.5px;
    }

}


/* =========================================================
   360px
========================================================= */

@media (max-width: 360px) {

    .wedding-service-command-heading h2 {
        font-size: 33px;
    }

    .wedding-service-command-ring {
        width: 155px;
        height: 155px;
    }

}

/* =========================================================
   SERVICES — WEDDING PLANNING PROCESS
========================================================= */

.wedding-process-section {
    position: relative;
    width: 100%;
    padding: 125px 0 115px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-process-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-process-intro {
    max-width: 850px;
    margin-bottom: 100px;
    animation: weddingProcessIntroReveal 0.9s ease both;
}

.wedding-process-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 25px;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;
    color: #92786a;
}

.wedding-process-eyebrow::before {
    content: "";
    width: 36px;
    height: 1px;
    background: #b8896b;
}

.wedding-process-intro h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 5.7vw, 76px);
    line-height: 1.02;
    font-weight: 600;
    letter-spacing: -1.5px;
    color: #30241f;
}

.wedding-process-intro h2 em {
    color: #b8896b;
    font-style: italic;
    font-weight: 500;
}

.wedding-process-intro p {
    max-width: 510px;
    margin: 30px 0 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #6f6058;
}


/* =========================================================
   TRACK
========================================================= */

.wedding-process-track {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding-top: 38px;
}


/* CONNECTING LINE */

.wedding-process-line {
    position: absolute;
    top: 13px;
    left: 0;
    width: 100%;
    height: 1px;
    background: rgba(48, 36, 31, 0.18);
}

.wedding-process-line span {
    position: absolute;
    top: -2px;
    left: 0;
    width: 18%;
    height: 5px;
    border-radius: 10px;
    background: #b8896b;
}


/* =========================================================
   PROCESS ITEM
========================================================= */

.wedding-process-item {
    position: relative;
    min-height: 315px;
    padding: 0 35px;
    border-left: 1px solid rgba(48, 36, 31, 0.12);
    animation: weddingProcessItemReveal 0.8s ease both;
}

.wedding-process-item:first-of-type {
    border-left: 0;
    padding-left: 0;
}

.wedding-process-item:nth-child(2) {
    animation-delay: 0.12s;
}

.wedding-process-item:nth-child(3) {
    animation-delay: 0.24s;
}

.wedding-process-item:nth-child(4) {
    animation-delay: 0.36s;
}

.wedding-process-item:nth-child(5) {
    animation-delay: 0.48s;
}


/* MARKER */

.wedding-process-marker {
    width: 27px;
    height: 27px;
    margin-bottom: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fffaf7;
    border: 1px solid #b8896b;
    border-radius: 50%;
}

.wedding-process-marker span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 700;
    color: #b8896b;
}


/* CONTENT */

.wedding-process-small {
    display: block;
    margin-bottom: 12px;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.8px;
    color: #92786a;
}

.wedding-process-content h3 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 31px;
    line-height: 1.15;
    font-weight: 600;
    color: #30241f;
}

.wedding-process-content p {
    max-width: 235px;
    margin: 17px 0 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 400;
    color: #75665e;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-process-bottom {
    display: grid;
    grid-template-columns: 0.45fr 1fr auto;
    align-items: center;
    gap: 35px;
    margin-top: 80px;
    padding-top: 28px;
    border-top: 1px solid rgba(48, 36, 31, 0.15);
    animation: weddingProcessBottomReveal 0.9s ease 0.45s both;
}

.wedding-process-bottom>span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-process-bottom strong {
    font-family: "Playfair Display", serif;
    font-size: clamp(20px, 2.2vw, 29px);
    line-height: 1.35;
    font-weight: 500;
    font-style: italic;
    color: #30241f;
}

.wedding-process-bottom a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 13px 20px;
    text-decoration: none;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: #ffffff;
    background: #b8896b;
    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.wedding-process-bottom a:hover {
    background: #956b52;
    transform: translateY(-3px);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingProcessIntroReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingProcessItemReveal {

    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingProcessBottomReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   1200px
========================================================= */

@media (max-width: 1200px) {

    .wedding-process-section {
        padding: 105px 0 95px;
    }

    .wedding-process-item {
        padding: 0 25px;
    }

}


/* =========================================================
   992px
========================================================= */

@media (max-width: 992px) {

    .wedding-process-section {
        padding: 90px 0;
    }

    .wedding-process-intro {
        margin-bottom: 75px;
    }

    .wedding-process-track {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 60px;
    }

    .wedding-process-line {
        display: none;
    }

    .wedding-process-item {
        min-height: 290px;
        padding: 0 25px;
        border-left: 1px solid rgba(48, 36, 31, 0.12);
    }

    .wedding-process-item:nth-child(2),
    .wedding-process-item:nth-child(4) {
        border-left: 0;
    }

    .wedding-process-item:first-of-type {
        padding-left: 25px;
    }

    .wedding-process-bottom {
        grid-template-columns: 1fr 1fr;
        gap: 25px;
    }

    .wedding-process-bottom a {
        justify-self: start;
    }

}


/* =========================================================
   768px
========================================================= */

@media (max-width: 768px) {

    .wedding-process-section {
        padding: 75px 0;
    }

    .wedding-process-container {
        width: min(100% - 30px, 680px);
    }

    .wedding-process-intro h2 {
        font-size: clamp(42px, 9vw, 60px);
    }

    .wedding-process-track {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .wedding-process-item,
    .wedding-process-item:first-of-type,
    .wedding-process-item:nth-child(2),
    .wedding-process-item:nth-child(4) {
        min-height: auto;
        padding: 35px 0 45px;
        border-left: 0;
        border-bottom: 1px solid rgba(48, 36, 31, 0.12);
    }

    .wedding-process-item:last-child {
        border-bottom: 0;
    }

    .wedding-process-marker {
        margin-bottom: 35px;
    }

    .wedding-process-content p {
        max-width: 500px;
    }

    .wedding-process-bottom {
        grid-template-columns: 1fr;
        margin-top: 55px;
    }

}


/* =========================================================
   480px
========================================================= */

@media (max-width: 480px) {

    .wedding-process-section {
        padding: 60px 0;
    }

    .wedding-process-container {
        width: calc(100% - 30px);
    }

    .wedding-process-intro h2 {
        font-size: 38px;
        letter-spacing: -0.6px;
    }

    .wedding-process-intro p {
        margin-top: 22px;
        line-height: 1.75;
    }

    .wedding-process-item {
        padding: 30px 0 38px !important;
    }

    .wedding-process-content h3 {
        font-size: 27px;
    }

    .wedding-process-bottom strong {
        font-size: 22px;
    }

}


/* =========================================================
   360px
========================================================= */

@media (max-width: 360px) {

    .wedding-process-intro h2 {
        font-size: 34px;
    }

    .wedding-process-content h3 {
        font-size: 24px;
    }

}

/* =====================================================
   WEDDING SERVICE BENEFITS
===================================================== */

.wedding-benefits {
    position: relative;
    width: 100%;
    padding: 120px 0;
    background: #f8f1ed;
    overflow: hidden;
}

.wedding-benefits-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 100px;
    align-items: start;
}


/* =====================================================
   INTRO
===================================================== */

.wedding-benefits-intro {
    position: sticky;
    top: 130px;
    opacity: 0;
    transform: translateX(-45px);
    animation: weddingBenefitsIntro 0.9s ease forwards;
}

.wedding-benefits-label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2.5px;
    color: #b8896b;
}

.wedding-benefits-label::before {
    content: "";
    width: 34px;
    height: 1px;
    background: #b8896b;
}

.wedding-benefits-intro h2 {
    max-width: 480px;
    margin: 0 0 25px;
    font-family: "Playfair Display", serif;
    font-size: clamp(38px, 4.2vw, 62px);
    line-height: 1.08;
    font-weight: 600;
    letter-spacing: -1.5px;
    color: #30241f;
}

.wedding-benefits-intro h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
    font-weight: 500;
}

.wedding-benefits-intro p {
    max-width: 430px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #74645b;
}

.wedding-benefits-mark {
    margin-top: 65px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.wedding-benefits-mark span {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(184, 137, 107, 0.55);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Playfair Display", serif;
    font-size: 19px;
    font-style: italic;
    color: #b8896b;
}

.wedding-benefits-mark small {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.8px;
    color: #92786a;
}


/* =====================================================
   BENEFIT LIST
===================================================== */

.wedding-benefits-list {
    width: 100%;
    border-top: 1px solid rgba(80, 55, 45, 0.18);
}

.wedding-benefit-item {
    position: relative;
    min-height: 170px;
    padding: 34px 0;
    display: grid;
    grid-template-columns: 55px 1fr 42px;
    gap: 25px;
    align-items: start;
    border-bottom: 1px solid rgba(80, 55, 45, 0.18);
    opacity: 0;
    transform: translateY(35px);
    animation: weddingBenefitsItem 0.8s ease forwards;
}

.wedding-benefit-item:nth-child(1) {
    animation-delay: 0.15s;
}

.wedding-benefit-item:nth-child(2) {
    animation-delay: 0.25s;
}

.wedding-benefit-item:nth-child(3) {
    animation-delay: 0.35s;
}

.wedding-benefit-item:nth-child(4) {
    animation-delay: 0.45s;
}


/* =====================================================
   NUMBER
===================================================== */

.wedding-benefit-number {
    padding-top: 3px;
    font-family: "Playfair Display", serif;
    font-size: 14px;
    font-weight: 500;
    color: #b8896b;
}


/* =====================================================
   CONTENT
===================================================== */

.wedding-benefit-content>span {
    display: block;
    margin-bottom: 10px;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-benefit-content h3 {
    max-width: 470px;
    margin: 0 0 12px;
    font-family: "Playfair Display", serif;
    font-size: clamp(22px, 2vw, 29px);
    line-height: 1.25;
    font-weight: 600;
    color: #30241f;
}

.wedding-benefit-content p {
    max-width: 510px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.8;
    font-weight: 400;
    color: #74645b;
}


/* =====================================================
   ARROW
===================================================== */

.wedding-benefit-arrow {
    width: 38px;
    height: 38px;
    margin-top: 2px;
    border: 1px solid rgba(184, 137, 107, 0.4);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b8896b;
    font-size: 12px;
    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.wedding-benefit-item:hover .wedding-benefit-arrow {
    background: #b8896b;
    color: #ffffff;
    transform: rotate(45deg);
}


/* =====================================================
   ANIMATIONS
===================================================== */

@keyframes weddingBenefitsIntro {

    from {
        opacity: 0;
        transform: translateX(-45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingBenefitsItem {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-benefits {
        padding: 90px 0;
    }

    .wedding-benefits-container {
        grid-template-columns: 1fr;
        gap: 65px;
    }

    .wedding-benefits-intro {
        position: relative;
        top: auto;
    }

    .wedding-benefits-intro h2 {
        max-width: 650px;
    }

    .wedding-benefits-intro p {
        max-width: 650px;
    }

    .wedding-benefits-mark {
        margin-top: 35px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-benefits {
        padding: 75px 0;
    }

    .wedding-benefits-container {
        width: min(100% - 30px, 600px);
        gap: 45px;
    }

    .wedding-benefits-intro h2 {
        font-size: 40px;
        letter-spacing: -0.8px;
    }

    .wedding-benefit-item {
        grid-template-columns: 38px 1fr;
        gap: 16px;
        padding: 28px 0;
    }

    .wedding-benefit-arrow {
        display: none;
    }

    .wedding-benefit-content h3 {
        font-size: 23px;
    }

}

@media (max-width: 480px) {

    .wedding-benefits {
        padding: 60px 0;
    }

    .wedding-benefits-container {
        width: calc(100% - 30px);
    }

    .wedding-benefits-intro h2 {
        font-size: 34px;
    }

    .wedding-benefit-item {
        grid-template-columns: 30px 1fr;
        gap: 12px;
    }

    .wedding-benefit-number {
        font-size: 12px;
    }

    .wedding-benefit-content h3 {
        font-size: 20px;
    }

}

/* =====================================================
   FINAL WEDDING CELEBRATION
===================================================== */

.wedding-celebration-final {
    position: relative;
    width: 100%;
    min-height: 720px;
    overflow: hidden;
    background: #30241f;
}

.wedding-celebration-final-image {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.wedding-celebration-final-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

.wedding-celebration-final-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg,
            rgba(30, 22, 18, 0.62) 0%,
            rgba(30, 22, 18, 0.28) 38%,
            rgba(30, 22, 18, 0.60) 100%);
}

.wedding-celebration-final-container {
    position: relative;
    z-index: 2;
    width: min(1240px, calc(100% - 40px));
    min-height: 720px;
    margin: 0 auto;
    padding: 38px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}


/* =====================================================
   TOP
===================================================== */

.wedding-celebration-final-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    opacity: 0;
    animation: weddingCelebrationTop 0.8s ease forwards;
}

.wedding-celebration-final-top span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 2.2px;
    color: rgba(255, 255, 255, 0.78);
}


/* =====================================================
   CENTER
===================================================== */

.wedding-celebration-final-center {
    max-width: 850px;
    margin: 0 auto;
    text-align: center;

    opacity: 0;
    transform: translateY(45px);
    animation: weddingCelebrationCenter 1s ease 0.15s forwards;
}

.wedding-celebration-final-number {
    display: flex;
    width: 58px;
    height: 58px;
    margin: 0 auto 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
    font-family: "Playfair Display", serif;
    font-size: 15px;
    color: #ffffff;
}

.wedding-celebration-final-center h2 {
    margin: 0 0 28px;
    font-family: "Playfair Display", serif;
    font-size: clamp(52px, 7vw, 96px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -2.5px;
    color: #ffffff;
}

.wedding-celebration-final-center h2 em {
    display: block;
    color: #d1a98d;
    font-style: italic;
    font-weight: 400;
}

.wedding-celebration-final-center p {
    max-width: 500px;
    margin: 0 auto;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.80);
}


/* =====================================================
   BOTTOM
===================================================== */

.wedding-celebration-final-bottom {
    display: flex;
    align-items: center;
    gap: 25px;

    opacity: 0;
    transform: translateY(20px);
    animation: weddingCelebrationBottom 0.8s ease 0.35s forwards;
}

.wedding-celebration-final-bottom span {
    white-space: nowrap;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.72);
}

.wedding-celebration-final-bottom div {
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.35);
}


/* =====================================================
   ANIMATIONS
===================================================== */

@keyframes weddingCelebrationTop {

    from {
        opacity: 0;
        transform: translateY(-15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingCelebrationCenter {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingCelebrationBottom {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-celebration-final {
        min-height: 650px;
    }

    .wedding-celebration-final-container {
        min-height: 650px;
    }

    .wedding-celebration-final-center {
        max-width: 720px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-celebration-final {
        min-height: 620px;
    }

    .wedding-celebration-final-container {
        width: calc(100% - 30px);
        min-height: 620px;
        padding: 28px 0;
    }

    .wedding-celebration-final-overlay {
        background:
            linear-gradient(180deg,
                rgba(30, 22, 18, 0.68),
                rgba(30, 22, 18, 0.48),
                rgba(30, 22, 18, 0.72));
    }

    .wedding-celebration-final-center h2 {
        font-size: 50px;
        letter-spacing: -1.5px;
    }

    .wedding-celebration-final-number {
        width: 50px;
        height: 50px;
        margin-bottom: 22px;
    }

    .wedding-celebration-final-bottom {
        gap: 12px;
    }

    .wedding-celebration-final-bottom span {
        font-size: 7px;
        letter-spacing: 1.2px;
    }

}

@media (max-width: 480px) {

    .wedding-celebration-final {
        min-height: 580px;
    }

    .wedding-celebration-final-container {
        min-height: 580px;
    }

    .wedding-celebration-final-center h2 {
        font-size: 39px;
    }

    .wedding-celebration-final-center p {
        font-size: 13px;
        line-height: 1.8;
    }

    .wedding-celebration-final-top span {
        font-size: 7px;
    }

}

/* =====================================================
   SIGNATURE WEDDING STYLES
===================================================== */

.wedding-signature-styles {
    position: relative;
    width: 100%;
    padding: 115px 0 100px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-signature-styles-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =====================================================
   INTRO
===================================================== */

.wedding-signature-styles-intro {
    display: grid;
    grid-template-columns: 0.8fr 1.7fr 1fr;
    align-items: end;
    gap: 50px;
    margin-bottom: 70px;
}

.wedding-signature-styles-label {
    display: flex;
    align-items: center;
    gap: 13px;

    padding-bottom: 10px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-signature-styles-label span {
    color: #b8896b;
}

.wedding-signature-styles-label div {
    width: 32px;
    height: 1px;
    background: #c39575;
}

.wedding-signature-styles-heading span {
    display: block;

    margin-bottom: 4px;

    font-family: "Playfair Display", serif;
    font-size: 25px;
    line-height: 1.2;
    font-weight: 400;
    color: #30241f;
}

.wedding-signature-styles-heading h2 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(45px, 5vw, 70px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -2px;
    color: #30241f;
}

.wedding-signature-styles-heading h2 em {
    color: #b8896b;
    font-weight: 400;
}

.wedding-signature-styles-intro>p {
    margin: 0;
    padding-bottom: 5px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   STYLE GRID
===================================================== */

.wedding-signature-styles-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    align-items: start;
}


/* =====================================================
   CARD
===================================================== */

.wedding-signature-style-card {
    position: relative;
    background: #f3eee9;
    overflow: hidden;

    transition:
        transform 0.45s ease,
        box-shadow 0.45s ease;
}

.wedding-signature-style-card:nth-child(2) {
    margin-top: 42px;
}

.wedding-signature-style-card:nth-child(3) {
    margin-top: 82px;
}

.wedding-signature-style-card:nth-child(4) {
    margin-top: 22px;
}

.wedding-signature-style-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 22px 50px rgba(48, 36, 31, 0.13);
}


/* =====================================================
   NUMBER
===================================================== */

.wedding-signature-style-number {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 3;

    width: 31px;
    height: 31px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(255, 250, 247, 0.92);

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    color: #30241f;
}


/* =====================================================
   IMAGE
===================================================== */

.wedding-signature-style-image {
    width: 100%;
    height: 340px;
    overflow: hidden;
}

.wedding-signature-style-image img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}

.wedding-signature-style-card:hover .wedding-signature-style-image img {
    transform: scale(1.06);
}


/* Different image positioning */

.wedding-signature-style-classic .wedding-signature-style-image img {
    object-position: center;
}

.wedding-signature-style-modern .wedding-signature-style-image img {
    object-position: center;
}

.wedding-signature-style-luxury .wedding-signature-style-image img {
    object-position: center;
}

.wedding-signature-style-garden .wedding-signature-style-image img {
    object-position: center;
}


/* =====================================================
   CONTENT
===================================================== */

.wedding-signature-style-content {
    padding: 27px 25px 30px;
}

.wedding-signature-style-content>span {
    display: block;

    margin-bottom: 9px;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #b8896b;
}

.wedding-signature-style-content h3 {
    margin: 0 0 13px;

    font-family: "Playfair Display", serif;
    font-size: 28px;
    line-height: 1.1;
    font-weight: 500;
    color: #30241f;
}

.wedding-signature-style-content p {
    min-height: 80px;

    margin: 0 0 22px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.8;
    font-weight: 400;
    color: #68736d;
}

.wedding-signature-style-content a {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    text-decoration: none;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #30241f;

    transition: color 0.3s ease;
}

.wedding-signature-style-content a i {
    font-size: 9px;

    transition:
        transform 0.3s ease,
        color 0.3s ease;
}

.wedding-signature-style-content a:hover {
    color: #b06f4e;
}

.wedding-signature-style-content a:hover i {
    color: #b06f4e;
    transform: translateX(5px);
}


/* =====================================================
   BOTTOM STATEMENT
===================================================== */

.wedding-signature-styles-bottom {
    display: grid;
    grid-template-columns: 0.8fr 2.2fr;
    gap: 50px;

    margin-top: 75px;
    padding-top: 28px;

    border-top: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-signature-styles-bottom>span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-signature-styles-bottom p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.4;
    font-weight: 400;
    color: #30241f;
}

.wedding-signature-styles-bottom p em {
    color: #b8896b;
}


/* =====================================================
   ENTRANCE ANIMATION
===================================================== */

.wedding-signature-styles-intro {
    animation: weddingSignatureIntro 0.9s ease both;
}

.wedding-signature-style-card {
    animation: weddingSignatureCardReveal 0.9s ease both;
}

.wedding-signature-style-card:nth-child(1) {
    animation-delay: 0.1s;
}

.wedding-signature-style-card:nth-child(2) {
    animation-delay: 0.2s;
}

.wedding-signature-style-card:nth-child(3) {
    animation-delay: 0.3s;
}

.wedding-signature-style-card:nth-child(4) {
    animation-delay: 0.4s;
}

.wedding-signature-styles-bottom {
    animation: weddingSignatureBottom 1s ease 0.5s both;
}

@keyframes weddingSignatureIntro {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingSignatureCardReveal {

    from {
        opacity: 0;
        transform: translateY(55px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingSignatureBottom {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-signature-styles {
        padding: 90px 0;
    }

    .wedding-signature-styles-intro {
        grid-template-columns: 1fr 2fr;
        gap: 35px;
    }

    .wedding-signature-styles-intro>p {
        grid-column: 2;
    }

    .wedding-signature-styles-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .wedding-signature-style-card:nth-child(2),
    .wedding-signature-style-card:nth-child(3),
    .wedding-signature-style-card:nth-child(4) {
        margin-top: 0;
    }

    .wedding-signature-style-card:nth-child(even) {
        margin-top: 45px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-signature-styles {
        padding: 75px 0;
    }

    .wedding-signature-styles-container {
        width: calc(100% - 30px);
    }

    .wedding-signature-styles-intro {
        display: block;
        margin-bottom: 50px;
    }

    .wedding-signature-styles-heading {
        margin: 25px 0;
    }

    .wedding-signature-styles-heading h2 {
        font-size: 52px;
    }

    .wedding-signature-styles-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .wedding-signature-style-card:nth-child(even) {
        margin-top: 0;
    }

    .wedding-signature-style-image {
        height: 390px;
    }

    .wedding-signature-style-content p {
        min-height: auto;
    }

    .wedding-signature-styles-bottom {
        display: block;
        margin-top: 55px;
    }

    .wedding-signature-styles-bottom p {
        margin-top: 18px;
        font-size: 20px;
    }

}


@media (max-width: 480px) {

    .wedding-signature-styles-heading h2 {
        font-size: 43px;
    }

    .wedding-signature-style-image {
        height: 330px;
    }

}

/* =====================================================
   COLOUR STORIES
===================================================== */

.wedding-colour-stories {
    position: relative;
    width: 100%;
    padding: 120px 0 105px;
    background: #f8f1ed;
    overflow: hidden;
}

.wedding-colour-stories-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =====================================================
   TOP
===================================================== */

.wedding-colour-stories-top {
    display: grid;
    grid-template-columns: 0.75fr 1.55fr 1fr;
    gap: 55px;
    align-items: end;
    margin-bottom: 85px;
}

.wedding-colour-stories-index {
    display: flex;
    align-items: center;
    gap: 13px;

    padding-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-colour-stories-index span {
    color: #b8896b;
}

.wedding-colour-stories-index div {
    width: 34px;
    height: 1px;
    background: #c39575;
}

.wedding-colour-stories-title span {
    display: block;

    margin-bottom: 4px;

    font-family: "Playfair Display", serif;
    font-size: 25px;
    font-weight: 400;
    color: #30241f;
}

.wedding-colour-stories-title h2 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 5.5vw, 76px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -2px;
    color: #30241f;
}

.wedding-colour-stories-title h2 em {
    color: #b8896b;
    font-weight: 400;
}

.wedding-colour-stories-top>p {
    margin: 0;
    padding-bottom: 4px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   STORY
===================================================== */

.wedding-colour-story {
    position: relative;

    display: grid;
    grid-template-columns: 55px minmax(0, 1.35fr) minmax(300px, 0.9fr);

    min-height: 445px;

    margin-bottom: 32px;

    background: #fffaf7;

    overflow: hidden;

    animation: weddingColourStoryReveal 0.9s ease both;
}

.wedding-colour-story:nth-of-type(2) {
    animation-delay: 0.12s;
}

.wedding-colour-story:nth-of-type(3) {
    animation-delay: 0.24s;
}

.wedding-colour-story:nth-of-type(4) {
    animation-delay: 0.36s;
}


/* =====================================================
   NUMBER
===================================================== */

.wedding-colour-story-number {
    display: flex;
    align-items: flex-start;
    justify-content: center;

    padding-top: 28px;

    border-right: 1px solid rgba(80, 55, 45, 0.12);

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #b8896b;
}


/* =====================================================
   VISUAL
===================================================== */

.wedding-colour-story-visual {
    position: relative;
    min-height: 445px;
    overflow: hidden;
}

.wedding-colour-story-visual img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;

    transition: transform 0.8s ease;
}

.wedding-colour-story:hover .wedding-colour-story-visual img {
    transform: scale(1.045);
}

.wedding-colour-story-caption {
    position: absolute;
    left: 24px;
    bottom: 22px;

    padding: 9px 13px;

    background: rgba(255, 250, 247, 0.92);

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #30241f;
}


/* =====================================================
   CONTENT
===================================================== */

.wedding-colour-story-content {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 45px 50px;
}

.wedding-colour-story-content>span {
    display: block;

    margin-bottom: 14px;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #b8896b;
}

.wedding-colour-story-content h3 {
    margin: 0 0 20px;

    font-family: "Playfair Display", serif;
    font-size: clamp(32px, 3vw, 45px);
    line-height: 1.08;
    font-weight: 500;
    color: #30241f;
}

.wedding-colour-story-content h3 em {
    display: block;

    color: #b8896b;
    font-weight: 400;
}

.wedding-colour-story-content p {
    max-width: 360px;

    margin: 0 0 32px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.85;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   PALETTE
===================================================== */

.wedding-colour-palette {
    display: flex;
    align-items: center;
    gap: 9px;
}

.wedding-colour-swatch {
    width: 32px;
    height: 32px;

    display: block;

    border-radius: 50%;

    border: 3px solid #fffaf7;

    box-shadow: 0 0 0 1px rgba(48, 36, 31, 0.12);
}


/* Palette 01 */

.swatch-blush {
    background: #dca9a2;
}

.swatch-rose {
    background: #b97978;
}

.swatch-ivory {
    background: #eee4d4;
}

.swatch-mauve {
    background: #9b7779;
}


/* Palette 02 */

.swatch-olive {
    background: #69745a;
}

.swatch-sand {
    background: #cdbb9b;
}

.swatch-earth {
    background: #8b6750;
}

.swatch-cream {
    background: #eee6d7;
}


/* Palette 03 */

.swatch-midnight {
    background: #283548;
}

.swatch-champagne {
    background: #d9c4a0;
}

.swatch-gold {
    background: #b89555;
}

.swatch-warmwhite {
    background: #eee9df;
}


/* =====================================================
   FOOTER STATEMENT
===================================================== */

.wedding-colour-stories-footer {
    display: grid;
    grid-template-columns: 0.75fr 2.25fr;
    gap: 55px;

    margin-top: 75px;
    padding-top: 28px;

    border-top: 1px solid rgba(80, 55, 45, 0.15);

    animation: weddingColourFooterReveal 1s ease 0.5s both;
}

.wedding-colour-stories-footer>span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-colour-stories-footer p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.45;
    font-weight: 400;
    color: #30241f;
}

.wedding-colour-stories-footer p em {
    color: #b8896b;
}


/* =====================================================
   ANIMATION
===================================================== */

@keyframes weddingColourStoryReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingColourFooterReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-colour-stories {
        padding: 90px 0;
    }

    .wedding-colour-stories-top {
        grid-template-columns: 1fr 2fr;
        gap: 35px;
    }

    .wedding-colour-stories-top>p {
        grid-column: 2;
    }

    .wedding-colour-story {
        grid-template-columns: 45px minmax(0, 1.15fr) minmax(260px, 0.85fr);
    }

    .wedding-colour-story-content {
        padding: 35px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-colour-stories {
        padding: 75px 0;
    }

    .wedding-colour-stories-container {
        width: calc(100% - 30px);
    }

    .wedding-colour-stories-top {
        display: block;
        margin-bottom: 55px;
    }

    .wedding-colour-stories-title {
        margin: 25px 0;
    }

    .wedding-colour-stories-title h2 {
        font-size: 52px;
    }

    .wedding-colour-story,
    .wedding-colour-story-reverse {
        display: grid;
        grid-template-columns: 42px 1fr;
    }

    .wedding-colour-story-number {
        grid-row: 1 / span 2;
    }

    .wedding-colour-story-visual {
        min-height: 340px;
    }

    .wedding-colour-story-content {
        padding: 35px 28px 40px;
    }

    .wedding-colour-story-content p {
        max-width: 100%;
    }

    .wedding-colour-stories-footer {
        display: block;
        margin-top: 55px;
    }

    .wedding-colour-stories-footer p {
        margin-top: 18px;
        font-size: 20px;
    }

}


@media (max-width: 480px) {

    .wedding-colour-stories-title h2 {
        font-size: 43px;
    }

    .wedding-colour-story {
        grid-template-columns: 35px 1fr;
    }

    .wedding-colour-story-visual {
        min-height: 280px;
    }

    .wedding-colour-story-content {
        padding: 30px 20px 35px;
    }

    .wedding-colour-story-content h3 {
        font-size: 31px;
    }

}

/* =====================================================
   DECOR DETAILS
===================================================== */

.wedding-decor-details {
    width: 100%;
    padding: 120px 0 105px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-decor-details-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =====================================================
   MAIN LAYOUT
===================================================== */

.wedding-decor-details-intro {
    display: grid;
    grid-template-columns: 0.8fr 1.35fr 0.9fr;
    gap: 50px;
    align-items: end;
    margin-bottom: 75px;
}


/* =====================================================
   INDEX
===================================================== */

.wedding-decor-details-index {
    display: flex;
    align-items: center;
    gap: 13px;

    padding-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-decor-details-index span {
    color: #b8896b;
}

.wedding-decor-details-index div {
    width: 32px;
    height: 1px;
    background: #c39575;
}


/* =====================================================
   HEADING
===================================================== */

.wedding-decor-details-heading span {
    display: block;

    margin-bottom: 4px;

    font-family: "Playfair Display", serif;
    font-size: 25px;
    font-weight: 400;
    color: #30241f;
}

.wedding-decor-details-heading h2 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(50px, 5.5vw, 78px);
    line-height: 0.96;
    font-weight: 500;
    letter-spacing: -2px;
    color: #30241f;
}

.wedding-decor-details-heading h2 em {
    color: #b8896b;
    font-weight: 400;
}


/* =====================================================
   INTRO TEXT
===================================================== */

.wedding-decor-details-intro>p {
    margin: 0;
    padding-bottom: 5px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   NOTE
===================================================== */

.wedding-decor-details-note {
    grid-column: 2 / 4;

    display: flex;
    align-items: center;
    gap: 30px;

    margin-top: 28px;
    padding-top: 22px;

    border-top: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-decor-details-note span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-decor-details-note strong {
    font-family: "Playfair Display", serif;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 500;
    color: #30241f;
}


/* =====================================================
   SHOWCASE
===================================================== */

.wedding-decor-details-showcase {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.75fr);
    gap: 24px;
}


/* =====================================================
   MAIN IMAGE
===================================================== */

.wedding-decor-details-main-image {
    position: relative;
    height: 630px;
    overflow: hidden;
}

.wedding-decor-details-main-image img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;

    transition: transform 0.9s ease;
}

.wedding-decor-details-main-image:hover img {
    transform: scale(1.04);
}

.wedding-decor-details-image-label {
    position: absolute;
    left: 25px;
    bottom: 25px;

    padding: 10px 15px;

    background: rgba(255, 250, 247, 0.94);

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #30241f;
}


/* =====================================================
   SIDE DETAILS
===================================================== */

.wedding-decor-details-side {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
}

.wedding-decor-detail-item {
    display: grid;
    grid-template-columns: 105px 1fr;
    gap: 20px;
    align-items: center;

    min-height: 190px;

    padding: 15px;

    background: #f3eee9;

    transition:
        transform 0.4s ease,
        background 0.4s ease;
}

.wedding-decor-detail-item:hover {
    transform: translateX(-7px);
    background: #f7eee9;
}


/* =====================================================
   SMALL IMAGE
===================================================== */

.wedding-decor-detail-image {
    width: 105px;
    height: 155px;
    overflow: hidden;
}

.wedding-decor-detail-image img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;

    transition: transform 0.7s ease;
}

.wedding-decor-detail-item:hover .wedding-decor-detail-image img {
    transform: scale(1.07);
}


/* =====================================================
   DETAIL CONTENT
===================================================== */

.wedding-decor-detail-content>span {
    display: block;

    margin-bottom: 10px;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #b8896b;
}

.wedding-decor-detail-content h3 {
    margin: 0 0 10px;

    font-family: "Playfair Display", serif;
    font-size: 25px;
    font-weight: 500;
    color: #30241f;
}

.wedding-decor-detail-content p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 12px;
    line-height: 1.75;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   BOTTOM
===================================================== */

.wedding-decor-details-bottom {
    display: grid;
    grid-template-columns: 0.8fr 2.2fr;
    gap: 50px;

    margin-top: 70px;
    padding-top: 28px;

    border-top: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-decor-details-bottom>span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-decor-details-bottom p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.45;
    font-weight: 400;
    color: #30241f;
}

.wedding-decor-details-bottom p em {
    color: #b8896b;
}


/* =====================================================
   ENTRANCE ANIMATION
===================================================== */

.wedding-decor-details-intro {
    animation: weddingDecorIntro 0.9s ease both;
}

.wedding-decor-details-showcase {
    animation: weddingDecorShowcase 1s ease 0.15s both;
}

.wedding-decor-details-bottom {
    animation: weddingDecorBottom 0.9s ease 0.35s both;
}

@keyframes weddingDecorIntro {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingDecorShowcase {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingDecorBottom {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-decor-details {
        padding: 90px 0;
    }

    .wedding-decor-details-intro {
        grid-template-columns: 1fr 1.6fr;
        gap: 35px;
    }

    .wedding-decor-details-intro>p {
        grid-column: 2;
    }

    .wedding-decor-details-note {
        grid-column: 1 / 3;
    }

    .wedding-decor-details-showcase {
        grid-template-columns: 1fr;
    }

    .wedding-decor-details-main-image {
        height: 540px;
    }

    .wedding-decor-details-side {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .wedding-decor-detail-item {
        display: block;
    }

    .wedding-decor-detail-image {
        width: 100%;
        height: 190px;
        margin-bottom: 18px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-decor-details {
        padding: 75px 0;
    }

    .wedding-decor-details-container {
        width: calc(100% - 30px);
    }

    .wedding-decor-details-intro {
        display: block;
        margin-bottom: 55px;
    }

    .wedding-decor-details-heading {
        margin: 25px 0;
    }

    .wedding-decor-details-heading h2 {
        font-size: 52px;
    }

    .wedding-decor-details-note {
        margin-top: 30px;
    }

    .wedding-decor-details-showcase {
        display: block;
    }

    .wedding-decor-details-main-image {
        height: 430px;
    }

    .wedding-decor-details-side {
        display: flex;
        margin-top: 18px;
    }

    .wedding-decor-detail-item {
        display: grid;
        grid-template-columns: 100px 1fr;
    }

    .wedding-decor-detail-image {
        width: 100px;
        height: 145px;
        margin: 0;
    }

    .wedding-decor-details-bottom {
        display: block;
        margin-top: 55px;
    }

    .wedding-decor-details-bottom p {
        margin-top: 18px;
        font-size: 20px;
    }

}


@media (max-width: 480px) {

    .wedding-decor-details-heading h2 {
        font-size: 43px;
    }

    .wedding-decor-details-note {
        display: block;
    }

    .wedding-decor-details-note strong {
        display: block;
        margin-top: 12px;
    }

    .wedding-decor-details-main-image {
        height: 350px;
    }

    .wedding-decor-detail-item {
        grid-template-columns: 85px 1fr;
        padding: 12px;
    }

    .wedding-decor-detail-image {
        width: 85px;
        height: 125px;
    }

}

/* =====================================================
   REAL SETUP SHOWCASE
===================================================== */

.wedding-real-setup {
    width: 100%;
    padding: 120px 0 105px;
    background: #f3eee9;
    overflow: hidden;
}

.wedding-real-setup-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =====================================================
   TOP
===================================================== */

.wedding-real-setup-top {
    display: grid;
    grid-template-columns: 0.75fr 1.55fr 1fr;
    gap: 55px;
    align-items: end;
    margin-bottom: 70px;
}

.wedding-real-setup-index {
    display: flex;
    align-items: center;
    gap: 13px;

    padding-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-real-setup-index span {
    color: #b8896b;
}

.wedding-real-setup-index div {
    width: 34px;
    height: 1px;
    background: #c39575;
}

.wedding-real-setup-heading span {
    display: block;

    margin-bottom: 4px;

    font-family: "Playfair Display", serif;
    font-size: 25px;
    font-weight: 400;
    color: #30241f;
}

.wedding-real-setup-heading h2 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 5.5vw, 76px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -2px;
    color: #30241f;
}

.wedding-real-setup-heading h2 em {
    color: #b8896b;
    font-weight: 400;
}

.wedding-real-setup-top>p {
    margin: 0;
    padding-bottom: 5px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   MAIN SHOWCASE
===================================================== */

.wedding-real-setup-showcase {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(330px, 0.75fr);
    min-height: 650px;

    background: #fffaf7;

    animation: weddingRealSetupReveal 1s ease both;
}


/* =====================================================
   IMAGE
===================================================== */

.wedding-real-setup-image {
    position: relative;
    min-height: 650px;
    overflow: hidden;
}

.wedding-real-setup-image img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;

    transition: transform 1s ease;
}

.wedding-real-setup-image:hover img {
    transform: scale(1.035);
}


/* IMAGE TOP */

.wedding-real-setup-image-top {
    position: absolute;
    top: 25px;
    left: 27px;
    right: 27px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.wedding-real-setup-image-top span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #ffffff;
}


/* IMAGE BOTTOM */

.wedding-real-setup-image-bottom {
    position: absolute;
    left: 27px;
    right: 27px;
    bottom: 25px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-top: 17px;

    border-top: 1px solid rgba(255, 255, 255, 0.4);
}

.wedding-real-setup-image-bottom span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #ffffff;
}

.wedding-real-setup-image-bottom i {
    font-size: 11px;
    color: #ffffff;
}


/* =====================================================
   PROJECT INFO
===================================================== */

.wedding-real-setup-info {
    display: flex;
    flex-direction: column;

    padding: 48px 42px;
}

.wedding-real-setup-project-number {
    align-self: flex-end;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #b8896b;
}

.wedding-real-setup-project {
    margin-top: auto;
}

.wedding-real-setup-kicker {
    display: block;

    margin-bottom: 14px;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #b8896b;
}

.wedding-real-setup-project h3 {
    margin: 0 0 22px;

    font-family: "Playfair Display", serif;
    font-size: 39px;
    line-height: 1.05;
    font-weight: 500;
    color: #30241f;
}

.wedding-real-setup-project h3 em {
    display: block;

    color: #b8896b;
    font-weight: 400;
}

.wedding-real-setup-project p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #68736d;
}


/* =====================================================
   DETAILS
===================================================== */

.wedding-real-setup-details {
    display: flex;
    flex-direction: column;
    gap: 17px;

    margin-top: 38px;
}

.wedding-real-setup-details div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;

    padding-bottom: 12px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.12);
}

.wedding-real-setup-details span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #92786a;
}

.wedding-real-setup-details strong {
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 500;
    color: #30241f;
    text-align: right;
}


/* =====================================================
   QUOTE
===================================================== */

.wedding-real-setup-line {
    width: 45px;
    height: 1px;

    margin: 30px 0 22px;

    background: #c39575;
}

.wedding-real-setup-quote>span {
    display: block;

    margin-bottom: 9px;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #92786a;
}

.wedding-real-setup-quote p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 400;
    color: #30241f;
}

.wedding-real-setup-quote p em {
    color: #b8896b;
}


/* =====================================================
   PROJECT STRIP
===================================================== */

.wedding-real-setup-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 0.8fr;
    margin-top: 18px;

    background: #30241f;

    animation: weddingRealStripReveal 0.9s ease 0.25s both;
}

.wedding-real-setup-strip-item {
    display: flex;
    align-items: center;
    gap: 18px;

    padding: 24px 25px;

    border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.wedding-real-setup-strip-item span {
    font-family: "Playfair Display", serif;
    font-size: 8px;
    color: #c39575;
}

.wedding-real-setup-strip-item strong {
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 500;
    color: #ffffff;
}

.wedding-real-setup-strip-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    padding: 24px;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #d1a98d;
}

.wedding-real-setup-strip-note i {
    font-size: 9px;
}


/* =====================================================
   ANIMATION
===================================================== */

@keyframes weddingRealSetupReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingRealStripReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-real-setup {
        padding: 90px 0;
    }

    .wedding-real-setup-top {
        grid-template-columns: 1fr 2fr;
        gap: 35px;
    }

    .wedding-real-setup-top>p {
        grid-column: 2;
    }

    .wedding-real-setup-showcase {
        grid-template-columns: 1fr;
    }

    .wedding-real-setup-image {
        min-height: 560px;
    }

    .wedding-real-setup-info {
        min-height: 500px;
    }

    .wedding-real-setup-strip {
        grid-template-columns: repeat(2, 1fr);
    }

    .wedding-real-setup-strip-note {
        min-height: 60px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-real-setup {
        padding: 75px 0;
    }

    .wedding-real-setup-container {
        width: calc(100% - 30px);
    }

    .wedding-real-setup-top {
        display: block;
        margin-bottom: 50px;
    }

    .wedding-real-setup-heading {
        margin: 25px 0;
    }

    .wedding-real-setup-heading h2 {
        font-size: 52px;
    }

    .wedding-real-setup-image {
        min-height: 430px;
    }

    .wedding-real-setup-info {
        min-height: auto;
        padding: 35px 28px 40px;
    }

    .wedding-real-setup-project {
        margin-top: 35px;
    }

    .wedding-real-setup-project h3 {
        font-size: 34px;
    }

    .wedding-real-setup-details {
        margin-top: 30px;
    }

    .wedding-real-setup-strip {
        grid-template-columns: 1fr;
    }

    .wedding-real-setup-strip-item {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

}


@media (max-width: 480px) {

    .wedding-real-setup-heading h2 {
        font-size: 43px;
    }

    .wedding-real-setup-image {
        min-height: 350px;
    }

    .wedding-real-setup-image-top,
    .wedding-real-setup-image-bottom {
        left: 18px;
        right: 18px;
    }

    .wedding-real-setup-project h3 {
        font-size: 30px;
    }

    .wedding-real-setup-details div {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .wedding-real-setup-details strong {
        text-align: left;
    }

}

/* =========================================================
   STYLE COMPARISON
========================================================= */

.wedding-style-comparison {
    position: relative;
    width: 100%;
    padding: 120px 0 110px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-style-comparison-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   TOP
========================================================= */

.wedding-style-comparison-top {
    display: grid;
    grid-template-columns: 0.75fr 1.45fr 1fr;
    gap: 55px;
    align-items: end;
    margin-bottom: 70px;
}

.wedding-style-comparison-index {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-style-comparison-index span {
    font-family: "Playfair Display", serif;
    font-size: 22px;
    color: #b8896b;
}

.wedding-style-comparison-index div {
    width: 38px;
    height: 1px;
    background: #cdb8aa;
}

.wedding-style-comparison-heading span {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    font-weight: 400;
    color: #92786a;
}

.wedding-style-comparison-heading h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 0.98;
    font-weight: 500;
    color: #30241f;
    letter-spacing: -1.5px;
}

.wedding-style-comparison-heading h2 em {
    display: block;
    color: #b8896b;
    font-weight: 400;
}

.wedding-style-comparison-top>p {
    margin: 0;
    max-width: 380px;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #68706c;
}


/* =========================================================
   COMPARISON BOARD
========================================================= */

.wedding-style-comparison-board {
    width: 100%;
    border-top: 1px solid rgba(48, 36, 31, 0.2);
}


/* HEADER */

.wedding-style-comparison-board-header {
    display: grid;
    grid-template-columns: 1.35fr repeat(4, 1fr);
    min-height: 105px;
    border-bottom: 1px solid rgba(48, 36, 31, 0.16);
}

.wedding-style-comparison-feature-title {
    display: flex;
    align-items: center;
    padding: 20px 25px 20px 0;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-style-comparison-style {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    border-left: 1px solid rgba(48, 36, 31, 0.12);
}

.wedding-style-comparison-style span {
    margin-bottom: 7px;
    font-size: 10px;
    letter-spacing: 1.5px;
    color: #b8896b;
}

.wedding-style-comparison-style strong {
    font-family: "Playfair Display", serif;
    font-size: 22px;
    font-weight: 500;
    color: #30241f;
}


/* ROW */

.wedding-style-comparison-row {
    display: grid;
    grid-template-columns: 1.35fr repeat(4, 1fr);
    min-height: 105px;
    border-bottom: 1px solid rgba(48, 36, 31, 0.12);
    transition: background 0.35s ease;
}

.wedding-style-comparison-row:hover {
    background: #f8f1ed;
}

.wedding-style-comparison-row>div:not(:first-child) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    border-left: 1px solid rgba(48, 36, 31, 0.12);
    font-family: "Playfair Display", serif;
    font-size: 16px;
    line-height: 1.35;
    color: #30241f;
}

.wedding-style-comparison-row small {
    display: block;
    margin-top: 6px;
    font-family: inherit;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 400;
    color: #92786a;
}

.wedding-style-comparison-feature {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 25px 20px 0;
}

.wedding-style-comparison-feature span {
    font-family: "Playfair Display", serif;
    font-size: 16px;
    color: #b8896b;
}

.wedding-style-comparison-feature strong {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #30241f;
}


/* BEST ROW */

.wedding-style-comparison-best-row {
    min-height: 85px;
    background: #f8f1ed;
}

.wedding-style-comparison-best-row:hover {
    background: #f3e9e3;
}

.wedding-style-comparison-best-row>div:not(:first-child) {
    font-family: "Playfair Display", serif;
    font-size: 14px;
    font-style: italic;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-style-comparison-bottom {
    margin-top: 70px;
}

.wedding-style-comparison-bottom-line {
    width: 100%;
    height: 1px;
    background: rgba(48, 36, 31, 0.18);
}

.wedding-style-comparison-bottom-content {
    display: grid;
    grid-template-columns: 0.8fr 1.6fr auto;
    gap: 40px;
    align-items: center;
    padding-top: 32px;
}

.wedding-style-comparison-bottom-content>span {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-style-comparison-bottom-content p {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.5;
    color: #30241f;
}

.wedding-style-comparison-bottom-content p em {
    color: #b8896b;
}

.wedding-style-comparison-bottom-content a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    text-decoration: none;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #30241f;
    transition: color 0.3s ease;
}

.wedding-style-comparison-bottom-content a i {
    color: #b8896b;
    transition: transform 0.3s ease;
}

.wedding-style-comparison-bottom-content a:hover {
    color: #b06f4e;
}

.wedding-style-comparison-bottom-content a:hover i {
    transform: translateX(5px);
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-style-comparison-top,
.wedding-style-comparison-board,
.wedding-style-comparison-bottom {
    animation: weddingStyleComparisonReveal 0.9s ease both;
}

.wedding-style-comparison-board {
    animation-delay: 0.12s;
}

.wedding-style-comparison-bottom {
    animation-delay: 0.22s;
}

@keyframes weddingStyleComparisonReveal {
    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .wedding-style-comparison-top {
        grid-template-columns: 0.7fr 1.3fr;
    }

    .wedding-style-comparison-top>p {
        grid-column: 2;
    }

    .wedding-style-comparison-board {
        overflow-x: auto;
    }

    .wedding-style-comparison-board-header,
    .wedding-style-comparison-row {
        min-width: 900px;
    }

    .wedding-style-comparison-bottom-content {
        grid-template-columns: 1fr 2fr;
    }

    .wedding-style-comparison-bottom-content a {
        grid-column: 2;
    }
}


@media (max-width: 768px) {

    .wedding-style-comparison {
        padding: 85px 0 80px;
    }

    .wedding-style-comparison-container {
        width: min(100% - 30px, 600px);
    }

    .wedding-style-comparison-top {
        display: block;
        margin-bottom: 50px;
    }

    .wedding-style-comparison-heading {
        margin: 28px 0 25px;
    }

    .wedding-style-comparison-heading h2 {
        font-size: 46px;
    }

    .wedding-style-comparison-top>p {
        max-width: 100%;
    }

    .wedding-style-comparison-board {
        margin-right: -15px;
        padding-right: 15px;
    }

    .wedding-style-comparison-bottom {
        margin-top: 50px;
    }

    .wedding-style-comparison-bottom-content {
        display: block;
    }

    .wedding-style-comparison-bottom-content p {
        margin: 18px 0 25px;
        font-size: 20px;
    }
}


@media (max-width: 480px) {

    .wedding-style-comparison {
        padding: 70px 0;
    }

    .wedding-style-comparison-heading h2 {
        font-size: 40px;
    }

    .wedding-style-comparison-index {
        font-size: 9px;
    }

    .wedding-style-comparison-index span {
        font-size: 19px;
    }

    .wedding-style-comparison-board-header,
    .wedding-style-comparison-row {
        min-width: 820px;
    }

    .wedding-style-comparison-style strong {
        font-size: 19px;
    }
}

/* =========================================================
   WEDDING MOODBOARD
========================================================= */

.wedding-moodboard {
    position: relative;
    width: 100%;
    padding: 120px 0 110px;
    background: #f3eee9;
    overflow: hidden;
}

.wedding-moodboard-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   TOP
========================================================= */

.wedding-moodboard-top {
    display: grid;
    grid-template-columns: 0.75fr 1.4fr 1fr;
    gap: 55px;
    align-items: end;
    margin-bottom: 70px;
}

.wedding-moodboard-index {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-moodboard-index span {
    font-family: "Playfair Display", serif;
    font-size: 22px;
    color: #b8896b;
}

.wedding-moodboard-index div {
    width: 38px;
    height: 1px;
    background: #cdb8aa;
}

.wedding-moodboard-title span {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    color: #92786a;
}

.wedding-moodboard-title h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(44px, 5vw, 68px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -1.5px;
    color: #30241f;
}

.wedding-moodboard-title h2 em {
    display: block;
    color: #b8896b;
    font-weight: 400;
}

.wedding-moodboard-top>p {
    max-width: 390px;
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
    color: #68706c;
}


/* =========================================================
   MOODBOARD GRID
========================================================= */

.wedding-moodboard-grid {
    display: grid;
    grid-template-columns: 1.25fr 0.75fr 1fr;
    grid-template-rows: 350px 300px 390px;
    gap: 14px;
}


/* =========================================================
   IMAGE BASE
========================================================= */

.wedding-moodboard-image {
    position: relative;
    overflow: hidden;
    background: #ddd0c7;
}

.wedding-moodboard-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.7s ease;
}

.wedding-moodboard-image:hover img {
    transform: scale(1.045);
}


/* MAIN IMAGE */

.wedding-moodboard-main {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
}


/* DETAIL IMAGE */

.wedding-moodboard-detail {
    grid-column: 3;
    grid-row: 1;
}


/* WIDE IMAGE */

.wedding-moodboard-wide {
    grid-column: 2 / 4;
    grid-row: 3;
}


/* =========================================================
   IMAGE LABEL
========================================================= */

.wedding-moodboard-image-label {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 13px;
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    color: #fff;
}

.wedding-moodboard-image-label span {
    font-family: "Playfair Display", serif;
    font-size: 17px;
}

.wedding-moodboard-image-label strong {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.8px;
}


/* =========================================================
   COLOUR PANEL
========================================================= */

.wedding-moodboard-colours {
    grid-column: 3;
    grid-row: 2;
    padding: 32px;
    background: #fffaf7;
}

.wedding-moodboard-small-label {
    display: block;
    margin-bottom: 28px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #92786a;
}

.wedding-moodboard-colours h3 {
    margin: 0;
    max-width: 250px;
    font-family: "Playfair Display", serif;
    font-size: 28px;
    line-height: 1.1;
    font-weight: 500;
    color: #30241f;
}

.wedding-moodboard-colours h3 em {
    color: #b8896b;
    font-weight: 400;
}

.wedding-moodboard-palette {
    display: flex;
    margin: 35px 0 27px;
}

.wedding-moodboard-palette span {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin-left: -5px;
    border: 3px solid #fffaf7;
}

.wedding-moodboard-palette span:first-child {
    margin-left: 0;
}

.mood-color-1 {
    background: #d8c1ba;
}

.mood-color-2 {
    background: #e9dcd2;
}

.mood-color-3 {
    background: #b99a89;
}

.mood-color-4 {
    background: #8c796c;
}

.mood-color-5 {
    background: #f4eee8;
}

.wedding-moodboard-colours p {
    margin: 0;
    font-size: 12px;
    line-height: 1.8;
    color: #68706c;
}


/* =========================================================
   QUOTE PANEL
========================================================= */

.wedding-moodboard-quote {
    grid-column: 1;
    grid-row: 3;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 35px;
    background: #30241f;
}

.wedding-moodboard-quote>span {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: #c39575;
}

.wedding-moodboard-quote p {
    margin: 0;
    max-width: 330px;
    font-family: "Playfair Display", serif;
    font-size: 31px;
    line-height: 1.25;
    color: #fffaf7;
}

.wedding-moodboard-quote p em {
    color: #c39575;
    font-weight: 400;
}


/* =========================================================
   WIDE IMAGE OVERLAY
========================================================= */

.wedding-moodboard-wide-overlay {
    position: absolute;
    inset: auto 25px 24px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.45);
    color: #fff;
}

.wedding-moodboard-wide-overlay>span {
    font-family: "Playfair Display", serif;
    font-size: 18px;
}

.wedding-moodboard-wide-overlay div {
    display: flex;
    flex-direction: column;
    text-align: right;
}

.wedding-moodboard-wide-overlay strong {
    font-size: 10px;
    letter-spacing: 2px;
}

.wedding-moodboard-wide-overlay small {
    margin-top: 5px;
    font-size: 8px;
    letter-spacing: 1.4px;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-moodboard-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    margin-top: 55px;
    padding-top: 30px;
    border-top: 1px solid rgba(48, 36, 31, 0.18);
}

.wedding-moodboard-bottom span {
    display: block;
    margin-bottom: 10px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-moodboard-bottom p {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 22px;
    color: #30241f;
}

.wedding-moodboard-bottom p em {
    color: #b8896b;
}

.wedding-moodboard-bottom a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    text-decoration: none;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #30241f;
}

.wedding-moodboard-bottom a i {
    color: #b8896b;
    transition: transform 0.3s ease;
}

.wedding-moodboard-bottom a:hover i {
    transform: translateX(5px);
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-moodboard-top,
.wedding-moodboard-grid,
.wedding-moodboard-bottom {
    animation: weddingMoodboardReveal 0.9s ease both;
}

.wedding-moodboard-grid {
    animation-delay: 0.12s;
}

.wedding-moodboard-bottom {
    animation-delay: 0.22s;
}

@keyframes weddingMoodboardReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1050px) {

    .wedding-moodboard-top {
        grid-template-columns: 0.7fr 1.3fr;
    }

    .wedding-moodboard-top>p {
        grid-column: 2;
    }

    .wedding-moodboard-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 400px 300px 300px 360px;
    }

    .wedding-moodboard-main {
        grid-column: 1 / 3;
        grid-row: 1 / 2;
    }

    .wedding-moodboard-detail {
        grid-column: 1;
        grid-row: 2;
    }

    .wedding-moodboard-colours {
        grid-column: 2;
        grid-row: 2;
    }

    .wedding-moodboard-quote {
        grid-column: 1;
        grid-row: 3;
    }

    .wedding-moodboard-wide {
        grid-column: 2;
        grid-row: 3 / 5;
    }

    .wedding-moodboard-bottom {
        margin-top: 45px;
    }

}


@media (max-width: 768px) {

    .wedding-moodboard {
        padding: 85px 0;
    }

    .wedding-moodboard-container {
        width: min(100% - 30px, 600px);
    }

    .wedding-moodboard-top {
        display: block;
        margin-bottom: 50px;
    }

    .wedding-moodboard-title {
        margin: 28px 0 25px;
    }

    .wedding-moodboard-title h2 {
        font-size: 46px;
    }

    .wedding-moodboard-top>p {
        max-width: 100%;
    }

    .wedding-moodboard-grid {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 12px;
    }

    .wedding-moodboard-main,
    .wedding-moodboard-detail,
    .wedding-moodboard-colours,
    .wedding-moodboard-quote,
    .wedding-moodboard-wide {
        grid-column: auto;
        grid-row: auto;
    }

    .wedding-moodboard-main {
        height: 430px;
    }

    .wedding-moodboard-detail {
        height: 320px;
    }

    .wedding-moodboard-colours {
        min-height: 310px;
    }

    .wedding-moodboard-quote {
        min-height: 300px;
    }

    .wedding-moodboard-wide {
        height: 360px;
    }

    .wedding-moodboard-bottom {
        display: block;
        margin-top: 45px;
    }

    .wedding-moodboard-bottom p {
        margin-bottom: 25px;
        font-size: 20px;
    }

}


@media (max-width: 480px) {

    .wedding-moodboard {
        padding: 70px 0;
    }

    .wedding-moodboard-title h2 {
        font-size: 40px;
    }

    .wedding-moodboard-main {
        height: 350px;
    }

    .wedding-moodboard-detail {
        height: 270px;
    }

    .wedding-moodboard-colours,
    .wedding-moodboard-quote {
        padding: 27px;
    }

    .wedding-moodboard-colours h3 {
        font-size: 25px;
    }

    .wedding-moodboard-quote p {
        font-size: 27px;
    }

    .wedding-moodboard-wide {
        height: 290px;
    }

}

/* =========================================================
   FINAL GALLERY SHOWCASE
========================================================= */

.wedding-final-gallery {
    position: relative;
    width: 100%;
    padding: 115px 0 105px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-final-gallery-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   TOP
========================================================= */

.wedding-final-gallery-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 30px;
}

.wedding-final-gallery-index {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-final-gallery-index span {
    font-family: "Playfair Display", serif;
    font-size: 22px;
    color: #b8896b;
}

.wedding-final-gallery-index div {
    width: 40px;
    height: 1px;
    background: #cdb8aa;
}

.wedding-final-gallery-est {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}


/* =========================================================
   MAIN STAGE
========================================================= */

.wedding-final-gallery-stage {
    position: relative;
    width: 100%;
    min-height: 720px;
    overflow: hidden;
    background: #30241f;
}

.wedding-final-gallery-stage>img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s ease;
}

.wedding-final-gallery-stage:hover>img {
    transform: scale(1.025);
}

.wedding-final-gallery-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg,
            rgba(25, 17, 13, 0.35) 0%,
            rgba(25, 17, 13, 0.12) 35%,
            rgba(25, 17, 13, 0.52) 100%);
}


/* =========================================================
   IMAGE TOP
========================================================= */

.wedding-final-gallery-image-top {
    position: absolute;
    top: 27px;
    left: 30px;
    right: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    color: #fffaf7;
}

.wedding-final-gallery-image-top span {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
}


/* =========================================================
   CENTER
========================================================= */

.wedding-final-gallery-center {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(650px, calc(100% - 50px));
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fffaf7;
}

.wedding-final-gallery-center>span {
    display: block;
    margin-bottom: 18px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2.5px;
}

.wedding-final-gallery-center h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 6vw, 82px);
    line-height: 0.98;
    font-weight: 400;
    letter-spacing: -2px;
}

.wedding-final-gallery-center h2 em {
    display: block;
    color: #e2c0a8;
    font-weight: 400;
}

.wedding-final-gallery-center p {
    max-width: 470px;
    margin: 28px auto 0;
    font-size: 13px;
    line-height: 1.85;
    font-weight: 400;
    color: rgba(255, 250, 247, 0.85);
}


/* =========================================================
   IMAGE BOTTOM
========================================================= */

.wedding-final-gallery-bottom {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 27px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    padding-top: 17px;
    border-top: 1px solid rgba(255, 255, 255, 0.35);
}

.wedding-final-gallery-bottom div {
    padding-right: 25px;
}

.wedding-final-gallery-bottom div+div {
    padding-left: 25px;
    border-left: 1px solid rgba(255, 255, 255, 0.25);
}

.wedding-final-gallery-bottom span {
    display: block;
    margin-bottom: 6px;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.8px;
    color: rgba(255, 250, 247, 0.65);
}

.wedding-final-gallery-bottom strong {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.2px;
    color: #fffaf7;
}


/* =========================================================
   CLOSING
========================================================= */

.wedding-final-gallery-closing {
    display: grid;
    grid-template-columns: 0.35fr 1.65fr auto;
    gap: 45px;
    align-items: center;
    padding-top: 38px;
}

.wedding-final-gallery-closing-number {
    font-family: "Playfair Display", serif;
    font-size: 34px;
    color: #b8896b;
}

.wedding-final-gallery-closing-content>span {
    display: block;
    margin-bottom: 10px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-final-gallery-closing-content h3 {
    max-width: 680px;
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 25px;
    line-height: 1.4;
    font-weight: 500;
    color: #30241f;
}

.wedding-final-gallery-closing-content h3 em {
    color: #b8896b;
    font-weight: 400;
}

.wedding-final-gallery-closing a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    text-decoration: none;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #30241f;
    transition: color 0.3s ease;
}

.wedding-final-gallery-closing a i {
    color: #b8896b;
    transition: transform 0.3s ease;
}

.wedding-final-gallery-closing a:hover {
    color: #b06f4e;
}

.wedding-final-gallery-closing a:hover i {
    transform: translateX(5px);
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-final-gallery-top,
.wedding-final-gallery-stage,
.wedding-final-gallery-closing {
    animation: weddingFinalGalleryReveal 0.9s ease both;
}

.wedding-final-gallery-stage {
    animation-delay: 0.12s;
}

.wedding-final-gallery-closing {
    animation-delay: 0.24s;
}

@keyframes weddingFinalGalleryReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1000px) {

    .wedding-final-gallery-stage {
        min-height: 650px;
    }

    .wedding-final-gallery-closing {
        grid-template-columns: 0.25fr 1.75fr;
    }

    .wedding-final-gallery-closing a {
        grid-column: 2;
    }

}


@media (max-width: 768px) {

    .wedding-final-gallery {
        padding: 85px 0 80px;
    }

    .wedding-final-gallery-container {
        width: min(100% - 30px, 600px);
    }

    .wedding-final-gallery-top {
        margin-bottom: 24px;
    }

    .wedding-final-gallery-est {
        display: none;
    }

    .wedding-final-gallery-stage {
        min-height: 600px;
    }

    .wedding-final-gallery-image-top {
        left: 20px;
        right: 20px;
        top: 20px;
    }

    .wedding-final-gallery-center {
        width: calc(100% - 40px);
    }

    .wedding-final-gallery-center h2 {
        font-size: 48px;
        letter-spacing: -1px;
    }

    .wedding-final-gallery-center p {
        margin-top: 22px;
    }

    .wedding-final-gallery-bottom {
        left: 20px;
        right: 20px;
        bottom: 20px;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .wedding-final-gallery-bottom div {
        padding: 0 0 10px;
    }

    .wedding-final-gallery-bottom div+div {
        padding: 10px 0 0;
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.2);
    }

    .wedding-final-gallery-closing {
        display: block;
        padding-top: 30px;
    }

    .wedding-final-gallery-closing-number {
        margin-bottom: 18px;
    }

    .wedding-final-gallery-closing-content h3 {
        font-size: 22px;
    }

    .wedding-final-gallery-closing a {
        margin-top: 25px;
    }

}


@media (max-width: 480px) {

    .wedding-final-gallery {
        padding: 70px 0;
    }

    .wedding-final-gallery-stage {
        min-height: 560px;
    }

    .wedding-final-gallery-center h2 {
        font-size: 40px;
    }

    .wedding-final-gallery-center p {
        font-size: 12px;
    }

    .wedding-final-gallery-bottom strong {
        font-size: 9px;
    }

}

/* =====================================================
   VENDOR PARTNERS — OUR TRUSTED NETWORK
===================================================== */

.wedding-vendor-network {
    width: 100%;
    padding: 120px 0;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-vendor-network-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.82fr 1.55fr;
    gap: 90px;
    align-items: start;
}


/* =====================================================
   INTRO
===================================================== */

.wedding-vendor-network-intro {
    position: sticky;
    top: 120px;
}

.wedding-vendor-network-label {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    font-family: 'Playfair Display', serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
    color: #b8896b;
}

.wedding-vendor-network-number {
    margin-top: 55px;

    font-family: 'Playfair Display', serif;
    font-size: 76px;
    line-height: 0.9;
    font-weight: 500;

    color: rgba(184, 137, 107, 0.18);
}

.wedding-vendor-network-intro h2 {
    max-width: 390px;
    margin: 28px 0 0;

    font-family: 'Playfair Display', serif;
    font-size: clamp(42px, 4.3vw, 64px);
    line-height: 1.04;
    font-weight: 500;

    color: #30241f;
}

.wedding-vendor-network-intro h2 em {
    color: #b8896b;
    font-style: italic;
}


/* =====================================================
   CONTENT
===================================================== */

.wedding-vendor-network-content {
    padding-top: 8px;
}

.wedding-vendor-network-lead {
    max-width: 680px;
    margin: 0 0 22px;

    font-family: 'Playfair Display', serif;
    font-size: 25px;
    line-height: 1.55;
    font-weight: 500;

    color: #30241f;
}

.wedding-vendor-network-description {
    max-width: 650px;
    margin: 0 0 55px;

    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;

    color: #6e5d54;
}


/* =====================================================
   NETWORK LIST
===================================================== */

.wedding-vendor-network-list {
    width: 100%;
    border-top: 1px solid rgba(80, 55, 45, 0.16);
}

.wedding-vendor-network-item {
    position: relative;

    display: grid;
    grid-template-columns: 60px 1fr 45px;
    align-items: center;

    min-height: 125px;
    padding: 20px 8px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.16);

    text-decoration: none;

    transition:
        background 0.3s ease,
        padding 0.3s ease;
}

.wedding-vendor-network-item:hover {
    padding-left: 22px;
    padding-right: 22px;
    background: #f8f1ed;
}

.wedding-vendor-network-index {
    align-self: start;
    padding-top: 5px;

    font-family: 'Playfair Display', serif;
    font-size: 14px;
    font-weight: 600;

    color: #b8896b;
}

.wedding-vendor-network-item-content {
    padding-right: 25px;
}

.wedding-vendor-network-item-content h3 {
    margin: 0 0 8px;

    font-family: 'Playfair Display', serif;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 600;

    color: #30241f;
}

.wedding-vendor-network-item-content p {
    max-width: 520px;
    margin: 0;

    font-size: 13px;
    line-height: 1.7;
    font-weight: 400;

    color: #78675e;
}

.wedding-vendor-network-arrow {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(184, 137, 107, 0.35);
    border-radius: 50%;

    font-size: 11px;
    color: #b8896b;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.wedding-vendor-network-item:hover .wedding-vendor-network-arrow {
    background: #b8896b;
    color: #ffffff;
    transform: rotate(45deg);
}


/* =====================================================
   FOOTER STATEMENT
===================================================== */

.wedding-vendor-network-footer {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 30px;

    margin-top: 48px;
    padding-top: 25px;

    border-top: 1px solid rgba(80, 55, 45, 0.16);
}

.wedding-vendor-network-footer span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;

    color: #b8896b;
}

.wedding-vendor-network-footer p {
    margin: 0;

    font-family: 'Playfair Display', serif;
    font-size: 17px;
    line-height: 1.5;
    font-weight: 500;

    color: #30241f;
}


/* =====================================================
   ENTRANCE ANIMATIONS
===================================================== */

@keyframes weddingVendorNetworkIntroReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingVendorNetworkListReveal {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

.wedding-vendor-network-intro {
    animation: weddingVendorNetworkIntroReveal 0.9s ease both;
}

.wedding-vendor-network-content {
    animation: weddingVendorNetworkListReveal 0.9s ease 0.12s both;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-vendor-network {
        padding: 90px 0;
    }

    .wedding-vendor-network-container {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .wedding-vendor-network-intro {
        position: static;
    }

    .wedding-vendor-network-number {
        margin-top: 30px;
    }

    .wedding-vendor-network-intro h2 {
        max-width: 600px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-vendor-network {
        padding: 75px 0;
    }

    .wedding-vendor-network-container {
        width: min(100% - 30px, 650px);
        gap: 42px;
    }

    .wedding-vendor-network-number {
        font-size: 60px;
    }

    .wedding-vendor-network-intro h2 {
        font-size: 43px;
    }

    .wedding-vendor-network-lead {
        font-size: 21px;
    }

    .wedding-vendor-network-item {
        grid-template-columns: 42px 1fr 35px;
        min-height: 115px;
        padding: 18px 0;
    }

    .wedding-vendor-network-item:hover {
        padding-left: 10px;
        padding-right: 10px;
    }

    .wedding-vendor-network-item-content h3 {
        font-size: 19px;
    }

    .wedding-vendor-network-footer {
        grid-template-columns: 1fr;
        gap: 12px;
    }

}


@media (max-width: 480px) {

    .wedding-vendor-network-intro h2 {
        font-size: 37px;
    }

    .wedding-vendor-network-lead {
        font-size: 19px;
    }

    .wedding-vendor-network-description {
        margin-bottom: 35px;
    }

    .wedding-vendor-network-item {
        grid-template-columns: 35px 1fr;
    }

    .wedding-vendor-network-arrow {
        display: none;
    }

    .wedding-vendor-network-item-content h3 {
        font-size: 18px;
    }

}

/* =====================================================
   VENDOR PARTNERS — FLORISTS & DECOR DESIGNERS
===================================================== */

.wedding-vendor-florals {
    width: 100%;
    padding: 125px 0;
    background: #f8f1ed;
    overflow: hidden;
}

.wedding-vendor-florals-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 90px;
    align-items: center;
}


/* =====================================================
   VISUAL
===================================================== */

.wedding-vendor-florals-visual {
    position: relative;
}

.wedding-vendor-florals-image-wrap {
    position: relative;

    width: 100%;
    min-height: 650px;

    overflow: hidden;
    background: #e9ddd5;
}

.wedding-vendor-florals-image {
    width: 100%;
    height: 650px;

    display: block;
    object-fit: cover;

    transition: transform 0.8s ease;
}

.wedding-vendor-florals-image-wrap:hover .wedding-vendor-florals-image {
    transform: scale(1.035);
}


/* Image overlay */

.wedding-vendor-florals-image-wrap::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 0.04),
            transparent 55%,
            rgba(0, 0, 0, 0.32));

    pointer-events: none;
}


/* Image label */

.wedding-vendor-florals-image-label {
    position: absolute;
    z-index: 2;

    top: 24px;
    left: 25px;
    right: 25px;

    display: flex;
    justify-content: space-between;
    align-items: center;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;

    color: #ffffff;
}


/* Bottom caption */

.wedding-vendor-florals-caption {
    width: 78%;

    margin-top: -1px;
    margin-left: auto;
    padding: 24px 28px;

    background: #30241f;
    color: #ffffff;

    position: relative;
    z-index: 3;
}

.wedding-vendor-florals-caption span {
    display: block;

    margin-bottom: 9px;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;

    color: #c39575;
}

.wedding-vendor-florals-caption p {
    margin: 0;

    font-family: 'Playfair Display', serif;
    font-size: 16px;
    line-height: 1.55;
    font-weight: 500;

    color: #fffaf7;
}


/* =====================================================
   CONTENT
===================================================== */

.wedding-vendor-florals-content {
    padding: 25px 0;
}

.wedding-vendor-florals-kicker {
    display: block;

    margin-bottom: 28px;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;

    color: #b8896b;
}

.wedding-vendor-florals-content h2 {
    max-width: 520px;

    margin: 0 0 30px;

    font-family: 'Playfair Display', serif;
    font-size: clamp(45px, 4.5vw, 67px);
    line-height: 1.03;
    font-weight: 500;

    color: #30241f;
}

.wedding-vendor-florals-content h2 em {
    color: #b8896b;
    font-style: italic;
}

.wedding-vendor-florals-intro {
    max-width: 550px;

    margin: 0 0 18px;

    font-family: 'Playfair Display', serif;
    font-size: 21px;
    line-height: 1.55;
    font-weight: 500;

    color: #30241f;
}

.wedding-vendor-florals-description {
    max-width: 535px;

    margin: 0 0 45px;

    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;

    color: #6e5d54;
}


/* =====================================================
   SPECIALTIES
===================================================== */

.wedding-vendor-florals-specialties {
    border-top: 1px solid rgba(80, 55, 45, 0.16);
}

.wedding-vendor-florals-specialty {
    display: grid;
    grid-template-columns: 42px 1fr;

    gap: 18px;

    padding: 19px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.16);
}

.wedding-vendor-florals-specialty>span {
    padding-top: 3px;

    font-family: 'Playfair Display', serif;
    font-size: 12px;
    font-weight: 600;

    color: #b8896b;
}

.wedding-vendor-florals-specialty strong {
    display: block;

    margin-bottom: 5px;

    font-family: 'Playfair Display', serif;
    font-size: 17px;
    font-weight: 600;

    color: #30241f;
}

.wedding-vendor-florals-specialty p {
    margin: 0;

    font-size: 12px;
    line-height: 1.6;
    font-weight: 400;

    color: #78675e;
}


/* =====================================================
   LINK
===================================================== */

.wedding-vendor-florals-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    margin-top: 38px;

    padding-bottom: 8px;

    border-bottom: 1px solid #b8896b;

    text-decoration: none;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.8px;

    color: #30241f;

    transition:
        color 0.3s ease,
        gap 0.3s ease;
}

.wedding-vendor-florals-link i {
    font-size: 11px;
    color: #b8896b;
}

.wedding-vendor-florals-link:hover {
    gap: 20px;
    color: #b06f4e;
}


/* =====================================================
   ENTRANCE ANIMATIONS
===================================================== */

@keyframes weddingVendorFloralsVisual {

    from {
        opacity: 0;
        transform: translateX(-55px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingVendorFloralsContent {

    from {
        opacity: 0;
        transform: translateX(45px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingVendorFloralsSpecialty {

    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

.wedding-vendor-florals-visual {
    animation: weddingVendorFloralsVisual 0.9s ease both;
}

.wedding-vendor-florals-content {
    animation: weddingVendorFloralsContent 0.9s ease 0.12s both;
}

.wedding-vendor-florals-specialty {
    animation: weddingVendorFloralsSpecialty 0.65s ease both;
}

.wedding-vendor-florals-specialty:nth-child(1) {
    animation-delay: 0.25s;
}

.wedding-vendor-florals-specialty:nth-child(2) {
    animation-delay: 0.35s;
}

.wedding-vendor-florals-specialty:nth-child(3) {
    animation-delay: 0.45s;
}

.wedding-vendor-florals-specialty:nth-child(4) {
    animation-delay: 0.55s;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-vendor-florals {
        padding: 90px 0;
    }

    .wedding-vendor-florals-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .wedding-vendor-florals-image-wrap {
        min-height: 580px;
    }

    .wedding-vendor-florals-image {
        height: 580px;
    }

    .wedding-vendor-florals-content h2 {
        max-width: 700px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-vendor-florals {
        padding: 75px 0;
    }

    .wedding-vendor-florals-container {
        width: min(100% - 30px, 650px);
        gap: 45px;
    }

    .wedding-vendor-florals-image-wrap {
        min-height: 480px;
    }

    .wedding-vendor-florals-image {
        height: 480px;
    }

    .wedding-vendor-florals-caption {
        width: 88%;
        padding: 20px;
    }

    .wedding-vendor-florals-content h2 {
        font-size: 44px;
    }

    .wedding-vendor-florals-intro {
        font-size: 19px;
    }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media (max-width: 480px) {

    .wedding-vendor-florals-image-wrap {
        min-height: 400px;
    }

    .wedding-vendor-florals-image {
        height: 400px;
    }

    .wedding-vendor-florals-image-label {
        left: 18px;
        right: 18px;
    }

    .wedding-vendor-florals-content h2 {
        font-size: 37px;
    }

    .wedding-vendor-florals-caption {
        width: 94%;
    }

}

/* =====================================================
   VENDOR PARTNERS — BRIDAL BEAUTY & MAKEUP
===================================================== */

.wedding-vendor-beauty {
    width: 100%;
    padding: 125px 0 110px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-vendor-beauty-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =====================================================
   HEADING
===================================================== */

.wedding-vendor-beauty-heading {
    display: grid;
    grid-template-columns: 0.65fr 1.15fr 0.9fr;
    gap: 60px;
    align-items: end;

    margin-bottom: 70px;
}

.wedding-vendor-beauty-index {
    display: flex;
    align-items: center;
    gap: 15px;

    padding-bottom: 10px;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.2px;

    color: #92786a;
}

.wedding-vendor-beauty-index span {
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    letter-spacing: 0;

    color: #b8896b;
}

.wedding-vendor-beauty-index div {
    width: 32px;
    height: 1px;

    background: #b8896b;
}

.wedding-vendor-beauty-heading h2 {
    margin: 0;

    font-family: 'Playfair Display', serif;
    font-size: clamp(46px, 5vw, 72px);
    line-height: 1.02;
    font-weight: 500;

    color: #30241f;
}

.wedding-vendor-beauty-heading h2 em {
    display: block;

    color: #b8896b;
    font-style: italic;
}

.wedding-vendor-beauty-heading>p {
    max-width: 390px;

    margin: 0;

    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;

    color: #6e5d54;
}


/* =====================================================
   FEATURE
===================================================== */

.wedding-vendor-beauty-feature {
    display: grid;
    grid-template-columns: 1.35fr 0.65fr;

    min-height: 650px;

    background: #f3eee9;
}


/* =====================================================
   MAIN IMAGE
===================================================== */

.wedding-vendor-beauty-main-image {
    position: relative;

    min-height: 650px;

    overflow: hidden;

    background: #e8ddd6;
}

.wedding-vendor-beauty-main-image img {
    width: 100%;
    height: 650px;

    display: block;

    object-fit: cover;

    transition: transform 0.9s ease;
}

.wedding-vendor-beauty-main-image:hover img {
    transform: scale(1.035);
}

.wedding-vendor-beauty-image-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(to bottom,
            rgba(20, 14, 12, 0.18),
            transparent 50%,
            rgba(20, 14, 12, 0.38));
}

.wedding-vendor-beauty-image-top {
    position: absolute;
    z-index: 2;

    top: 25px;
    left: 28px;
    right: 28px;

    display: flex;
    justify-content: space-between;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;

    color: #ffffff;
}

.wedding-vendor-beauty-image-bottom {
    position: absolute;
    z-index: 2;

    left: 28px;
    right: 28px;
    bottom: 25px;

    display: flex;
    justify-content: space-between;
    align-items: center;

    padding-top: 18px;

    border-top: 1px solid rgba(255, 255, 255, 0.35);

    color: #ffffff;
}

.wedding-vendor-beauty-image-bottom strong {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-vendor-beauty-image-bottom span {
    font-family: 'Playfair Display', serif;
    font-size: 14px;

    color: #f3d7c2;
}


/* =====================================================
   SIDE CONTENT
===================================================== */

.wedding-vendor-beauty-side {
    display: flex;
    flex-direction: column;

    padding: 55px 42px 45px;
}

.wedding-vendor-beauty-side-label {
    display: block;

    margin-bottom: 28px;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;

    color: #b8896b;
}

.wedding-vendor-beauty-points {
    flex: 1;
}

.wedding-vendor-beauty-point {
    display: grid;
    grid-template-columns: 30px 1fr;

    gap: 12px;

    padding: 21px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-vendor-beauty-point:first-child {
    border-top: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-vendor-beauty-point>span {
    padding-top: 3px;

    font-family: 'Playfair Display', serif;
    font-size: 11px;

    color: #b8896b;
}

.wedding-vendor-beauty-point h3 {
    margin: 0 0 6px;

    font-family: 'Playfair Display', serif;
    font-size: 17px;
    line-height: 1.3;
    font-weight: 600;

    color: #30241f;
}

.wedding-vendor-beauty-point p {
    margin: 0;

    font-size: 12px;
    line-height: 1.65;
    font-weight: 400;

    color: #75655c;
}


/* =====================================================
   LINK
===================================================== */

.wedding-vendor-beauty-link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 30px;
    padding-top: 20px;

    border-top: 1px solid rgba(80, 55, 45, 0.18);

    text-decoration: none;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.7px;

    color: #30241f;

    transition: color 0.3s ease;
}

.wedding-vendor-beauty-link i {
    font-size: 10px;
    color: #b8896b;

    transition: transform 0.3s ease;
}

.wedding-vendor-beauty-link:hover {
    color: #b06f4e;
}

.wedding-vendor-beauty-link:hover i {
    transform: translate(3px, -3px);
}


/* =====================================================
   BOTTOM STATEMENT
===================================================== */

.wedding-vendor-beauty-bottom {
    display: grid;
    grid-template-columns: 0.65fr 1.35fr;
    gap: 60px;

    margin-top: 48px;
    padding-top: 25px;

    border-top: 1px solid rgba(80, 55, 45, 0.16);
}

.wedding-vendor-beauty-bottom>span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;

    color: #b8896b;
}

.wedding-vendor-beauty-bottom p {
    max-width: 700px;

    margin: 0;

    font-family: 'Playfair Display', serif;
    font-size: 19px;
    line-height: 1.55;
    font-weight: 500;

    color: #30241f;
}


/* =====================================================
   ENTRANCE ANIMATIONS
===================================================== */

@keyframes weddingVendorBeautyHeading {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingVendorBeautyFeature {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes weddingVendorBeautyPoint {

    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

.wedding-vendor-beauty-heading {
    animation: weddingVendorBeautyHeading 0.9s ease both;
}

.wedding-vendor-beauty-feature {
    animation: weddingVendorBeautyFeature 0.9s ease 0.12s both;
}

.wedding-vendor-beauty-point {
    animation: weddingVendorBeautyPoint 0.55s ease both;
}

.wedding-vendor-beauty-point:nth-child(1) {
    animation-delay: 0.2s;
}

.wedding-vendor-beauty-point:nth-child(2) {
    animation-delay: 0.3s;
}

.wedding-vendor-beauty-point:nth-child(3) {
    animation-delay: 0.4s;
}

.wedding-vendor-beauty-point:nth-child(4) {
    animation-delay: 0.5s;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wedding-vendor-beauty {
        padding: 90px 0;
    }

    .wedding-vendor-beauty-heading {
        grid-template-columns: 0.55fr 1.1fr;
        gap: 35px;
    }

    .wedding-vendor-beauty-heading>p {
        grid-column: 2;
    }

    .wedding-vendor-beauty-feature {
        grid-template-columns: 1fr;
    }

    .wedding-vendor-beauty-main-image,
    .wedding-vendor-beauty-main-image img {
        min-height: 600px;
        height: 600px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wedding-vendor-beauty {
        padding: 75px 0;
    }

    .wedding-vendor-beauty-container {
        width: min(100% - 30px, 650px);
    }

    .wedding-vendor-beauty-heading {
        display: block;

        margin-bottom: 45px;
    }

    .wedding-vendor-beauty-index {
        margin-bottom: 25px;
    }

    .wedding-vendor-beauty-heading h2 {
        font-size: 45px;
        margin-bottom: 25px;
    }

    .wedding-vendor-beauty-heading>p {
        max-width: 600px;
    }

    .wedding-vendor-beauty-main-image,
    .wedding-vendor-beauty-main-image img {
        min-height: 500px;
        height: 500px;
    }

    .wedding-vendor-beauty-side {
        padding: 40px 25px;
    }

    .wedding-vendor-beauty-bottom {
        display: block;
    }

    .wedding-vendor-beauty-bottom>span {
        display: block;
        margin-bottom: 12px;
    }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media (max-width: 480px) {

    .wedding-vendor-beauty-heading h2 {
        font-size: 38px;
    }

    .wedding-vendor-beauty-main-image,
    .wedding-vendor-beauty-main-image img {
        min-height: 420px;
        height: 420px;
    }

    .wedding-vendor-beauty-image-top,
    .wedding-vendor-beauty-image-bottom {
        left: 18px;
        right: 18px;
    }

    .wedding-vendor-beauty-side {
        padding: 35px 20px;
    }

}

/* =====================================================
   CATERING & HOSPITALITY
   REPLACEMENT SECTION
===================================================== */

.wp-catering-experience {
    position: relative;

    width: 100%;
    display: block;

    padding: 120px 0 110px;

    background: #f3eee9;

    overflow: hidden;

    clear: both;
}

.wp-catering-container {
    position: relative;

    width: min(1240px, calc(100% - 40px));

    margin: 0 auto;

    display: block;
}


/* =====================================================
   HEADER
===================================================== */

.wp-catering-header {
    display: grid;

    grid-template-columns: 0.65fr 1.25fr 0.9fr;

    gap: 55px;

    align-items: end;

    margin-bottom: 65px;
}

.wp-catering-label {
    display: flex;

    align-items: center;

    gap: 14px;

    padding-bottom: 8px;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2px;

    color: #92786a;
}

.wp-catering-label span {
    font-family: 'Playfair Display', serif;

    font-size: 15px;

    color: #b8896b;
}

.wp-catering-label div {
    width: 32px;
    height: 1px;

    background: #b8896b;
}

.wp-catering-header h2 {
    margin: 0;

    font-family: 'Playfair Display', serif;

    font-size: clamp(45px, 5vw, 70px);

    line-height: 1.03;

    font-weight: 500;

    color: #30241f;
}

.wp-catering-header h2 em {
    display: block;

    font-style: italic;

    color: #b8896b;
}

.wp-catering-header>p {
    max-width: 390px;

    margin: 0;

    font-size: 13px;

    line-height: 1.9;

    font-weight: 400;

    color: #6e5d54;
}


/* =====================================================
   MAIN GRID
===================================================== */

.wp-catering-grid {
    display: grid;

    grid-template-columns: 1.15fr 0.85fr;

    min-height: 620px;

    background: #fffaf7;
}


/* =====================================================
   IMAGE
===================================================== */

.wp-catering-feature {
    position: relative;

    min-height: 620px;

    overflow: hidden;

    background: #dcd0c8;
}

.wp-catering-feature img {
    width: 100%;
    height: 620px;

    display: block;

    object-fit: cover;

    transition: transform 0.9s ease;
}

.wp-catering-feature:hover img {
    transform: scale(1.035);
}

.wp-catering-feature-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(to bottom,
            rgba(30, 20, 16, 0.16),
            transparent 45%,
            rgba(30, 20, 16, 0.52));
}

.wp-catering-feature-top {
    position: absolute;

    z-index: 2;

    top: 25px;

    left: 28px;
    right: 28px;

    display: flex;

    justify-content: space-between;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;

    color: #ffffff;
}

.wp-catering-feature-bottom {
    position: absolute;

    z-index: 2;

    left: 28px;
    right: 28px;

    bottom: 28px;

    padding-top: 20px;

    border-top: 1px solid rgba(255, 255, 255, 0.35);
}

.wp-catering-feature-bottom>span {
    display: block;

    margin-bottom: 12px;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;

    color: #e6c7b4;
}

.wp-catering-feature-bottom strong {
    display: block;

    max-width: 380px;

    font-family: 'Playfair Display', serif;

    font-size: 29px;

    line-height: 1.2;

    font-weight: 500;

    color: #ffffff;
}

.wp-catering-feature-bottom em {
    color: #e3b99d;

    font-style: italic;
}


/* =====================================================
   DETAILS
===================================================== */

.wp-catering-details {
    display: flex;

    flex-direction: column;

    padding: 48px 42px 42px;
}

.wp-catering-detail-intro {
    padding-bottom: 28px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.14);
}

.wp-catering-detail-intro>span {
    display: block;

    margin-bottom: 14px;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;

    color: #b8896b;
}

.wp-catering-detail-intro p {
    margin: 0;

    font-family: 'Playfair Display', serif;

    font-size: 18px;

    line-height: 1.55;

    font-weight: 500;

    color: #30241f;
}


/* =====================================================
   SERVICES
===================================================== */

.wp-catering-services {
    flex: 1;
}

.wp-catering-service {
    display: grid;

    grid-template-columns: 32px 1fr;

    gap: 14px;

    padding: 19px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.14);
}

.wp-catering-service>span {
    padding-top: 3px;

    font-family: 'Playfair Display', serif;

    font-size: 11px;

    color: #b8896b;
}

.wp-catering-service h3 {
    margin: 0 0 6px;

    font-family: 'Playfair Display', serif;

    font-size: 17px;

    line-height: 1.3;

    font-weight: 600;

    color: #30241f;
}

.wp-catering-service p {
    margin: 0;

    font-size: 12px;

    line-height: 1.6;

    font-weight: 400;

    color: #75655c;
}


/* =====================================================
   LINK
===================================================== */

.wp-catering-link {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    margin-top: 28px;

    padding-bottom: 9px;

    border-bottom: 1px solid #b8896b;

    text-decoration: none;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1.7px;

    color: #30241f;

    transition: color 0.3s ease;
}

.wp-catering-link i {
    color: #b8896b;

    transition: transform 0.3s ease;
}

.wp-catering-link:hover {
    color: #b06f4e;
}

.wp-catering-link:hover i {
    transform: translateX(5px);
}


/* =====================================================
   FOOT STATEMENT
===================================================== */

.wp-catering-footer {
    display: grid;

    grid-template-columns: 0.65fr 1.35fr;

    gap: 50px;

    margin-top: 42px;

    padding-top: 24px;

    border-top: 1px solid rgba(80, 55, 45, 0.16);
}

.wp-catering-footer>span {
    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;

    color: #b8896b;
}

.wp-catering-footer p {
    max-width: 700px;

    margin: 0;

    font-family: 'Playfair Display', serif;

    font-size: 18px;

    line-height: 1.55;

    font-weight: 500;

    color: #30241f;
}


/* =====================================================
   ANIMATIONS
===================================================== */

@keyframes wpCateringHeader {

    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wpCateringGrid {

    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

.wp-catering-header {
    animation: wpCateringHeader 0.8s ease both;
}

.wp-catering-grid {
    animation: wpCateringGrid 0.9s ease 0.1s both;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 992px) {

    .wp-catering-experience {
        padding: 90px 0;
    }

    .wp-catering-header {
        grid-template-columns: 1fr 1fr;

        gap: 30px;
    }

    .wp-catering-header>p {
        grid-column: 2;
    }

    .wp-catering-grid {
        grid-template-columns: 1fr;
    }

    .wp-catering-feature,
    .wp-catering-feature img {
        min-height: 560px;
        height: 560px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    .wp-catering-experience {
        padding: 75px 0;
    }

    .wp-catering-container {
        width: min(100% - 30px, 650px);
    }

    .wp-catering-header {
        display: block;

        margin-bottom: 45px;
    }

    .wp-catering-label {
        margin-bottom: 24px;
    }

    .wp-catering-header h2 {
        font-size: 45px;

        margin-bottom: 22px;
    }

    .wp-catering-feature,
    .wp-catering-feature img {
        min-height: 480px;
        height: 480px;
    }

    .wp-catering-details {
        padding: 38px 24px;
    }

    .wp-catering-footer {
        display: block;
    }

    .wp-catering-footer>span {
        display: block;

        margin-bottom: 12px;
    }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media (max-width: 480px) {

    .wp-catering-header h2 {
        font-size: 38px;
    }

    .wp-catering-feature,
    .wp-catering-feature img {
        min-height: 410px;
        height: 410px;
    }

    .wp-catering-feature-top {
        left: 18px;
        right: 18px;
    }

    .wp-catering-feature-bottom {
        left: 18px;
        right: 18px;
    }

    .wp-catering-feature-bottom strong {
        font-size: 24px;
    }

    .wp-catering-details {
        padding: 32px 20px;
    }

}

/* =========================================================
   ENTERTAINMENT & LIVE PERFORMERS
========================================================= */

.wvp-entertainment {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 125px 0 115px;
    background: #fffaf7;
    overflow: hidden;
}

.wvp-entertainment-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   INTRO
========================================================= */

.wvp-entertainment-intro {
    display: grid;
    grid-template-columns: 0.7fr 1.15fr 0.9fr;
    gap: 55px;
    align-items: end;
    margin-bottom: 65px;
}

.wvp-entertainment-label {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.7px;
}

.wvp-entertainment-label span {
    color: #b8896b;
    font-size: 22px;
    font-weight: 600;
}

.wvp-entertainment-label div {
    width: 35px;
    height: 1px;
    background: #c39575;
}

.wvp-entertainment-heading span {
    display: block;
    margin-bottom: 8px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 500;
}

.wvp-entertainment-heading h2 {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 0.98;
    font-weight: 600;
    letter-spacing: -2px;
}

.wvp-entertainment-heading h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
    font-weight: 500;
}

.wvp-entertainment-intro>p {
    margin: 0;
    max-width: 390px;
    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
}


/* =========================================================
   MAIN STAGE
========================================================= */

.wvp-entertainment-stage {
    display: grid;
    grid-template-columns: 1.35fr 0.65fr;
    min-height: 670px;
    background: #f3eee9;
}


/* =========================================================
   VISUAL
========================================================= */

.wvp-entertainment-visual {
    position: relative;
    min-height: 670px;
    overflow: hidden;
}

.wvp-entertainment-visual img {
    width: 100%;
    height: 100%;
    min-height: 670px;
    display: block;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.wvp-entertainment-visual:hover img {
    transform: scale(1.035);
}

.wvp-entertainment-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom,
            rgba(30, 20, 16, 0.35),
            transparent 35%,
            rgba(25, 17, 14, 0.72));
}

.wvp-entertainment-visual-top {
    position: absolute;
    top: 27px;
    left: 30px;
    right: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.8px;
}

.wvp-entertainment-visual-center {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    gap: 20px;
    transform: translate(-50%, -50%);
}

.wvp-entertainment-play {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;
    color: #fffaf7;
    font-size: 15px;
    transition: all 0.3s ease;
}

.wvp-entertainment-play i {
    margin-left: 3px;
}

.wvp-entertainment-visual:hover .wvp-entertainment-play {
    background: #b8896b;
    border-color: #b8896b;
    transform: scale(1.08);
}

.wvp-entertainment-visual-center p {
    margin: 0;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 2px;
    font-weight: 600;
}

.wvp-entertainment-visual-bottom {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 27px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wvp-entertainment-visual-bottom span {
    font-size: 10px;
    letter-spacing: 1.8px;
}

.wvp-entertainment-visual-bottom strong {
    font-size: 15px;
    font-weight: 500;
}


/* =========================================================
   PANEL
========================================================= */

.wvp-entertainment-panel {
    padding: 55px 42px 45px;
    display: flex;
    flex-direction: column;
    background: #30241f;
}

.wvp-entertainment-panel-label {
    display: block;
    margin-bottom: 35px;
    color: #c39575;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    letter-spacing: 1.8px;
    font-weight: 600;
}

.wvp-entertainment-list {
    display: flex;
    flex-direction: column;
}

.wvp-entertainment-item {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 12px;
    padding: 24px 0;
    border-top: 1px solid rgba(255, 250, 247, 0.15);
}

.wvp-entertainment-item:first-child {
    border-top: 0;
    padding-top: 0;
}

.wvp-entertainment-item>span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 600;
}

.wvp-entertainment-item h3 {
    margin: 0 0 7px;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 19px;
    font-weight: 500;
}

.wvp-entertainment-item p {
    margin: 0;
    color: #c2b0a5;
    font-family: "Playfair Display", serif;
    font-size: 12px;
    line-height: 1.75;
    font-weight: 400;
}

.wvp-entertainment-link {
    margin-top: auto;
    padding-top: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    color: #fffaf7;
    text-decoration: none;
    border-top: 1px solid rgba(255, 250, 247, 0.15);
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.4px;
}

.wvp-entertainment-link i {
    color: #c39575;
    transition: transform 0.3s ease;
}

.wvp-entertainment-link:hover i {
    transform: translateX(5px);
}


/* =========================================================
   FOOTER STATEMENT
========================================================= */

.wvp-entertainment-footer {
    display: grid;
    grid-template-columns: 0.65fr 1.5fr 0.75fr;
    gap: 35px;
    align-items: center;
    padding-top: 45px;
}

.wvp-entertainment-footer-number {
    display: flex;
    align-items: center;
    gap: 13px;
}

.wvp-entertainment-footer-number span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 24px;
}

.wvp-entertainment-footer-number div {
    width: 40px;
    height: 1px;
    background: #c39575;
}

.wvp-entertainment-footer p {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.45;
    font-weight: 500;
}

.wvp-entertainment-footer p em {
    color: #b8896b;
    font-style: italic;
}

.wvp-entertainment-footer-note {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    text-align: right;
    font-weight: 600;
}


/* =========================================================
   ENTRANCE ANIMATIONS
========================================================= */

.wvp-entertainment-intro {
    animation: wvpEntertainmentIntro 0.8s ease both;
}

.wvp-entertainment-stage {
    animation: wvpEntertainmentStage 0.9s 0.12s ease both;
}

.wvp-entertainment-item {
    animation: wvpEntertainmentItem 0.65s ease both;
}

.wvp-entertainment-item:nth-child(1) {
    animation-delay: 0.15s;
}

.wvp-entertainment-item:nth-child(2) {
    animation-delay: 0.25s;
}

.wvp-entertainment-item:nth-child(3) {
    animation-delay: 0.35s;
}

.wvp-entertainment-item:nth-child(4) {
    animation-delay: 0.45s;
}

.wvp-entertainment-footer {
    animation: wvpEntertainmentFooter 0.8s 0.3s ease both;
}

@keyframes wvpEntertainmentIntro {
    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes wvpEntertainmentStage {
    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes wvpEntertainmentItem {
    from {
        opacity: 0;
        transform: translateX(25px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes wvpEntertainmentFooter {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wvp-entertainment {
        padding: 95px 0 90px;
    }

    .wvp-entertainment-intro {
        grid-template-columns: 1fr 1.3fr;
        gap: 30px;
    }

    .wvp-entertainment-intro>p {
        grid-column: 2;
    }

    .wvp-entertainment-stage {
        grid-template-columns: 1fr;
    }

    .wvp-entertainment-visual,
    .wvp-entertainment-visual img {
        min-height: 560px;
        height: 560px;
    }

    .wvp-entertainment-panel {
        min-height: auto;
    }

    .wvp-entertainment-footer {
        grid-template-columns: 0.5fr 1.5fr;
    }

    .wvp-entertainment-footer-note {
        grid-column: 2;
        text-align: left;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wvp-entertainment-container {
        width: min(100% - 30px, 600px);
    }

    .wvp-entertainment {
        padding: 75px 0 70px;
    }

    .wvp-entertainment-intro {
        display: block;
        margin-bottom: 45px;
    }

    .wvp-entertainment-label {
        margin-bottom: 28px;
    }

    .wvp-entertainment-heading h2 {
        font-size: 43px;
        letter-spacing: -1px;
    }

    .wvp-entertainment-intro>p {
        margin-top: 25px;
        max-width: none;
    }

    .wvp-entertainment-visual,
    .wvp-entertainment-visual img {
        min-height: 440px;
        height: 440px;
    }

    .wvp-entertainment-visual-center {
        flex-direction: column;
        gap: 12px;
        text-align: center;
    }

    .wvp-entertainment-panel {
        padding: 40px 25px;
    }

    .wvp-entertainment-footer {
        display: block;
        padding-top: 35px;
    }

    .wvp-entertainment-footer p {
        margin: 22px 0;
        font-size: 19px;
    }

    .wvp-entertainment-footer-note {
        display: block;
        text-align: left;
    }
}


@media (max-width: 480px) {

    .wvp-entertainment-container {
        width: calc(100% - 24px);
    }

    .wvp-entertainment-heading h2 {
        font-size: 36px;
    }

    .wvp-entertainment-visual,
    .wvp-entertainment-visual img {
        min-height: 390px;
        height: 390px;
    }

    .wvp-entertainment-visual-top,
    .wvp-entertainment-visual-bottom {
        left: 18px;
        right: 18px;
    }

    .wvp-entertainment-panel {
        padding: 35px 20px;
    }

    .wvp-entertainment-item {
        grid-template-columns: 30px 1fr;
        gap: 8px;
    }

    .wvp-entertainment-item h3 {
        font-size: 17px;
    }

    .wvp-entertainment-footer p {
        font-size: 17px;
    }
}

/* =====================================================
   ENTERTAINMENT VIDEO
===================================================== */

.wvp-entertainment-visual {
    position: relative;
    overflow: hidden;
}

.wvp-entertainment-video {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    opacity: 0;
    visibility: hidden;

    z-index: 3;
}

.wvp-entertainment-poster {
    position: absolute;
    inset: 0;
}


/* PLAY BUTTON */

.wvp-entertainment-play {
    position: absolute;
    top: 50%;
    left: 50%;

    width: 78px;
    height: 78px;

    display: flex;
    align-items: center;
    justify-content: center;

    transform: translate(-50%, -50%);

    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;

    background: rgba(48, 36, 31, 0.35);

    color: #ffffff;

    cursor: pointer;

    z-index: 5;

    transition:
        transform 0.35s ease,
        background 0.35s ease,
        opacity 0.35s ease;
}

.wvp-entertainment-play i {
    margin-left: 4px;
    font-size: 18px;
}

.wvp-entertainment-play:hover {
    transform: translate(-50%, -50%) scale(1.08);
    background: #b8896b;
}


/* WHEN VIDEO IS PLAYING */

.wvp-entertainment-visual.video-active .wvp-entertainment-video {
    opacity: 1;
    visibility: visible;
}

.wvp-entertainment-visual.video-active .wvp-entertainment-play {
    opacity: 0;
    pointer-events: none;
}

.wvp-entertainment-visual.video-active #wvpEntertainmentPoster {
    opacity: 0;
    visibility: hidden;
}


/* VIDEO CONTROLS */

.wvp-entertainment-video::-webkit-media-controls {
    z-index: 10;
}


/* MOBILE */

@media (max-width: 768px) {

    .wvp-entertainment-play {
        width: 64px;
        height: 64px;
    }

    .wvp-entertainment-play i {
        font-size: 15px;
    }

}


/* =========================================================
   VENUE DIRECTORY – ALTERNATE DESIGN
========================================================= */

.wvp-venue-directory {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 125px 0 115px;
    background: #fffaf7;
    overflow: hidden;
}

.wvp-venue-directory-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wvp-venue-directory-head {
    display: grid;
    grid-template-columns: 0.45fr 1.55fr;
    gap: 60px;
    align-items: end;
    padding-bottom: 50px;
    border-bottom: 1px solid rgba(48, 36, 31, 0.15);
}

.wvp-venue-directory-number {
    display: flex;
    align-items: center;
    gap: 15px;
}

.wvp-venue-directory-number span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 46px;
    line-height: 1;
}

.wvp-venue-directory-number small {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.6px;
    font-weight: 600;
}

.wvp-venue-directory-title p {
    margin: 0 0 12px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    letter-spacing: 1.8px;
    font-weight: 600;
}

.wvp-venue-directory-title h2 {
    max-width: 850px;
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(45px, 6vw, 78px);
    line-height: 0.98;
    letter-spacing: -2.5px;
    font-weight: 500;
}

.wvp-venue-directory-title h2 em {
    color: #b8896b;
    font-style: italic;
}


/* =========================================================
   INTRO STRIP
========================================================= */

.wvp-venue-directory-intro {
    display: grid;
    grid-template-columns: 0.65fr 1.2fr 0.65fr;
    gap: 45px;
    align-items: center;
    padding: 32px 0 45px;
}

.wvp-venue-directory-intro>span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wvp-venue-directory-intro p {
    margin: 0;
    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.85;
}

.wvp-venue-directory-intro a {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #30241f;
    text-decoration: none;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    letter-spacing: 1.2px;
    font-weight: 600;
}

.wvp-venue-directory-intro a i {
    color: #b8896b;
    transition: transform 0.3s ease;
}

.wvp-venue-directory-intro a:hover i {
    transform: translate(4px, -4px);
}


/* =========================================================
   DIRECTORY LIST
========================================================= */

.wvp-venue-directory-list {
    border-top: 1px solid rgba(48, 36, 31, 0.15);
}

.wvp-venue-directory-item {
    display: grid;
    grid-template-columns: 150px 105px 1fr 50px;
    gap: 30px;
    align-items: center;
    min-height: 175px;
    padding: 22px 0;
    border-bottom: 1px solid rgba(48, 36, 31, 0.15);
    transition:
        padding 0.35s ease,
        background 0.35s ease;
}

.wvp-venue-directory-item:hover {
    padding-left: 20px;
    padding-right: 20px;
    background: #f8f1ed;
}


/* =========================================================
   IMAGE
========================================================= */

.wvp-venue-directory-image {
    width: 150px;
    height: 125px;
    overflow: hidden;
}

.wvp-venue-directory-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.wvp-venue-directory-item:hover .wvp-venue-directory-image img {
    transform: scale(1.07);
}


/* =========================================================
   META
========================================================= */

.wvp-venue-directory-meta {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.wvp-venue-directory-meta span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 24px;
    font-weight: 500;
}

.wvp-venue-directory-meta small {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.4px;
    font-weight: 600;
}


/* =========================================================
   CONTENT
========================================================= */

.wvp-venue-directory-content h3 {
    margin: 0 0 8px;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 25px;
    font-weight: 500;
}

.wvp-venue-directory-content p {
    max-width: 520px;
    margin: 0;
    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
}


/* =========================================================
   ARROW
========================================================= */

.wvp-venue-directory-arrow {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(184, 137, 107, 0.4);
    border-radius: 50%;
    color: #b8896b;
    font-size: 11px;
    transition: all 0.3s ease;
}

.wvp-venue-directory-item:hover .wvp-venue-directory-arrow {
    background: #b8896b;
    border-color: #b8896b;
    color: #fffaf7;
    transform: translateX(5px);
}


/* =========================================================
   BOTTOM
========================================================= */

.wvp-venue-directory-bottom {
    display: grid;
    grid-template-columns: 0.7fr 1.3fr;
    gap: 50px;
    align-items: center;
    padding-top: 48px;
}

.wvp-venue-directory-bottom>div {
    display: flex;
    align-items: center;
    gap: 15px;
}

.wvp-venue-directory-bottom>div span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.6px;
    font-weight: 600;
}

.wvp-venue-directory-bottom>div div {
    width: 40px;
    height: 1px;
    background: #c39575;
}

.wvp-venue-directory-bottom p {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.4;
    font-weight: 500;
}

.wvp-venue-directory-bottom p em {
    color: #b8896b;
    font-style: italic;
}


/* =========================================================
   ANIMATIONS
========================================================= */

.wvp-venue-directory-head {
    animation: venueDirectoryHead 0.8s ease both;
}

.wvp-venue-directory-intro {
    animation: venueDirectoryIntro 0.8s 0.12s ease both;
}

.wvp-venue-directory-item {
    animation: venueDirectoryItem 0.7s ease both;
}

.wvp-venue-directory-item:nth-child(1) {
    animation-delay: 0.12s;
}

.wvp-venue-directory-item:nth-child(2) {
    animation-delay: 0.22s;
}

.wvp-venue-directory-item:nth-child(3) {
    animation-delay: 0.32s;
}

.wvp-venue-directory-item:nth-child(4) {
    animation-delay: 0.42s;
}

.wvp-venue-directory-bottom {
    animation: venueDirectoryBottom 0.8s 0.35s ease both;
}

@keyframes venueDirectoryHead {
    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes venueDirectoryIntro {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes venueDirectoryItem {
    from {
        opacity: 0;
        transform: translateX(35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes venueDirectoryBottom {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wvp-venue-directory {
        padding: 95px 0 90px;
    }

    .wvp-venue-directory-head {
        grid-template-columns: 1fr 2fr;
        gap: 35px;
    }

    .wvp-venue-directory-intro {
        grid-template-columns: 0.6fr 1.4fr;
    }

    .wvp-venue-directory-intro a {
        grid-column: 2;
        justify-self: start;
    }

    .wvp-venue-directory-item {
        grid-template-columns: 130px 80px 1fr 45px;
        gap: 22px;
    }

    .wvp-venue-directory-image {
        width: 130px;
        height: 110px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wvp-venue-directory {
        padding: 75px 0 70px;
    }

    .wvp-venue-directory-container {
        width: min(100% - 30px, 600px);
    }

    .wvp-venue-directory-head {
        display: block;
        padding-bottom: 35px;
    }

    .wvp-venue-directory-number {
        margin-bottom: 30px;
    }

    .wvp-venue-directory-title h2 {
        font-size: 43px;
        letter-spacing: -1px;
    }

    .wvp-venue-directory-intro {
        display: block;
        padding: 28px 0 35px;
    }

    .wvp-venue-directory-intro p {
        margin: 18px 0 22px;
    }

    .wvp-venue-directory-intro a {
        justify-self: start;
    }

    .wvp-venue-directory-item {
        grid-template-columns: 100px 1fr 35px;
        gap: 18px;
        min-height: auto;
        padding: 20px 0;
    }

    .wvp-venue-directory-image {
        width: 100px;
        height: 95px;
    }

    .wvp-venue-directory-meta {
        display: none;
    }

    .wvp-venue-directory-content h3 {
        font-size: 20px;
    }

    .wvp-venue-directory-content p {
        font-size: 12px;
    }

    .wvp-venue-directory-arrow {
        width: 34px;
        height: 34px;
    }

    .wvp-venue-directory-item:hover {
        padding-left: 8px;
        padding-right: 8px;
    }

    .wvp-venue-directory-bottom {
        display: block;
        padding-top: 35px;
    }

    .wvp-venue-directory-bottom p {
        margin-top: 20px;
        font-size: 19px;
    }
}


@media (max-width: 480px) {

    .wvp-venue-directory-container {
        width: calc(100% - 24px);
    }

    .wvp-venue-directory-title h2 {
        font-size: 36px;
    }

    .wvp-venue-directory-item {
        grid-template-columns: 82px 1fr 30px;
        gap: 12px;
    }

    .wvp-venue-directory-image {
        width: 82px;
        height: 82px;
    }

    .wvp-venue-directory-content h3 {
        font-size: 18px;
    }

    .wvp-venue-directory-content p {
        font-size: 11px;
        line-height: 1.6;
    }

    .wvp-venue-directory-arrow {
        width: 30px;
        height: 30px;
        font-size: 9px;
    }
}

/* =========================================================
   SECTION 8 – HOW WE SELECT OUR PARTNERS
========================================================= */

.wvp-selection {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 125px 0 115px;
    background: #f3eee9;
    overflow: hidden;
}

.wvp-selection-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wvp-selection-header {
    display: grid;
    grid-template-columns: 0.65fr 1.35fr;
    gap: 65px;
    align-items: end;
    padding-bottom: 45px;
    border-bottom: 1px solid rgba(48, 36, 31, 0.15);
}

.wvp-selection-kicker {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wvp-selection-kicker span {
    color: #b8896b;
    font-size: 24px;
}

.wvp-selection-kicker div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wvp-selection-heading>span {
    display: block;
    margin-bottom: 10px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 16px;
}

.wvp-selection-heading h2 {
    max-width: 820px;
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(44px, 5.7vw, 72px);
    line-height: 0.98;
    letter-spacing: -2px;
    font-weight: 500;
}

.wvp-selection-heading h2 em {
    color: #b8896b;
    font-style: italic;
}


/* =========================================================
   INTRO
========================================================= */

.wvp-selection-intro {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    padding: 35px 0 65px;
}

.wvp-selection-intro p {
    max-width: 680px;
    margin: 0;
    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
}

.wvp-selection-intro>span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.6px;
    font-weight: 600;
}


/* =========================================================
   PROCESS
========================================================= */

.wvp-selection-process {
    position: relative;
}

.wvp-selection-line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 88px;
    width: 1px;
    background: rgba(48, 36, 31, 0.18);
}


/* =========================================================
   PROCESS STEP
========================================================= */

.wvp-selection-step {
    position: relative;
    display: grid;
    grid-template-columns: 177px 1fr 150px;
    gap: 45px;
    min-height: 235px;
    padding: 0 0 55px;
}

.wvp-selection-step:not(:first-child) {
    padding-top: 55px;
}

.wvp-selection-step-number {
    position: relative;
    z-index: 2;
    width: 177px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.wvp-selection-step-number span {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #b8896b;
    border-radius: 50%;
    background: #f3eee9;
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    font-weight: 600;
}

.wvp-selection-step-content {
    max-width: 650px;
}

.wvp-selection-step-label {
    display: block;
    margin-bottom: 13px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wvp-selection-step-content h3 {
    margin: 0 0 15px;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(28px, 3vw, 39px);
    line-height: 1.08;
    font-weight: 500;
}

.wvp-selection-step-content h3 em {
    color: #b8896b;
    font-style: italic;
}

.wvp-selection-step-content p {
    max-width: 570px;
    margin: 0;
    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.85;
}

.wvp-selection-step-side {
    align-self: center;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}


/* =========================================================
   BOTTOM
========================================================= */

.wvp-selection-bottom {
    display: grid;
    grid-template-columns: 0.4fr 1.5fr 0.7fr;
    gap: 35px;
    align-items: center;
    margin-top: 15px;
    padding-top: 45px;
    border-top: 1px solid rgba(48, 36, 31, 0.15);
}

.wvp-selection-bottom-mark {
    display: flex;
    align-items: center;
    gap: 6px;
}

.wvp-selection-bottom-mark span {
    width: 7px;
    height: 7px;
    display: block;
    border-radius: 50%;
    background: #b8896b;
}

.wvp-selection-bottom-mark span:nth-child(2) {
    width: 28px;
    border-radius: 0;
}

.wvp-selection-bottom p {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 22px;
    line-height: 1.4;
    font-weight: 500;
}

.wvp-selection-bottom p em {
    color: #b8896b;
    font-style: italic;
}

.wvp-selection-bottom-label {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    text-align: right;
    font-weight: 600;
}


/* =========================================================
   ANIMATIONS
========================================================= */

.wvp-selection-header {
    animation: wvpSelectionHeader 0.8s ease both;
}

.wvp-selection-intro {
    animation: wvpSelectionIntro 0.8s 0.12s ease both;
}

.wvp-selection-step {
    animation: wvpSelectionStep 0.7s ease both;
}

.wvp-selection-step:nth-child(2) {
    animation-delay: 0.15s;
}

.wvp-selection-step:nth-child(3) {
    animation-delay: 0.28s;
}

.wvp-selection-step:nth-child(4) {
    animation-delay: 0.41s;
}

.wvp-selection-step:nth-child(5) {
    animation-delay: 0.54s;
}

.wvp-selection-bottom {
    animation: wvpSelectionBottom 0.8s 0.3s ease both;
}

@keyframes wvpSelectionHeader {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wvpSelectionIntro {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wvpSelectionStep {

    from {
        opacity: 0;
        transform: translateX(35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes wvpSelectionBottom {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wvp-selection {
        padding: 95px 0 90px;
    }

    .wvp-selection-header {
        grid-template-columns: 0.55fr 1.45fr;
        gap: 35px;
    }

    .wvp-selection-step {
        grid-template-columns: 130px 1fr 80px;
        gap: 30px;
    }

    .wvp-selection-step-number {
        width: 130px;
    }

    .wvp-selection-line {
        left: 65px;
    }

    .wvp-selection-bottom {
        grid-template-columns: 0.3fr 1.7fr;
    }

    .wvp-selection-bottom-label {
        grid-column: 2;
        text-align: left;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wvp-selection {
        padding: 75px 0 70px;
    }

    .wvp-selection-container {
        width: min(100% - 30px, 600px);
    }

    .wvp-selection-header {
        display: block;
        padding-bottom: 35px;
    }

    .wvp-selection-kicker {
        margin-bottom: 30px;
    }

    .wvp-selection-heading h2 {
        font-size: 43px;
        letter-spacing: -1px;
    }

    .wvp-selection-intro {
        display: block;
        padding: 28px 0 50px;
    }

    .wvp-selection-intro>span {
        display: block;
        margin-top: 20px;
    }

    .wvp-selection-line {
        left: 29px;
    }

    .wvp-selection-step {
        grid-template-columns: 60px 1fr;
        gap: 20px;
        min-height: auto;
        padding-bottom: 45px;
    }

    .wvp-selection-step:not(:first-child) {
        padding-top: 45px;
    }

    .wvp-selection-step-number {
        width: 60px;
    }

    .wvp-selection-step-number span {
        width: 58px;
        height: 58px;
    }

    .wvp-selection-step-side {
        display: none;
    }

    .wvp-selection-step-content h3 {
        font-size: 27px;
    }

    .wvp-selection-step-content p {
        font-size: 12px;
    }

    .wvp-selection-bottom {
        display: block;
        margin-top: 5px;
        padding-top: 35px;
    }

    .wvp-selection-bottom p {
        margin: 20px 0;
        font-size: 19px;
    }

    .wvp-selection-bottom-label {
        display: block;
        text-align: left;
    }

}


@media (max-width: 480px) {

    .wvp-selection-container {
        width: calc(100% - 24px);
    }

    .wvp-selection-heading h2 {
        font-size: 36px;
    }

    .wvp-selection-step {
        grid-template-columns: 48px 1fr;
        gap: 15px;
    }

    .wvp-selection-step-number {
        width: 48px;
    }

    .wvp-selection-step-number span {
        width: 48px;
        height: 48px;
        font-size: 11px;
    }

    .wvp-selection-line {
        left: 24px;
    }

    .wvp-selection-step-content h3 {
        font-size: 23px;
    }

}

/* =========================================================
   SECTION 9 – PARTNER STANDARDS
========================================================= */

.wvp-standards {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 125px 0 115px;
    background: #fffaf7;
    overflow: hidden;
}

.wvp-standards-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   TOP
========================================================= */

.wvp-standards-top {
    display: grid;
    grid-template-columns: 0.55fr 1.45fr;
    gap: 60px;
    align-items: end;
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(48, 36, 31, 0.15);
}

.wvp-standards-index {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wvp-standards-index span {
    color: #b8896b;
    font-size: 25px;
}

.wvp-standards-index div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wvp-standards-intro>span {
    display: block;
    margin-bottom: 12px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wvp-standards-intro h2 {
    max-width: 850px;
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(45px, 5.8vw, 74px);
    line-height: 0.98;
    letter-spacing: -2px;
    font-weight: 500;
}

.wvp-standards-intro h2 em {
    color: #b8896b;
    font-style: italic;
}


/* =========================================================
   MANIFESTO
========================================================= */

.wvp-standards-manifesto {
    display: grid;
    grid-template-columns: 0.35fr 1.4fr 0.25fr;
    gap: 35px;
    align-items: center;
    margin: 55px 0 70px;
    padding: 45px 0;
    border-top: 1px solid rgba(48, 36, 31, 0.12);
    border-bottom: 1px solid rgba(48, 36, 31, 0.12);
}

.wvp-standards-manifesto-number {
    color: #c39575;
    font-family: "Playfair Display", serif;
    font-size: 72px;
    line-height: 1;
    font-weight: 400;
}

.wvp-standards-manifesto-content>span {
    display: block;
    margin-bottom: 12px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.8px;
    font-weight: 600;
}

.wvp-standards-manifesto-content p {
    max-width: 720px;
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(22px, 2.5vw, 31px);
    line-height: 1.35;
    font-weight: 500;
}

.wvp-standards-manifesto-mark {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.wvp-standards-manifesto-mark i {
    width: 62px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c39575;
    border-radius: 50%;
    color: #b8896b;
    font-size: 17px;
}


/* =========================================================
   STANDARDS GRID
========================================================= */

.wvp-standards-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px;
    background: rgba(48, 36, 31, 0.16);
    border: 1px solid rgba(48, 36, 31, 0.16);
}

.wvp-standards-item {
    min-height: 355px;
    padding: 30px 25px 35px;
    background: #fffaf7;
    transition:
        background 0.35s ease,
        transform 0.35s ease;
}

.wvp-standards-item:hover {
    background: #f8f1ed;
    transform: translateY(-7px);
}

.wvp-standards-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.wvp-standards-item-top span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
}

.wvp-standards-item-top i {
    color: #92786a;
    font-size: 11px;
    transition: transform 0.3s ease;
}

.wvp-standards-item:hover .wvp-standards-item-top i {
    transform: translate(4px, -4px);
}

.wvp-standards-item-icon {
    width: 48px;
    height: 48px;
    margin: 55px 0 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(184, 137, 107, 0.45);
    border-radius: 50%;
    color: #b8896b;
}

.wvp-standards-item-icon i {
    font-size: 17px;
}

.wvp-standards-item h3 {
    margin: 0 0 13px;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 23px;
    line-height: 1.15;
    font-weight: 600;
}

.wvp-standards-item p {
    margin: 0;
    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.8;
}


/* =========================================================
   BOTTOM
========================================================= */

.wvp-standards-bottom {
    display: grid;
    grid-template-columns: 0.45fr 1.35fr 0.7fr;
    gap: 40px;
    align-items: center;
    margin-top: 60px;
    padding-top: 38px;
    border-top: 1px solid rgba(48, 36, 31, 0.15);
}

.wvp-standards-bottom-line {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wvp-standards-bottom-line span {
    width: 8px;
    height: 8px;
    display: block;
    border-radius: 50%;
    background: #b8896b;
}

.wvp-standards-bottom-line div {
    width: 65px;
    height: 1px;
    background: #c39575;
}

.wvp-standards-bottom-text>span {
    display: block;
    margin-bottom: 8px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.6px;
    font-weight: 600;
}

.wvp-standards-bottom-text p {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 21px;
    line-height: 1.45;
    font-weight: 500;
}

.wvp-standards-bottom-text p em {
    color: #b8896b;
    font-style: italic;
}

.wvp-standards-bottom-note {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    line-height: 1.6;
    letter-spacing: 1.6px;
    text-align: right;
    font-weight: 600;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wvp-standards-top {
    animation: wvpStandardsTop 0.8s ease both;
}

.wvp-standards-manifesto {
    animation: wvpStandardsManifesto 0.8s 0.12s ease both;
}

.wvp-standards-item {
    animation: wvpStandardsItem 0.7s ease both;
}

.wvp-standards-item:nth-child(1) {
    animation-delay: 0.15s;
}

.wvp-standards-item:nth-child(2) {
    animation-delay: 0.23s;
}

.wvp-standards-item:nth-child(3) {
    animation-delay: 0.31s;
}

.wvp-standards-item:nth-child(4) {
    animation-delay: 0.39s;
}

.wvp-standards-item:nth-child(5) {
    animation-delay: 0.47s;
}

.wvp-standards-bottom {
    animation: wvpStandardsBottom 0.8s 0.25s ease both;
}

@keyframes wvpStandardsTop {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wvpStandardsManifesto {

    from {
        opacity: 0;
        transform: scale(0.97);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }

}

@keyframes wvpStandardsItem {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wvpStandardsBottom {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

    .wvp-standards-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .wvp-standards-item {
        min-height: 320px;
    }

    .wvp-standards-item:nth-child(4),
    .wvp-standards-item:nth-child(5) {
        grid-column: span 1;
    }

}


@media (max-width: 992px) {

    .wvp-standards {
        padding: 95px 0 90px;
    }

    .wvp-standards-top {
        grid-template-columns: 0.55fr 1.45fr;
        gap: 35px;
    }

    .wvp-standards-manifesto {
        grid-template-columns: 0.3fr 1.4fr 0.3fr;
    }

    .wvp-standards-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .wvp-standards-item {
        min-height: 330px;
    }

    .wvp-standards-bottom {
        grid-template-columns: 0.3fr 1.7fr;
    }

    .wvp-standards-bottom-note {
        grid-column: 2;
        text-align: left;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wvp-standards {
        padding: 75px 0 70px;
    }

    .wvp-standards-container {
        width: min(100% - 30px, 600px);
    }

    .wvp-standards-top {
        display: block;
    }

    .wvp-standards-index {
        margin-bottom: 30px;
    }

    .wvp-standards-intro h2 {
        font-size: 43px;
        letter-spacing: -1px;
    }

    .wvp-standards-manifesto {
        grid-template-columns: 1fr auto;
        gap: 20px;
        margin: 40px 0 50px;
    }

    .wvp-standards-manifesto-number {
        display: none;
    }

    .wvp-standards-manifesto-content p {
        font-size: 21px;
    }

    .wvp-standards-grid {
        grid-template-columns: 1fr;
    }

    .wvp-standards-item {
        min-height: auto;
        padding: 30px 25px 35px;
    }

    .wvp-standards-item-icon {
        margin: 38px 0 22px;
    }

    .wvp-standards-bottom {
        display: block;
        margin-top: 45px;
    }

    .wvp-standards-bottom-text {
        margin: 22px 0;
    }

    .wvp-standards-bottom-note {
        text-align: left;
    }

}


@media (max-width: 480px) {

    .wvp-standards-container {
        width: calc(100% - 24px);
    }

    .wvp-standards-intro h2 {
        font-size: 36px;
    }

    .wvp-standards-manifesto-content p {
        font-size: 19px;
    }

    .wvp-standards-item h3 {
        font-size: 21px;
    }

}

/* =========================================================
   SECTION 10 – VENDOR COLLABORATION STUDIO
========================================================= */

.wvp-collab-studio {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 125px 0 115px;
    background: #30241f;
    color: #fffaf7;
    overflow: hidden;
}

.wvp-collab-studio-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   TOP BAR
========================================================= */

.wvp-collab-studio-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(255, 250, 247, 0.16);
}

.wvp-collab-studio-label {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #c0ada2;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.8px;
    font-weight: 600;
}

.wvp-collab-studio-label span {
    color: #c39575;
    font-size: 25px;
}

.wvp-collab-studio-label div {
    width: 40px;
    height: 1px;
    background: #c39575;
}

.wvp-collab-studio-status {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}


/* =========================================================
   MAIN
========================================================= */

.wvp-collab-studio-main {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 85px;
    align-items: center;
    padding: 85px 0;
}


/* =========================================================
   COPY
========================================================= */

.wvp-collab-studio-copy {
    max-width: 560px;
}

.wvp-collab-studio-kicker {
    display: block;
    margin-bottom: 18px;
    color: #c39575;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 2px;
    font-weight: 600;
}

.wvp-collab-studio-copy h2 {
    margin: 0;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: clamp(45px, 5.5vw, 70px);
    line-height: 1;
    letter-spacing: -2px;
    font-weight: 500;
}

.wvp-collab-studio-copy h2 em {
    display: block;
    color: #c39575;
    font-style: italic;
}

.wvp-collab-studio-copy p {
    max-width: 500px;
    margin: 30px 0 35px;
    color: #c0ada2;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
}


/* =========================================================
   BUTTON
========================================================= */

.wvp-collab-studio-button {
    width: fit-content;
    min-height: 48px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    gap: 18px;
    text-decoration: none;
    background: #b8896b;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.4px;
    font-weight: 600;
    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.wvp-collab-studio-button i {
    font-size: 10px;
}

.wvp-collab-studio-button:hover {
    background: #956b52;
    transform: translateY(-3px);
}


/* =========================================================
   COLLABORATION BOARD
========================================================= */

.wvp-collab-studio-board {
    position: relative;
    padding: 28px 30px 22px;
    background: #201a17;
    border: 1px solid rgba(255, 250, 247, 0.13);
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.18);
}

.wvp-collab-studio-board-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 250, 247, 0.11);
}

.wvp-collab-studio-board-head span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.6px;
    font-weight: 600;
}


/* =========================================================
   BOARD ITEMS
========================================================= */

.wvp-collab-studio-board-item {
    min-height: 105px;
    display: grid;
    grid-template-columns: 50px 1fr 35px;
    gap: 20px;
    align-items: center;
    border-bottom: 1px solid rgba(255, 250, 247, 0.1);
    transition: background 0.3s ease;
}

.wvp-collab-studio-board-item:hover {
    background: rgba(255, 250, 247, 0.035);
}

.wvp-collab-studio-board-number {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 600;
}

.wvp-collab-studio-board-content span {
    display: block;
    margin-bottom: 7px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.5px;
    font-weight: 600;
}

.wvp-collab-studio-board-content strong {
    display: block;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 500;
}

.wvp-collab-studio-board-dot {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(195, 149, 117, 0.55);
    border-radius: 50%;
    color: #c39575;
}

.wvp-collab-studio-board-dot i {
    font-size: 9px;
}


/* =========================================================
   BOARD FOOT
========================================================= */

.wvp-collab-studio-board-foot {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 15px;
    align-items: center;
    padding-top: 22px;
}

.wvp-collab-studio-board-foot span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.5px;
    font-weight: 600;
}

.wvp-collab-studio-board-line {
    width: 100%;
    height: 1px;
    background: #b8896b;
}


/* =========================================================
   BOTTOM
========================================================= */

.wvp-collab-studio-bottom {
    display: grid;
    grid-template-columns: 0.45fr 1.45fr 0.65fr;
    gap: 40px;
    align-items: center;
    padding-top: 38px;
    border-top: 1px solid rgba(255, 250, 247, 0.16);
}

.wvp-collab-studio-bottom-mark {
    display: flex;
    align-items: center;
    gap: 7px;
}

.wvp-collab-studio-bottom-mark span {
    width: 7px;
    height: 7px;
    display: block;
    border-radius: 50%;
    background: #b8896b;
}

.wvp-collab-studio-bottom-mark span:nth-child(2) {
    opacity: 0.6;
}

.wvp-collab-studio-bottom-mark span:nth-child(3) {
    opacity: 0.3;
}

.wvp-collab-studio-bottom p {
    margin: 0;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 21px;
    line-height: 1.45;
    font-weight: 500;
}

.wvp-collab-studio-bottom p em {
    color: #c39575;
    font-style: italic;
}

.wvp-collab-studio-bottom-label {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    line-height: 1.7;
    letter-spacing: 1.6px;
    text-align: right;
    font-weight: 600;
}


/* =========================================================
   ENTRANCE ANIMATIONS
========================================================= */

.wvp-collab-studio-top {
    animation: wvpCollabTop 0.8s ease both;
}

.wvp-collab-studio-copy {
    animation: wvpCollabCopy 0.85s 0.12s ease both;
}

.wvp-collab-studio-board {
    animation: wvpCollabBoard 0.9s 0.2s ease both;
}

.wvp-collab-studio-board-item {
    animation: wvpCollabItem 0.65s ease both;
}

.wvp-collab-studio-board-item:nth-child(2) {
    animation-delay: 0.25s;
}

.wvp-collab-studio-board-item:nth-child(3) {
    animation-delay: 0.33s;
}

.wvp-collab-studio-board-item:nth-child(4) {
    animation-delay: 0.41s;
}

.wvp-collab-studio-board-item:nth-child(5) {
    animation-delay: 0.49s;
}

.wvp-collab-studio-bottom {
    animation: wvpCollabBottom 0.8s 0.3s ease both;
}

@keyframes wvpCollabTop {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wvpCollabCopy {

    from {
        opacity: 0;
        transform: translateX(-35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes wvpCollabBoard {

    from {
        opacity: 0;
        transform: translateX(35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes wvpCollabItem {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

@keyframes wvpCollabBottom {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wvp-collab-studio {
        padding: 95px 0 90px;
    }

    .wvp-collab-studio-main {
        grid-template-columns: 1fr;
        gap: 55px;
        padding: 70px 0;
    }

    .wvp-collab-studio-copy {
        max-width: 700px;
    }

    .wvp-collab-studio-copy h2 {
        font-size: 58px;
    }

    .wvp-collab-studio-bottom {
        grid-template-columns: 0.3fr 1.7fr;
    }

    .wvp-collab-studio-bottom-label {
        grid-column: 2;
        text-align: left;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wvp-collab-studio {
        padding: 75px 0 70px;
    }

    .wvp-collab-studio-container {
        width: min(100% - 30px, 600px);
    }

    .wvp-collab-studio-top {
        align-items: flex-start;
        gap: 20px;
    }

    .wvp-collab-studio-status {
        text-align: right;
    }

    .wvp-collab-studio-main {
        padding: 60px 0;
    }

    .wvp-collab-studio-copy h2 {
        font-size: 45px;
        letter-spacing: -1px;
    }

    .wvp-collab-studio-copy p {
        margin-top: 25px;
    }

    .wvp-collab-studio-board {
        padding: 22px 18px 18px;
    }

    .wvp-collab-studio-board-item {
        grid-template-columns: 35px 1fr 30px;
        gap: 12px;
        min-height: 95px;
    }

    .wvp-collab-studio-board-content strong {
        font-size: 17px;
    }

    .wvp-collab-studio-bottom {
        display: block;
    }

    .wvp-collab-studio-bottom-text {
        margin: 22px 0;
    }

    .wvp-collab-studio-bottom-label {
        display: block;
        text-align: left;
    }

}


@media (max-width: 480px) {

    .wvp-collab-studio-container {
        width: calc(100% - 24px);
    }

    .wvp-collab-studio-copy h2 {
        font-size: 38px;
    }

    .wvp-collab-studio-board-content strong {
        font-size: 15px;
    }

    .wvp-collab-studio-button {
        width: 100%;
        justify-content: space-between;
    }

}

/* =========================================================
   PACKAGES INTRO
========================================================= */

.wedding-packages-intro {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 125px 0 115px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-packages-intro-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 100px;
}


/* =========================================================
   LEFT
========================================================= */

.wedding-packages-intro-left {
    position: sticky;
    top: 120px;
    align-self: start;
}

.wedding-packages-intro-index {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 35px;

    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wedding-packages-intro-index span {
    color: #b8896b;
    font-size: 25px;
}

.wedding-packages-intro-index div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wedding-packages-intro-left h2 {
    max-width: 480px;
    margin: 0;

    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 5.8vw, 76px);
    line-height: 0.98;
    letter-spacing: -2px;
    font-weight: 500;
}

.wedding-packages-intro-left h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}


/* =========================================================
   RIGHT
========================================================= */

.wedding-packages-intro-right {
    padding-top: 8px;
}

.wedding-packages-intro-lead {
    max-width: 650px;
    margin: 0 0 55px;

    color: #4f433d;
    font-family: "Playfair Display", serif;
    font-size: 16px;
    line-height: 1.85;
    font-weight: 400;
}


/* =========================================================
   DETAILS
========================================================= */

.wedding-packages-intro-details {
    border-top: 1px solid rgba(48, 36, 31, 0.14);
}

.wedding-packages-intro-detail {
    display: grid;
    grid-template-columns: 55px 1fr;
    gap: 25px;

    padding: 30px 0;
    border-bottom: 1px solid rgba(48, 36, 31, 0.14);

    transition:
        padding-left 0.35s ease,
        background 0.35s ease;
}

.wedding-packages-intro-detail:hover {
    padding-left: 12px;
}

.wedding-packages-intro-detail>span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
}

.wedding-packages-intro-detail strong {
    display: block;
    margin-bottom: 9px;

    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 18px;
    letter-spacing: 1px;
    font-weight: 600;
}

.wedding-packages-intro-detail p {
    max-width: 520px;
    margin: 0;

    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 400;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-packages-intro-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 38px;
    padding-top: 25px;

    border-top: 1px solid rgba(48, 36, 31, 0.14);
}

.wedding-packages-intro-bottom span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wedding-packages-intro-bottom i {
    color: #b8896b;
    font-size: 13px;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-packages-intro-left {
    animation: weddingPackagesIntroLeft 0.8s ease both;
}

.wedding-packages-intro-right {
    animation: weddingPackagesIntroRight 0.8s 0.15s ease both;
}

.wedding-packages-intro-detail {
    animation: weddingPackagesIntroItem 0.65s ease both;
}

.wedding-packages-intro-detail:nth-child(1) {
    animation-delay: 0.2s;
}

.wedding-packages-intro-detail:nth-child(2) {
    animation-delay: 0.3s;
}

.wedding-packages-intro-detail:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes weddingPackagesIntroLeft {

    from {
        opacity: 0;
        transform: translateX(-35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingPackagesIntroRight {

    from {
        opacity: 0;
        transform: translateX(35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingPackagesIntroItem {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-packages-intro {
        padding: 95px 0 90px;
    }

    .wedding-packages-intro-container {
        grid-template-columns: 0.8fr 1.2fr;
        gap: 55px;
    }

    .wedding-packages-intro-left h2 {
        font-size: 52px;
    }

    .wedding-packages-intro-lead {
        font-size: 14px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-packages-intro {
        padding: 75px 0 70px;
    }

    .wedding-packages-intro-container {
        width: min(100% - 30px, 600px);
        display: block;
    }

    .wedding-packages-intro-left {
        position: relative;
        top: auto;
        margin-bottom: 50px;
    }

    .wedding-packages-intro-left h2 {
        font-size: 45px;
        letter-spacing: -1px;
    }

    .wedding-packages-intro-lead {
        margin-bottom: 40px;
        font-size: 13px;
    }

    .wedding-packages-intro-detail {
        grid-template-columns: 42px 1fr;
        gap: 15px;
        padding: 25px 0;
    }

}

@media (max-width: 480px) {

    .wedding-packages-intro-container {
        width: calc(100% - 24px);
    }

    .wedding-packages-intro-left h2 {
        font-size: 37px;
    }

}

/* =========================================================
   SECTION 3 – INTIMATE WEDDING PACKAGE
========================================================= */

.wedding-intimate-package {
    position: relative;
    width: 100%;
    display: block;
    clear: both;
    padding: 120px 0 115px;
    background: #f8f1ed;
    overflow: hidden;
}

.wedding-intimate-package-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 70px;
    align-items: stretch;
}


/* =========================================================
   VISUAL
========================================================= */

.wedding-intimate-package-visual {
    min-height: 690px;
}

.wedding-intimate-package-image {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 690px;
    overflow: hidden;
    background: #30241f;
}

.wedding-intimate-package-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.wedding-intimate-package-image:hover img {
    transform: scale(1.04);
}

.wedding-intimate-package-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom,
            rgba(48, 36, 31, 0.12),
            rgba(48, 36, 31, 0.58));
}

.wedding-intimate-package-image-top {
    position: absolute;
    top: 25px;
    left: 28px;
    right: 28px;

    display: flex;
    justify-content: space-between;
    align-items: center;

    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.8px;
    font-weight: 600;
}

.wedding-intimate-package-image-bottom {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 30px;
}

.wedding-intimate-package-image-bottom span {
    display: block;
    margin-bottom: 10px;

    color: #e4c8b5;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wedding-intimate-package-image-bottom strong {
    display: block;

    color: #fffaf7;
    font-family: "Playfair Display", serif;
    font-size: clamp(36px, 4vw, 56px);
    line-height: 0.95;
    font-weight: 500;
}

.wedding-intimate-package-image-bottom em {
    color: #c39575;
    font-style: italic;
}


/* =========================================================
   CONTENT
========================================================= */

.wedding-intimate-package-content {
    padding: 20px 0 10px;
    display: flex;
    flex-direction: column;
}

.wedding-intimate-package-label {
    display: flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 35px;

    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wedding-intimate-package-label span {
    color: #b8896b;
    font-size: 25px;
}

.wedding-intimate-package-label div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wedding-intimate-package-kicker {
    display: block;
    margin-bottom: 13px;

    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    font-weight: 600;
}

.wedding-intimate-package-content h2 {
    margin: 0;

    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 5.2vw, 68px);
    line-height: 0.98;
    letter-spacing: -2px;
    font-weight: 500;
}

.wedding-intimate-package-content h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}

.wedding-intimate-package-description {
    max-width: 520px;
    margin: 28px 0 42px;

    color: #5f524b;
    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
}


/* =========================================================
   FEATURES
========================================================= */

.wedding-intimate-package-features {
    border-top: 1px solid rgba(48, 36, 31, 0.14);
}

.wedding-intimate-package-feature {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 18px;

    padding: 20px 0;

    border-bottom: 1px solid rgba(48, 36, 31, 0.14);

    transition:
        padding-left 0.3s ease,
        background 0.3s ease;
}

.wedding-intimate-package-feature:hover {
    padding-left: 10px;
}

.wedding-intimate-package-feature>span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
}

.wedding-intimate-package-feature strong {
    display: block;
    margin-bottom: 5px;

    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 16px;
    font-weight: 600;
}

.wedding-intimate-package-feature p {
    max-width: 450px;
    margin: 0;

    color: #68706b;
    font-family: "Playfair Display", serif;
    font-size: 12px;
    line-height: 1.65;
    font-weight: 400;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-intimate-package-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;

    margin-top: auto;
    padding-top: 35px;
}

.wedding-intimate-package-bottom>div span {
    display: block;
    margin-bottom: 7px;

    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.5px;
    font-weight: 600;
}

.wedding-intimate-package-bottom>div strong {
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 18px;
    font-weight: 600;
}

.wedding-intimate-package-link {
    min-height: 45px;
    padding: 0 18px;

    display: inline-flex;
    align-items: center;
    gap: 15px;

    text-decoration: none;

    border: 1px solid #b8896b;
    color: #b06f4e;

    font-family: "Playfair Display", serif;
    font-size: 8px;
    letter-spacing: 1.4px;
    font-weight: 600;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.wedding-intimate-package-link:hover {
    background: #b8896b;
    color: #fffaf7;
    transform: translateY(-3px);
}

.wedding-intimate-package-link i {
    font-size: 9px;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-intimate-package-visual {
    animation: weddingIntimateVisual 0.9s ease both;
}

.wedding-intimate-package-content {
    animation: weddingIntimateContent 0.85s 0.15s ease both;
}

.wedding-intimate-package-feature {
    animation: weddingIntimateFeature 0.65s ease both;
}

.wedding-intimate-package-feature:nth-child(1) {
    animation-delay: 0.25s;
}

.wedding-intimate-package-feature:nth-child(2) {
    animation-delay: 0.33s;
}

.wedding-intimate-package-feature:nth-child(3) {
    animation-delay: 0.41s;
}

.wedding-intimate-package-feature:nth-child(4) {
    animation-delay: 0.49s;
}

@keyframes weddingIntimateVisual {

    from {
        opacity: 0;
        transform: translateX(-40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingIntimateContent {

    from {
        opacity: 0;
        transform: translateX(40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}

@keyframes weddingIntimateFeature {

    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-intimate-package {
        padding: 95px 0 90px;
    }

    .wedding-intimate-package-container {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }

    .wedding-intimate-package-visual,
    .wedding-intimate-package-image {
        min-height: 600px;
    }

    .wedding-intimate-package-content h2 {
        font-size: 48px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-intimate-package {
        padding: 75px 0 70px;
    }

    .wedding-intimate-package-container {
        width: min(100% - 30px, 600px);
        display: block;
    }

    .wedding-intimate-package-visual,
    .wedding-intimate-package-image {
        min-height: 520px;
    }

    .wedding-intimate-package-content {
        padding-top: 50px;
    }

    .wedding-intimate-package-content h2 {
        font-size: 45px;
    }

    .wedding-intimate-package-description {
        margin: 25px 0 35px;
    }

    .wedding-intimate-package-bottom {
        margin-top: 35px;
        align-items: stretch;
        flex-direction: column;
    }

    .wedding-intimate-package-link {
        width: 100%;
        justify-content: space-between;
    }

}

@media (max-width: 480px) {

    .wedding-intimate-package-container {
        width: calc(100% - 24px);
    }

    .wedding-intimate-package-content h2 {
        font-size: 38px;
    }

    .wedding-intimate-package-image-bottom strong {
        font-size: 38px;
    }

}

/* =========================================================
   SIGNATURE WEDDING PACKAGE
========================================================= */

.wedding-signature-package {
    width: 100%;
    padding: 125px 0 120px;
    background: #fffaf7;
    overflow: hidden;
    clear: both;
}

.wedding-signature-package-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wedding-signature-package-header {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 80px;
    align-items: start;
    margin-bottom: 70px;
}

.wedding-signature-package-number {
    display: flex;
    align-items: center;
    gap: 13px;
    padding-top: 12px;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-signature-package-number span {
    font-size: 17px;
    color: #b8896b;
}

.wedding-signature-package-number div {
    width: 38px;
    height: 1px;
    background: #c39575;
}


.wedding-signature-package-intro {
    max-width: 780px;
}

.wedding-signature-package-kicker {
    display: block;
    margin-bottom: 18px;

    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2.5px;
    color: #b8896b;
}

.wedding-signature-package-intro h2 {
    margin: 0 0 22px;

    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.05;
    font-weight: 600;
    color: #30241f;
    letter-spacing: -1.5px;
}

.wedding-signature-package-intro h2 em {
    color: #b8896b;
    font-weight: 500;
}

.wedding-signature-package-intro p {
    max-width: 650px;
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #6f625b;
}


/* =========================================================
   PACKAGE BOARD
========================================================= */

.wedding-signature-package-board {
    display: grid;
    grid-template-columns: 105px minmax(0, 1.05fr) minmax(360px, 0.95fr);
    min-height: 555px;

    background: #f3e8e1;
    border: 1px solid rgba(80, 55, 45, 0.13);
}


/* =========================================================
   LEFT MARKER
========================================================= */

.wedding-signature-package-marker {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;

    padding: 38px 18px;

    border-right: 1px solid rgba(80, 55, 45, 0.13);
}

.wedding-signature-package-marker-small {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
    writing-mode: vertical-rl;
}

.wedding-signature-package-marker strong {
    font-family: "Playfair Display", serif;
    font-size: 62px;
    line-height: 1;
    font-weight: 500;
    color: #b8896b;
}

.wedding-signature-package-marker-bottom {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
    writing-mode: vertical-rl;
}


/* =========================================================
   CENTER MAIN
========================================================= */

.wedding-signature-package-main {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 70px 65px;

    background: #30241f;
    color: #fffaf7;
}

.wedding-signature-package-main::before {
    content: "";
    position: absolute;
    top: 35px;
    right: 35px;
    width: 75px;
    height: 75px;

    border-top: 1px solid rgba(255, 250, 247, 0.2);
    border-right: 1px solid rgba(255, 250, 247, 0.2);
}

.wedding-signature-package-main-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 55px;
}

.wedding-signature-package-main-top span {
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2.5px;
    color: #c39575;
}

.wedding-signature-package-main-top i {
    font-size: 16px;
    color: #c39575;
}

.wedding-signature-package-main h3 {
    margin: 0 0 24px;

    font-family: "Playfair Display", serif;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.08;
    font-weight: 500;
    letter-spacing: -1px;
}

.wedding-signature-package-main h3 em {
    color: #c39575;
    font-weight: 400;
}

.wedding-signature-package-main>p {
    max-width: 440px;
    margin: 0 0 42px;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: rgba(255, 250, 247, 0.7);
}

.wedding-signature-package-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    width: fit-content;
    min-width: 210px;

    padding: 15px 19px;

    text-decoration: none;

    border: 1px solid rgba(195, 149, 117, 0.55);

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;

    color: #fffaf7;

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}

.wedding-signature-package-button i {
    color: #c39575;
}

.wedding-signature-package-button:hover {
    background: #b8896b;
    border-color: #b8896b;
    transform: translateY(-3px);
}

.wedding-signature-package-button:hover i {
    color: #fffaf7;
}


/* =========================================================
   RIGHT DETAILS
========================================================= */

.wedding-signature-package-details {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 50px 48px;
    background: #f8f1ed;
}

.wedding-signature-package-detail {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 20px;

    padding: 23px 0;

    border-bottom: 1px solid rgba(80, 55, 45, 0.13);

    opacity: 0;
    transform: translateX(30px);

    animation: weddingSignatureDetailReveal 0.7s ease forwards;
}

.wedding-signature-package-detail:nth-child(1) {
    animation-delay: 0.15s;
}

.wedding-signature-package-detail:nth-child(2) {
    animation-delay: 0.25s;
}

.wedding-signature-package-detail:nth-child(3) {
    animation-delay: 0.35s;
}

.wedding-signature-package-detail:nth-child(4) {
    animation-delay: 0.45s;
}

.wedding-signature-package-detail:last-child {
    border-bottom: 0;
}

.wedding-signature-package-detail>span {
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    color: #b8896b;
}

.wedding-signature-package-detail strong {
    display: block;
    margin-bottom: 7px;

    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 600;
    color: #30241f;
}

.wedding-signature-package-detail p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 400;
    color: #756861;
}


/* =========================================================
   FOOTER LINE
========================================================= */

.wedding-signature-package-footer {
    margin-top: 45px;
}

.wedding-signature-package-footer-line {
    width: 100%;
    height: 1px;
    background: rgba(80, 55, 45, 0.14);
}

.wedding-signature-package-footer-content {
    display: grid;
    grid-template-columns: 150px 1fr auto;
    align-items: center;
    gap: 25px;

    padding-top: 22px;
}

.wedding-signature-package-footer-content span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-signature-package-footer-content strong {
    font-family: "Playfair Display", serif;
    font-size: 15px;
    font-weight: 600;
    color: #30241f;
}


/* =========================================================
   ENTRANCE ANIMATIONS
========================================================= */

.wedding-signature-package-header {
    opacity: 0;
    transform: translateY(35px);
    animation: weddingSignatureHeaderReveal 0.8s ease forwards;
}

.wedding-signature-package-board {
    opacity: 0;
    transform: translateY(45px);
    animation: weddingSignatureBoardReveal 0.9s ease 0.15s forwards;
}

.wedding-signature-package-footer {
    opacity: 0;
    transform: translateY(25px);
    animation: weddingSignatureFooterReveal 0.8s ease 0.35s forwards;
}

@keyframes weddingSignatureHeaderReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes weddingSignatureBoardReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes weddingSignatureFooterReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes weddingSignatureDetailReveal {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-signature-package {
        padding: 95px 0;
    }

    .wedding-signature-package-header {
        grid-template-columns: 1fr;
        gap: 25px;
        margin-bottom: 50px;
    }

    .wedding-signature-package-board {
        grid-template-columns: 75px 1fr;
    }

    .wedding-signature-package-details {
        grid-column: 2;
        padding: 35px 40px;
    }

    .wedding-signature-package-main {
        padding: 60px 45px;
    }

    .wedding-signature-package-footer-content {
        grid-template-columns: 1fr 1fr;
    }

    .wedding-signature-package-footer-content span:last-child {
        text-align: right;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-signature-package {
        padding: 75px 0;
    }

    .wedding-signature-package-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-signature-package-intro h2 {
        font-size: 42px;
    }

    .wedding-signature-package-board {
        grid-template-columns: 1fr;
    }

    .wedding-signature-package-marker {
        min-height: 95px;
        flex-direction: row;
        justify-content: space-between;
        padding: 20px 25px;

        border-right: 0;
        border-bottom: 1px solid rgba(80, 55, 45, 0.13);
    }

    .wedding-signature-package-marker-small,
    .wedding-signature-package-marker-bottom {
        writing-mode: horizontal-tb;
    }

    .wedding-signature-package-marker strong {
        font-size: 45px;
    }

    .wedding-signature-package-main {
        padding: 55px 30px;
    }

    .wedding-signature-package-main h3 {
        font-size: 38px;
    }

    .wedding-signature-package-details {
        grid-column: auto;
        padding: 30px;
    }

    .wedding-signature-package-footer-content {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .wedding-signature-package-footer-content span:last-child {
        text-align: left;
    }
}


@media (max-width: 480px) {

    .wedding-signature-package-intro h2 {
        font-size: 36px;
    }

    .wedding-signature-package-main {
        padding: 45px 22px;
    }

    .wedding-signature-package-main h3 {
        font-size: 33px;
    }

    .wedding-signature-package-main-top {
        margin-bottom: 40px;
    }

    .wedding-signature-package-details {
        padding: 22px;
    }

    .wedding-signature-package-detail {
        grid-template-columns: 30px 1fr;
        gap: 12px;
    }

    .wedding-signature-package-button {
        width: 100%;
    }
}

/* =========================================================
   GRAND WEDDING PACKAGE
========================================================= */

.wedding-grand-package {
    width: 100%;
    padding: 125px 0 120px;
    background: #fffaf7;
    overflow: hidden;
    clear: both;
}

.wedding-grand-package-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wedding-grand-package-header {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 70px;
    align-items: start;

    margin-bottom: 55px;
}

.wedding-grand-package-index {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 10px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-grand-package-index span {
    font-size: 18px;
    color: #b8896b;
}

.wedding-grand-package-index div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wedding-grand-package-heading>span {
    display: block;
    margin-bottom: 15px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2.4px;
    color: #b8896b;
}

.wedding-grand-package-heading h2 {
    max-width: 800px;
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(46px, 6vw, 78px);
    line-height: 1;
    font-weight: 500;
    letter-spacing: -2px;
    color: #30241f;
}

.wedding-grand-package-heading h2 em {
    color: #b8896b;
    font-weight: 400;
}


/* =========================================================
   CINEMATIC IMAGE
========================================================= */

.wedding-grand-package-visual {
    position: relative;
    width: 100%;
    height: 650px;
    overflow: hidden;

    background: #30241f;
}

.wedding-grand-package-visual img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;

    transition: transform 1s ease;
}

.wedding-grand-package-visual:hover img {
    transform: scale(1.035);
}

.wedding-grand-package-image-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(to bottom,
            rgba(20, 14, 11, 0.25),
            rgba(20, 14, 11, 0.1) 38%,
            rgba(20, 14, 11, 0.72));
}


/* =========================================================
   IMAGE TOP
========================================================= */

.wedding-grand-package-image-top {
    position: absolute;
    top: 30px;
    left: 32px;
    right: 32px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.wedding-grand-package-image-top span {
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #fffaf7;
}


/* =========================================================
   IMAGE CENTER
========================================================= */

.wedding-grand-package-image-center {
    position: absolute;
    left: 50%;
    top: 50%;

    width: min(700px, calc(100% - 50px));

    transform: translate(-50%, -50%);

    text-align: center;
}

.wedding-grand-package-image-center span {
    display: block;
    margin-bottom: 18px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 3px;
    color: #d8b69d;
}

.wedding-grand-package-image-center h3 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(44px, 6vw, 74px);
    line-height: 1.05;
    font-weight: 500;
    letter-spacing: -1px;
    color: #fffaf7;
}

.wedding-grand-package-image-center h3 em {
    color: #d5aa8d;
    font-weight: 400;
}


/* =========================================================
   IMAGE BOTTOM
========================================================= */

.wedding-grand-package-image-bottom {
    position: absolute;
    left: 32px;
    right: 32px;
    bottom: 28px;

    display: flex;
    align-items: center;
    gap: 20px;
}

.wedding-grand-package-image-bottom span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #fffaf7;
}

.wedding-grand-package-image-bottom div {
    width: 50px;
    height: 1px;
    background: rgba(255, 250, 247, 0.6);
}


/* =========================================================
   CONTENT
========================================================= */

.wedding-grand-package-content {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 80px;

    padding: 70px 55px;

    background: #f3e8e1;
}

.wedding-grand-package-description {
    max-width: 420px;
}

.wedding-grand-package-kicker {
    display: block;
    margin-bottom: 22px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #b8896b;
}

.wedding-grand-package-description p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 15px;
    line-height: 1.9;
    font-weight: 400;
    color: #5f514a;
}


/* =========================================================
   FEATURES
========================================================= */

.wedding-grand-package-features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 50px;
    row-gap: 32px;
}

.wedding-grand-package-feature {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 16px;

    padding-bottom: 25px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.13);
}

.wedding-grand-package-feature>span {
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    color: #b8896b;
}

.wedding-grand-package-feature strong {
    display: block;
    margin-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 600;
    color: #30241f;
}

.wedding-grand-package-feature p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 400;
    color: #74665f;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-grand-package-bottom {
    display: grid;
    grid-template-columns: 0.7fr 1fr auto;
    align-items: center;
    gap: 40px;

    padding: 30px 5px 0;
}

.wedding-grand-package-capacity span,
.wedding-grand-package-note>span {
    display: block;
    margin-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-grand-package-capacity strong {
    font-family: "Playfair Display", serif;
    font-size: 20px;
    font-weight: 600;
    color: #30241f;
}

.wedding-grand-package-note p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.6;
    color: #6f625b;
}

.wedding-grand-package-cta {
    display: inline-flex;
    align-items: center;
    gap: 22px;

    padding: 16px 22px;

    text-decoration: none;

    background: #b8896b;
    color: #fffaf7;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.wedding-grand-package-cta:hover {
    background: #956b52;
    transform: translateY(-3px);
}

.wedding-grand-package-cta i {
    font-size: 12px;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-grand-package-header,
.wedding-grand-package-visual,
.wedding-grand-package-content,
.wedding-grand-package-bottom {
    opacity: 0;
    transform: translateY(40px);
    animation: weddingGrandReveal 0.85s ease forwards;
}

.wedding-grand-package-visual {
    animation-delay: 0.12s;
}

.wedding-grand-package-content {
    animation-delay: 0.24s;
}

.wedding-grand-package-bottom {
    animation-delay: 0.36s;
}

@keyframes weddingGrandReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-grand-package {
        padding: 95px 0;
    }

    .wedding-grand-package-header {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .wedding-grand-package-visual {
        height: 560px;
    }

    .wedding-grand-package-content {
        grid-template-columns: 1fr;
        gap: 50px;
        padding: 55px 40px;
    }

    .wedding-grand-package-description {
        max-width: 700px;
    }

    .wedding-grand-package-bottom {
        grid-template-columns: 1fr 1fr;
    }

    .wedding-grand-package-cta {
        grid-column: 1 / -1;
        width: fit-content;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-grand-package {
        padding: 75px 0;
    }

    .wedding-grand-package-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-grand-package-top {
        align-items: flex-start;
        flex-direction: column;
    }

    .wedding-grand-package-heading h2 {
        font-size: 44px;
    }

    .wedding-grand-package-visual {
        height: 500px;
    }

    .wedding-grand-package-image-top {
        left: 20px;
        right: 20px;
    }

    .wedding-grand-package-image-bottom {
        left: 20px;
        right: 20px;
        flex-wrap: wrap;
    }

    .wedding-grand-package-content {
        padding: 45px 25px;
    }

    .wedding-grand-package-features {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .wedding-grand-package-bottom {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .wedding-grand-package-cta {
        grid-column: auto;
        width: 100%;
        justify-content: space-between;
    }
}


@media (max-width: 480px) {

    .wedding-grand-package-heading h2 {
        font-size: 37px;
    }

    .wedding-grand-package-visual {
        height: 430px;
    }

    .wedding-grand-package-image-center {
        width: calc(100% - 35px);
    }

    .wedding-grand-package-image-center h3 {
        font-size: 39px;
    }

    .wedding-grand-package-content {
        padding: 38px 20px;
    }
}

/* =========================================================
   PACKAGE COMPARISON
========================================================= */

.wedding-package-comparison {
    width: 100%;
    padding: 125px 0 120px;
    background: #30241f;
    color: #fffaf7;
    overflow: hidden;
    clear: both;
}

.wedding-package-comparison-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wedding-package-comparison-header {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 70px;

    margin-bottom: 65px;
}

.wedding-package-comparison-label {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 10px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #c4aaa0;
}

.wedding-package-comparison-label span {
    font-size: 18px;
    color: #c39575;
}

.wedding-package-comparison-label div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wedding-package-comparison-heading {
    max-width: 850px;
}

.wedding-package-comparison-heading>span {
    display: block;
    margin-bottom: 17px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2.3px;
    color: #c39575;
}

.wedding-package-comparison-heading h2 {
    margin: 0 0 22px;

    font-family: "Playfair Display", serif;
    font-size: clamp(43px, 5.5vw, 70px);
    line-height: 1.05;
    font-weight: 500;
    letter-spacing: -1.5px;
}

.wedding-package-comparison-heading h2 em {
    color: #c39575;
    font-weight: 400;
}

.wedding-package-comparison-heading p {
    max-width: 650px;
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.9;
    font-weight: 400;
    color: #c4b4ac;
}


/* =========================================================
   TABLE
========================================================= */

.wedding-package-comparison-table {
    width: 100%;
    border: 1px solid rgba(255, 250, 247, 0.14);
}


/* =========================================================
   TABLE HEADER
========================================================= */

.wedding-package-comparison-head {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr);

    background: #f3e8e1;
    color: #30241f;
}

.wedding-package-comparison-feature-title {
    display: flex;
    align-items: center;

    padding: 30px;
}

.wedding-package-comparison-feature-title span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-package-comparison-plan {
    min-height: 130px;
    padding: 25px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border-left: 1px solid rgba(80, 55, 45, 0.13);
}

.wedding-package-comparison-plan small {
    margin-bottom: 8px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    color: #b8896b;
}

.wedding-package-comparison-plan strong {
    margin-bottom: 7px;

    font-family: "Playfair Display", serif;
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 1px;
}

.wedding-package-comparison-plan span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #806f67;
}


/* FEATURED PACKAGE */

.wedding-package-comparison-plan.signature {
    background: #b8896b;
    color: #fffaf7;
}

.wedding-package-comparison-plan.signature small,
.wedding-package-comparison-plan.signature span {
    color: #f7e8df;
}


/* =========================================================
   TABLE ROWS
========================================================= */

.wedding-package-comparison-row {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr);

    min-height: 95px;

    border-top: 1px solid rgba(255, 250, 247, 0.12);

    transition: background 0.3s ease;
}

.wedding-package-comparison-row:hover {
    background: rgba(255, 250, 247, 0.04);
}


/* FEATURE */

.wedding-package-comparison-feature {
    display: flex;
    align-items: center;
    gap: 18px;

    padding: 25px 30px;
}

.wedding-package-comparison-feature span {
    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    color: #c39575;
}

.wedding-package-comparison-feature strong {
    font-family: "Playfair Display", serif;
    font-size: 15px;
    font-weight: 500;
    color: #fffaf7;
}


/* VALUES */

.wedding-package-comparison-value {
    display: flex;
    align-items: center;
    gap: 10px;

    padding: 20px 25px;

    border-left: 1px solid rgba(255, 250, 247, 0.12);
}

.wedding-package-comparison-value i {
    font-size: 10px;
    color: #c39575;
}

.wedding-package-comparison-value span {
    font-family: "Playfair Display", serif;
    font-size: 12px;
    font-weight: 400;
    color: #c7b8b0;
}

.wedding-package-comparison-value.featured {
    background: rgba(184, 137, 107, 0.12);
}

.wedding-package-comparison-value.featured span {
    color: #fffaf7;
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-package-comparison-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;

    margin-top: 45px;
}

.wedding-package-comparison-note {
    max-width: 650px;
}

.wedding-package-comparison-note span {
    display: block;
    margin-bottom: 9px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #c39575;
}

.wedding-package-comparison-note p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.8;
    font-weight: 400;
    color: #bcaea6;
}

.wedding-package-comparison-link {
    display: inline-flex;
    align-items: center;
    gap: 25px;

    padding: 16px 21px;

    text-decoration: none;

    border: 1px solid rgba(195, 149, 117, 0.55);

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #fffaf7;

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}

.wedding-package-comparison-link i {
    color: #c39575;
}

.wedding-package-comparison-link:hover {
    background: #b8896b;
    border-color: #b8896b;
    transform: translateY(-3px);
}

.wedding-package-comparison-link:hover i {
    color: #fffaf7;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-package-comparison-header {
    opacity: 0;
    transform: translateY(35px);
    animation: weddingComparisonHeader 0.8s ease forwards;
}

.wedding-package-comparison-table {
    opacity: 0;
    transform: translateY(45px);
    animation: weddingComparisonTable 0.9s ease 0.15s forwards;
}

.wedding-package-comparison-bottom {
    opacity: 0;
    transform: translateY(25px);
    animation: weddingComparisonBottom 0.8s ease 0.3s forwards;
}

@keyframes weddingComparisonHeader {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes weddingComparisonTable {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes weddingComparisonBottom {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-package-comparison {
        padding: 95px 0;
    }

    .wedding-package-comparison-header {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .wedding-package-comparison-table {
        overflow-x: auto;
    }

    .wedding-package-comparison-head,
    .wedding-package-comparison-row {
        min-width: 850px;
    }

    .wedding-package-comparison-bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-package-comparison {
        padding: 75px 0;
    }

    .wedding-package-comparison-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-package-comparison-heading h2 {
        font-size: 40px;
    }

    .wedding-package-comparison-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .wedding-package-comparison-head,
    .wedding-package-comparison-row {
        min-width: 820px;
    }

    .wedding-package-comparison-link {
        width: 100%;
        justify-content: space-between;
    }
}

/* =========================================================
   WHAT'S INCLUDED
========================================================= */

.wedding-package-included {
    width: 100%;
    padding: 125px 0 120px;
    background: #fffaf7;
    overflow: hidden;
    clear: both;
}

.wedding-package-included-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wedding-package-included-header {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 75px;

    padding-bottom: 55px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-package-included-number {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 10px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #92786a;
}

.wedding-package-included-number span {
    font-size: 18px;
    color: #b8896b;
}

.wedding-package-included-number div {
    width: 38px;
    height: 1px;
    background: #c39575;
}

.wedding-package-included-title>span {
    display: block;
    margin-bottom: 16px;

    font-family: "Playfair Display", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2.5px;
    color: #b8896b;
}

.wedding-package-included-title h2 {
    max-width: 820px;
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(44px, 5.5vw, 70px);
    line-height: 1.04;
    font-weight: 500;
    letter-spacing: -1.5px;
    color: #30241f;
}

.wedding-package-included-title h2 em {
    color: #b8896b;
    font-weight: 400;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-package-included-intro {
    display: flex;
    align-items: center;
    gap: 28px;

    max-width: 760px;

    margin: 45px 0 60px;
}

.wedding-package-included-intro-mark {
    flex: 0 0 52px;

    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(184, 137, 107, 0.45);
    border-radius: 50%;

    color: #b8896b;
}

.wedding-package-included-intro-mark i {
    font-size: 15px;
}

.wedding-package-included-intro p {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 14px;
    line-height: 1.85;
    font-weight: 400;
    color: #6f625b;
}


/* =========================================================
   INCLUDED LIST
========================================================= */

.wedding-package-included-list {
    border-top: 1px solid rgba(80, 55, 45, 0.14);
}

.wedding-package-included-item {
    display: grid;
    grid-template-columns: 70px 1fr 210px;
    gap: 35px;
    align-items: center;

    min-height: 155px;
    padding: 30px 5px;

    border-bottom: 1px solid rgba(80, 55, 45, 0.14);

    transition:
        background 0.35s ease,
        padding 0.35s ease;
}

.wedding-package-included-item:hover {
    padding-left: 18px;
    padding-right: 18px;
    background: #f8f1ed;
}


/* NUMBER */

.wedding-package-included-item-number {
    font-family: "Playfair Display", serif;
    font-size: 14px;
    font-weight: 600;
    color: #b8896b;
}


/* MAIN */

.wedding-package-included-item-main h3 {
    margin: 0 0 9px;

    font-family: "Playfair Display", serif;
    font-size: 23px;
    line-height: 1.2;
    font-weight: 600;
    color: #30241f;
}

.wedding-package-included-item-main p {
    max-width: 650px;
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 400;
    color: #756861;
}


/* META */

.wedding-package-included-item-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;

    padding-left: 20px;

    border-left: 1px solid rgba(80, 55, 45, 0.13);
}

.wedding-package-included-item-meta span {
    font-family: "Playfair Display", serif;
    font-size: 9px;
    line-height: 1.5;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #92786a;
}

.wedding-package-included-item-meta i {
    font-size: 10px;
    color: #b8896b;

    transition: transform 0.3s ease;
}

.wedding-package-included-item:hover .wedding-package-included-item-meta i {
    transform: rotate(-45deg);
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-package-included-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;

    margin-top: 55px;
    padding: 30px 35px;

    background: #30241f;
}

.wedding-package-included-bottom span {
    display: block;
    margin-bottom: 7px;

    font-family: "Playfair Display", serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #c39575;
}

.wedding-package-included-bottom strong {
    font-family: "Playfair Display", serif;
    font-size: 17px;
    font-weight: 500;
    color: #fffaf7;
}

.wedding-package-included-bottom>i {
    font-size: 16px;
    color: #c39575;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-package-included-header,
.wedding-package-included-intro,
.wedding-package-included-list,
.wedding-package-included-bottom {
    opacity: 0;
    transform: translateY(35px);
    animation: weddingIncludedReveal 0.8s ease forwards;
}

.wedding-package-included-intro {
    animation-delay: 0.1s;
}

.wedding-package-included-list {
    animation-delay: 0.2s;
}

.wedding-package-included-bottom {
    animation-delay: 0.35s;
}

@keyframes weddingIncludedReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-package-included {
        padding: 95px 0;
    }

    .wedding-package-included-header {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .wedding-package-included-item {
        grid-template-columns: 55px 1fr 170px;
        gap: 22px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-package-included {
        padding: 75px 0;
    }

    .wedding-package-included-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-package-included-title h2 {
        font-size: 40px;
    }

    .wedding-package-included-intro {
        align-items: flex-start;
    }

    .wedding-package-included-item {
        grid-template-columns: 40px 1fr;
        gap: 16px;
        padding: 28px 0;
    }

    .wedding-package-included-item-meta {
        grid-column: 2;
        padding-left: 0;
        padding-top: 12px;

        border-left: 0;
        border-top: 1px solid rgba(80, 55, 45, 0.12);
    }

    .wedding-package-included-item:hover {
        padding-left: 8px;
        padding-right: 8px;
    }

    .wedding-package-included-bottom {
        padding: 25px;
    }
}


@media (max-width: 480px) {

    .wedding-package-included-title h2 {
        font-size: 35px;
    }

    .wedding-package-included-intro {
        gap: 18px;
    }

    .wedding-package-included-intro-mark {
        flex-basis: 45px;
        width: 45px;
        height: 45px;
    }

    .wedding-package-included-item-main h3 {
        font-size: 20px;
    }

    .wedding-package-included-bottom strong {
        font-size: 15px;
    }
}

/* =========================================================
   PACKAGES SECTION 8 — CUSTOMIZE YOUR PACKAGE
========================================================= */

.wedding-package-customize {
    position: relative;
    width: 100%;
    padding: 125px 0;
    background: #f8f1ed;
    overflow: hidden;
}

.wedding-package-customize-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   INTRO
========================================================= */

.wedding-package-customize-intro {
    display: grid;
    grid-template-columns: 0.7fr 1.3fr;
    gap: 80px;
    align-items: end;
    margin-bottom: 70px;
}

.wedding-package-customize-index {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
}

.wedding-package-customize-index span {
    font-size: 34px;
    color: #30241f;
    line-height: 1;
}

.wedding-package-customize-index div {
    width: 48px;
    height: 1px;
    background: #c39575;
}


.wedding-package-customize-heading {
    max-width: 720px;
}

.wedding-package-customize-kicker {
    display: block;
    margin-bottom: 14px;
    color: #b8896b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-customize-heading h2 {
    margin: 0 0 20px;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(38px, 4.2vw, 58px);
    font-weight: 600;
    line-height: 1.08;
}

.wedding-package-customize-heading h2 em {
    color: #b8896b;
    font-style: italic;
    font-weight: 500;
}

.wedding-package-customize-heading p {
    max-width: 620px;
    margin: 0;
    color: #6f625c;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.9;
}


/* =========================================================
   CUSTOMIZATION STUDIO
========================================================= */

.wedding-package-customize-studio {
    display: grid;
    grid-template-columns: 0.92fr 1.08fr;
    gap: 0;
    min-height: 690px;
    background: #30241f;
}


/* =========================================================
   VISUAL
========================================================= */

.wedding-package-customize-visual {
    position: relative;
    min-height: 690px;
    overflow: hidden;
}

.wedding-package-customize-visual img {
    width: 100%;
    height: 100%;
    min-height: 690px;
    display: block;
    object-fit: cover;
}

.wedding-package-customize-visual-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom,
            rgba(20, 14, 11, 0.20),
            rgba(20, 14, 11, 0.70));
}

.wedding-package-customize-visual-top {
    position: absolute;
    top: 30px;
    left: 32px;
    right: 32px;
    display: flex;
    justify-content: space-between;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-customize-visual-center {
    position: absolute;
    left: 42px;
    right: 42px;
    bottom: 130px;
}

.wedding-package-customize-visual-center span {
    display: block;
    margin-bottom: 12px;
    color: #dfb79c;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;
}

.wedding-package-customize-visual-center h3 {
    max-width: 430px;
    margin: 0;
    color: #fff;
    font-family: "Playfair Display", serif;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 500;
    line-height: 1.08;
}

.wedding-package-customize-visual-center h3 em {
    color: #dfb79c;
    font-style: italic;
}

.wedding-package-customize-visual-bottom {
    position: absolute;
    left: 42px;
    right: 42px;
    bottom: 36px;
    display: flex;
    align-items: center;
    gap: 22px;
}

.wedding-package-customize-visual-bottom span {
    color: rgba(255, 255, 255, 0.75);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.8px;
}

.wedding-package-customize-visual-bottom span+span::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 4px;
    margin-right: 18px;
    border-radius: 50%;
    background: #c39575;
}


/* =========================================================
   OPTIONS PANEL
========================================================= */

.wedding-package-customize-options {
    padding: 62px 58px;
    background: #30241f;
}

.wedding-package-customize-options-head {
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.wedding-package-customize-options-head span {
    display: block;
    margin-bottom: 10px;
    color: #c39575;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-customize-options-head p {
    margin: 0;
    color: rgba(255, 255, 255, 0.66);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.7;
}


/* =========================================================
   OPTION ROW
========================================================= */

.wedding-package-customize-option {
    display: grid;
    grid-template-columns: 44px 1fr 42px;
    gap: 22px;
    align-items: center;
    padding: 28px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    transition:
        padding-left 0.3s ease,
        background 0.3s ease;
}

.wedding-package-customize-option:hover {
    padding-left: 12px;
}

.wedding-package-customize-option-number {
    align-self: start;
    color: #c39575;
    font-family: "Playfair Display", serif;
    font-size: 18px;
    font-weight: 500;
}

.wedding-package-customize-option-content h3 {
    margin: 0 0 8px;
    color: #fff;
    font-family: "Playfair Display", serif;
    font-size: 20px;
    font-weight: 500;
}

.wedding-package-customize-option-content p {
    max-width: 470px;
    margin: 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.75;
}

.wedding-package-customize-option-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(195, 149, 117, 0.65);
    border-radius: 50%;
    color: #c39575;
    font-size: 12px;
    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.wedding-package-customize-option:hover .wedding-package-customize-option-icon {
    background: #c39575;
    color: #30241f;
    transform: rotate(90deg);
}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-package-customize-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding-top: 34px;
}

.wedding-package-customize-bottom-message span {
    display: block;
    margin-bottom: 8px;
    color: #b8896b;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-customize-bottom-message p {
    max-width: 620px;
    margin: 0;
    color: #6f625c;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.7;
}

.wedding-package-customize-button {
    min-width: 235px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 20px;
    background: #b8896b;
    color: #fff;
    text-decoration: none;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.4px;
    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.wedding-package-customize-button:hover {
    background: #956b52;
    transform: translateY(-3px);
}

.wedding-package-customize-button i {
    font-size: 11px;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-package-customize-intro,
.wedding-package-customize-studio,
.wedding-package-customize-bottom {
    animation: weddingCustomizeReveal 0.85s ease both;
}

.wedding-package-customize-studio {
    animation-delay: 0.12s;
}

.wedding-package-customize-bottom {
    animation-delay: 0.22s;
}

@keyframes weddingCustomizeReveal {
    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 992px) {

    .wedding-package-customize {
        padding: 95px 0;
    }

    .wedding-package-customize-intro {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-bottom: 50px;
    }

    .wedding-package-customize-studio {
        grid-template-columns: 1fr;
    }

    .wedding-package-customize-visual,
    .wedding-package-customize-visual img {
        min-height: 560px;
    }

    .wedding-package-customize-options {
        padding: 50px 42px;
    }
}


@media (max-width: 768px) {

    .wedding-package-customize {
        padding: 75px 0;
    }

    .wedding-package-customize-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-package-customize-heading h2 {
        font-size: 40px;
    }

    .wedding-package-customize-visual,
    .wedding-package-customize-visual img {
        min-height: 480px;
    }

    .wedding-package-customize-visual-center {
        left: 28px;
        right: 28px;
        bottom: 100px;
    }

    .wedding-package-customize-visual-bottom {
        left: 28px;
        right: 28px;
        gap: 12px;
    }

    .wedding-package-customize-visual-bottom span+span::before {
        margin-right: 10px;
    }

    .wedding-package-customize-options {
        padding: 42px 28px;
    }

    .wedding-package-customize-bottom {
        flex-direction: column;
        align-items: stretch;
        gap: 25px;
    }

    .wedding-package-customize-button {
        width: 100%;
    }
}


@media (max-width: 480px) {

    .wedding-package-customize {
        padding: 65px 0;
    }

    .wedding-package-customize-heading h2 {
        font-size: 34px;
    }

    .wedding-package-customize-visual,
    .wedding-package-customize-visual img {
        min-height: 430px;
    }

    .wedding-package-customize-visual-center h3 {
        font-size: 34px;
    }

    .wedding-package-customize-visual-top {
        left: 20px;
        right: 20px;
    }

    .wedding-package-customize-visual-bottom {
        flex-wrap: wrap;
    }

    .wedding-package-customize-options {
        padding: 35px 20px;
    }

    .wedding-package-customize-option {
        grid-template-columns: 32px 1fr 36px;
        gap: 12px;
        padding: 23px 0;
    }

    .wedding-package-customize-option-content h3 {
        font-size: 18px;
    }

    .wedding-package-customize-option-content p {
        font-size: 12px;
    }
}

/* =========================================================
   PACKAGES SECTION 9 — OUR PACKAGE PROMISE
========================================================= */

.wedding-package-promise {
    position: relative;
    width: 100%;
    padding: 125px 0 115px;
    background: #fffaf7;
    overflow: hidden;
}

.wedding-package-promise-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.wedding-package-promise-header {
    display: grid;
    grid-template-columns: 0.72fr 1.28fr;
    gap: 80px;
    align-items: end;
    padding-bottom: 62px;
    border-bottom: 1px solid rgba(48, 36, 31, 0.12);
}

.wedding-package-promise-label {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #92786a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-promise-label span {
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 35px;
    font-weight: 500;
    line-height: 1;
}

.wedding-package-promise-label div {
    width: 48px;
    height: 1px;
    background: #c39575;
}

.wedding-package-promise-title {
    max-width: 760px;
}

.wedding-package-promise-kicker {
    display: block;
    margin-bottom: 14px;
    color: #b8896b;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-promise-title h2 {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(40px, 4.6vw, 62px);
    font-weight: 500;
    line-height: 1.05;
}

.wedding-package-promise-title h2 em {
    color: #b8896b;
    font-style: italic;
}


/* =========================================================
   MANIFESTO
========================================================= */

.wedding-package-promise-manifesto {
    max-width: 850px;
    margin: 0 auto;
    padding: 72px 0 82px;
    text-align: center;
}

.wedding-package-promise-mark {
    width: 44px;
    height: 44px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c39575;
    border-radius: 50%;
    color: #b8896b;
    font-size: 14px;
}

.wedding-package-promise-manifesto p {
    margin: 0 auto 24px;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 400;
    line-height: 1.45;
}

.wedding-package-promise-manifesto>span {
    color: #92786a;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}


/* =========================================================
   PROMISE PILLARS
========================================================= */

.wedding-package-promise-pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(48, 36, 31, 0.12);
    border-bottom: 1px solid rgba(48, 36, 31, 0.12);
}

.wedding-package-promise-pillar {
    position: relative;
    min-height: 390px;
    padding: 42px 42px 38px;
}

.wedding-package-promise-pillar+.wedding-package-promise-pillar {
    border-left: 1px solid rgba(48, 36, 31, 0.12);
}

.wedding-package-promise-pillar-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.wedding-package-promise-pillar-top span {
    color: #b8896b;
    font-family: "Playfair Display", serif;
    font-size: 18px;
    font-weight: 500;
}

.wedding-package-promise-pillar-top i {
    color: #c39575;
    font-size: 20px;
}

.wedding-package-promise-pillar-line {
    width: 100%;
    height: 1px;
    margin: 34px 0 30px;
    background: #d9cbc3;
}

.wedding-package-promise-pillar h3 {
    max-width: 240px;
    margin: 0 0 18px;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 31px;
    font-weight: 500;
    line-height: 1.1;
}

.wedding-package-promise-pillar h3 em {
    display: block;
    color: #b8896b;
    font-style: italic;
    font-weight: 400;
}

.wedding-package-promise-pillar p {
    max-width: 290px;
    margin: 0;
    color: #6f625c;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.85;
}

.wedding-package-promise-pillar-note {
    position: absolute;
    left: 42px;
    bottom: 38px;
    color: #92786a;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.8px;
}


/* =========================================================
   FOOTER STATEMENT
========================================================= */

.wedding-package-promise-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin-top: 70px;
    padding: 42px 0 0;
    border-top: 1px solid rgba(48, 36, 31, 0.12);
}

.wedding-package-promise-footer-copy>span {
    display: block;
    margin-bottom: 12px;
    color: #b8896b;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-promise-footer-copy h3 {
    margin: 0;
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(25px, 3vw, 38px);
    font-weight: 500;
    line-height: 1.2;
}

.wedding-package-promise-footer-copy h3 em {
    color: #b8896b;
    font-style: italic;
}

.wedding-package-promise-footer-symbol {
    display: flex;
    align-items: center;
    gap: 14px;
}

.wedding-package-promise-footer-symbol span {
    color: #c39575;
    font-family: "Playfair Display", serif;
    font-size: 58px;
    font-weight: 500;
    line-height: 1;
}

.wedding-package-promise-footer-symbol small {
    color: #92786a;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 1.5px;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-package-promise-header,
.wedding-package-promise-manifesto,
.wedding-package-promise-pillars,
.wedding-package-promise-footer {
    animation: weddingPromiseReveal 0.85s ease both;
}

.wedding-package-promise-manifesto {
    animation-delay: 0.1s;
}

.wedding-package-promise-pillars {
    animation-delay: 0.18s;
}

.wedding-package-promise-footer {
    animation-delay: 0.26s;
}

@keyframes weddingPromiseReveal {

    from {
        opacity: 0;
        transform: translateY(32px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   RESPONSIVE — 992px
========================================================= */

@media (max-width: 992px) {

    .wedding-package-promise {
        padding: 95px 0;
    }

    .wedding-package-promise-header {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-bottom: 50px;
    }

    .wedding-package-promise-pillars {
        grid-template-columns: 1fr;
    }

    .wedding-package-promise-pillar {
        min-height: 330px;
    }

    .wedding-package-promise-pillar+.wedding-package-promise-pillar {
        border-left: 0;
        border-top: 1px solid rgba(48, 36, 31, 0.12);
    }

}


/* =========================================================
   RESPONSIVE — 768px
========================================================= */

@media (max-width: 768px) {

    .wedding-package-promise {
        padding: 75px 0;
    }

    .wedding-package-promise-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-package-promise-title h2 {
        font-size: 42px;
    }

    .wedding-package-promise-manifesto {
        padding: 55px 0 65px;
    }

    .wedding-package-promise-manifesto p {
        font-size: 25px;
    }

    .wedding-package-promise-pillar {
        padding: 35px 28px 80px;
    }

    .wedding-package-promise-pillar-note {
        left: 28px;
        bottom: 32px;
    }

    .wedding-package-promise-footer {
        flex-direction: column;
        align-items: flex-start;
        margin-top: 55px;
    }

}


/* =========================================================
   RESPONSIVE — 480px
========================================================= */

@media (max-width: 480px) {

    .wedding-package-promise {
        padding: 65px 0;
    }

    .wedding-package-promise-title h2 {
        font-size: 35px;
    }

    .wedding-package-promise-manifesto p {
        font-size: 22px;
    }

    .wedding-package-promise-pillar {
        min-height: 320px;
        padding: 30px 22px 75px;
    }

    .wedding-package-promise-pillar-note {
        left: 22px;
    }

    .wedding-package-promise-footer-symbol {
        margin-top: 10px;
    }

}

/* =========================================================
   PACKAGES SECTION 10 — PACKAGE CONSULTATION
========================================================= */

.wedding-package-consultation {
    position: relative;
    width: 100%;
    padding: 125px 0;
    background: #f3eee9;
    overflow: hidden;
}

.wedding-package-consultation-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    min-height: 650px;
}


/* =========================================================
   LEFT EDITORIAL
========================================================= */

.wedding-package-consultation-editorial {
    position: relative;
    padding: 55px 70px 55px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.wedding-package-consultation-number {
    display: flex;
    align-items: center;
    gap: 15px;

    color: #92786a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-consultation-number span {
    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: 35px;
    font-weight: 500;
    line-height: 1;
}

.wedding-package-consultation-number div {
    width: 48px;
    height: 1px;
    background: #c39575;
}


.wedding-package-consultation-main {
    max-width: 580px;
}

.wedding-package-consultation-kicker {
    display: block;
    margin-bottom: 18px;

    color: #b8896b;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-consultation-main h2 {
    margin: 0 0 25px;

    color: #30241f;
    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 5vw, 66px);
    font-weight: 500;
    line-height: 1.04;
}

.wedding-package-consultation-main h2 em {
    display: block;

    color: #b8896b;
    font-style: italic;
    font-weight: 400;
}

.wedding-package-consultation-main>p {
    max-width: 520px;
    margin: 0;

    color: #6f625c;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.9;
}


/* =========================================================
   QUOTE
========================================================= */

.wedding-package-consultation-quote {
    display: flex;
    align-items: flex-start;
    gap: 18px;

    max-width: 500px;
    margin-top: 42px;
    padding-top: 22px;

    border-top: 1px solid rgba(48, 36, 31, 0.15);
}

.wedding-package-consultation-quote i {
    flex: 0 0 auto;

    color: #c39575;
    font-size: 16px;
}

.wedding-package-consultation-quote span {
    color: #92786a;
    font-family: "Playfair Display", serif;
    font-size: 15px;
    font-style: italic;
    line-height: 1.65;
}


/* =========================================================
   RIGHT CONSULTATION DESK
========================================================= */

.wedding-package-consultation-desk {
    position: relative;
    padding: 48px 48px 35px;

    background: #30241f;
    color: #fff;

    display: flex;
    flex-direction: column;
}


/* =========================================================
   DESK TOP
========================================================= */

.wedding-package-consultation-desk-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-bottom: 22px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.wedding-package-consultation-desk-top span {
    color: #c39575;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-consultation-desk-top strong {
    color: rgba(255, 255, 255, 0.55);

    font-family: "Playfair Display", serif;
    font-size: 14px;
    font-weight: 400;
}


/* =========================================================
   DETAILS
========================================================= */

.wedding-package-consultation-details {
    flex: 1;
    padding: 18px 0;
}

.wedding-package-consultation-detail {
    position: relative;

    padding: 26px 0;

    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.wedding-package-consultation-detail:last-child {
    border-bottom: 0;
}

.wedding-package-consultation-detail-label {
    display: block;
    margin-bottom: 10px;

    color: #c39575;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

.wedding-package-consultation-detail h3 {
    margin: 0 0 9px;

    color: #fff;
    font-family: "Playfair Display", serif;
    font-size: 23px;
    font-weight: 500;
}

.wedding-package-consultation-detail p {
    max-width: 480px;
    margin: 0;

    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.75;
}


/* =========================================================
   ACTION
========================================================= */

.wedding-package-consultation-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    padding: 25px 0;

    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.wedding-package-consultation-action-copy span {
    display: block;
    margin-bottom: 6px;

    color: #c39575;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.8px;
}

.wedding-package-consultation-action-copy p {
    margin: 0;

    color: rgba(255, 255, 255, 0.72);
    font-family: "Playfair Display", serif;
    font-size: 16px;
    font-style: italic;
}


.wedding-package-consultation-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;

    min-width: 230px;
    padding: 16px 18px;

    background: #b8896b;
    color: #fff;

    text-decoration: none;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.3px;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.wedding-package-consultation-button:hover {
    background: #956b52;
    transform: translateY(-3px);
}

.wedding-package-consultation-button i {
    font-size: 10px;
}


/* =========================================================
   META
========================================================= */

.wedding-package-consultation-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;

    padding-top: 20px;
}

.wedding-package-consultation-meta span {
    color: rgba(255, 255, 255, 0.38);

    font-size: 7px;
    font-weight: 700;
    letter-spacing: 1.4px;
}

.wedding-package-consultation-meta div {
    width: 3px;
    height: 3px;

    border-radius: 50%;
    background: #c39575;
}


/* =========================================================
   ENTRANCE ANIMATION
========================================================= */

.wedding-package-consultation-editorial,
.wedding-package-consultation-desk {
    animation: weddingConsultationReveal 0.85s ease both;
}

.wedding-package-consultation-desk {
    animation-delay: 0.12s;
}

@keyframes weddingConsultationReveal {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   RESPONSIVE — 992px
========================================================= */

@media (max-width: 992px) {

    .wedding-package-consultation {
        padding: 95px 0;
    }

    .wedding-package-consultation-container {
        grid-template-columns: 1fr;
    }

    .wedding-package-consultation-editorial {
        min-height: 520px;
        padding: 45px 0;
    }

    .wedding-package-consultation-main {
        max-width: 760px;
    }

    .wedding-package-consultation-desk {
        min-height: 620px;
    }

}


/* =========================================================
   RESPONSIVE — 768px
========================================================= */

@media (max-width: 768px) {

    .wedding-package-consultation {
        padding: 75px 0;
    }

    .wedding-package-consultation-container {
        width: min(100% - 30px, 1240px);
    }

    .wedding-package-consultation-main h2 {
        font-size: 43px;
    }

    .wedding-package-consultation-editorial {
        min-height: 480px;
    }

    .wedding-package-consultation-desk {
        padding: 40px 28px 30px;
    }

    .wedding-package-consultation-action {
        align-items: stretch;
        flex-direction: column;
    }

    .wedding-package-consultation-button {
        width: 100%;
    }

    .wedding-package-consultation-meta {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

}


/* =========================================================
   RESPONSIVE — 480px
========================================================= */

@media (max-width: 480px) {

    .wedding-package-consultation {
        padding: 65px 0;
    }

    .wedding-package-consultation-main h2 {
        font-size: 35px;
    }

    .wedding-package-consultation-quote {
        margin-top: 30px;
    }

    .wedding-package-consultation-desk {
        padding: 32px 20px 25px;
    }

    .wedding-package-consultation-detail {
        padding: 22px 0;
    }

    .wedding-package-consultation-detail h3 {
        font-size: 20px;
    }

    .wedding-package-consultation-meta {
        gap: 9px;
    }

}

/* =========================================================
   EVERAFTER LOGIN PAGE
========================================================= */

.wedding-login-page {

    --login-bg: #f5f2ed;
    --login-surface: #fffdf9;
    --login-text: #171412;
    --login-muted: #77706a;
    --login-line: #ddd6cf;
    --login-accent: #b8896b;
    --login-accent-dark: #956b52;

    position: relative;

    min-height: 100vh;

    width: 100%;

    overflow: hidden;

    background: var(--login-bg);

    color: var(--login-text);

    font-family: "Playfair Display", serif;

}


/* =========================================================
   BACKGROUND WORD
========================================================= */

.wedding-login-bg-word {

    position: absolute;

    inset: 0;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    pointer-events: none;

    user-select: none;

    overflow: hidden;

    z-index: 0;

}


.wedding-login-bg-word span {

    display: block;

    font-size: clamp(130px, 20vw, 330px);

    line-height: .72;

    font-weight: 700;

    letter-spacing: -12px;

    color: rgba(48, 36, 31, .035);

    white-space: nowrap;

}


/* =========================================================
   HEADER
========================================================= */

.wedding-login-header {

    position: relative;

    z-index: 20;

    width: 100%;

    padding: 26px 40px;

}


.wedding-login-header-container {

    width: min(1320px, 100%);

    margin: 0 auto;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

}


/* =========================================================
   LOGO
========================================================= */

.wedding-login-logo {

    display: inline-flex;

    align-items: center;

    gap: 12px;

    color: var(--login-text);

    text-decoration: none;

}


.wedding-login-logo-mark {

    width: 43px;

    height: 43px;

    border: 1px solid var(--login-accent);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 12px;

    letter-spacing: 1px;

    color: var(--login-accent);

}


.wedding-login-logo-text {

    font-size: 16px;

    font-weight: 600;

    letter-spacing: 4px;

}


/* =========================================================
   HEADER RIGHT
========================================================= */

.wedding-login-header-right {

    display: flex;

    align-items: center;

    gap: 24px;

}


.wedding-login-header-label {

    font-family: Arial, sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 2px;

    color: var(--login-muted);

}


.wedding-login-back {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    font-family: Arial, sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 1.5px;

    color: var(--login-text);

    text-decoration: none;

    transition: color .25s ease;

}


.wedding-login-back:hover {

    color: var(--login-accent);

}


.wedding-login-back i {

    font-size: 9px;

}


/* =========================================================
   PAGE CONTROLS
========================================================= */

.wedding-login-controls {

    display: flex;

    align-items: center;

    gap: 5px;

}


.wedding-login-control {

    width: 34px;

    height: 34px;

    padding: 0;

    border: 1px solid var(--login-line);

    background: transparent;

    color: var(--login-text);

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    font-family: Arial, sans-serif;

    transition:
        background .25s ease,
        color .25s ease,
        border-color .25s ease,
        transform .25s ease;

}


.wedding-login-control i {

    font-size: 11px;

}


.wedding-login-control:hover {

    background: var(--login-text);

    border-color: var(--login-text);

    color: var(--login-bg);

    transform: translateY(-2px);

}


.wedding-login-control.active {

    background: var(--login-accent);

    border-color: var(--login-accent);

    color: #fff;

}


.wedding-login-rtl-button {

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1px;

}


/* =========================================================
   SIDE LABELS
========================================================= */

.wedding-login-side-label {

    position: absolute;

    z-index: 5;

    display: flex;

    align-items: center;

    gap: 13px;

    font-family: Arial, sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 2px;

    color: var(--login-muted);

}


.wedding-login-side-label div {

    width: 45px;

    height: 1px;

    background: var(--login-line);

}


.wedding-login-side-left {

    left: 32px;

    top: 50%;

    transform: translateY(-50%) rotate(-90deg);

    transform-origin: left center;

}


.wedding-login-side-right {

    right: 32px;

    top: 50%;

    transform: translateY(-50%) rotate(90deg);

    transform-origin: right center;

}


/* =========================================================
   MAIN
========================================================= */

.wedding-login-main {

    position: relative;

    z-index: 10;

    min-height: calc(100vh - 140px);

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    padding: 30px 20px 80px;

}


/* =========================================================
   ORBIT
========================================================= */

.wedding-login-orbit {

    position: absolute;

    top: 50%;

    left: 50%;

    width: min(560px, 60vw);

    aspect-ratio: 1;

    border: 1px solid rgba(184, 137, 107, .18);

    border-radius: 50%;

    transform: translate(-50%, -50%);

    pointer-events: none;

}


.wedding-login-orbit-line {

    position: absolute;

    inset: 9%;

    border: 1px dashed rgba(184, 137, 107, .18);

    border-radius: 50%;

    animation: weddingLoginOrbitRotate 30s linear infinite;

}


.wedding-login-ring {

    position: absolute;

    top: 50%;

    left: 50%;

    width: 62px;

    height: 62px;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    background: var(--login-bg);

    border: 1px solid var(--login-accent);

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--login-accent);

}


.wedding-login-ring i {

    font-size: 21px;

}


@keyframes weddingLoginOrbitRotate {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }

}


/* =========================================================
   INTRO
========================================================= */

.wedding-login-intro {

    position: relative;

    z-index: 2;

    text-align: center;

    margin-bottom: 26px;

    animation: weddingLoginFadeUp .8s ease both;

}


.wedding-login-eyebrow {

    display: block;

    margin-bottom: 10px;

    font-family: Arial, sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 3px;

    color: var(--login-accent);

}


.wedding-login-intro h1 {

    margin: 0;

    font-size: clamp(32px, 4vw, 55px);

    line-height: 1.08;

    font-weight: 500;

    letter-spacing: -1.5px;

}


.wedding-login-intro h1 em {

    display: block;

    font-weight: 400;

    color: var(--login-accent);

}


.wedding-login-intro p {

    max-width: 470px;

    margin: 13px auto 0;

    font-family: Arial, sans-serif;

    font-size: 13px;

    font-weight: 400;

    line-height: 1.7;

    color: var(--login-muted);

}


/* =========================================================
   LOGIN PANEL
========================================================= */

.wedding-login-panel {

    position: relative;

    z-index: 4;

    width: min(470px, calc(100vw - 40px));

    padding: 28px 32px 25px;

    background: rgba(255, 253, 249, .94);

    border: 1px solid var(--login-line);

    box-shadow:
        0 25px 70px rgba(45, 31, 25, .08);

    backdrop-filter: blur(12px);

    animation: weddingLoginPanelIn .9s .15s ease both;

}


/* =========================================================
   PANEL TOP
========================================================= */

.wedding-login-panel-top {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding-bottom: 16px;

    margin-bottom: 22px;

    border-bottom: 1px solid var(--login-line);

    font-family: Arial, sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 2px;

    color: var(--login-muted);

}


/* =========================================================
   FORM
========================================================= */

.wedding-login-form {

    display: flex;

    flex-direction: column;

    gap: 19px;

}


.wedding-login-field {

    width: 100%;

}


.wedding-login-label-row {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 10px;

    margin-bottom: 8px;

}


.wedding-login-label-row label {

    font-family: Arial, sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1.7px;

    color: var(--login-text);

}


.wedding-login-forgot {

    font-family: Arial, sans-serif;

    font-size: 9px;

    color: var(--login-muted);

    text-decoration: none;

}


.wedding-login-forgot:hover {

    color: var(--login-accent);

}


/* =========================================================
   INPUT
========================================================= */

.wedding-login-input-wrap {

    position: relative;

    width: 100%;

}


.wedding-login-input-wrap input {

    width: 100%;

    height: 50px;

    padding: 0 48px 0 15px;

    border: 1px solid var(--login-line);

    outline: none;

    background: transparent;

    color: var(--login-text);

    font-family: Arial, sans-serif;

    font-size: 13px;

    font-weight: 400;

    transition:
        border-color .25s ease,
        background .25s ease,
        box-shadow .25s ease;

}


.wedding-login-input-wrap input::placeholder {

    color: #aaa39d;

}


.wedding-login-input-wrap input:focus {

    border-color: var(--login-accent);

    background: rgba(184, 137, 107, .025);

    box-shadow: 0 0 0 3px rgba(184, 137, 107, .08);

}


.wedding-login-input-icon {

    position: absolute;

    top: 0;

    right: 16px;

    height: 50px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--login-accent);

    pointer-events: none;

}


.wedding-login-input-icon i {

    font-size: 12px;

}


/* =========================================================
   PASSWORD BUTTON
========================================================= */

.wedding-login-password-toggle {

    position: absolute;

    top: 0;

    right: 0;

    width: 48px;

    height: 50px;

    border: 0;

    background: transparent;

    color: var(--login-muted);

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

}


.wedding-login-password-toggle:hover {

    color: var(--login-accent);

}


.wedding-login-password-toggle i {

    font-size: 12px;

}


/* =========================================================
   OPTIONS
========================================================= */

.wedding-login-options {

    margin-top: -3px;

}


.wedding-login-remember {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    cursor: pointer;

    font-family: Arial, sans-serif;

    font-size: 10px;

    color: var(--login-muted);

}


.wedding-login-remember input {

    width: 13px;

    height: 13px;

    accent-color: var(--login-accent);

}


/* =========================================================
   SUBMIT
========================================================= */

.wedding-login-submit {

    width: 100%;

    min-height: 52px;

    margin-top: 2px;

    padding: 0 18px;

    border: 1px solid var(--login-text);

    background: var(--login-text);

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: space-between;

    cursor: pointer;

    font-family: Arial, sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;

    transition:
        background .25s ease,
        border-color .25s ease,
        color .25s ease;

}


.wedding-login-submit:hover {

    background: var(--login-accent);

    border-color: var(--login-accent);

}


.wedding-login-submit i {

    font-size: 11px;

    transition: transform .25s ease;

}


.wedding-login-submit:hover i {

    transform: translateX(4px);

}


/* =========================================================
   REGISTER
========================================================= */

.wedding-login-register {

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 6px;

    margin-top: 21px;

    font-family: Arial, sans-serif;

    font-size: 10px;

    color: var(--login-muted);

}


.wedding-login-register a {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    color: var(--login-text);

    font-weight: 700;

    text-decoration: none;

}


.wedding-login-register a:hover {

    color: var(--login-accent);

}


.wedding-login-register i {

    font-size: 8px;

}


/* =========================================================
   SECURITY
========================================================= */

.wedding-login-security {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 7px;

    margin-top: 18px;

    padding-top: 16px;

    border-top: 1px solid var(--login-line);

    font-family: Arial, sans-serif;

    font-size: 8px;

    letter-spacing: .4px;

    color: var(--login-muted);

}


.wedding-login-security i {

    color: var(--login-accent);

    font-size: 9px;

}


/* =========================================================
   FOOTER
========================================================= */

.wedding-login-footer {

    position: absolute;

    z-index: 15;

    left: 40px;

    right: 40px;

    bottom: 22px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    font-family: Arial, sans-serif;

    font-size: 7px;

    font-weight: 600;

    letter-spacing: 1.7px;

    color: var(--login-muted);

}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingLoginFadeUp {

    from {

        opacity: 0;

        transform: translateY(25px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes weddingLoginPanelIn {

    from {

        opacity: 0;

        transform: translateY(35px) scale(.98);

    }

    to {

        opacity: 1;

        transform: translateY(0) scale(1);

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-login-header {

        padding: 22px 25px;

    }


    .wedding-login-header-label {

        display: none;

    }


    .wedding-login-side-label {

        display: none;

    }


    .wedding-login-main {

        min-height: calc(100vh - 115px);

        padding-bottom: 80px;

    }


    .wedding-login-orbit {

        width: 570px;

        max-width: 90vw;

    }


    .wedding-login-footer {

        left: 25px;

        right: 25px;

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-login-header {

        padding: 18px 20px;

    }


    .wedding-login-header-container {

        gap: 12px;

    }


    .wedding-login-header-right {

        gap: 8px;

    }


    .wedding-login-back {

        display: none;

    }


    .wedding-login-logo-mark {

        width: 38px;

        height: 38px;

    }


    .wedding-login-logo-text {

        font-size: 13px;

        letter-spacing: 3px;

    }


    .wedding-login-controls {

        gap: 4px;

    }


    .wedding-login-control {

        width: 31px;

        height: 31px;

    }


    .wedding-login-main {

        padding:
            25px 15px 100px;

    }


    .wedding-login-orbit {

        width: 440px;

        opacity: .7;

    }


    .wedding-login-intro {

        margin-bottom: 22px;

    }


    .wedding-login-intro h1 {

        font-size: 34px;

    }


    .wedding-login-intro p {

        font-size: 12px;

        max-width: 350px;

    }


    .wedding-login-panel {

        width: min(460px, calc(100vw - 30px));

        padding: 24px 22px 22px;

    }


    .wedding-login-footer {

        left: 20px;

        right: 20px;

        bottom: 17px;

        justify-content: center;

        text-align: center;

    }


    .wedding-login-footer span:nth-child(2) {

        display: none;

    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .wedding-login-header {

        padding: 15px;

    }


    .wedding-login-logo {

        gap: 8px;

    }


    .wedding-login-logo-mark {

        width: 35px;

        height: 35px;

        font-size: 10px;

    }


    .wedding-login-logo-text {

        font-size: 11px;

        letter-spacing: 2.5px;

    }


    .wedding-login-control {

        width: 29px;

        height: 29px;

    }


    .wedding-login-control i {

        font-size: 10px;

    }


    .wedding-login-rtl-button {

        font-size: 7px;

    }


    .wedding-login-main {

        padding:

            20px 12px 90px;

    }


    .wedding-login-bg-word span {

        font-size: 110px;

        letter-spacing: -7px;

    }


    .wedding-login-orbit {

        width: 330px;

    }


    .wedding-login-ring {

        width: 50px;

        height: 50px;

    }


    .wedding-login-ring i {

        font-size: 17px;

    }


    .wedding-login-intro h1 {

        font-size: 29px;

        letter-spacing: -1px;

    }


    .wedding-login-intro p {

        font-size: 11px;

        line-height: 1.6;

    }


    .wedding-login-panel {

        width: 100%;

        padding: 21px 17px 20px;

    }


    .wedding-login-panel-top {

        margin-bottom: 19px;

    }


    .wedding-login-form {

        gap: 16px;

    }


    .wedding-login-input-wrap input {

        height: 48px;

        font-size: 12px;

    }


    .wedding-login-input-icon {

        height: 48px;

        right: 14px;

    }


    .wedding-login-password-toggle {

        height: 48px;

        width: 43px;

    }


    .wedding-login-submit {

        min-height: 49px;

    }


    .wedding-login-footer {

        font-size: 6.5px;

        letter-spacing: 1.2px;

    }

}


/* =========================================================
   EXTRA SMALL
========================================================= */

@media (max-width: 360px) {

    .wedding-login-logo-text {

        display: none;

    }


    .wedding-login-header-right {

        margin-left: auto;

    }


    .wedding-login-intro h1 {

        font-size: 26px;

    }


    .wedding-login-panel {

        padding: 18px 14px;

    }

}

/* =========================================================
   HOME 2 HERO
   UNIQUE CINEMATIC EDITORIAL BANNER
========================================================= */

.wedding-home2-hero {

    position: relative;

    width: 100%;

    min-height: calc(100vh - 82px);

    overflow: hidden;

    display: flex;

    align-items: center;

    color: #ffffff;

    background: #30241f;

}


/* =========================================================
   BACKGROUND IMAGE
========================================================= */

.wedding-home2-hero-image {

    position: absolute;

    inset: 0;

    z-index: 0;

    background-image:
        url("../images/camila-cordeiro-ktUylBkwWHs-unsplash\ -\ Copy.jpg");

    background-size: cover;

    background-position: center;

    transform: scale(1.03);

}


/* =========================================================
   OVERLAY
========================================================= */

.wedding-home2-hero-overlay {

    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(90deg,
            rgba(25, 18, 15, .88) 0%,
            rgba(25, 18, 15, .62) 42%,
            rgba(25, 18, 15, .20) 100%);

}


/* =========================================================
   TOP META
========================================================= */

.wedding-home2-hero-top {

    position: absolute;

    top: 28px;

    left: 45px;

    right: 45px;

    z-index: 5;

    display: flex;

    align-items: center;

    justify-content: space-between;

}


.wedding-home2-hero-label,
.wedding-home2-hero-year {

    font-family: Arial, sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 3px;

}


.wedding-home2-hero-year {

    opacity: .75;

}


/* =========================================================
   MAIN CONTAINER
========================================================= */

.wedding-home2-hero-container {

    position: relative;

    z-index: 3;

    width: min(1280px, calc(100% - 100px));

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr) 220px;

    align-items: center;

    gap: 90px;

}


/* =========================================================
   LEFT CONTENT
========================================================= */

.wedding-home2-hero-content {

    max-width: 720px;

    opacity: 0;

    animation:
        weddingHome2HeroContent 1s .15s ease both;

}


.wedding-home2-hero-kicker {

    display: inline-block;

    margin-bottom: 20px;

    padding-left: 42px;

    position: relative;

    font-family: Arial, sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 3px;

    color: #e2c6b4;

}


.wedding-home2-hero-kicker::before {

    content: "";

    position: absolute;

    left: 0;

    top: 50%;

    width: 30px;

    height: 1px;

    background: #c39575;

}


/* =========================================================
   HEADING
========================================================= */

.wedding-home2-hero-content h1 {

    margin: 0;

    max-width: 720px;

    font-size: clamp(54px, 7vw, 100px);

    line-height: .92;

    font-weight: 400;

    letter-spacing: -4px;

}


.wedding-home2-hero-content h1 span {

    display: block;

    color: #ffffff;

}


.wedding-home2-hero-content h1 em {

    display: block;

    color: #d3a98c;

    font-weight: 400;

}


/* =========================================================
   DESCRIPTION
========================================================= */

.wedding-home2-hero-content p {

    max-width: 475px;

    margin: 28px 0 0;

    font-family: Arial, sans-serif;

    font-size: 13px;

    font-weight: 400;

    line-height: 1.8;

    color: rgba(255, 255, 255, .78);

}


/* =========================================================
   ACTIONS
========================================================= */

.wedding-home2-hero-actions {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 25px;

    margin-top: 34px;

}


/* PRIMARY */

.wedding-home2-hero-primary {

    min-height: 49px;

    padding: 0 21px;

    display: inline-flex;

    align-items: center;

    justify-content: space-between;

    gap: 35px;

    background: #c39575;

    color: #ffffff;

    text-decoration: none;

    font-family: Arial, sans-serif;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1.8px;

    transition:
        background .25s ease,
        transform .25s ease;

}


.wedding-home2-hero-primary:hover {

    background: #a87859;

    transform: translateY(-3px);

}


.wedding-home2-hero-primary i {

    font-size: 10px;

    transition: transform .25s ease;

}


.wedding-home2-hero-primary:hover i {

    transform: translateX(4px);

}


/* SECONDARY */

.wedding-home2-hero-secondary {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #ffffff;

    text-decoration: none;

    font-family: Arial, sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 1.7px;

    opacity: .82;

    transition:
        color .25s ease,
        opacity .25s ease;

}


.wedding-home2-hero-secondary:hover {

    color: #d3a98c;

    opacity: 1;

}


.wedding-home2-hero-secondary i {

    font-size: 8px;

}


/* =========================================================
   EDITORIAL RIGHT PANEL
========================================================= */

.wedding-home2-hero-editorial {

    min-height: 370px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    position: relative;

    border-left: 1px solid rgba(255, 255, 255, .25);

    animation:
        weddingHome2Editorial 1s .4s ease both;

}


.wedding-home2-hero-editorial-number {

    position: absolute;

    top: 0;

    font-family: Arial, sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 2px;

    color: #d3a98c;

}


.wedding-home2-hero-editorial-line {

    width: 1px;

    height: 75px;

    margin-bottom: 25px;

    background: rgba(255, 255, 255, .3);

}


.wedding-home2-hero-editorial-text {

    display: flex;

    flex-direction: column;

    align-items: center;

    text-align: center;

    gap: 5px;

}


.wedding-home2-hero-editorial-text span {

    font-family: Arial, sans-serif;

    font-size: 7px;

    font-weight: 600;

    letter-spacing: 2.5px;

    color: rgba(255, 255, 255, .62);

}


.wedding-home2-hero-editorial-text strong {

    font-size: 25px;

    font-weight: 400;

    letter-spacing: 1px;

}


/* =========================================================
   EDITORIAL CIRCLE
========================================================= */

.wedding-home2-hero-editorial-circle {

    width: 67px;

    height: 67px;

    margin-top: 30px;

    border: 1px solid rgba(211, 169, 140, .7);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #d3a98c;

}


.wedding-home2-hero-editorial-circle i {

    font-size: 19px;

}


/* =========================================================
   BOTTOM
========================================================= */

.wedding-home2-hero-bottom {

    position: absolute;

    z-index: 5;

    left: 45px;

    right: 45px;

    bottom: 28px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;

}


.wedding-home2-hero-bottom-left {

    display: flex;

    align-items: center;

    gap: 12px;

    font-family: Arial, sans-serif;

    font-size: 7px;

    font-weight: 600;

    letter-spacing: 1.5px;

    color: rgba(255, 255, 255, .65);

}


.wedding-home2-hero-bottom-left div {

    width: 30px;

    height: 1px;

    background: rgba(255, 255, 255, .3);

}


.wedding-home2-hero-scroll {

    position: absolute;

    left: 50%;

    transform: translateX(-50%);

    display: flex;

    align-items: center;

    gap: 10px;

    font-family: Arial, sans-serif;

    font-size: 7px;

    letter-spacing: 2px;

    color: rgba(255, 255, 255, .7);

}


.wedding-home2-hero-scroll i {

    font-size: 10px;

    animation: weddingHome2Scroll 1.8s ease infinite;

}


.wedding-home2-hero-bottom-right {

    display: flex;

    align-items: center;

    gap: 8px;

    font-family: Arial, sans-serif;

    font-size: 8px;

    letter-spacing: 2px;

    color: rgba(255, 255, 255, .7);

}


.wedding-home2-hero-bottom-right span:first-child {

    color: #d3a98c;

}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes weddingHome2HeroContent {

    from {

        opacity: 0;

        transform: translateX(-45px);

    }

    to {

        opacity: 1;

        transform: translateX(0);

    }

}


@keyframes weddingHome2Editorial {

    from {

        opacity: 0;

        transform: translateX(35px);

    }

    to {

        opacity: 1;

        transform: translateX(0);

    }

}


@keyframes weddingHome2Scroll {

    0%,
    100% {

        transform: translateY(0);

    }

    50% {

        transform: translateY(5px);

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 992px) {

    .wedding-home2-hero {

        min-height: calc(100vh - 75px);

    }


    .wedding-home2-hero-container {

        width: min(100% - 70px, 900px);

        grid-template-columns: 1fr 150px;

        gap: 45px;

    }


    .wedding-home2-hero-content h1 {

        font-size: clamp(48px, 8vw, 75px);

    }


    .wedding-home2-hero-editorial {

        min-height: 300px;

    }


    .wedding-home2-hero-top,
    .wedding-home2-hero-bottom {

        left: 25px;

        right: 25px;

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .wedding-home2-hero {

        min-height: 760px;

        align-items: flex-start;

    }


    .wedding-home2-hero-image {

        background-position: 60% center;

    }


    .wedding-home2-hero-overlay {

        background:
            linear-gradient(180deg,
                rgba(25, 18, 15, .45) 0%,
                rgba(25, 18, 15, .88) 72%,
                rgba(25, 18, 15, .96) 100%);

    }


    .wedding-home2-hero-top {

        top: 20px;

        left: 20px;

        right: 20px;

    }


    .wedding-home2-hero-container {

        width: calc(100% - 40px);

        margin-top: 145px;

        display: block;

    }


    .wedding-home2-hero-content {

        max-width: 100%;

    }


    .wedding-home2-hero-content h1 {

        font-size: clamp(43px, 13vw, 68px);

        letter-spacing: -2px;

    }


    .wedding-home2-hero-content p {

        margin-top: 22px;

        max-width: 500px;

    }


    .wedding-home2-hero-actions {

        margin-top: 27px;

        gap: 18px;

    }


    .wedding-home2-hero-editorial {

        display: none;

    }


    .wedding-home2-hero-bottom {

        left: 20px;

        right: 20px;

        bottom: 20px;

    }


    .wedding-home2-hero-bottom-left {

        display: none;

    }


    .wedding-home2-hero-scroll {

        position: static;

        transform: none;

    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .wedding-home2-hero {

        min-height: 700px;

    }


    .wedding-home2-hero-container {

        margin-top: 130px;

    }


    .wedding-home2-hero-kicker {

        padding-left: 30px;

        font-size: 7px;

        letter-spacing: 2px;

    }


    .wedding-home2-hero-kicker::before {

        width: 22px;

    }


    .wedding-home2-hero-content h1 {

        font-size: 43px;

    }


    .wedding-home2-hero-content p {

        font-size: 12px;

        line-height: 1.7;

    }


    .wedding-home2-hero-actions {

        flex-direction: column;

        align-items: flex-start;

    }


    .wedding-home2-hero-primary {

        width: 100%;

    }


    .wedding-home2-hero-bottom-right {

        display: none;

    }

}


/* =========================================================
   RTL
========================================================= */

html[dir="rtl"] .wedding-home2-hero {

    direction: rtl;

}


html[dir="rtl"] .wedding-home2-hero-overlay {

    background:
        linear-gradient(270deg,
            rgba(25, 18, 15, .88) 0%,
            rgba(25, 18, 15, .62) 42%,
            rgba(25, 18, 15, .20) 100%);

}


html[dir="rtl"] .wedding-home2-hero-kicker {

    padding-left: 0;

    padding-right: 42px;

}


html[dir="rtl"] .wedding-home2-hero-kicker::before {

    left: auto;

    right: 0;

}


html[dir="rtl"] .wedding-home2-hero-editorial {

    border-left: 0;

    border-right: 1px solid rgba(255, 255, 255, .25);

}


html[dir="rtl"] .wedding-home2-hero-primary {

    flex-direction: row-reverse;

}


html[dir="rtl"] .wedding-home2-hero-primary:hover i {

    transform: translateX(-4px);

}


html[dir="rtl"] .wedding-home2-hero-bottom-left {

    flex-direction: row-reverse;

}


html[dir="rtl"] .wedding-home2-hero-bottom-right {

    flex-direction: row-reverse;

}


@media (max-width: 768px) {

    html[dir="rtl"] .wedding-home2-hero-overlay {

        background:
            linear-gradient(180deg,
                rgba(25, 18, 15, .45) 0%,
                rgba(25, 18, 15, .88) 72%,
                rgba(25, 18, 15, .96) 100%);

    }


    html[dir="rtl"] .wedding-home2-hero-kicker {

        padding-right: 30px;

    }

}


/* =====================================================
   HOME 2 – OUR APPROACH
===================================================== */

.wedding-home2-approach {
    padding: 100px 20px;
    background: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wedding-home2-approach-wrap {
    max-width: 1180px;
    margin: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 90px;
}

.wedding-home2-approach-label {
    font: 600 12px Arial, sans-serif;
    letter-spacing: 2px;
    color: #b8896b;
}

.wedding-home2-approach-intro h2 {
    margin: 18px 0;
    font-size: clamp(36px, 4vw, 58px);
    line-height: 1.08;
    font-weight: 500;
    color: #30241f;
}

.wedding-home2-approach-intro h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-approach-intro p {
    max-width: 480px;
    margin: 0 0 28px;
    font: 400 13px/1.8 Arial, sans-serif;
    color: #70655e;
}

.wedding-home2-approach-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #30241f;
    text-decoration: none;
    font: 600 12px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-approach-link i {
    color: #b8896b;
}

.wedding-home2-approach-points {
    border-top: 1px solid #dcd2cb;
}

.wedding-home2-approach-point {
    display: grid;
    grid-template-columns: 45px 1fr;
    gap: 20px;
    padding: 28px 0;
    border-bottom: 1px solid #dcd2cb;
}

.wedding-home2-approach-point>span {
    color: #b8896b;
    font: 500 13px Arial, sans-serif;
}

.wedding-home2-approach-point h3 {
    margin: 0 0 8px;
    font-size: 21px;
    font-weight: 500;
    color: #30241f;
}

.wedding-home2-approach-point p {
    margin: 0;
    font: 400 13px/1.7 Arial, sans-serif;
    color: #756b64;
}


/* =====================================================
   ANIMATION
===================================================== */

.wedding-home2-approach-intro,
.wedding-home2-approach-point {
    animation: home2ApproachReveal .8s ease both;
}

.wedding-home2-approach-point:nth-child(2) {
    animation-delay: .15s;
}

.wedding-home2-approach-point:nth-child(3) {
    animation-delay: .3s;
}

@keyframes home2ApproachReveal {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 768px) {

    .wedding-home2-approach {
        padding: 70px 18px;
    }

    .wedding-home2-approach-wrap {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .wedding-home2-approach-intro h2 {
        font-size: 38px;
    }
}

/* =====================================================
   HOME 2 – DECORATION SERVICE
===================================================== */

.wedding-home2-decoration {
    padding: 95px 20px;
    background: #f8f1ed;
    font-family: "Playfair Display", serif;
}

.wedding-home2-decoration-wrap {
    max-width: 1180px;
    margin: auto;
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 65px;
}

.wedding-home2-decoration-number {
    color: #b8896b;
    font: 600 12px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-decoration-number span {
    font-size: 30px;
}

.wedding-home2-decoration-number div {
    width: 45px;
    height: 1px;
    margin: 14px 0;
    background: #b8896b;
}

.wedding-home2-decoration-number small {
    writing-mode: vertical-rl;
    font-size: 10px;
}

.wedding-home2-decoration-heading {
    max-width: 650px;
}

.wedding-home2-decoration-heading>span {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-decoration-heading h2 {
    margin: 15px 0;
    color: #30241f;
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1.05;
    font-weight: 500;
}

.wedding-home2-decoration-heading h2 em {
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-decoration-heading p {
    max-width: 530px;
    margin: 0;
    color: #716760;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-decoration-list {
    margin-top: 50px;
    border-top: 1px solid #d9cec7;
}

.wedding-home2-decoration-item {
    display: grid;
    grid-template-columns: 45px 1fr 25px;
    align-items: center;
    gap: 18px;
    padding: 25px 0;
    border-bottom: 1px solid #d9cec7;
}

.wedding-home2-decoration-item>span {
    color: #b8896b;
    font: 500 12px Arial, sans-serif;
}

.wedding-home2-decoration-item h3 {
    margin: 0 0 6px;
    color: #30241f;
    font-size: 20px;
    font-weight: 500;
}

.wedding-home2-decoration-item p {
    margin: 0;
    color: #766b64;
    font: 400 12px/1.7 Arial, sans-serif;
}

.wedding-home2-decoration-item i {
    color: #b8896b;
    font-size: 11px;
}

.wedding-home2-decoration-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 30px;
    color: #30241f;
    text-decoration: none;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-decoration-link i {
    color: #b8896b;
}


/* =====================================================
   ENTRANCE ANIMATION
===================================================== */

.wedding-home2-decoration-main,
.wedding-home2-decoration-number {
    animation: decorationReveal .8s ease both;
}

.wedding-home2-decoration-item {
    animation: decorationReveal .7s ease both;
}

.wedding-home2-decoration-item:nth-child(2) {
    animation-delay: .12s;
}

.wedding-home2-decoration-item:nth-child(3) {
    animation-delay: .24s;
}

@keyframes decorationReveal {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 700px) {

    .wedding-home2-decoration {
        padding: 70px 18px;
    }

    .wedding-home2-decoration-wrap {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .wedding-home2-decoration-number small {
        writing-mode: horizontal-tb;
        margin-left: 10px;
    }

    .wedding-home2-decoration-heading h2 {
        font-size: 40px;
    }

    .wedding-home2-decoration-item {
        grid-template-columns: 35px 1fr;
    }

    .wedding-home2-decoration-item i {
        display: none;
    }
}

/* =====================================================
   HOME 2 – WEDDING PLANNING
===================================================== */

.wedding-home2-planning {
    padding: 100px 20px;
    background: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wedding-home2-planning-wrap {
    max-width: 1180px;
    margin: auto;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    align-items: center;
    gap: 0;
}

.wedding-home2-planning-image {
    position: relative;
    height: 560px;
    overflow: hidden;
}

.wedding-home2-planning-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.wedding-home2-planning-image-label {
    position: absolute;
    left: 25px;
    bottom: 25px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
}

.wedding-home2-planning-image-label span {
    font: 500 24px "Playfair Display", serif;
}

.wedding-home2-planning-image-label small {
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, .6);
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-planning-card {
    position: relative;
    z-index: 2;
    margin-left: -70px;
    padding: 55px 50px;
    background: #f8f1ed;
}

.wedding-home2-planning-kicker {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-planning-card h2 {
    margin: 16px 0;
    color: #30241f;
    font-size: clamp(35px, 4vw, 54px);
    line-height: 1.08;
    font-weight: 500;
}

.wedding-home2-planning-card h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-planning-card>p {
    margin: 0;
    color: #716760;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-planning-details {
    margin: 30px 0;
    border-top: 1px solid #d8cbc3;
}

.wedding-home2-planning-details div {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 14px 0;
    border-bottom: 1px solid #d8cbc3;
}

.wedding-home2-planning-details strong {
    color: #b8896b;
    font: 500 12px Arial, sans-serif;
}

.wedding-home2-planning-details span {
    color: #30241f;
    font: 500 13px Arial, sans-serif;
}

.wedding-home2-planning-button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #30241f;
    text-decoration: none;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-planning-button i {
    color: #b8896b;
}


/* ANIMATION */

.wedding-home2-planning-image,
.wedding-home2-planning-card {
    animation: planningReveal .8s ease both;
}

.wedding-home2-planning-card {
    animation-delay: .15s;
}

@keyframes planningReveal {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 768px) {

    .wedding-home2-planning {
        padding: 70px 18px;
    }

    .wedding-home2-planning-wrap {
        grid-template-columns: 1fr;
    }

    .wedding-home2-planning-image {
        height: 380px;
    }

    .wedding-home2-planning-card {
        margin: -30px 15px 0;
        padding: 35px 25px;
    }

}

/* =====================================================
   HOME 2 – STYLING GALLERY
===================================================== */

.wedding-home2-gallery {
    padding: 100px 20px;
    background: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wedding-home2-gallery-head {
    max-width: 1180px;
    margin: 0 auto 55px;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 50px;
}

.wedding-home2-gallery-head span {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-gallery-head h2 {
    max-width: 620px;
    margin: 15px 0 0;
    color: #30241f;
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.05;
    font-weight: 500;
}

.wedding-home2-gallery-head h2 em {
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-gallery-head p {
    max-width: 350px;
    margin: 0;
    color: #716760;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-gallery-grid {
    max-width: 1180px;
    margin: auto;
    display: grid;
    grid-template-columns: 1.2fr .8fr .8fr;
    gap: 14px;
}

.wedding-home2-gallery-item {
    position: relative;
    height: 280px;
    overflow: hidden;
}

.wedding-home2-gallery-large {
    grid-row: span 2;
    height: 574px;
}

.wedding-home2-gallery-wide {
    grid-column: span 2;
}

.wedding-home2-gallery-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .6s ease;
}

.wedding-home2-gallery-item:hover img {
    transform: scale(1.05);
}

.wedding-home2-gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top,
            rgba(25, 18, 15, .55),
            transparent 55%);
}

.wedding-home2-gallery-item span {
    position: absolute;
    z-index: 2;
    left: 18px;
    bottom: 16px;
    color: #fff;
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-gallery-bottom {
    max-width: 1180px;
    margin: 28px auto 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wedding-home2-gallery-bottom span {
    color: #8b7b71;
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-gallery-bottom a {
    color: #30241f;
    text-decoration: none;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-gallery-bottom i {
    margin-left: 8px;
    color: #b8896b;
}


/* ANIMATION */

.wedding-home2-gallery-head,
.wedding-home2-gallery-item,
.wedding-home2-gallery-bottom {
    animation: home2GalleryReveal .8s ease both;
}

.wedding-home2-gallery-item:nth-child(2) {
    animation-delay: .1s;
}

.wedding-home2-gallery-item:nth-child(3) {
    animation-delay: .18s;
}

.wedding-home2-gallery-item:nth-child(4) {
    animation-delay: .26s;
}

.wedding-home2-gallery-item:nth-child(5) {
    animation-delay: .34s;
}

.wedding-home2-gallery-item:nth-child(6) {
    animation-delay: .42s;
}

@keyframes home2GalleryReveal {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 768px) {

    .wedding-home2-gallery {
        padding: 70px 18px;
    }

    .wedding-home2-gallery-head {
        display: block;
        margin-bottom: 35px;
    }

    .wedding-home2-gallery-head p {
        margin-top: 20px;
    }

    .wedding-home2-gallery-grid {
        grid-template-columns: 1fr 1fr;
    }

    .wedding-home2-gallery-large {
        grid-row: span 1;
        height: 300px;
    }

    .wedding-home2-gallery-wide {
        grid-column: span 2;
    }

    .wedding-home2-gallery-item {
        height: 230px;
    }
}

@media (max-width: 480px) {

    .wedding-home2-gallery-grid {
        grid-template-columns: 1fr;
    }

    .wedding-home2-gallery-large,
    .wedding-home2-gallery-wide {
        grid-column: span 1;
    }

    .wedding-home2-gallery-item {
        height: 280px;
    }

    .wedding-home2-gallery-bottom {
        display: block;
    }

    .wedding-home2-gallery-bottom a {
        display: inline-block;
        margin-top: 15px;
    }
}

/* =====================================================
   HOME 2 – WEDDING EXPERIENCE
===================================================== */

.wedding-home2-experience {
    padding: 100px 20px;
    background: #30241f;
    color: #fff;
    font-family: "Playfair Display", serif;
}

.wedding-home2-experience-wrap {
    max-width: 1180px;
    margin: auto;
}

.wedding-home2-experience-head {
    max-width: 650px;
}

.wedding-home2-experience-head>span {
    color: #c39575;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-experience-head h2 {
    margin: 16px 0;
    font-size: clamp(40px, 5vw, 62px);
    line-height: 1.05;
    font-weight: 500;
}

.wedding-home2-experience-head h2 em {
    color: #c39575;
    font-style: italic;
}

.wedding-home2-experience-head p {
    max-width: 520px;
    color: #c9bdb5;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-experience-line {
    position: relative;
    margin-top: 80px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.wedding-home2-experience-line::before {
    content: "";
    position: absolute;
    top: 35px;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(255, 255, 255, .2);
}

.wedding-home2-experience-step {
    position: relative;
    padding-right: 35px;
}

.wedding-home2-experience-step>span {
    color: #c39575;
    font: 500 12px Arial, sans-serif;
}

.wedding-home2-experience-dot {
    position: relative;
    z-index: 2;
    width: 9px;
    height: 9px;
    margin: 19px 0 28px;
    border: 2px solid #c39575;
    border-radius: 50%;
    background: #30241f;
}

.wedding-home2-experience-step h3 {
    margin: 0 0 10px;
    font-size: 23px;
    font-weight: 500;
}

.wedding-home2-experience-step p {
    margin: 0;
    max-width: 220px;
    color: #b7aaa2;
    font: 400 12px/1.8 Arial, sans-serif;
}

.wedding-home2-experience-footer {
    margin-top: 65px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wedding-home2-experience-footer>span {
    color: #998b83;
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-experience-footer a {
    color: #fff;
    text-decoration: none;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-experience-footer i {
    margin-left: 8px;
    color: #c39575;
}


/* ANIMATION */

.wedding-home2-experience-head,
.wedding-home2-experience-step,
.wedding-home2-experience-footer {
    animation: experienceReveal .8s ease both;
}

.wedding-home2-experience-step:nth-child(2) {
    animation-delay: .12s;
}

.wedding-home2-experience-step:nth-child(3) {
    animation-delay: .24s;
}

.wedding-home2-experience-step:nth-child(4) {
    animation-delay: .36s;
}

@keyframes experienceReveal {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 768px) {

    .wedding-home2-experience {
        padding: 70px 18px;
    }

    .wedding-home2-experience-line {
        grid-template-columns: 1fr;
        gap: 35px;
        margin-top: 50px;
    }

    .wedding-home2-experience-line::before {
        top: 0;
        bottom: 0;
        left: 4px;
        right: auto;
        width: 1px;
        height: auto;
    }

    .wedding-home2-experience-step {
        padding-left: 30px;
        padding-right: 0;
    }

    .wedding-home2-experience-dot {
        position: absolute;
        left: 0;
        top: 0;
        margin: 27px 0 0;
    }

    .wedding-home2-experience-footer {
        display: block;
    }

    .wedding-home2-experience-footer a {
        display: inline-block;
        margin-top: 18px;
    }
}

/* =====================================================
   HOME 2 – REAL WEDDING STORIES
===================================================== */

.wedding-home2-stories {
    padding: 100px 20px;
    background: #f8f1ed;
    font-family: "Playfair Display", serif;
}

.wedding-home2-stories-wrap {
    max-width: 1180px;
    margin: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
}

.wedding-home2-stories-image {
    position: relative;
    height: 610px;
    overflow: hidden;
}

.wedding-home2-stories-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wedding-home2-stories-image>span {
    position: absolute;
    left: 22px;
    bottom: 20px;
    color: #fff;
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-stories-content {
    padding: 45px 55px;
}

.wedding-home2-stories-kicker {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-stories-quote {
    margin-top: 25px;
    color: #b8896b;
    font-size: 65px;
    line-height: .5;
}

.wedding-home2-stories-content h2 {
    max-width: 500px;
    margin: 18px 0;
    color: #30241f;
    font-size: clamp(36px, 4vw, 54px);
    line-height: 1.08;
    font-weight: 500;
}

.wedding-home2-stories-content h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-stories-content>p {
    max-width: 470px;
    margin: 0;
    color: #716760;
    font: 400 13px/1.9 Arial, sans-serif;
}

.wedding-home2-stories-couple {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 30px 0;
}

.wedding-home2-stories-couple img {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
}

.wedding-home2-stories-couple strong,
.wedding-home2-stories-couple span {
    display: block;
}

.wedding-home2-stories-couple strong {
    color: #30241f;
    font: 600 13px Arial, sans-serif;
}

.wedding-home2-stories-couple span {
    margin-top: 5px;
    color: #897b72;
    font: 400 11px Arial, sans-serif;
}

.wedding-home2-stories-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #30241f;
    text-decoration: none;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 1.4px;
}

.wedding-home2-stories-link i {
    color: #b8896b;
}


/* ANIMATION */

.wedding-home2-stories-image,
.wedding-home2-stories-content {
    animation: storiesReveal .8s ease both;
}

.wedding-home2-stories-content {
    animation-delay: .15s;
}

@keyframes storiesReveal {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 768px) {

    .wedding-home2-stories {
        padding: 70px 18px;
    }

    .wedding-home2-stories-wrap {
        grid-template-columns: 1fr;
    }

    .wedding-home2-stories-image {
        height: 430px;
    }

    .wedding-home2-stories-content {
        padding: 40px 15px 10px;
    }

}

/* =====================================================
   HOME 2 – WEDDING PACKAGES
===================================================== */

.wedding-home2-packages {
    padding: 100px 20px;
    background: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wedding-home2-packages-head {
    max-width: 650px;
    margin: 0 auto 55px;
    text-align: center;
}

.wedding-home2-packages-head>span {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-packages-head h2 {
    margin: 15px 0;
    color: #30241f;
    font-size: clamp(38px, 5vw, 60px);
    line-height: 1.05;
    font-weight: 500;
}

.wedding-home2-packages-head h2 em {
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-packages-head p {
    margin: 0 auto;
    max-width: 480px;
    color: #716760;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-packages-grid {
    max-width: 1100px;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
}

.wedding-home2-package {
    position: relative;
    padding: 38px 32px;
    border: 1px solid #ddd2ca;
    background: #fffaf7;
}

.wedding-home2-package-featured {
    z-index: 2;
    margin: -15px 0;
    padding-top: 53px;
    padding-bottom: 53px;
    background: #30241f;
    border-color: #30241f;
}

.wedding-home2-package-badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 7px 14px;
    background: #b8896b;
    color: #fff;
    white-space: nowrap;
    font: 600 9px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-package-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 35px;
}

.wedding-home2-package-top span {
    color: #b8896b;
    font: 500 13px Arial, sans-serif;
}

.wedding-home2-package-top small {
    color: #8a7970;
    font: 600 9px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-package h3 {
    margin: 0 0 12px;
    color: #30241f;
    font-size: 31px;
    font-weight: 500;
}

.wedding-home2-package p {
    min-height: 65px;
    margin: 0;
    color: #716760;
    font: 400 12px/1.8 Arial, sans-serif;
}

.wedding-home2-package-line {
    height: 1px;
    margin: 25px 0;
    background: #ddd2ca;
}

.wedding-home2-package ul {
    margin: 0 0 30px;
    padding: 0;
    list-style: none;
}

.wedding-home2-package li {
    position: relative;
    margin: 12px 0;
    padding-left: 16px;
    color: #625850;
    font: 400 12px Arial, sans-serif;
}

.wedding-home2-package li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: #b8896b;
}

.wedding-home2-package a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #30241f;
    text-decoration: none;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 1.3px;
}

.wedding-home2-package a i {
    color: #b8896b;
}


/* FEATURED */

.wedding-home2-package-featured h3,
.wedding-home2-package-featured a {
    color: #fff;
}

.wedding-home2-package-featured p,
.wedding-home2-package-featured li {
    color: #c5b9b1;
}

.wedding-home2-package-featured .wedding-home2-package-line {
    background: rgba(255, 255, 255, .15);
}


/* ANIMATION */

.wedding-home2-package {
    animation: packageReveal .8s ease both;
}

.wedding-home2-package:nth-child(2) {
    animation-delay: .15s;
}

.wedding-home2-package:nth-child(3) {
    animation-delay: .3s;
}

@keyframes packageReveal {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 800px) {

    .wedding-home2-packages {
        padding: 70px 18px;
    }

    .wedding-home2-packages-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .wedding-home2-package-featured {
        margin: 0;
        padding-top: 38px;
        padding-bottom: 38px;
    }

}


/* =====================================================
   HOME 2 – VENDOR NETWORK
===================================================== */

.wedding-home2-vendors {
    padding: 100px 20px;
    background: #f8f1ed;
    font-family: "Playfair Display", serif;
}

.wedding-home2-vendors-wrap {
    max-width: 1180px;
    margin: auto;
}

.wedding-home2-vendors-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 50px;
    margin-bottom: 50px;
}

.wedding-home2-vendors-head span {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-vendors-head h2 {
    margin: 15px 0 0;
    color: #30241f;
    font-size: clamp(38px, 5vw, 60px);
    line-height: 1.05;
    font-weight: 500;
}

.wedding-home2-vendors-head h2 em {
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-vendors-head>p {
    max-width: 330px;
    margin: 0;
    color: #716760;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-vendors-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.wedding-home2-vendor {
    display: block;
    color: inherit;
    text-decoration: none;
    background: #fffaf7;
}

.wedding-home2-vendor-image {
    height: 260px;
    overflow: hidden;
}

.wedding-home2-vendor-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .6s ease;
}

.wedding-home2-vendor:hover img {
    transform: scale(1.06);
}

.wedding-home2-vendor-content {
    position: relative;
    min-height: 125px;
    padding: 20px;
}

.wedding-home2-vendor-content>span {
    color: #b8896b;
    font: 500 11px Arial, sans-serif;
}

.wedding-home2-vendor-content h3 {
    margin: 8px 0 5px;
    color: #30241f;
    font-size: 19px;
    font-weight: 500;
}

.wedding-home2-vendor-content p {
    margin: 0;
    color: #81756e;
    font: 400 11px Arial, sans-serif;
}

.wedding-home2-vendor-content i {
    position: absolute;
    right: 18px;
    bottom: 20px;
    color: #b8896b;
    font-size: 11px;
}

.wedding-home2-vendors-bottom {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #d8cbc3;
    display: flex;
    justify-content: space-between;
}

.wedding-home2-vendors-bottom span {
    color: #897b72;
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-vendors-bottom a {
    color: #30241f;
    text-decoration: none;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-vendors-bottom i {
    margin-left: 8px;
    color: #b8896b;
}


/* ANIMATION */

.wedding-home2-vendor {
    animation: vendorReveal .8s ease both;
}

.wedding-home2-vendor:nth-child(2) {
    animation-delay: .1s;
}

.wedding-home2-vendor:nth-child(3) {
    animation-delay: .2s;
}

.wedding-home2-vendor:nth-child(4) {
    animation-delay: .3s;
}

@keyframes vendorReveal {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .wedding-home2-vendors-list {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 600px) {

    .wedding-home2-vendors {
        padding: 70px 18px;
    }

    .wedding-home2-vendors-head {
        display: block;
    }

    .wedding-home2-vendors-head>p {
        margin-top: 20px;
    }

    .wedding-home2-vendors-list {
        grid-template-columns: 1fr;
    }

    .wedding-home2-vendor-image {
        height: 300px;
    }

    .wedding-home2-vendors-bottom {
        display: block;
    }

    .wedding-home2-vendors-bottom a {
        display: inline-block;
        margin-top: 15px;
    }

}

/* =====================================================
   HOME 2 – WHAT WE TAKE CARE OF
===================================================== */

.wedding-home2-care {
    padding: 100px 20px;
    background: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wedding-home2-care-wrap {
    max-width: 1180px;
    margin: auto;
}

.wedding-home2-care-head {
    max-width: 750px;
}

.wedding-home2-care-head span {
    color: #b8896b;
    font: 600 11px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-care-head h2 {
    margin: 16px 0 45px;
    color: #30241f;
    font-size: clamp(40px, 5vw, 64px);
    line-height: 1.05;
    font-weight: 500;
}

.wedding-home2-care-head h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-care-images {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 12px;
}

.wedding-home2-care-images img {
    width: 100%;
    height: 260px;
    display: block;
    object-fit: cover;
}

.wedding-home2-care-list {
    margin-top: 45px;
    border-top: 1px solid #ddd2ca;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.wedding-home2-care-item {
    min-height: 190px;
    padding: 22px 18px;
    border-right: 1px solid #ddd2ca;
}

.wedding-home2-care-item:last-child {
    border-right: 0;
}

.wedding-home2-care-item>span {
    color: #b8896b;
    font: 500 11px Arial, sans-serif;
}

.wedding-home2-care-item h3 {
    margin: 22px 0 10px;
    color: #30241f;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 500;
}

.wedding-home2-care-item p {
    margin: 0;
    color: #766b64;
    font: 400 11px/1.7 Arial, sans-serif;
}

.wedding-home2-care-bottom {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #ddd2ca;
    display: flex;
    justify-content: space-between;
}

.wedding-home2-care-bottom span {
    color: #897b72;
    font: 500 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-care-bottom a {
    color: #30241f;
    text-decoration: none;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-care-bottom i {
    margin-left: 8px;
    color: #b8896b;
}


/* ANIMATION */

.wedding-home2-care-head,
.wedding-home2-care-images,
.wedding-home2-care-item,
.wedding-home2-care-bottom {
    animation: careReveal .8s ease both;
}

.wedding-home2-care-item:nth-child(2) {
    animation-delay: .1s;
}

.wedding-home2-care-item:nth-child(3) {
    animation-delay: .2s;
}

.wedding-home2-care-item:nth-child(4) {
    animation-delay: .3s;
}

.wedding-home2-care-item:nth-child(5) {
    animation-delay: .4s;
}

@keyframes careReveal {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .wedding-home2-care-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .wedding-home2-care-item {
        border-bottom: 1px solid #ddd2ca;
    }

}

@media (max-width: 600px) {

    .wedding-home2-care {
        padding: 70px 18px;
    }

    .wedding-home2-care-images {
        grid-template-columns: 1fr;
    }

    .wedding-home2-care-images img {
        height: 280px;
    }

    .wedding-home2-care-list {
        grid-template-columns: 1fr;
    }

    .wedding-home2-care-item {
        border-right: 0;
    }

    .wedding-home2-care-bottom {
        display: block;
    }

    .wedding-home2-care-bottom a {
        display: inline-block;
        margin-top: 15px;
    }

}

/* =====================================================
   HOME 2 – FAQ
===================================================== */

.wedding-home2-faq {
    padding: 105px 20px;
    background: #f8f1ed;
    font-family: "Playfair Display", serif;
}

.wedding-home2-faq-wrap {
    max-width: 1180px;
    margin: auto;
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 90px;
}

.wedding-home2-faq-intro {
    position: sticky;
    top: 110px;
    align-self: start;
}

.wedding-home2-faq-label {
    color: #b8896b;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-faq-intro h2 {
    margin: 18px 0;
    color: #30241f;
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1.08;
    font-weight: 500;
}

.wedding-home2-faq-intro h2 em {
    display: block;
    color: #b8896b;
    font-style: italic;
}

.wedding-home2-faq-intro p {
    max-width: 380px;
    margin: 0 0 28px;
    color: #756b65;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-faq-intro a {
    color: #30241f;
    text-decoration: none;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 1.5px;
}

.wedding-home2-faq-intro a i {
    margin-left: 8px;
    color: #b8896b;
}

.wedding-home2-faq-content {
    border-top: 1px solid #d8cdc5;
}

.wedding-home2-faq-row {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 25px;
    padding: 28px 0;
    border-bottom: 1px solid #d8cdc5;
}

.wedding-home2-faq-row>span {
    color: #b8896b;
    font: 500 11px Arial, sans-serif;
}

.wedding-home2-faq-row h3 {
    margin: 0 0 10px;
    color: #30241f;
    font-size: 19px;
    font-weight: 500;
}

.wedding-home2-faq-row p {
    max-width: 620px;
    margin: 0;
    color: #766c66;
    font: 400 12px/1.75 Arial, sans-serif;
}


/* ENTRANCE */

.wedding-home2-faq-intro,
.wedding-home2-faq-row {
    animation: weddingFaqReveal .8s ease both;
}

.wedding-home2-faq-row:nth-child(2) {
    animation-delay: .1s;
}

.wedding-home2-faq-row:nth-child(3) {
    animation-delay: .2s;
}

.wedding-home2-faq-row:nth-child(4) {
    animation-delay: .3s;
}

.wedding-home2-faq-row:nth-child(5) {
    animation-delay: .4s;
}

@keyframes weddingFaqReveal {
    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* RESPONSIVE */

@media (max-width: 850px) {

    .wedding-home2-faq-wrap {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .wedding-home2-faq-intro {
        position: static;
    }

}

@media (max-width: 600px) {

    .wedding-home2-faq {
        padding: 75px 18px;
    }

    .wedding-home2-faq-row {
        grid-template-columns: 30px 1fr;
        gap: 15px;
    }

    .wedding-home2-faq-row h3 {
        font-size: 17px;
    }

}

/* =====================================================
   HOME 2 – FINAL CONSULTATION
===================================================== */

.wedding-home2-consultation {
    padding: 100px 20px 70px;
    background: #30241f;
    color: #fffaf7;
    font-family: "Playfair Display", serif;
}

.wedding-home2-consultation-wrap {
    max-width: 1180px;
    margin: auto;
}

.wedding-home2-consultation-top {
    display: flex;
    align-items: center;
    gap: 18px;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.wedding-home2-consultation-number {
    color: #c39575;
    font: 500 11px Arial, sans-serif;
}

.wedding-home2-consultation-label {
    color: #c9bbb2;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-consultation-main {
    padding: 65px 0 80px;
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: 80px;
    align-items: end;
}

.wedding-home2-consultation-heading>span {
    color: #c39575;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 2px;
}

.wedding-home2-consultation-heading h2 {
    max-width: 720px;
    margin: 18px 0 0;
    font-size: clamp(44px, 6vw, 78px);
    line-height: 1;
    font-weight: 500;
}

.wedding-home2-consultation-heading h2 em {
    display: block;
    color: #c39575;
    font-style: italic;
}

.wedding-home2-consultation-side p {
    margin: 0 0 28px;
    color: #c5b9b1;
    font: 400 13px/1.8 Arial, sans-serif;
}

.wedding-home2-consultation-button {
    min-height: 52px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    gap: 18px;
    color: #30241f;
    background: #c39575;
    text-decoration: none;
    font: 600 10px Arial, sans-serif;
    letter-spacing: 1.3px;
    transition: .3s ease;
}

.wedding-home2-consultation-button i {
    font-size: 11px;
}

.wedding-home2-consultation-button:hover {
    background: #fffaf7;
    transform: translateY(-3px);
}

.wedding-home2-consultation-bottom {
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .16);
    display: grid;
    grid-template-columns: repeat(3, 1fr) auto;
    gap: 20px;
}

.wedding-home2-consultation-bottom>div {
    display: flex;
    align-items: center;
    gap: 14px;
}

.wedding-home2-consultation-bottom span {
    color: #c39575;
    font: 500 10px Arial, sans-serif;
}

.wedding-home2-consultation-bottom p {
    margin: 0;
    color: #b9ada5;
    font: 600 9px Arial, sans-serif;
    letter-spacing: 1px;
}

.wedding-home2-consultation-mark {
    justify-content: flex-end;
}

.wedding-home2-consultation-mark i {
    color: #c39575;
    font-size: 16px;
}

.wedding-home2-consultation-mark span {
    color: #fffaf7;
    letter-spacing: 2px;
}


/* ENTRANCE */

.wedding-home2-consultation-top,
.wedding-home2-consultation-heading,
.wedding-home2-consultation-side,
.wedding-home2-consultation-bottom {
    animation: weddingConsultReveal .8s ease both;
}

.wedding-home2-consultation-side {
    animation-delay: .15s;
}

.wedding-home2-consultation-bottom {
    animation-delay: .25s;
}

@keyframes weddingConsultReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* RESPONSIVE */

@media (max-width: 850px) {

    .wedding-home2-consultation-main {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .wedding-home2-consultation-bottom {
        grid-template-columns: 1fr 1fr;
    }

    .wedding-home2-consultation-mark {
        justify-content: flex-start;
    }

}

@media (max-width: 600px) {

    .wedding-home2-consultation {
        padding: 75px 18px 45px;
    }

    .wedding-home2-consultation-main {
        padding: 50px 0 60px;
    }

    .wedding-home2-consultation-bottom {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .wedding-home2-consultation-button {
        width: 100%;
        justify-content: space-between;
    }

}

/* =========================================================
   EVERAFTER CLIENT DASHBOARD
========================================================= */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');


/* =========================================================
   ROOT
========================================================= */

:root {

    --dashboard-bg: #f5f1ed;

    --dashboard-surface: #fffdf9;

    --dashboard-soft: #f1e9e3;

    --dashboard-soft-2: #f8f4f0;

    --dashboard-line: #ded4cc;

    --dashboard-text: #30241f;

    --dashboard-muted: #81756d;

    --dashboard-accent: #b8896b;

    --dashboard-accent-dark: #956b52;

    --dashboard-green: #648b72;

    --dashboard-yellow: #b88652;

    --dashboard-red: #ae6464;

    --dashboard-sidebar: #fffaf7;

    --dashboard-shadow:
        0 20px 60px rgba(48, 36, 31, .07);

}


/* =========================================================
   RESET
========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {

    width: 100%;

    min-height: 100vh;

    background: var(--dashboard-bg);

    color: var(--dashboard-text);

    font-family: "DM Sans", sans-serif;

    font-size: 13px;

    font-weight: 400;

    overflow-x: hidden;

}


button,
input,
textarea,
select {
    font: inherit;
}


button {
    border: 0;
}


a {
    color: inherit;
    text-decoration: none;
}


img {
    max-width: 100%;
    display: block;
}


/* =========================================================
   DASHBOARD
========================================================= */

.wedding-dashboard {

    min-height: 100vh;

    width: 100%;

}


/* =========================================================
   SIDEBAR
========================================================= */

.wedding-dashboard-sidebar {

    position: fixed;

    top: 0;
    left: 0;

    width: 292px;

    height: 100vh;

    padding: 30px 22px 24px;

    background: var(--dashboard-sidebar);

    border-right: 1px solid var(--dashboard-line);

    display: flex;

    flex-direction: column;

    z-index: 9999;

    transition:
        transform .35s ease;

}


/* =========================================================
   BRAND
========================================================= */

.wedding-dashboard-brand {

    padding: 0 10px 25px;

    border-bottom: 1px solid var(--dashboard-line);

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

}


.wedding-dashboard-sidebar-close {

    display: none;

    width: 34px;
    height: 34px;

    align-items: center;
    justify-content: center;

    border: 1px solid var(--dashboard-line);

    border-radius: 50%;

    background: transparent;

    color: var(--dashboard-muted);

    cursor: pointer;

}


.wedding-dashboard-sidebar-close:hover {

    background: var(--dashboard-soft);

    color: var(--dashboard-accent-dark);

}


.wedding-dashboard-logo {

    display: flex;

    align-items: center;

    gap: 12px;

}


.wedding-dashboard-logo-mark {

    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    border-radius: 50%;

    background: var(--dashboard-accent);

    color: #fff;

    display: flex;

    align-items: center;
    justify-content: center;

}


.wedding-dashboard-logo-mark i {

    font-size: 15px;

}


.wedding-dashboard-logo-content {

    display: flex;

    flex-direction: column;

}


.wedding-dashboard-logo-content strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 18px;

    font-weight: 600;

    line-height: 1.1;

}


.wedding-dashboard-logo-content small {

    margin-top: 5px;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 2px;

    color: var(--dashboard-muted);

}


/* =========================================================
   CLIENT
========================================================= */

.wedding-dashboard-client {

    padding: 22px 8px;

    display: flex;

    align-items: center;

    gap: 12px;

}


.wedding-dashboard-client-avatar {

    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    border-radius: 50%;

    background: #efe2d9;

    color: var(--dashboard-accent-dark);

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 11px;

    font-weight: 700;

}


.wedding-dashboard-client-info {

    min-width: 0;

    display: flex;

    flex-direction: column;

}


.wedding-dashboard-client-info strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 13px;

    font-weight: 600;

}


.wedding-dashboard-client-info span {

    margin-top: 4px;

    color: var(--dashboard-muted);

    font-size: 10px;

}


/* =========================================================
   NAV TITLE
========================================================= */

.wedding-dashboard-nav-title {

    padding: 2px 10px 12px;

    color: var(--dashboard-muted);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 2px;

}


/* =========================================================
   NAV
========================================================= */

.wedding-dashboard-nav {

    display: flex;

    flex-direction: column;

    gap: 4px;

}


.wedding-dashboard-nav-link {

    min-height: 42px;

    padding: 0 12px;

    display: flex;

    align-items: center;

    gap: 13px;

    border-radius: 7px;

    color: var(--dashboard-muted);

    transition:
        background .25s ease,
        color .25s ease;

}


.wedding-dashboard-nav-link i {

    width: 15px;

    text-align: center;

    font-size: 12px;

}


.wedding-dashboard-nav-link span {

    flex: 1;

    font-size: 11px;

    font-weight: 500;

}


.wedding-dashboard-nav-link b {

    min-width: 18px;
    height: 18px;

    border-radius: 50%;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 8px;

    font-weight: 700;

    background: var(--dashboard-soft);

    color: var(--dashboard-accent-dark);

}


.wedding-dashboard-nav-link:hover {

    color: var(--dashboard-accent-dark);

    background: var(--dashboard-soft);

}


.wedding-dashboard-nav-link.active {

    background: #efe4dc;

    color: var(--dashboard-accent-dark);

}


.wedding-dashboard-nav-link.active i {

    color: var(--dashboard-accent);

}


/* =========================================================
   SIDEBAR FOOTER
========================================================= */

.wedding-dashboard-sidebar-footer {

    margin-top: auto;

    padding-top: 16px;

    border-top: 1px solid var(--dashboard-line);

    display: flex;

    flex-direction: column;

    gap: 5px;

}


.wedding-dashboard-sidebar-link {

    min-height: 38px;

    padding: 0 10px;

    display: flex;

    align-items: center;

    gap: 12px;

    background: transparent;

    color: var(--dashboard-muted);

    cursor: pointer;

    border-radius: 6px;

    font-size: 10px;

    text-align: left;

}


.wedding-dashboard-sidebar-link:hover {

    background: var(--dashboard-soft);

    color: var(--dashboard-accent-dark);

}


.wedding-dashboard-sidebar-link i {

    width: 14px;

    text-align: center;

}


/* =========================================================
   MAIN
========================================================= */

.wedding-dashboard-main {

    width: calc(100% - 292px);

    margin-left: 292px;

    min-height: 100vh;

}


/* =========================================================
   TOPBAR
========================================================= */

.wedding-dashboard-topbar {

    height: 82px;

    padding: 0 38px;

    background: rgba(255, 253, 249, .94);

    border-bottom: 1px solid var(--dashboard-line);

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    position: sticky;

    top: 0;

    z-index: 1000;

    backdrop-filter: blur(15px);

}


.wedding-dashboard-topbar-left {

    display: flex;

    align-items: center;

    gap: 18px;

}


.wedding-dashboard-topbar-title {

    display: flex;

    flex-direction: column;

}


.wedding-dashboard-topbar-title span {

    color: var(--dashboard-muted);

    font-size: 8px;

    letter-spacing: 2px;

    font-weight: 700;

}


.wedding-dashboard-topbar-title strong {

    margin-top: 4px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 17px;

    font-weight: 600;

}


/* =========================================================
   MOBILE MENU
========================================================= */

.wedding-dashboard-mobile-menu {

    display: none;

    width: 38px;
    height: 38px;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    border: 1px solid var(--dashboard-line);

    background: transparent;

    color: var(--dashboard-text);

    cursor: pointer;

    position: relative;

}


.wedding-dashboard-menu-open {
    display: block !important;
}


.wedding-dashboard-menu-close {
    display: none !important;
}


.wedding-dashboard-mobile-menu.active {

    background: var(--dashboard-accent);

    border-color: var(--dashboard-accent);

    color: #fff;

}


.wedding-dashboard-mobile-menu.active .wedding-dashboard-menu-open {

    display: none !important;

}


.wedding-dashboard-mobile-menu.active .wedding-dashboard-menu-close {

    display: block !important;

}


/* =========================================================
   TOP ACTIONS
========================================================= */

.wedding-dashboard-topbar-actions {

    display: flex;

    align-items: center;

    gap: 8px;

}


.wedding-dashboard-welcome {

    padding-right: 16px;

    margin-right: 8px;

    border-right: 1px solid var(--dashboard-line);

    display: flex;

    flex-direction: column;

    align-items: flex-end;

}


.wedding-dashboard-welcome span {

    color: var(--dashboard-muted);

    font-size: 9px;

}


.wedding-dashboard-welcome strong {

    margin-top: 3px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 12px;

    font-weight: 600;

}


.wedding-dashboard-control,
.wedding-dashboard-notification {

    width: 34px;
    height: 34px;

    border: 1px solid var(--dashboard-line);

    border-radius: 50%;

    background: transparent;

    color: var(--dashboard-muted);

    display: flex;

    align-items: center;
    justify-content: center;

    cursor: pointer;

    transition:
        background .25s ease,
        color .25s ease;

}


.wedding-dashboard-control:hover,
.wedding-dashboard-notification:hover {

    background: var(--dashboard-soft);

    color: var(--dashboard-accent-dark);

}


.wedding-dashboard-rtl-button {

    border-radius: 7px;

    width: 38px;

    font-size: 9px;

    font-weight: 700;

}


.wedding-dashboard-notification {

    position: relative;

    margin-left: 4px;

}


.wedding-dashboard-notification span {

    position: absolute;

    top: 6px;
    right: 6px;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--dashboard-accent);

}


.wedding-dashboard-top-profile {

    margin-left: 7px;

}


.wedding-dashboard-top-profile div {

    width: 37px;
    height: 37px;

    border-radius: 50%;

    background: #eadbd1;

    color: var(--dashboard-accent-dark);

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 10px;

    font-weight: 700;

}


/* =========================================================
   CONTENT
========================================================= */

.wedding-dashboard-content {

    width: min(1320px, calc(100% - 76px));

    margin: 0 auto;

    padding: 48px 0 70px;

}


/* =========================================================
   PAGE INTRO
========================================================= */

.wedding-dashboard-page-intro {

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 40px;

    margin-bottom: 34px;

}


.wedding-dashboard-eyebrow {

    color: var(--dashboard-accent-dark);

    font-size: 9px;

    letter-spacing: 2px;

    font-weight: 700;

}


.wedding-dashboard-page-intro h1 {

    max-width: 680px;

    margin-top: 12px;

    font-family:
        "Playfair Display",
        serif;

    font-size: clamp(34px, 4vw, 54px);

    line-height: 1.08;

    font-weight: 500;

    letter-spacing: -.7px;

}


.wedding-dashboard-page-intro h1 em {

    color: var(--dashboard-accent);

    font-weight: 400;

}


.wedding-dashboard-page-intro p {

    max-width: 620px;

    margin-top: 15px;

    color: var(--dashboard-muted);

    font-size: 13px;

    line-height: 1.8;

}


.wedding-dashboard-date-card {

    min-width: 210px;

    padding: 20px;

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

}


.wedding-dashboard-date-card span {

    display: block;

    color: var(--dashboard-muted);

    font-size: 8px;

    letter-spacing: 1.8px;

    font-weight: 700;

}


.wedding-dashboard-date-card strong {

    display: block;

    margin-top: 8px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 16px;

    font-weight: 600;

}


.wedding-dashboard-date-card small {

    display: block;

    margin-top: 6px;

    color: var(--dashboard-accent-dark);

    font-size: 10px;

}


/* =========================================================
   STATS
========================================================= */

.wedding-dashboard-stats {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 15px;

    margin-bottom: 24px;

}


.wedding-dashboard-stat-card {

    padding: 22px;

    min-height: 125px;

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

    display: flex;

    align-items: flex-start;

    gap: 15px;

}


.wedding-dashboard-stat-icon {

    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    border-radius: 50%;

    background: var(--dashboard-soft);

    color: var(--dashboard-accent-dark);

    display: flex;

    align-items: center;
    justify-content: center;

}


.wedding-dashboard-stat-card span {

    display: block;

    color: var(--dashboard-muted);

    font-size: 10px;

}


.wedding-dashboard-stat-card strong {

    display: block;

    margin-top: 5px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 23px;

    font-weight: 600;

}


.wedding-dashboard-stat-card small {

    display: block;

    margin-top: 4px;

    color: var(--dashboard-muted);

    font-size: 9px;

}


/* =========================================================
   FEATURE GRID
========================================================= */

.wedding-dashboard-feature-grid {

    display: grid;

    grid-template-columns:
        1.1fr .9fr;

    gap: 18px;

    margin-bottom: 65px;

}


.wedding-dashboard-next-card,
.wedding-dashboard-progress-card {

    min-height: 310px;

    padding: 30px;

    border-radius: 12px;

}


.wedding-dashboard-next-card {

    background:
        linear-gradient(135deg,
            #eee0d7,
            #f7eee9);

}


.wedding-dashboard-progress-card {

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

}


.wedding-dashboard-card-top {

    display: flex;

    justify-content: space-between;

    gap: 20px;

}


.wedding-dashboard-card-label {

    color: var(--dashboard-accent-dark);

    font-size: 8px;

    letter-spacing: 1.8px;

    font-weight: 700;

}


.wedding-dashboard-card-top h2 {

    max-width: 430px;

    margin-top: 10px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 28px;

    line-height: 1.15;

    font-weight: 500;

}


.wedding-dashboard-card-top h2 em {

    color: var(--dashboard-accent);

    font-weight: 400;

}


.wedding-dashboard-card-number {

    color: rgba(48, 36, 31, .3);

    font-family:
        "Playfair Display",
        serif;

    font-size: 26px;

}


.wedding-dashboard-next-content {

    margin-top: 35px;

    display: flex;

    align-items: center;

    gap: 18px;

}


.wedding-dashboard-next-icon {

    width: 58px;
    height: 58px;

    border-radius: 50%;

    background: #fffaf7;

    color: var(--dashboard-accent);

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 19px;

}


.wedding-dashboard-next-content strong {

    display: block;

    font-family:
        "Playfair Display",
        serif;

    font-size: 17px;

}


.wedding-dashboard-next-content p {

    max-width: 430px;

    margin-top: 6px;

    color: var(--dashboard-muted);

    line-height: 1.6;

}


.wedding-dashboard-next-content span {

    display: block;

    margin-top: 6px;

    color: var(--dashboard-accent-dark);

    font-size: 9px;

}


.wedding-dashboard-primary-button {

    width: fit-content;

    margin-top: 25px;

    padding: 11px 17px;

    display: flex;

    align-items: center;

    gap: 12px;

    background: var(--dashboard-accent);

    color: #fff;

    border-radius: 5px;

    font-size: 10px;

    font-weight: 600;

}


.wedding-dashboard-primary-button:hover {

    background: var(--dashboard-accent-dark);

}


.wedding-dashboard-progress-number {

    font-family:
        "Playfair Display",
        serif;

    font-size: 28px;

    font-weight: 500;

    color: var(--dashboard-accent);

}


.wedding-dashboard-progress-bar {

    width: 100%;

    height: 7px;

    margin-top: 30px;

    overflow: hidden;

    border-radius: 20px;

    background: var(--dashboard-soft);

}


.wedding-dashboard-progress-bar span {

    display: block;

    width: 51%;

    height: 100%;

    background: var(--dashboard-accent);

    border-radius: inherit;

}


.wedding-dashboard-progress-list {

    margin-top: 25px;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 16px;

}


.wedding-dashboard-progress-list div {

    padding-top: 12px;

    border-top: 1px solid var(--dashboard-line);

}


.wedding-dashboard-progress-list span {

    display: block;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.wedding-dashboard-progress-list strong {

    display: block;

    margin-top: 4px;

    font-size: 10px;

}


/* =========================================================
   SECTION
========================================================= */

.wedding-dashboard-section {

    margin-bottom: 65px;

}


.wedding-dashboard-section-heading {

    margin-bottom: 22px;

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 20px;

}


.wedding-dashboard-section-heading>div>span,
.wedding-dashboard-panel-heading>div>span,
.wedding-dashboard-payment-heading>div>span {

    color: var(--dashboard-accent-dark);

    font-size: 8px;

    letter-spacing: 1.8px;

    font-weight: 700;

}


.wedding-dashboard-section-heading h2,
.wedding-dashboard-panel-heading h2,
.wedding-dashboard-payment-heading h2 {

    margin-top: 6px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 30px;

    font-weight: 500;

}


.wedding-dashboard-section-heading h2 em,
.wedding-dashboard-panel-heading h2 em,
.wedding-dashboard-payment-heading h2 em {

    color: var(--dashboard-accent);

    font-weight: 400;

}


.wedding-dashboard-section-heading a {

    color: var(--dashboard-accent-dark);

    font-size: 10px;

    display: flex;

    align-items: center;

    gap: 8px;

}


.wedding-dashboard-heading-note {

    color: var(--dashboard-muted);

    font-size: 10px;

}


/* =========================================================
   MOOD BOARD
========================================================= */

.wedding-dashboard-mood-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 17px;

}


.wedding-dashboard-mood-card {

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

    overflow: hidden;

}


.wedding-dashboard-mood-image {

    height: 210px;

    position: relative;

    background-size: cover;

    background-position: center;

}


.mood-image-one {

    background:
        linear-gradient(rgba(86, 65, 51, .12),
            rgba(86, 65, 51, .12)),
        url("https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=900&q=80") center/cover;

}


.mood-image-two {

    background:
        linear-gradient(rgba(86, 65, 51, .1),
            rgba(86, 65, 51, .1)),
        url("https://images.unsplash.com/photo-1464366400600-7168b8af9bc3?auto=format&fit=crop&w=900&q=80") center/cover;

}


.mood-image-three {

    background:
        linear-gradient(rgba(86, 65, 51, .1),
            rgba(86, 65, 51, .1)),
        url("https://images.unsplash.com/photo-1478146896981-b80fe463b330?auto=format&fit=crop&w=900&q=80") center/cover;

}


.wedding-dashboard-mood-tag {

    position: absolute;

    top: 13px;
    left: 13px;

    padding: 6px 9px;

    background: rgba(255, 255, 255, .9);

    color: var(--dashboard-green);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: .8px;

}


.wedding-dashboard-mood-tag.pending {

    color: var(--dashboard-accent-dark);

}


.wedding-dashboard-mood-content {

    padding: 20px;

}


.wedding-dashboard-mood-content>span {

    color: var(--dashboard-accent-dark);

    font-size: 8px;

    letter-spacing: 1.4px;

    font-weight: 700;

}


.wedding-dashboard-mood-content h3 {

    margin-top: 7px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 18px;

    font-weight: 600;

}


.wedding-dashboard-mood-content p {

    margin-top: 7px;

    color: var(--dashboard-muted);

    line-height: 1.6;

    font-size: 11px;

}


.wedding-dashboard-mood-content strong {

    margin-top: 15px;

    display: flex;

    align-items: center;

    gap: 6px;

    color: var(--dashboard-green);

    font-size: 10px;

}


.wedding-dashboard-small-button {

    margin-top: 15px;

    padding: 8px 12px;

    background: var(--dashboard-accent);

    color: #fff;

    cursor: pointer;

    font-size: 9px;

    display: flex;

    align-items: center;

    gap: 8px;

}


/* =========================================================
   VENDOR TABLE
========================================================= */

.wedding-dashboard-vendor-table {

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

    overflow: hidden;

}


.wedding-dashboard-vendor-row {

    min-height: 75px;

    padding: 0 22px;

    display: grid;

    grid-template-columns:
        2fr 1.3fr 1fr 1fr;

    align-items: center;

    gap: 20px;

    border-bottom: 1px solid var(--dashboard-line);

}


.wedding-dashboard-vendor-row:last-child {

    border-bottom: 0;

}


.wedding-dashboard-vendor-row>span {

    color: var(--dashboard-muted);

    font-size: 10px;

}


.wedding-dashboard-vendor-row.vendor-header {

    min-height: 45px;

    background: var(--dashboard-soft-2);

}


.wedding-dashboard-vendor-row.vendor-header span {

    color: var(--dashboard-muted);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1px;

}


.wedding-dashboard-vendor-name {

    display: flex;

    align-items: center;

    gap: 12px;

}


.vendor-avatar {

    width: 38px;
    height: 38px;

    border-radius: 50%;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 9px;

    font-weight: 700;

    color: var(--dashboard-accent-dark);

}


.vendor-one {
    background: #eadbd2;
}


.vendor-two {
    background: #e4e0d5;
}


.vendor-three {
    background: #dddfe0;
}


.vendor-four {
    background: #eadfd4;
}


.wedding-dashboard-vendor-name div:last-child {

    display: flex;

    flex-direction: column;

}


.wedding-dashboard-vendor-name strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 13px;

    font-weight: 600;

}


.wedding-dashboard-vendor-name small {

    margin-top: 3px;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.vendor-status {

    width: fit-content;

    padding: 6px 9px;

    font-size: 8px;

    font-weight: 700;

    border-radius: 20px;

}


.vendor-status.confirmed {

    color: var(--dashboard-green);

    background: rgba(100, 139, 114, .11);

}


.vendor-status.pending-status {

    color: var(--dashboard-yellow);

    background: rgba(184, 134, 82, .12);

}


/* =========================================================
   TWO COLUMN
========================================================= */

.wedding-dashboard-two-column {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 18px;

    margin-bottom: 65px;

}


.wedding-dashboard-panel {

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

    padding: 27px;

}


.wedding-dashboard-panel-heading {

    padding-bottom: 18px;

    border-bottom: 1px solid var(--dashboard-line);

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

}


.wedding-dashboard-panel-heading>i {

    color: var(--dashboard-accent);

    font-size: 18px;

}


/* =========================================================
   QUOTES
========================================================= */

.wedding-dashboard-quote {

    padding: 20px 0;

    border-bottom: 1px solid var(--dashboard-line);

}


.wedding-dashboard-quote-top {

    display: flex;

    justify-content: space-between;

    gap: 20px;

}


.wedding-dashboard-quote-top div {

    display: flex;

    flex-direction: column;

}


.wedding-dashboard-quote-top strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 14px;

}


.wedding-dashboard-quote-top span {

    margin-top: 4px;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.wedding-dashboard-quote-top b {

    font-family:
        "Playfair Display",
        serif;

    font-size: 15px;

    font-weight: 600;

}


.wedding-dashboard-quote-details {

    margin-top: 12px;

    display: flex;

    flex-wrap: wrap;

    gap: 7px;

}


.wedding-dashboard-quote-details span {

    padding: 5px 8px;

    background: var(--dashboard-soft);

    color: var(--dashboard-muted);

    font-size: 8px;

}


.wedding-dashboard-review-button {

    margin-top: 13px;

    padding: 8px 13px;

    background: var(--dashboard-accent);

    color: #fff;

    cursor: pointer;

    font-size: 9px;

}


.wedding-dashboard-panel-total {

    padding-top: 18px;

    display: flex;

    justify-content: space-between;

}


.wedding-dashboard-panel-total span {

    color: var(--dashboard-muted);

    font-size: 10px;

}


.wedding-dashboard-panel-total strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 16px;

}


/* =========================================================
   TIMELINE
========================================================= */

.wedding-dashboard-timeline {

    padding-top: 10px;

}


.wedding-dashboard-timeline-item {

    display: grid;

    grid-template-columns:
        65px 28px 1fr;

    gap: 10px;

    min-height: 82px;

}


.timeline-time {

    padding-top: 5px;

    color: var(--dashboard-muted);

    font-size: 9px;

    text-align: right;

}


.timeline-line {

    position: relative;

    display: flex;

    justify-content: center;

}


.timeline-line::after {

    content: "";

    position: absolute;

    top: 24px;
    bottom: -4px;

    width: 1px;

    background: var(--dashboard-line);

}


.wedding-dashboard-timeline-item:last-child .timeline-line::after {

    display: none;

}


.timeline-line span {

    width: 25px;
    height: 25px;

    border-radius: 50%;

    position: relative;

    z-index: 2;

    background: var(--dashboard-soft);

    display: flex;

    align-items: center;
    justify-content: center;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.wedding-dashboard-timeline-item.approved .timeline-line span {

    color: var(--dashboard-green);

}


.timeline-content {

    padding-bottom: 20px;

}


.timeline-content strong {

    display: block;

    font-family:
        "Playfair Display",
        serif;

    font-size: 13px;

}


.timeline-content p {

    margin-top: 3px;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.timeline-content small {

    display: block;

    margin-top: 5px;

    color: var(--dashboard-green);

    font-size: 8px;

}


.wedding-dashboard-timeline-item.pending .timeline-content small {

    color: var(--dashboard-yellow);

}


.wedding-dashboard-approve {

    margin-top: 8px;

    padding: 6px 12px;

    background: var(--dashboard-accent);

    color: #fff;

    font-size: 8px;

    cursor: pointer;

}


/* =========================================================
   PAYMENTS
========================================================= */

.wedding-dashboard-payment {

    padding: 32px;

    background: var(--dashboard-soft-2);

    border: 1px solid var(--dashboard-line);

    border-radius: 12px;

    margin-bottom: 50px;

}


.wedding-dashboard-payment-heading {

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 30px;

}


.wedding-dashboard-payment-heading p {

    margin-top: 8px;

    color: var(--dashboard-muted);

    line-height: 1.7;

}


.wedding-dashboard-payment-total {

    text-align: right;

}


.wedding-dashboard-payment-total span {

    display: block;

    color: var(--dashboard-muted);

    font-size: 8px;

    letter-spacing: 1.5px;

    font-weight: 700;

}


.wedding-dashboard-payment-total strong {

    display: block;

    margin-top: 5px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 27px;

}


.wedding-dashboard-payment-content {

    margin-top: 30px;

    display: grid;

    grid-template-columns:
        250px 1fr;

    gap: 30px;

}


.wedding-dashboard-payment-progress {

    padding: 25px;

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

}


.payment-progress-circle {

    width: 145px;
    height: 145px;

    margin: 0 auto;

    border-radius: 50%;

    background:
        conic-gradient(var(--dashboard-accent) 51%,
            var(--dashboard-soft) 51%);

    display: flex;

    align-items: center;
    justify-content: center;

}


.payment-progress-circle::before {

    content: "";

    position: absolute;

}


.payment-progress-circle>div {

    width: 112px;
    height: 112px;

    border-radius: 50%;

    background: var(--dashboard-surface);

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

}


.payment-progress-circle strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 27px;

}


.payment-progress-circle span {

    margin-top: 2px;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.payment-progress-info {

    margin-top: 22px;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 12px;

}


.payment-progress-info div {

    padding-top: 10px;

    border-top: 1px solid var(--dashboard-line);

}


.payment-progress-info span {

    display: block;

    color: var(--dashboard-muted);

    font-size: 9px;

}


.payment-progress-info strong {

    display: block;

    margin-top: 4px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 13px;

}


/* =========================================================
   PAYMENT LIST
========================================================= */

.wedding-dashboard-payment-list {

    background: var(--dashboard-surface);

    border: 1px solid var(--dashboard-line);

    border-radius: 10px;

}


.payment-row {

    min-height: 75px;

    padding: 0 20px;

    display: grid;

    grid-template-columns:
        1fr auto auto;

    align-items: center;

    gap: 20px;

    border-bottom: 1px solid var(--dashboard-line);

}


.payment-row:last-child {

    border-bottom: 0;

}


.payment-row>div {

    display: flex;

    align-items: center;

    gap: 12px;

}


.payment-row>div>span {

    color: var(--dashboard-accent);

    font-family:
        "Playfair Display",
        serif;

    font-size: 14px;

}


.payment-row>div>div {

    display: flex;

    flex-direction: column;

}


.payment-row strong {

    font-family:
        "Playfair Display",
        serif;

    font-size: 12px;

}


.payment-row small {

    margin-top: 3px;

    color: var(--dashboard-muted);

    font-size: 8px;

}


.payment-row>b {

    font-family:
        "Playfair Display",
        serif;

    font-size: 13px;

}


.payment-row em {

    min-width: 58px;

    padding: 6px 8px;

    text-align: center;

    font-style: normal;

    font-size: 8px;

    font-weight: 700;

}


.payment-row em.paid {

    color: var(--dashboard-green);

    background: rgba(100, 139, 114, .1);

}


.payment-row em.upcoming {

    color: var(--dashboard-yellow);

    background: rgba(184, 134, 82, .1);

}


/* =========================================================
   FINAL MESSAGE
========================================================= */

.wedding-dashboard-final-message {

    padding: 40px;

    background: #30241f;

    color: #fffaf7;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

}


.wedding-dashboard-final-message span {

    color: #c39575;

    font-size: 8px;

    letter-spacing: 2px;

    font-weight: 700;

}


.wedding-dashboard-final-message h2 {

    margin-top: 10px;

    font-family:
        "Playfair Display",
        serif;

    font-size: 31px;

    font-weight: 500;

}


.wedding-dashboard-final-message h2 em {

    color: #c39575;

    font-weight: 400;

}


.wedding-dashboard-final-message p {

    margin-top: 8px;

    color: rgba(255, 255, 255, .65);

}


.wedding-dashboard-outline-button {

    padding: 12px 17px;

    border: 1px solid rgba(255, 255, 255, .25);

    display: flex;

    align-items: center;

    gap: 10px;

    font-size: 9px;

    color: #fff;

    white-space: nowrap;

}


.wedding-dashboard-outline-button:hover {

    background: #b8896b;

    border-color: #b8896b;

}


/* =========================================================
   OVERLAY
========================================================= */

.wedding-dashboard-overlay {

    display: none;

}


/* =========================================================
   DARK MODE
========================================================= */

body.dark-mode {

    --dashboard-bg: #151210;

    --dashboard-surface: #211c19;

    --dashboard-soft: #302723;

    --dashboard-soft-2: #1b1715;

    --dashboard-line: rgba(255, 255, 255, .11);

    --dashboard-text: #f4eee8;

    --dashboard-muted: #aaa09a;

    --dashboard-sidebar: #191513;

    --dashboard-accent: #c39575;

    --dashboard-accent-dark: #b8896b;

}


body.dark-mode .wedding-dashboard-topbar {

    background: rgba(25, 21, 19, .94);

}


body.dark-mode .wedding-dashboard-next-card {

    background:
        linear-gradient(135deg,
            #332822,
            #271f1b);

}


body.dark-mode .wedding-dashboard-next-icon {

    background: #211c19;

}


body.dark-mode .wedding-dashboard-nav-link.active {

    background: #342a25;

}


body.dark-mode .wedding-dashboard-mood-tag {

    background: rgba(33, 28, 25, .9);

}


body.dark-mode .wedding-dashboard-final-message {

    background: #0f0d0c;

}


/* =========================================================
   RTL
========================================================= */

html[dir="rtl"] {

    direction: rtl;

}


html[dir="rtl"] .wedding-dashboard-sidebar {

    left: auto;

    right: 0;

    border-right: 0;

    border-left: 1px solid var(--dashboard-line);

}


html[dir="rtl"] .wedding-dashboard-main {

    margin-left: 0;

    margin-right: 292px;

}


html[dir="rtl"] .wedding-dashboard-welcome {

    padding-right: 0;

    padding-left: 16px;

    margin-right: 0;

    margin-left: 8px;

    border-right: 0;

    border-left: 1px solid var(--dashboard-line);

    align-items: flex-start;

}


html[dir="rtl"] .wedding-dashboard-date-card {

    text-align: right;

}


html[dir="rtl"] .timeline-time {

    text-align: left;

}


html[dir="rtl"] .wedding-dashboard-final-message {

    text-align: right;

}


/* =========================================================
   1200
========================================================= */

@media (max-width: 1200px) {

    .wedding-dashboard-stats {

        grid-template-columns:
            repeat(2, 1fr);

    }

    .wedding-dashboard-content {

        width: min(100%,
                calc(100% - 50px));

    }

}


/* =========================================================
   992
========================================================= */

@media (max-width: 992px) {

    .wedding-dashboard-sidebar-close {

        display: flex;

    }

    .wedding-dashboard-sidebar {

        transform: translateX(-100%);

        box-shadow:
            10px 0 40px rgba(0, 0, 0, .12);

    }


    .wedding-dashboard-sidebar.mobile-open {

        transform: translateX(0);

    }


    .wedding-dashboard-main {

        width: 100%;

        margin-left: 0;

    }


    .wedding-dashboard-mobile-menu {

        display: flex;

    }


    .wedding-dashboard-topbar {

        padding: 0 20px;

    }


    .wedding-dashboard-topbar-title {

        display: none;

    }


    .wedding-dashboard-welcome {

        display: none;

    }


    .wedding-dashboard-feature-grid,
    .wedding-dashboard-two-column {

        grid-template-columns: 1fr;

    }


    .wedding-dashboard-payment-content {

        grid-template-columns: 1fr;

    }


    .wedding-dashboard-mood-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    html[dir="rtl"] .wedding-dashboard-sidebar {

        right: 0;

        left: auto;

        transform: translateX(100%);

        box-shadow:
            -10px 0 40px rgba(0, 0, 0, .12);

    }


    html[dir="rtl"] .wedding-dashboard-sidebar.mobile-open {

        transform: translateX(0);

    }


    html[dir="rtl"] .wedding-dashboard-main {

        margin-right: 0;

    }


    .wedding-dashboard-overlay.active {

        display: block;

        position: fixed;

        inset: 0;

        background: rgba(25, 20, 17, .45);

        z-index: 9998;

    }

}


/* =========================================================
   768
========================================================= */

@media (max-width: 768px) {

    .wedding-dashboard-content {

        width: calc(100% - 30px);

        padding-top: 32px;

    }


    .wedding-dashboard-page-intro {

        align-items: flex-start;

        flex-direction: column;

    }


    .wedding-dashboard-date-card {

        width: 100%;

    }


    .wedding-dashboard-stats {

        grid-template-columns: 1fr 1fr;

    }


    .wedding-dashboard-mood-grid {

        grid-template-columns: 1fr;

    }


    .wedding-dashboard-vendor-table {

        overflow-x: auto;

    }


    .wedding-dashboard-vendor-row {

        min-width: 760px;

    }


    .wedding-dashboard-payment {

        padding: 22px;

    }


    .wedding-dashboard-payment-heading {

        align-items: flex-start;

        flex-direction: column;

    }


    .wedding-dashboard-payment-total {

        text-align: left;

    }


    .wedding-dashboard-final-message {

        align-items: flex-start;

        flex-direction: column;

    }

}


/* =========================================================
   576
========================================================= */

@media (max-width: 576px) {

    .wedding-dashboard-topbar {

        height: 70px;

        padding: 0 15px;

    }


    .wedding-dashboard-topbar-actions {

        gap: 5px;

    }


    .wedding-dashboard-control,
    .wedding-dashboard-notification {

        width: 32px;
        height: 32px;

    }


    .wedding-dashboard-top-profile {

        display: none;

    }


    .wedding-dashboard-stats {

        grid-template-columns: 1fr;

    }


    .wedding-dashboard-page-intro h1 {

        font-size: 36px;

    }


    .wedding-dashboard-card-top h2 {

        font-size: 25px;

    }


    .wedding-dashboard-next-card,
    .wedding-dashboard-progress-card {

        padding: 23px;

    }


    .wedding-dashboard-section-heading {

        align-items: flex-start;

        flex-direction: column;

    }


    .wedding-dashboard-payment-content {

        gap: 15px;

    }


    .payment-row {

        grid-template-columns: 1fr auto;

        padding: 15px;

    }


    .payment-row em {

        grid-column: 2;

        grid-row: 1;

    }


    .payment-row>b {

        grid-column: 2;

    }


    .wedding-dashboard-final-message {

        padding: 28px 22px;

    }


    .wedding-dashboard-final-message h2 {

        font-size: 27px;

    }

}


/* =========================================================
   420
========================================================= */

@media (max-width: 420px) {

    .wedding-dashboard-content {

        width: calc(100% - 24px);

    }


    .wedding-dashboard-page-intro h1 {

        font-size: 32px;

    }


    .wedding-dashboard-page-intro p {

        font-size: 12px;

    }


    .wedding-dashboard-stat-card {

        padding: 18px;

    }


    .wedding-dashboard-progress-list {

        grid-template-columns: 1fr;

    }


    .wedding-dashboard-timeline-item {

        grid-template-columns:
            55px 25px 1fr;

    }


    .wedding-dashboard-panel {

        padding: 20px;

    }

}

.wedding-dashboard-client-avatar {

    width: 36px;
    height: 36px;

    flex: 0 0 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border-radius: 50%;

    background: #f2e6dd;

    border: 1px solid rgba(184, 137, 107, 0.18);

}


.wedding-dashboard-client-avatar img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

}

.wedding-logo-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wedding-logo-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}


/* =========================================================
   NAVBAR LOGO IMAGE
========================================================= */

.wedding-navbar .wedding-logo-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    overflow: hidden;
}

.wedding-navbar .wedding-logo-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@media (max-width: 768px) {

    .wedding-navbar .wedding-logo-icon {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

}

@media (max-width: 420px) {

    .wedding-navbar .wedding-logo-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

}


.wedding-footer .wedding-logo-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    overflow: hidden;
}

.wedding-footer .wedding-logo-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@media (max-width: 768px) {

    .wedding-footer .wedding-logo-icon {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

}

@media (max-width: 420px) {

    .wedding-footer .wedding-logo-icon {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

}