/* ============================================================
   LAVENDER COUNSELING CENTER
   HERO — LIVING OFFICE EXPERIENCE
============================================================ */


/* ============================================================
   SECTION
============================================================ */

.lavHero {
    position: relative;
    isolation: isolate;
    min-height: calc(100vh - 92px);
    padding:
        clamp(44px, 6vw, 96px)
        0
        clamp(72px, 8vw, 126px);
    overflow: hidden;
    background:
        radial-gradient(
            circle at 74% 26%,
            rgba(139, 101, 168, 0.13),
            transparent 34%
        ),
        radial-gradient(
            circle at 16% 82%,
            rgba(176, 193, 181, 0.14),
            transparent 32%
        ),
        linear-gradient(
            135deg,
            #fdfbfe 0%,
            #faf7fc 44%,
            #f3eef8 100%
        );
}


/* ============================================================
   CONTAINER
============================================================ */

.lavHero .container {
    position: relative;
    z-index: 3;
    width: min(
        calc(100% - clamp(32px, 6vw, 96px)),
        1440px
    );
    margin-inline: auto;
}


/* ============================================================
   AMBIENT GLOWS
============================================================ */

.lavHeroGlow {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(12px);
    opacity: 0.75;
}

.lavHeroGlowOne {
    top: 3%;
    right: -10%;
    width: clamp(360px, 46vw, 780px);
    aspect-ratio: 1;
    background:
        radial-gradient(
            circle,
            rgba(151, 113, 182, 0.18) 0%,
            rgba(183, 150, 207, 0.09) 45%,
            transparent 72%
        );
}

.lavHeroGlowTwo {
    bottom: -24%;
    left: -12%;
    width: clamp(330px, 42vw, 700px);
    aspect-ratio: 1;
    background:
        radial-gradient(
            circle,
            rgba(143, 161, 150, 0.15) 0%,
            rgba(178, 191, 183, 0.08) 42%,
            transparent 72%
        );
}


/* ============================================================
   GRID
============================================================ */

.lavHeroGrid {
    display: grid;
    grid-template-columns:
        minmax(0, 0.95fr)
        minmax(480px, 0.9fr);
    align-items: center;
    gap: clamp(54px, 7vw, 118px);
}


/* ============================================================
   CONTENT
============================================================ */

.lavHeroContent {
    position: relative;
    z-index: 4;
    max-width: 720px;
}


/* ============================================================
   EYEBROW
============================================================ */

.lavHeroEyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: clamp(22px, 2.5vw, 34px);
    color: #76518f;
}

.lavHeroEyebrow > span {
    width: 34px;
    height: 1px;
    background:
        linear-gradient(
            90deg,
            transparent,
            currentColor
        );
}

.lavHeroEyebrow small {
    font-size: clamp(0.76rem, 0.72vw, 0.88rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}


/* ============================================================
   TITLE
============================================================ */

.lavHeroTitle {
    max-width: 780px;
    margin: 0;
    color: #18151b;
    font-family:
        "Cormorant Garamond",
        "Times New Roman",
        serif;
    font-size: clamp(4.25rem, 6.5vw, 8.4rem);
    font-weight: 500;
    line-height: 0.83;
    letter-spacing: -0.055em;
    text-wrap: balance;
}

.lavHeroTitle span {
    display: block;
    color: #7f5b98;
    font-style: italic;
    font-weight: 500;
}


/* ============================================================
   DESCRIPTION
============================================================ */

.lavHeroDescription {
    max-width: 650px;
    margin:
        clamp(32px, 4vw, 52px)
        0
        0;
    color: #4e4753;
    font-size: clamp(1.02rem, 1.2vw, 1.24rem);
    line-height: 1.85;
}


/* ============================================================
   ACTIONS
============================================================ */

.lavHeroActions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: clamp(32px, 4vw, 48px);
}

.lavHeroActions .button {
    display: inline-flex;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 15px 28px;
    border: 1px solid transparent;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.2;
    transition:
        transform 220ms ease,
        box-shadow 220ms ease,
        background-color 220ms ease,
        border-color 220ms ease,
        color 220ms ease;
}

.lavHeroActions .button:hover {
    transform: translateY(-3px);
}

.lavHeroActions .button:focus-visible {
    outline: 3px solid rgba(127, 91, 152, 0.3);
    outline-offset: 4px;
}

.lavHeroActions .button-primary {
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #76518f,
            #8d61a5
        );
    box-shadow:
        0 18px 40px rgba(100, 65, 125, 0.24);
}

.lavHeroActions .button-primary:hover {
    box-shadow:
        0 24px 48px rgba(100, 65, 125, 0.32);
}

.lavHeroActions .button-primary span {
    display: inline-block;
    transition: transform 220ms ease;
}

.lavHeroActions .button-primary:hover span {
    transform: translateX(5px);
}

.lavHeroActions .button-secondary {
    color: #312c34;
    border-color: rgba(55, 47, 60, 0.74);
    background: rgba(255, 255, 255, 0.48);
    backdrop-filter: blur(12px);
}

.lavHeroActions .button-secondary:hover {
    color: #704b89;
    border-color: #76518f;
    background: rgba(255, 255, 255, 0.78);
}


/* ============================================================
   TRUST ITEMS
============================================================ */

.lavHeroTrust {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 30px;
    margin-top: clamp(34px, 4vw, 52px);
    padding-top: clamp(26px, 3vw, 38px);
    border-top: 1px solid rgba(73, 61, 78, 0.12);
}

.lavHeroTrustItem {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: #3f3942;
    font-size: 0.95rem;
    font-weight: 600;
}

.lavHeroTrustIcon {
    display: inline-grid;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    place-items: center;
    border: 1px solid rgba(118, 81, 143, 0.2);
    border-radius: 50%;
    color: #76518f;
    background: rgba(255, 255, 255, 0.74);
    box-shadow:
        0 8px 20px rgba(75, 52, 88, 0.08);
}


/* ============================================================
   VISUAL WRAPPER
============================================================ */

.lavHeroVisual {
    position: relative;
    z-index: 3;
    width: min(100%, 710px);
    justify-self: end;
    padding:
        clamp(10px, 1.5vw, 20px)
        clamp(12px, 1.6vw, 22px)
        clamp(38px, 5vw, 66px);
}


/* ============================================================
   SCENE
============================================================ */

.lavHeroScene {
    position: relative;
    width: 100%;
    min-height: clamp(610px, 62vw, 830px);
    margin: 0;
    overflow: hidden;
    border-radius:
        clamp(42px, 5vw, 72px)
        clamp(42px, 5vw, 72px)
        clamp(58px, 6vw, 90px)
        clamp(58px, 6vw, 90px);
    background: #efe9e5;
    box-shadow:
        0 48px 100px rgba(54, 38, 63, 0.18),
        0 16px 34px rgba(78, 58, 88, 0.1);
    transform: translateZ(0);
}


/* ============================================================
   SCENE IMAGE
============================================================ */

.lavHeroSceneImage {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 53% center;
    transform: scale(1.035);
    animation:
        lavSceneEntrance 1.5s cubic-bezier(0.22, 1, 0.36, 1)
        both,
        lavSceneBreathing 14s ease-in-out 1.5s infinite alternate;
}


/* ============================================================
   COLOR AND LIGHT TREATMENT
============================================================ */

.lavHeroScene::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.08) 0%,
            transparent 34%,
            rgba(41, 27, 48, 0.09) 100%
        ),
        radial-gradient(
            circle at 75% 18%,
            rgba(255, 248, 226, 0.28),
            transparent 32%
        );
    mix-blend-mode: soft-light;
}

.lavHeroSceneLight {
    position: absolute;
    z-index: 3;
    top: -12%;
    right: -10%;
    width: 78%;
    height: 64%;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0.52;
    filter: blur(26px);
    background:
        radial-gradient(
            circle,
            rgba(255, 255, 255, 0.72) 0%,
            rgba(247, 234, 255, 0.32) 46%,
            transparent 73%
        );
    animation: lavAmbientLight 8s ease-in-out infinite alternate;
}

.lavHeroSceneWindowGlow {
    position: absolute;
    z-index: 3;
    top: 4%;
    right: -4%;
    width: 52%;
    height: 72%;
    pointer-events: none;
    opacity: 0.32;
    filter: blur(18px);
    transform: rotate(-9deg);
    background:
        linear-gradient(
            115deg,
            transparent 2%,
            rgba(255, 255, 255, 0.12) 24%,
            rgba(255, 255, 255, 0.42) 47%,
            rgba(255, 255, 255, 0.08) 68%,
            transparent 92%
        );
    animation: lavWindowGlow 11s ease-in-out infinite alternate;
}


/* ============================================================
   MOVING LEAF SHADOW
============================================================ */

.lavHeroSceneLeafShadow {
    position: absolute;
    z-index: 4;
    top: 8%;
    right: -8%;
    width: 52%;
    height: 62%;
    pointer-events: none;
    opacity: 0.11;
    filter: blur(10px);
    background:
        radial-gradient(
            ellipse at 22% 18%,
            #56675b 0 7%,
            transparent 8%
        ),
        radial-gradient(
            ellipse at 44% 35%,
            #56675b 0 9%,
            transparent 10%
        ),
        radial-gradient(
            ellipse at 65% 18%,
            #56675b 0 8%,
            transparent 9%
        ),
        radial-gradient(
            ellipse at 72% 54%,
            #56675b 0 10%,
            transparent 11%
        ),
        radial-gradient(
            ellipse at 36% 68%,
            #56675b 0 9%,
            transparent 10%
        );
    transform-origin: top right;
    animation: lavLeafShadow 9s ease-in-out infinite alternate;
}


/* ============================================================
   LOGO GLOW
============================================================ */

.lavHeroSceneLogoGlow {
    position: absolute;
    z-index: 4;
    top: 19%;
    left: 29%;
    width: 43%;
    height: 24%;
    pointer-events: none;
    border-radius: 50%;
    opacity: 0;
    filter: blur(24px);
    background:
        radial-gradient(
            circle,
            rgba(167, 116, 203, 0.29),
            rgba(135, 88, 167, 0.08) 48%,
            transparent 73%
        );
    animation:
        lavLogoReveal 1.4s ease 1.25s forwards,
        lavLogoPulse 6s ease-in-out 2.65s infinite;
}


/* ============================================================
   GROWTH PATH
============================================================ */

.lavHeroGrowthPath {
    position: absolute;
    z-index: 8;
    right: 4%;
    bottom: 5%;
    width: 92%;
    height: 43%;
    overflow: visible;
    color: rgba(178, 128, 222, 0.8);
    pointer-events: none;
    filter:
        drop-shadow(0 0 5px rgba(174, 121, 218, 0.54))
        drop-shadow(0 0 13px rgba(174, 121, 218, 0.3));
}

.lavHeroGrowthPathLine {
    stroke-dasharray: 860;
    stroke-dashoffset: 860;
    animation:
        lavDrawGrowthPath 6.2s
        cubic-bezier(0.34, 0.08, 0.18, 1)
        1.2s
        forwards;
}

.lavHeroGrowthPoint {
    fill: #f4ddff;
    stroke: rgba(144, 91, 180, 0.9);
    stroke-width: 2;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    animation:
        lavGrowthPointReveal 700ms ease forwards,
        lavGrowthPointPulse 2.6s ease-in-out infinite;
}

.lavHeroGrowthPointOne {
    animation-delay:
        1.4s,
        2.1s;
}

.lavHeroGrowthPointTwo {
    animation-delay:
        3s,
        3.7s;
}

.lavHeroGrowthPointThree {
    animation-delay:
        4.4s,
        5.1s;
}

.lavHeroGrowthPointFour {
    animation-delay:
        6.1s,
        6.8s;
}


/* ============================================================
   SOIL
============================================================ */

.lavHeroGardenSoil {
    position: absolute;
    z-index: 7;
    right: -4%;
    bottom: -2%;
    left: -4%;
    height: 17%;
    pointer-events: none;
    opacity: 0;
    background:
        radial-gradient(
            ellipse at 50% 0%,
            rgba(76, 55, 43, 0.95),
            rgba(48, 34, 28, 0.98) 64%,
            rgba(35, 25, 22, 1)
        );
    box-shadow:
        inset 0 10px 24px rgba(255, 255, 255, 0.06),
        0 -10px 24px rgba(46, 31, 25, 0.1);
    clip-path:
        polygon(
            0 28%,
            8% 20%,
            16% 26%,
            25% 17%,
            35% 24%,
            44% 14%,
            55% 23%,
            65% 16%,
            77% 25%,
            87% 15%,
            100% 24%,
            100% 100%,
            0 100%
        );
    animation: lavSoilReveal 1.1s ease 700ms forwards;
}

.lavHeroGardenSoil::before {
    content: "";
    position: absolute;
    inset: 10% 0 auto;
    height: 30%;
    opacity: 0.38;
    background:
        radial-gradient(
            circle at 8% 50%,
            rgba(190, 157, 124, 0.5) 0 2px,
            transparent 3px
        ),
        radial-gradient(
            circle at 19% 35%,
            rgba(190, 157, 124, 0.38) 0 3px,
            transparent 4px
        ),
        radial-gradient(
            circle at 34% 55%,
            rgba(190, 157, 124, 0.46) 0 2px,
            transparent 3px
        ),
        radial-gradient(
            circle at 58% 30%,
            rgba(190, 157, 124, 0.38) 0 3px,
            transparent 4px
        ),
        radial-gradient(
            circle at 82% 48%,
            rgba(190, 157, 124, 0.44) 0 2px,
            transparent 3px
        );
}

.lavHeroGardenSoil span {
    position: absolute;
    width: 7px;
    height: 4px;
    border-radius: 50%;
    background: rgba(206, 178, 150, 0.42);
    transform: rotate(-18deg);
}

.lavHeroGardenSoil span:nth-child(1) {
    top: 36%;
    left: 12%;
}

.lavHeroGardenSoil span:nth-child(2) {
    top: 46%;
    left: 28%;
}

.lavHeroGardenSoil span:nth-child(3) {
    top: 31%;
    left: 49%;
}

.lavHeroGardenSoil span:nth-child(4) {
    top: 49%;
    left: 70%;
}

.lavHeroGardenSoil span:nth-child(5) {
    top: 34%;
    left: 88%;
}


/* ============================================================
   SEED
============================================================ */

.lavHeroSeed {
    position: absolute;
    z-index: 10;
    bottom: 10.4%;
    left: 9%;
    width: 26px;
    height: 16px;
    pointer-events: none;
    opacity: 0;
    transform: rotate(-24deg) scale(0.3);
    transform-origin: center;
    animation:
        lavSeedAppear 850ms
        cubic-bezier(0.34, 1.56, 0.64, 1)
        1.05s
        forwards;
}

.lavHeroSeedShell {
    position: absolute;
    inset: 0;
    border-radius: 72% 28% 64% 36%;
    background:
        linear-gradient(
            145deg,
            #9b7455,
            #4e382b 72%
        );
    box-shadow:
        inset 3px 2px 4px rgba(255, 255, 255, 0.22),
        0 4px 9px rgba(25, 17, 13, 0.36);
}

.lavHeroSeedShell::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 8px;
    width: 1px;
    height: 10px;
    opacity: 0.5;
    background: rgba(228, 198, 166, 0.62);
    transform: rotate(22deg);
}


/* ============================================================
   BASIC PLANTS
============================================================ */

.lavHeroPlant {
    position: absolute;
    z-index: 10;
    bottom: 10.2%;
    width: 70px;
    height: 155px;
    pointer-events: none;
    transform-origin: bottom center;
    transform: scaleY(0);
    opacity: 0;
}

.lavHeroPlantOne {
    left: 22%;
    height: 76px;
    animation:
        lavPlantGrow 1.7s
        cubic-bezier(0.2, 0.8, 0.25, 1)
        2.55s
        forwards;
}

.lavHeroPlantTwo {
    left: 40%;
    height: 116px;
    animation:
        lavPlantGrow 2s
        cubic-bezier(0.2, 0.8, 0.25, 1)
        3.85s
        forwards;
}

.lavHeroPlantThree {
    left: 56%;
    height: 174px;
    animation:
        lavPlantGrow 2.2s
        cubic-bezier(0.2, 0.8, 0.25, 1)
        5s
        forwards;
}

.lavHeroPlantStem {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 3px;
    height: 88%;
    border-radius: 999px;
    background:
        linear-gradient(
            180deg,
            #728675,
            #3f5947
        );
    transform: translateX(-50%);
    box-shadow: 0 0 3px rgba(255, 255, 255, 0.22);
}

.lavHeroPlantLeaf {
    position: absolute;
    bottom: 28%;
    width: 25px;
    height: 12px;
    border-radius: 100% 0 100% 0;
    background:
        linear-gradient(
            135deg,
            #8ba08d,
            #496554
        );
    box-shadow:
        inset 1px 1px 2px rgba(255, 255, 255, 0.24);
    opacity: 0;
    animation: lavLeafOpen 600ms ease forwards;
}

.lavHeroPlantLeafLeft {
    right: 50%;
    transform-origin: right center;
    transform: rotate(13deg) scaleX(0);
}

.lavHeroPlantLeafRight {
    left: 50%;
    border-radius: 0 100% 0 100%;
    transform-origin: left center;
    transform: rotate(-13deg) scaleX(0);
}

.lavHeroPlantLeafUpper {
    bottom: 51%;
}

.lavHeroPlantLeafSmall {
    width: 19px;
    height: 9px;
}

.lavHeroPlantOne .lavHeroPlantLeaf {
    animation-delay: 3.15s;
}

.lavHeroPlantTwo .lavHeroPlantLeaf {
    animation-delay: 4.55s;
}

.lavHeroPlantThree .lavHeroPlantLeaf {
    animation-delay: 5.75s;
}

.lavHeroPlantTwo .lavHeroPlantLeafUpper,
.lavHeroPlantThree .lavHeroPlantLeafUpper {
    animation-delay: 5s;
}


/* ============================================================
   YOUNG FLOWER
============================================================ */

.lavHeroFlower {
    position: absolute;
    top: 1%;
    left: 50%;
    display: flex;
    width: 26px;
    height: 52px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 1px;
    opacity: 0;
    transform: translateX(-50%) scale(0.4);
    transform-origin: bottom center;
    animation:
        lavFlowerBloom 1.25s
        cubic-bezier(0.34, 1.56, 0.64, 1)
        6.3s
        forwards;
}

.lavHeroFlower i {
    display: block;
    width: 13px;
    height: 9px;
    border-radius: 58% 42% 62% 38%;
    background:
        linear-gradient(
            145deg,
            #b388d2,
            #775195
        );
    box-shadow:
        inset 1px 1px 2px rgba(255, 255, 255, 0.34),
        0 0 8px rgba(169, 119, 208, 0.24);
}

.lavHeroFlower i:nth-child(even) {
    transform: translateX(4px) rotate(12deg);
}

.lavHeroFlower i:nth-child(odd) {
    transform: translateX(-3px) rotate(-9deg);
}


/* ============================================================
   MATURE LAVENDER GARDEN
============================================================ */

.lavHeroLavenderGarden {
    position: absolute;
    z-index: 11;
    right: 3%;
    bottom: 10%;
    width: 43%;
    height: 48%;
    pointer-events: none;
}

.lavHeroLavender {
    position: absolute;
    bottom: 0;
    width: 54px;
    transform-origin: bottom center;
    opacity: 0;
    transform: scaleY(0);
    animation:
        lavLavenderGrow 2.2s
        cubic-bezier(0.2, 0.82, 0.22, 1)
        forwards,
        lavLavenderSway 5.5s
        ease-in-out
        infinite
        alternate;
}

.lavHeroLavenderOne {
    left: 2%;
    height: 45%;
    animation-delay:
        5.2s,
        7.4s;
}

.lavHeroLavenderTwo {
    left: 19%;
    height: 68%;
    animation-delay:
        5.55s,
        7.75s;
}

.lavHeroLavenderThree {
    left: 40%;
    height: 91%;
    animation-delay:
        5.85s,
        8.05s;
}

.lavHeroLavenderFour {
    left: 64%;
    height: 73%;
    animation-delay:
        6.15s,
        8.35s;
}

.lavHeroLavenderFive {
    left: 82%;
    height: 98%;
    animation-delay:
        6.4s,
        8.6s;
}

.lavHeroLavenderStem {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 3px;
    height: 76%;
    border-radius: 999px;
    background:
        linear-gradient(
            180deg,
            #708772,
            #435c4b
        );
    transform: translateX(-50%);
}

.lavHeroLavenderLeaves {
    position: absolute;
    inset: auto 0 9% 0;
    height: 58%;
}

.lavHeroLavenderLeaves i {
    position: absolute;
    left: 50%;
    width: 24px;
    height: 10px;
    border-radius: 100% 0 100% 0;
    background:
        linear-gradient(
            145deg,
            #849b86,
            #4c6754
        );
}

.lavHeroLavenderLeaves i:nth-child(1) {
    bottom: 6%;
    transform:
        translateX(-95%)
        rotate(16deg);
}

.lavHeroLavenderLeaves i:nth-child(2) {
    bottom: 29%;
    border-radius: 0 100% 0 100%;
    transform:
        translateX(-4%)
        rotate(-17deg);
}

.lavHeroLavenderLeaves i:nth-child(3) {
    bottom: 51%;
    transform:
        translateX(-95%)
        rotate(13deg);
}

.lavHeroLavenderLeaves i:nth-child(4) {
    bottom: 73%;
    border-radius: 0 100% 0 100%;
    transform:
        translateX(-4%)
        rotate(-14deg);
}

.lavHeroLavenderBloom {
    position: absolute;
    top: 0;
    left: 50%;
    display: flex;
    width: 30px;
    height: 34%;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 1px;
    opacity: 0;
    transform:
        translateX(-50%)
        scale(0.25);
    transform-origin: bottom center;
    animation:
        lavMatureBloom 1.25s
        cubic-bezier(0.34, 1.56, 0.64, 1)
        forwards;
}

.lavHeroLavenderOne .lavHeroLavenderBloom {
    animation-delay: 6.5s;
}

.lavHeroLavenderTwo .lavHeroLavenderBloom {
    animation-delay: 6.8s;
}

.lavHeroLavenderThree .lavHeroLavenderBloom {
    animation-delay: 7.1s;
}

.lavHeroLavenderFour .lavHeroLavenderBloom {
    animation-delay: 7.4s;
}

.lavHeroLavenderFive .lavHeroLavenderBloom {
    animation-delay: 7.7s;
}

.lavHeroLavenderBloom i {
    display: block;
    width: 14px;
    min-height: 8px;
    border-radius: 58% 42% 60% 40%;
    background:
        linear-gradient(
            135deg,
            #c49be0,
            #80559f 72%
        );
    box-shadow:
        0 0 9px rgba(173, 120, 216, 0.28);
}

.lavHeroLavenderBloom i:nth-child(2n) {
    margin-left: 7px;
    transform: rotate(9deg);
}

.lavHeroLavenderBloom i:nth-child(2n + 1) {
    margin-right: 6px;
    transform: rotate(-8deg);
}


/* ============================================================
   PARTICLES
============================================================ */

.lavHeroParticles {
    position: absolute;
    z-index: 12;
    inset: 0;
    pointer-events: none;
}

.lavHeroParticle {
    position: absolute;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    opacity: 0;
    background:
        radial-gradient(
            circle,
            rgba(255, 255, 255, 1) 0%,
            rgba(222, 184, 248, 0.88) 35%,
            rgba(181, 126, 220, 0.28) 68%,
            transparent 74%
        );
    box-shadow:
        0 0 7px rgba(210, 166, 240, 0.72),
        0 0 17px rgba(168, 112, 209, 0.35);
    animation:
        lavParticleFloat 5.4s
        ease-in-out
        infinite;
}

.lavHeroParticleOne {
    left: 22%;
    bottom: 16%;
    animation-delay: 4.2s;
}

.lavHeroParticleTwo {
    left: 32%;
    bottom: 25%;
    animation-delay: 5.1s;
}

.lavHeroParticleThree {
    left: 45%;
    bottom: 18%;
    animation-delay: 5.8s;
}

.lavHeroParticleFour {
    left: 57%;
    bottom: 35%;
    animation-delay: 6.2s;
}

.lavHeroParticleFive {
    left: 67%;
    bottom: 22%;
    animation-delay: 6.9s;
}

.lavHeroParticleSix {
    left: 76%;
    bottom: 42%;
    animation-delay: 7.4s;
}

.lavHeroParticleSeven {
    left: 84%;
    bottom: 31%;
    animation-delay: 8.1s;
}

.lavHeroParticleEight {
    left: 91%;
    bottom: 49%;
    animation-delay: 8.5s;
}


/* ============================================================
   FRAME DETAILS
============================================================ */

.lavHeroSceneBorder {
    position: absolute;
    z-index: 20;
    pointer-events: none;
    border-radius: inherit;
}

.lavHeroSceneBorderOuter {
    inset: 0;
    border: 1px solid rgba(131, 94, 156, 0.2);
}

.lavHeroSceneBorderInner {
    inset: 17px;
    border: 1px solid rgba(255, 255, 255, 0.58);
    border-radius:
        clamp(32px, 4vw, 58px)
        clamp(32px, 4vw, 58px)
        clamp(44px, 5vw, 76px)
        clamp(44px, 5vw, 76px);
    box-shadow:
        inset 0 0 28px rgba(255, 255, 255, 0.11);
}


/* ============================================================
   MESSAGE CARD
============================================================ */

.lavHeroVisualCard {
    position: absolute;
    z-index: 30;
    right: -2%;
    bottom: 0;
    width: min(80%, 420px);
    padding:
        clamp(26px, 3vw, 38px)
        clamp(28px, 3.4vw, 44px);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 32px;
    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.88),
            rgba(248, 244, 250, 0.76)
        );
    box-shadow:
        0 28px 68px rgba(57, 42, 64, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(22px);
    animation: lavCardFloat 5s ease-in-out infinite alternate;
}

.lavHeroVisualCard::before {
    content: "";
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(126, 90, 151, 0.09);
    border-radius: 24px;
    pointer-events: none;
}

.lavHeroVisualMark {
    display: block;
    height: 31px;
    color: #76518f;
    font-family: Georgia, serif;
    font-size: 4.5rem;
    font-weight: 700;
    line-height: 0.75;
}

.lavHeroVisualCard p {
    position: relative;
    z-index: 2;
    max-width: 330px;
    margin: 12px 0 0;
    color: #252027;
    font-family:
        "Cormorant Garamond",
        Georgia,
        serif;
    font-size: clamp(1.45rem, 2vw, 2.05rem);
    font-weight: 600;
    line-height: 1.15;
}


/* ============================================================
   DECORATIVE BOTANICAL
============================================================ */

.lavHeroBotanical {
    position: absolute;
    z-index: 0;
    top: 13%;
    right: -8%;
    width: clamp(90px, 10vw, 140px);
    color: rgba(102, 126, 107, 0.3);
    pointer-events: none;
}

.lavHeroBotanical svg {
    display: block;
    width: 100%;
    height: auto;
}


/* ============================================================
   HERO ENTRANCE
============================================================ */

.hero-reveal {
    opacity: 0;
    transform: translateY(34px);
    animation:
        lavHeroReveal 900ms
        cubic-bezier(0.22, 1, 0.36, 1)
        forwards;
}

.hero-delay-1 {
    animation-delay: 120ms;
}

.hero-delay-2 {
    animation-delay: 240ms;
}

.hero-delay-3 {
    animation-delay: 360ms;
}

.hero-delay-4 {
    animation-delay: 480ms;
}


/* ============================================================
   GENERIC SOFT MOTION
============================================================ */

.breathe-soft {
    animation: lavBreatheSoft 7s ease-in-out infinite alternate;
}

.float-soft {
    animation: lavFloatSoft 6s ease-in-out infinite alternate;
}


/* ============================================================
   KEYFRAMES — ENTRANCE
============================================================ */

@keyframes lavHeroReveal {
    from {
        opacity: 0;
        transform: translateY(34px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes lavSceneEntrance {
    from {
        opacity: 0;
        transform: scale(1.11);
        filter: blur(8px);
    }

    to {
        opacity: 1;
        transform: scale(1.035);
        filter: blur(0);
    }
}

@keyframes lavSceneBreathing {
    from {
        transform: scale(1.035) translate3d(0, 0, 0);
    }

    to {
        transform: scale(1.065) translate3d(-0.5%, -0.4%, 0);
    }
}


/* ============================================================
   KEYFRAMES — AMBIENT
============================================================ */

@keyframes lavAmbientLight {
    from {
        opacity: 0.36;
        transform: translate3d(0, 0, 0) scale(0.95);
    }

    to {
        opacity: 0.64;
        transform: translate3d(-5%, 5%, 0) scale(1.08);
    }
}

@keyframes lavWindowGlow {
    from {
        opacity: 0.22;
        transform:
            translateX(4%)
            rotate(-9deg);
    }

    to {
        opacity: 0.43;
        transform:
            translateX(-5%)
            rotate(-6deg);
    }
}

@keyframes lavLeafShadow {
    from {
        transform:
            rotate(-3deg)
            translate3d(0, 0, 0);
    }

    to {
        transform:
            rotate(4deg)
            translate3d(-4%, 3%, 0);
    }
}

@keyframes lavLogoReveal {
    from {
        opacity: 0;
        transform: scale(0.72);
    }

    to {
        opacity: 0.68;
        transform: scale(1);
    }
}

@keyframes lavLogoPulse {
    0%,
    100% {
        opacity: 0.34;
        transform: scale(0.96);
    }

    50% {
        opacity: 0.7;
        transform: scale(1.08);
    }
}


/* ============================================================
   KEYFRAMES — GROWTH
============================================================ */

@keyframes lavDrawGrowthPath {
    from {
        stroke-dashoffset: 860;
    }

    to {
        stroke-dashoffset: 0;
    }
}

@keyframes lavGrowthPointReveal {
    from {
        opacity: 0;
        transform: scale(0);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes lavGrowthPointPulse {
    0%,
    100% {
        transform: scale(0.82);
        opacity: 0.65;
    }

    50% {
        transform: scale(1.38);
        opacity: 1;
    }
}

@keyframes lavSoilReveal {
    from {
        opacity: 0;
        transform: translateY(32px);
    }

    to {
        opacity: 0.92;
        transform: translateY(0);
    }
}

@keyframes lavSeedAppear {
    from {
        opacity: 0;
        transform:
            rotate(-24deg)
            scale(0.3)
            translateY(-14px);
    }

    to {
        opacity: 1;
        transform:
            rotate(-24deg)
            scale(1)
            translateY(0);
    }
}

@keyframes lavPlantGrow {
    0% {
        opacity: 0;
        transform:
            scaleY(0)
            translateY(14px);
    }

    20% {
        opacity: 1;
    }

    100% {
        opacity: 1;
        transform:
            scaleY(1)
            translateY(0);
    }
}

@keyframes lavLeafOpen {
    from {
        opacity: 0;
        scale: 0.1;
    }

    to {
        opacity: 1;
        scale: 1;
    }
}

@keyframes lavFlowerBloom {
    from {
        opacity: 0;
        transform:
            translateX(-50%)
            scale(0.25)
            rotate(-5deg);
    }

    to {
        opacity: 1;
        transform:
            translateX(-50%)
            scale(1)
            rotate(0);
    }
}

@keyframes lavLavenderGrow {
    0% {
        opacity: 0;
        transform:
            scaleY(0)
            translateY(16px);
    }

    20% {
        opacity: 1;
    }

    100% {
        opacity: 1;
        transform:
            scaleY(1)
            translateY(0);
    }
}

@keyframes lavMatureBloom {
    from {
        opacity: 0;
        transform:
            translateX(-50%)
            scale(0.2);
    }

    to {
        opacity: 1;
        transform:
            translateX(-50%)
            scale(1);
    }
}

@keyframes lavLavenderSway {
    from {
        rotate: -1.5deg;
    }

    to {
        rotate: 2.4deg;
    }
}


/* ============================================================
   KEYFRAMES — PARTICLES
============================================================ */

@keyframes lavParticleFloat {
    0% {
        opacity: 0;
        transform:
            translate3d(0, 12px, 0)
            scale(0.5);
    }

    20% {
        opacity: 0.9;
    }

    55% {
        opacity: 1;
        transform:
            translate3d(8px, -28px, 0)
            scale(1.1);
    }

    100% {
        opacity: 0;
        transform:
            translate3d(-5px, -64px, 0)
            scale(0.7);
    }
}


/* ============================================================
   KEYFRAMES — FLOATING ELEMENTS
============================================================ */

@keyframes lavCardFloat {
    from {
        transform:
            translate3d(0, 0, 0)
            rotate(-0.2deg);
    }

    to {
        transform:
            translate3d(0, -9px, 0)
            rotate(0.3deg);
    }
}

@keyframes lavBreatheSoft {
    from {
        transform: scale(0.96);
        opacity: 0.62;
    }

    to {
        transform: scale(1.06);
        opacity: 0.84;
    }
}

@keyframes lavFloatSoft {
    from {
        transform:
            translate3d(0, 0, 0)
            rotate(-1deg);
    }

    to {
        transform:
            translate3d(0, -10px, 0)
            rotate(1.5deg);
    }
}


/* ============================================================
   LARGE SCREENS
============================================================ */

@media (min-width: 1600px) {

    .lavHeroGrid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(560px, 730px);
    }

    .lavHeroScene {
        min-height: 820px;
    }

}


/* ============================================================
   1320px
============================================================ */

@media (max-width: 1320px) {

    .lavHeroGrid {
        grid-template-columns:
            minmax(0, 0.92fr)
            minmax(440px, 0.85fr);
        gap: clamp(42px, 5vw, 72px);
    }

    .lavHeroTitle {
        font-size: clamp(4rem, 6vw, 6.8rem);
    }

    .lavHeroScene {
        min-height: clamp(580px, 61vw, 740px);
    }

}


/* ============================================================
   1120px
============================================================ */

@media (max-width: 1120px) {

    .lavHero {
        min-height: auto;
    }

    .lavHeroGrid {
        grid-template-columns: 1fr;
        gap: 76px;
    }

    .lavHeroContent {
        max-width: 850px;
    }

    .lavHeroTitle {
        max-width: 850px;
        font-size: clamp(4.5rem, 9vw, 7.5rem);
    }

    .lavHeroDescription {
        max-width: 720px;
    }

    .lavHeroVisual {
        width: min(100%, 760px);
        justify-self: center;
    }

    .lavHeroScene {
        min-height: clamp(650px, 92vw, 860px);
    }

}


/* ============================================================
   760px
============================================================ */

@media (max-width: 760px) {

    .lavHero {
        padding:
            34px
            0
            78px;
    }

    .lavHero .container {
        width: min(
            calc(100% - 28px),
            1440px
        );
    }

    .lavHeroGrid {
        gap: 52px;
    }

    .lavHeroTitle {
        font-size: clamp(3.5rem, 17vw, 5.5rem);
        line-height: 0.89;
    }

    .lavHeroDescription {
        margin-top: 28px;
        font-size: 1rem;
        line-height: 1.75;
    }

    .lavHeroActions {
        align-items: stretch;
        flex-direction: column;
    }

    .lavHeroActions .button {
        width: 100%;
    }

    .lavHeroTrust {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .lavHeroVisual {
        padding:
            0
            0
            82px;
    }

    .lavHeroScene {
        min-height: clamp(550px, 142vw, 690px);
        border-radius: 36px 36px 52px 52px;
    }

    .lavHeroSceneBorderInner {
        inset: 10px;
        border-radius: 28px 28px 43px 43px;
    }

    .lavHeroVisualCard {
        right: 3%;
        bottom: 10px;
        width: 88%;
        padding: 25px 26px;
        border-radius: 25px;
    }

    .lavHeroVisualCard::before {
        inset: 8px;
        border-radius: 19px;
    }

    .lavHeroVisualCard p {
        font-size: clamp(1.35rem, 6.5vw, 1.75rem);
    }

    .lavHeroBotanical {
        display: none;
    }

    .lavHeroGrowthPath {
        right: -5%;
        width: 105%;
    }

    .lavHeroLavenderGarden {
        right: 0;
        width: 54%;
    }

}


/* ============================================================
   480px
============================================================ */

@media (max-width: 480px) {

    .lavHeroEyebrow small {
        font-size: 0.68rem;
        letter-spacing: 0.12em;
    }

    .lavHeroTitle {
        font-size: clamp(3.2rem, 17vw, 4.4rem);
    }

    .lavHeroScene {
        min-height: 540px;
    }

    .lavHeroSceneImage {
        object-position: 55% center;
    }

    .lavHeroGrowthPath {
        opacity: 0.76;
    }

    .lavHeroPlantOne {
        left: 20%;
    }

    .lavHeroPlantTwo {
        left: 37%;
    }

    .lavHeroPlantThree {
        left: 53%;
    }

    .lavHeroLavenderGarden {
        width: 51%;
    }

    .lavHeroVisualCard {
        right: 2%;
        width: 94%;
    }

}


/* ============================================================
   ACCESSIBILITY — REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {

    .lavHero *,
    .lavHero *::before,
    .lavHero *::after {
        scroll-behavior: auto !important;
        animation-duration: 1ms !important;
        animation-delay: 0ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }

    .hero-reveal {
        opacity: 1;
        transform: none;
    }

    .lavHeroSceneImage {
        transform: scale(1.035);
        filter: none;
    }

    .lavHeroGrowthPathLine {
        stroke-dashoffset: 0;
    }

    .lavHeroGrowthPoint,
    .lavHeroGardenSoil,
    .lavHeroSeed,
    .lavHeroPlant,
    .lavHeroLavender,
    .lavHeroLavenderBloom,
    .lavHeroFlower {
        opacity: 1;
    }

    .lavHeroPlant,
    .lavHeroLavender {
        transform: scaleY(1);
    }

    .lavHeroLavenderBloom,
    .lavHeroFlower {
        transform: translateX(-50%) scale(1);
    }

}

/* ============================================================
   FIX — HERO BLUR CONFLICT
============================================================ */

.lavHero,
.lavHeroGrid,
.lavHeroContent,
.lavHeroVisual,
.lavHeroScene {
    filter: none;
}

.lavHero .hero-reveal,
.lavHero .hero-reveal.is-visible,
.lavHero .image-reveal,
.lavHero .image-reveal.is-visible {
    opacity: 1;
    filter: none;
    visibility: visible;
}

.lavHeroContent,
.lavHeroContent *,
.lavHeroVisualCard,
.lavHeroTrust {
    filter: none;
    backdrop-filter: none;
}


/* La tarjeta sí puede conservar únicamente su cristal */

.lavHeroVisualCard {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}


/* La imagen debe verse nítida durante toda la entrada */

.lavHeroSceneImage {
    filter: none;
    opacity: 1;
    animation:
        lavSceneEntrance 1.25s
        cubic-bezier(0.22, 1, 0.36, 1)
        both,
        lavSceneBreathing 14s
        ease-in-out
        1.25s
        infinite
        alternate;
}


/* Entrada sin desenfoque */

@keyframes lavSceneEntrance {

    from {
        opacity: 0;
        transform: scale(1.075);
        filter: none;
    }

    to {
        opacity: 1;
        transform: scale(1.035);
        filter: none;
    }

}


/* El reveal del contenido tampoco debe usar blur */

@keyframes lavHeroReveal {

    from {
        opacity: 0;
        transform: translateY(28px);
        filter: none;
    }

    to {
        opacity: 1;
        transform: translateY(0);
        filter: none;
    }

}