/* ============================================================
   GLOBAL — LAVENDER FOOTER
============================================================ */

.lavFooter {
    --lav-footer-bg: #211b29;
    --lav-footer-bg-deep: #17131e;
    --lav-footer-panel: rgba(255, 255, 255, 0.045);
    --lav-footer-line: rgba(255, 255, 255, 0.1);
    --lav-footer-text: rgba(255, 255, 255, 0.78);
    --lav-footer-muted: rgba(255, 255, 255, 0.56);
    --lav-footer-white: #ffffff;
    --lav-footer-accent: #c9add9;
    --lav-footer-accent-soft: #e2d1eb;
    --lav-footer-green: #aabca2;

    position: relative;

    overflow: hidden;

    color: var(--lav-footer-text);

    background:
        linear-gradient(
            180deg,
            var(--lav-footer-bg) 0%,
            var(--lav-footer-bg-deep) 100%
        );

    isolation: isolate;
    padding-left: 10px;
    padding-right: 10px;
}


/* ============================================================
   BOTANICAL AMBIENCE
============================================================ */

.lavFooter::before {
    content: "";

    position: absolute;
    z-index: -3;

    top: -260px;
    right: -190px;

    width: 700px;
    aspect-ratio: 1;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(190, 156, 209, 0.22) 0%,
            rgba(190, 156, 209, 0.08) 38%,
            rgba(190, 156, 209, 0) 72%
        );

    filter: blur(18px);

    pointer-events: none;
}

.lavFooter::after {
    content: "";

    position: absolute;
    z-index: -3;

    left: -240px;
    bottom: -320px;

    width: 680px;
    aspect-ratio: 1;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(146, 170, 137, 0.15) 0%,
            rgba(146, 170, 137, 0.05) 40%,
            rgba(146, 170, 137, 0) 73%
        );

    filter: blur(20px);

    pointer-events: none;
}


/* ============================================================
   MAIN FOOTER
============================================================ */

.lavFooterMain {
    position: relative;

    padding:
        clamp(82px, 9vw, 140px)
        0
        clamp(64px, 7vw, 104px);
}


/* ============================================================
   BOTANICAL ILLUSTRATION — LEFT
============================================================ */

.lavFooterMain::before {
    content: "";

    position: absolute;
    z-index: -1;

    left: -70px;
    bottom: -20px;

    width:
        clamp(220px, 24vw, 390px);

    height:
        clamp(400px, 46vw, 660px);

    opacity: 0.16;

    background-image:
        url(
            "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='390' height='660' viewBox='0 0 390 660' fill='none'%3E%3Cg stroke='%23d5bde1' stroke-linecap='round'%3E%3Cpath d='M92 657C118 522 125 392 112 208' stroke-width='3'/%3E%3Cpath d='M112 211C92 174 88 128 101 72' stroke-width='2.2'/%3E%3Cpath d='M112 211C138 172 149 126 143 67' stroke-width='2.2'/%3E%3Cpath d='M111 249C76 219 57 180 51 130' stroke-width='2.2'/%3E%3Cpath d='M114 284C154 248 176 204 179 149' stroke-width='2.2'/%3E%3Cpath d='M111 329C74 301 49 262 38 211' stroke-width='2.2'/%3E%3Cpath d='M116 371C158 344 190 305 208 253' stroke-width='2.2'/%3E%3Cpath d='M112 428C72 402 43 367 26 320' stroke-width='2.2'/%3E%3Cpath d='M116 477C163 451 202 413 229 363' stroke-width='2.2'/%3E%3Cpath d='M110 528C69 508 36 479 12 440' stroke-width='2.2'/%3E%3Cpath d='M117 577C172 555 222 520 263 472' stroke-width='2.2'/%3E%3C/g%3E%3Cg fill='%23c6a4d8'%3E%3Cellipse cx='100' cy='73' rx='13' ry='26' transform='rotate(-11 100 73)'/%3E%3Cellipse cx='143' cy='67' rx='13' ry='27' transform='rotate(8 143 67)'/%3E%3Cellipse cx='50' cy='131' rx='12' ry='25' transform='rotate(-20 50 131)'/%3E%3Cellipse cx='179' cy='149' rx='12' ry='26' transform='rotate(20 179 149)'/%3E%3Cellipse cx='38' cy='211' rx='12' ry='24' transform='rotate(-26 38 211)'/%3E%3Cellipse cx='208' cy='253' rx='12' ry='25' transform='rotate(24 208 253)'/%3E%3Cellipse cx='26' cy='320' rx='11' ry='23' transform='rotate(-28 26 320)'/%3E%3Cellipse cx='229' cy='363' rx='11' ry='23' transform='rotate(26 229 363)'/%3E%3Cellipse cx='12' cy='440' rx='10' ry='21' transform='rotate(-30 12 440)'/%3E%3Cellipse cx='263' cy='472' rx='10' ry='21' transform='rotate(28 263 472)'/%3E%3C/g%3E%3C/svg%3E"
        );

    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: contain;

    transform: rotate(-3deg);

    pointer-events: none;
}


/* ============================================================
   BOTANICAL ILLUSTRATION — RIGHT
============================================================ */

.lavFooterMain::after {
    content: "";

    position: absolute;
    z-index: -1;

    top: 20px;
    right: -95px;

    width:
        clamp(190px, 21vw, 340px);

    height:
        clamp(350px, 40vw, 590px);

    opacity: 0.11;

    background-image:
        url(
            "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='590' viewBox='0 0 340 590' fill='none'%3E%3Cg stroke='%23b8c8b0' stroke-linecap='round'%3E%3Cpath d='M253 589C222 472 218 353 238 201' stroke-width='3'/%3E%3Cpath d='M238 204C262 168 272 122 267 71' stroke-width='2.2'/%3E%3Cpath d='M239 239C206 205 190 164 192 115' stroke-width='2.2'/%3E%3Cpath d='M236 282C273 251 296 213 304 165' stroke-width='2.2'/%3E%3Cpath d='M236 331C194 304 169 268 158 222' stroke-width='2.2'/%3E%3Cpath d='M239 383C280 360 309 327 326 285' stroke-width='2.2'/%3E%3Cpath d='M236 438C190 418 153 389 126 352' stroke-width='2.2'/%3E%3Cpath d='M242 490C283 475 316 452 338 421' stroke-width='2.2'/%3E%3C/g%3E%3Cg fill='%23bea2cf'%3E%3Cellipse cx='267' cy='72' rx='12' ry='25' transform='rotate(10 267 72)'/%3E%3Cellipse cx='192' cy='115' rx='11' ry='24' transform='rotate(-18 192 115)'/%3E%3Cellipse cx='304' cy='165' rx='11' ry='24' transform='rotate(20 304 165)'/%3E%3Cellipse cx='158' cy='222' rx='11' ry='23' transform='rotate(-23 158 222)'/%3E%3Cellipse cx='326' cy='285' rx='11' ry='23' transform='rotate(25 326 285)'/%3E%3Cellipse cx='126' cy='352' rx='10' ry='22' transform='rotate(-27 126 352)'/%3E%3Cellipse cx='338' cy='421' rx='10' ry='21' transform='rotate(27 338 421)'/%3E%3C/g%3E%3C/svg%3E"
        );

    background-repeat: no-repeat;
    background-position: right top;
    background-size: contain;

    transform: rotate(4deg);

    pointer-events: none;
}


/* ============================================================
   CONTAINER
============================================================ */

.lavFooter .container {
    position: relative;
    z-index: 2;
}


/* ============================================================
   GRID
============================================================ */

.lavFooterGrid {
    display: grid;

    grid-template-columns:
        minmax(300px, 1.55fr)
        minmax(130px, 0.65fr)
        minmax(150px, 0.72fr)
        minmax(260px, 1.05fr);

    gap:
        clamp(44px, 6vw, 94px);

    align-items: start;
}


/* ============================================================
   BRAND
============================================================ */

.lavFooterBrand {
    max-width: 440px;
}


/* ============================================================
   LOGO
============================================================ */

.lavFooterLogo {
    display: inline-flex;
    align-items: center;

    gap: 17px;

    color: var(--lav-footer-white);

    text-decoration: none;
}

.lavFooterLogoMark {
    position: relative;

    display: flex;
    align-items: flex-end;
    justify-content: center;

    gap: 3px;

    width: 48px;
    height: 54px;

    padding-bottom: 5px;
}

.lavFooterLogoMark::before {
    content: "";

    position: absolute;

    bottom: 5px;
    left: 50%;

    width: 1px;
    height: 38px;

    background:
        linear-gradient(
            180deg,
            rgba(193, 214, 185, 0.25),
            rgba(193, 214, 185, 0.88)
        );

    transform:
        translateX(-50%)
        rotate(-3deg);

    transform-origin: bottom;
}

.lavFooterLogoMark::after {
    content: "";

    position: absolute;

    bottom: 10px;
    left: 24px;

    width: 17px;
    height: 1px;

    background:
        rgba(186, 207, 178, 0.7);

    transform: rotate(-34deg);
    transform-origin: left center;
}

.lavFooterLogoMark span {
    position: relative;
    z-index: 1;

    display: block;

    width: 8px;

    border-radius:
        50% 50% 44% 44%;

    background:
        linear-gradient(
            180deg,
            #e1cbed,
            #a87ebe
        );

    box-shadow:
        0 5px 18px
        rgba(191, 151, 211, 0.18);

    transform-origin: bottom center;

    transition:
        transform 400ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.lavFooterLogoMark span:nth-child(1) {
    height: 23px;

    transform: rotate(-13deg);
}

.lavFooterLogoMark span:nth-child(2) {
    height: 34px;

    transform: translateY(-5px);
}

.lavFooterLogoMark span:nth-child(3) {
    height: 25px;

    transform: rotate(13deg);
}

.lavFooterLogo:hover
.lavFooterLogoMark span:nth-child(1) {
    transform:
        rotate(-18deg)
        translateY(-2px);
}

.lavFooterLogo:hover
.lavFooterLogoMark span:nth-child(2) {
    transform:
        translateY(-9px);
}

.lavFooterLogo:hover
.lavFooterLogoMark span:nth-child(3) {
    transform:
        rotate(18deg)
        translateY(-2px);
}


/* ============================================================
   LOGO TEXT
============================================================ */

.lavFooterLogoText {
    display: flex;
    flex-direction: column;

    gap: 1px;
}

.lavFooterLogoText strong {
    color: var(--lav-footer-white);

    font-family:
        "Newsreader",
        Georgia,
        serif;

    font-size:
        clamp(
            2rem,
            2.5vw,
            2.65rem
        );

    font-weight: 500;
    line-height: 0.98;
    letter-spacing: -0.03em;
}

.lavFooterLogoText small {
    color:
        rgba(255, 255, 255, 0.66);

    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1.3;
    text-transform: uppercase;
}


/* ============================================================
   BRAND STATEMENT
============================================================ */

.lavFooterStatement {
    max-width: 410px;

    margin:
        34px
        0
        0;

    color: var(--lav-footer-text);

    font-size:
        clamp(
            0.98rem,
            1.1vw,
            1.06rem
        );

    line-height: 1.85;

    text-wrap: pretty;
}

.lavFooterSignature {
    position: relative;

    max-width: 350px;

    margin:
        28px
        0
        0;

    padding-left: 29px;

    color: var(--lav-footer-accent-soft);

    font-family:
        "Newsreader",
        Georgia,
        serif;

    font-size:
        clamp(
            1.24rem,
            1.7vw,
            1.55rem
        );

    font-style: italic;
    font-weight: 400;
    line-height: 1.38;

    text-wrap: balance;
}

.lavFooterSignature::before {
    content: "";

    position: absolute;

    top: 0.1em;
    bottom: 0.1em;
    left: 0;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            rgba(199, 169, 215, 0),
            rgba(199, 169, 215, 0.75),
            rgba(199, 169, 215, 0)
        );
}


/* ============================================================
   FOOTER COLUMNS
============================================================ */

.lavFooterColumn {
    position: relative;
}

.lavFooterColumn h2 {
    margin:
        8px
        0
        27px;

    color: var(--lav-footer-white);

    font-family:
        "DM Sans",
        sans-serif;

    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    line-height: 1.3;
    text-transform: uppercase;
}

.lavFooterColumn h2::after {
    content: "";

    display: block;

    width: 28px;
    height: 1px;

    margin-top: 14px;

    background:
        linear-gradient(
            90deg,
            var(--lav-footer-accent),
            rgba(201, 173, 217, 0)
        );
}


/* ============================================================
   NAVIGATION LISTS
============================================================ */

.lavFooterColumn ul {
    display: grid;

    gap: 15px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.lavFooterColumn li {
    margin: 0;
    padding: 0;
}

.lavFooterColumn li a {
    position: relative;

    display: inline-flex;
    align-items: center;

    color:
        rgba(255, 255, 255, 0.68);

    font-size: 0.93rem;
    font-weight: 500;
    line-height: 1.45;

    text-decoration: none;

    transition:
        color 250ms ease,
        transform 300ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.lavFooterColumn li a::before {
    content: "";

    width: 0;
    height: 1px;

    margin-right: 0;

    background:
        var(--lav-footer-accent);

    opacity: 0;

    transition:
        width 300ms
        cubic-bezier(0.22, 1, 0.36, 1),

        margin-right 300ms
        cubic-bezier(0.22, 1, 0.36, 1),

        opacity 250ms ease;
}

.lavFooterColumn li a:hover,
.lavFooterColumn li a:focus-visible {
    color: var(--lav-footer-white);

    transform: translateX(2px);
}

.lavFooterColumn li a:hover::before,
.lavFooterColumn li a:focus-visible::before {
    width: 16px;

    margin-right: 9px;

    opacity: 1;
}

.lavFooterColumn li a:focus-visible {
    outline:
        2px solid
        rgba(218, 195, 231, 0.85);

    outline-offset: 5px;

    border-radius: 5px;
}


/* ============================================================
   CONNECT COLUMN
============================================================ */

.lavFooterConnect {
    padding:
        30px
        30px
        28px;

    border:
        1px solid
        rgba(255, 255, 255, 0.09);

    border-radius: 28px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.06),
            rgba(255, 255, 255, 0.025)
        );

    box-shadow:
        inset
        0 1px 0
        rgba(255, 255, 255, 0.08);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.lavFooterConnect::before {
    content: "";

    position: absolute;

    top: -22px;
    right: 24px;

    width: 46px;
    height: 74px;

    opacity: 0.48;

    background-image:
        url(
            "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='74' viewBox='0 0 46 74' fill='none'%3E%3Cpath d='M22 73C22 53 23 34 25 13' stroke='%23aec3a5' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M24 21C14 16 9 10 7 2' stroke='%23aec3a5' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M24 29C33 23 38 16 39 7' stroke='%23aec3a5' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M23 39C13 34 7 27 4 18' stroke='%23aec3a5' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M23 49C34 44 40 36 42 27' stroke='%23aec3a5' stroke-width='1.2' stroke-linecap='round'/%3E%3Cellipse cx='7' cy='3' rx='3.6' ry='7' transform='rotate(-18 7 3)' fill='%23c7a6d8'/%3E%3Cellipse cx='39' cy='7' rx='3.6' ry='7' transform='rotate(18 39 7)' fill='%23c7a6d8'/%3E%3Cellipse cx='4' cy='18' rx='3.4' ry='6.6' transform='rotate(-22 4 18)' fill='%23c7a6d8'/%3E%3Cellipse cx='42' cy='27' rx='3.4' ry='6.6' transform='rotate(22 42 27)' fill='%23c7a6d8'/%3E%3C/svg%3E"
        );

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    transform: rotate(5deg);

    pointer-events: none;
}

.lavFooterConnect h2 {
    margin-top: 0;
}

.lavFooterConnect > p {
    margin: 0;

    color: var(--lav-footer-text);

    font-size: 0.94rem;
    line-height: 1.75;

    text-wrap: pretty;
}


/* ============================================================
   CONTACT LINK
============================================================ */

.lavFooterContactLink {
    position: relative;

    display: inline-flex;
    align-items: center;

    gap: 11px;

    margin-top: 25px;

    color: var(--lav-footer-white);

    font-size: 0.93rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;

    text-decoration: none;

    transition:
        color 250ms ease,
        transform 300ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.lavFooterContactLink::after {
    content: "";

    position: absolute;

    right: 0;
    bottom: -7px;
    left: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            var(--lav-footer-accent),
            rgba(201, 173, 217, 0.2)
        );

    transform: scaleX(0.38);
    transform-origin: left center;

    transition:
        transform 350ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.lavFooterContactLink span {
    color: var(--lav-footer-accent);

    font-size: 1.13rem;

    transition:
        transform 300ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.lavFooterContactLink:hover,
.lavFooterContactLink:focus-visible {
    color: var(--lav-footer-accent-soft);

    transform: translateY(-2px);
}

.lavFooterContactLink:hover::after,
.lavFooterContactLink:focus-visible::after {
    transform: scaleX(1);
}

.lavFooterContactLink:hover span,
.lavFooterContactLink:focus-visible span {
    transform: translateX(4px);
}

.lavFooterContactLink:focus-visible {
    outline:
        2px solid
        rgba(218, 195, 231, 0.85);

    outline-offset: 6px;

    border-radius: 5px;
}


/* ============================================================
   CONSULTATION BADGE
============================================================ */

.lavFooterConsultation {
    display: flex;
    align-items: flex-start;

    gap: 12px;

    margin-top: 30px;
    padding-top: 22px;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.08);
}

.lavFooterConsultation > span {
    position: relative;

    flex: 0 0 auto;

    width: 11px;
    height: 11px;

    margin-top: 5px;

    border-radius: 50%;

    background:
        var(--lav-footer-green);

    box-shadow:
        0 0 0 5px
        rgba(170, 188, 162, 0.1),
        0 0 18px
        rgba(170, 188, 162, 0.3);
}

.lavFooterConsultation > span::after {
    content: "";

    position: absolute;

    inset: -5px;

    border:
        1px solid
        rgba(170, 188, 162, 0.24);

    border-radius: 50%;

    animation:
        lavFooterConsultationPulse
        3.5s
        ease-out
        infinite;
}

.lavFooterConsultation p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.7);

    font-size: 0.79rem;
    font-weight: 600;
    letter-spacing: 0.035em;
    line-height: 1.55;
}


/* ============================================================
   BOTTOM BAR
============================================================ */

.lavFooterBottom {
    position: relative;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.08);

    background:
        rgba(9, 7, 12, 0.18);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.lavFooterBottomInner {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto
        auto;

    align-items: center;

    gap:
        28px
        46px;

    min-height: 94px;

    padding:
        24px
        0;
}

.lavFooterBottomInner > p {
    margin: 0;

    color: var(--lav-footer-muted);

    font-size: 0.78rem;
    line-height: 1.55;
}


/* ============================================================
   LEGAL + LANGUAGE
============================================================ */

.lavFooterLegal ul {
    display: flex;
    align-items: center;

    gap: 23px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.lavFooterLegal a,
.lavFooterLanguage a {
    color:
        rgba(255, 255, 255, 0.58);

    font-size: 0.77rem;
    font-weight: 600;
    line-height: 1.4;

    text-decoration: none;

    transition:
        color 250ms ease;
}

.lavFooterLegal a:hover,
.lavFooterLegal a:focus-visible,
.lavFooterLanguage a:hover,
.lavFooterLanguage a:focus-visible {
    color: var(--lav-footer-white);
}

.lavFooterLegal a:focus-visible,
.lavFooterLanguage a:focus-visible {
    outline:
        2px solid
        rgba(218, 195, 231, 0.85);

    outline-offset: 5px;

    border-radius: 4px;
}

.lavFooterLanguage {
    display: inline-flex;
    align-items: center;

    gap: 9px;
}

.lavFooterLanguage span {
    color:
        rgba(255, 255, 255, 0.25);
}

.lavFooterLanguage a[aria-current="page"] {
    color: var(--lav-footer-accent-soft);
}


/* ============================================================
   AMBIENT TOP LINE
============================================================ */

.lavFooterMain > .container::before {
    content: "";

    position: absolute;

    top:
        calc(
            clamp(82px, 9vw, 140px) * -1
        );
    right: 0;
    left: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0),
            rgba(205, 180, 220, 0.24),
            rgba(255, 255, 255, 0)
        );

    pointer-events: none;
}


/* ============================================================
   ANIMATIONS
============================================================ */

@keyframes lavFooterConsultationPulse {

    0% {
        opacity: 0.7;

        transform: scale(0.72);
    }

    70%,
    100% {
        opacity: 0;

        transform: scale(1.6);
    }

}


/* ============================================================
   LARGE SCREENS
============================================================ */

@media (min-width: 1500px) {

    .lavFooterGrid {
        grid-template-columns:
            minmax(360px, 1.65fr)
            minmax(150px, 0.62fr)
            minmax(170px, 0.7fr)
            minmax(290px, 1fr);
    }

}


/* ============================================================
   MEDIUM DESKTOP
============================================================ */

@media (max-width: 1180px) {

    .lavFooterGrid {
        grid-template-columns:
            minmax(320px, 1.35fr)
            minmax(150px, 0.65fr)
            minmax(260px, 1fr);

        gap:
            58px
            48px;
    }

    .lavFooterBrand {
        grid-column:
            1 / 2;
    }

    .lavFooterColumn:nth-of-type(1) {
        grid-column:
            2 / 3;
    }

    .lavFooterColumn:nth-of-type(2) {
        grid-column:
            2 / 3;
    }

    .lavFooterConnect {
        grid-column:
            3 / 4;

        grid-row:
            1 / 3;
    }

}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 900px) {

    .lavFooterMain {
        padding:
            84px
            0
            68px;
    }

    .lavFooterGrid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);

        gap:
            58px
            46px;
    }

    .lavFooterBrand {
        grid-column:
            1 / -1;

        max-width: 590px;
    }

    .lavFooterColumn:nth-of-type(1),
    .lavFooterColumn:nth-of-type(2) {
        grid-column: auto;
    }

    .lavFooterConnect {
        grid-column:
            1 / -1;

        grid-row: auto;

        max-width: 620px;
    }

    .lavFooterBottomInner {
        grid-template-columns:
            minmax(0, 1fr)
            auto;

        gap:
            18px
            32px;
    }

    .lavFooterLanguage {
        grid-column:
            1 / -1;

        justify-self: start;
    }

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 640px) {

    .lavFooterMain {
        padding:
            72px
            0
            56px;
    }

    .lavFooterMain::before {
        left: -100px;

        width: 260px;
        height: 450px;

        opacity: 0.11;
    }

    .lavFooterMain::after {
        top: 120px;
        right: -120px;

        width: 230px;
        height: 390px;

        opacity: 0.08;
    }

    .lavFooterGrid {
        grid-template-columns:
            minmax(0, 1fr);

        gap: 48px;
    }

    .lavFooterBrand,
    .lavFooterColumn,
    .lavFooterConnect {
        grid-column:
            1;
    }

    .lavFooterLogo {
        align-items: flex-start;
    }

    .lavFooterLogoMark {
        width: 43px;
        height: 49px;
    }

    .lavFooterLogoText strong {
        font-size:
            clamp(
                1.9rem,
                10vw,
                2.45rem
            );
    }

    .lavFooterStatement {
        margin-top: 29px;
    }

    .lavFooterSignature {
        padding-left: 22px;
    }

    .lavFooterColumn h2 {
        margin-bottom: 23px;
    }

    .lavFooterConnect {
        padding:
            27px
            23px
            25px;

        border-radius: 24px;
    }

    .lavFooterConnect::before {
        right: 16px;

        opacity: 0.36;
    }

    .lavFooterBottomInner {
        display: flex;
        align-items: flex-start;
        flex-direction: column;

        gap: 20px;

        min-height: auto;

        padding:
            30px
            0;
    }

    .lavFooterLegal ul {
        flex-wrap: wrap;

        gap:
            13px
            22px;
    }

}


/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 390px) {

    .lavFooterLogo {
        gap: 13px;
    }

    .lavFooterLogoText small {
        font-size: 0.62rem;
        letter-spacing: 0.14em;
    }

    .lavFooterConnect {
        padding:
            24px
            20px;
    }

}


/* ============================================================
   REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {

    .lavFooterLogoMark span,
    .lavFooterColumn li a,
    .lavFooterColumn li a::before,
    .lavFooterContactLink,
    .lavFooterContactLink::after,
    .lavFooterContactLink span {
        transition: none;
    }

    .lavFooterConsultation > span::after {
        animation: none;
    }

    .lavFooterLogo:hover
    .lavFooterLogoMark span:nth-child(1),
    .lavFooterLogo:hover
    .lavFooterLogoMark span:nth-child(2),
    .lavFooterLogo:hover
    .lavFooterLogoMark span:nth-child(3),
    .lavFooterColumn li a:hover,
    .lavFooterContactLink:hover,
    .lavFooterContactLink:hover span {
        transform: none;
    }

}


/* ============================================================
   HIGH CONTRAST
============================================================ */

@media (prefers-contrast: more) {

    .lavFooter {
        --lav-footer-text:
            rgba(255, 255, 255, 0.92);

        --lav-footer-muted:
            rgba(255, 255, 255, 0.78);

        --lav-footer-line:
            rgba(255, 255, 255, 0.24);
    }

    .lavFooterConnect {
        border-color:
            rgba(255, 255, 255, 0.25);
    }

}

/* ============================================================
   FOOTER RESOURCES
============================================================ */

.lavFooterResourceItem{

    margin-top:6px;

}


.lavFooterResourceItem a{

    display:inline-flex;

    align-items:center;

    gap:7px;

    color:#bfa7c8;

    font-weight:700;

}


.lavFooterResourceItem a span{

    display:inline-block;

    transition:
        transform .25s ease;

}


.lavFooterResourceItem a:hover span{

    transform:
        translateX(4px);

}


/* ============================================================
   FEATURED RESOURCES LINK
============================================================ */

.lavFooterResourcesLink{

    display:grid;

    grid-template-columns:
        auto minmax(0,1fr) auto;

    align-items:center;

    gap:12px;

    margin-top:22px;

    padding:
        14px 15px;

    border:
        1px solid
        rgba(211,191,218,.16);

    border-radius:16px;

    color:#f6f0f7;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.07),
            rgba(255,255,255,.025)
        );

    text-decoration:none;

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,.05);

    transition:
        border-color .25s ease,
        background-color .25s ease,
        transform .25s ease,
        box-shadow .25s ease;

}


.lavFooterResourcesLink:hover{

    transform:
        translateY(-3px);

    border-color:
        rgba(211,191,218,.30);

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.11),
            rgba(255,255,255,.045)
        );

    box-shadow:
        0 16px 34px
        rgba(31,23,35,.15),
        inset 0 1px 0
        rgba(255,255,255,.07);

}


.lavFooterResourcesLink:focus-visible{

    outline:
        3px solid
        rgba(210,185,220,.32);

    outline-offset:4px;

}


.lavFooterResourcesIcon{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:40px;

    height:40px;

    border:
        1px solid
        rgba(214,194,222,.20);

    border-radius:12px;

    color:#d3bfd9;

    background:
        rgba(255,255,255,.06);

}


.lavFooterResourcesLink > span:nth-child(2){

    display:grid;

    gap:4px;

}


.lavFooterResourcesLink small{

    color:#bdaec2;

    font-size:.65rem;

    font-weight:700;

    line-height:1.2;

    letter-spacing:.09em;

    text-transform:uppercase;

}


.lavFooterResourcesLink strong{

    color:#ffffff;

    font-size:.82rem;

    font-weight:700;

    line-height:1.4;

}


.lavFooterResourcesArrow{

    color:#d1bbd8;

    font-size:1rem;

    transition:
        transform .25s ease;

}


.lavFooterResourcesLink:hover
.lavFooterResourcesArrow{

    transform:
        translateX(4px);

}


@media (prefers-reduced-motion:reduce){

    .lavFooterResourceItem a span,
    .lavFooterResourcesLink,
    .lavFooterResourcesArrow{

        transition:none;

    }

}