/* ============================================
   Love Generation — Landing Sections
   CTA, Promo, Footer
   ============================================ */

/* ============ Phone Mockup ============ */

.steps__phone-wrap {
    position: relative;
    width: 100%;
    height: calc(600 * var(--px));
    margin: 0 auto;
    overflow: visible;
    z-index: 0;
}

.steps__phone-glow {
    position: absolute;
    width: calc(290 * var(--px));
    height: calc(537 * var(--px));
    left: 50%;
    top: 50%;
    transform: translate(-50%, -45%);
    background: var(--yellow-warm);
    filter: blur(90px);
    border-radius: 50%;
    z-index: 0;
}

.steps__phone {
    position: absolute;
    z-index: 3;
    left: 50%;
    top: calc(20 * var(--px));
    transform: translateX(-50%);
    width: calc(235 * var(--px));
    height: calc(493 * var(--px));
    border-radius: calc(34 * var(--px));
    overflow: hidden;
    background: #D6D6D6;
}

.steps__phone::after {
    content: '';
    position: absolute;
    top: calc(10 * var(--px));
    left: 50%;
    transform: translateX(-50%);
    width: calc(72 * var(--px));
    height: calc(22 * var(--px));
    background: #FFFFFF;
    border-radius: calc(11 * var(--px));
    z-index: 5;
}

.steps__phone-frame {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: calc(16 * var(--px));
    transform: translateX(-50%);
    width: calc(245 * var(--px));
    height: calc(500 * var(--px));
    background: white;
    border-radius: calc(36 * var(--px));
}

.steps__phone-frame::before {
    content: '';
    position: absolute;
    left: calc(-3 * var(--px));
    top: calc(75 * var(--px));
    width: calc(3 * var(--px));
    height: calc(102 * var(--px));
    background: linear-gradient(
        to bottom,
        #FFF 0px, #FFF calc(16 * var(--px)),
        transparent calc(16 * var(--px)), transparent calc(28 * var(--px)),
        #FFF calc(28 * var(--px)), #FFF calc(60 * var(--px)),
        transparent calc(60 * var(--px)), transparent calc(70 * var(--px)),
        #FFF calc(70 * var(--px)), #FFF calc(102 * var(--px))
    );
    border-radius: calc(1.5 * var(--px)) 0 0 calc(1.5 * var(--px));
}

.steps__phone-frame::after {
    content: '';
    position: absolute;
    right: calc(-3 * var(--px));
    top: calc(125 * var(--px));
    width: calc(3 * var(--px));
    height: calc(55 * var(--px));
    background: #FFFFFF;
    border-radius: 0 calc(1.5 * var(--px)) calc(1.5 * var(--px)) 0;
}

.steps__phone-screen {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.steps__phone-btn {
    position: absolute;
    z-index: 6;
    bottom: calc(170 * var(--px));
    left: 50%;
    transform: translateX(-50%);
    width: calc(210 * var(--px));
    height: calc(45 * var(--px));
    font-size: calc(14 * var(--px));
    white-space: nowrap;
}

.steps__product-left,
.steps__product-right,
.steps__product-bottom {
    position: absolute;
    z-index: 0;
    max-width: none;
    object-fit: contain;
    pointer-events: none;
}

.steps__product-left {
    width: calc(280 * var(--px));
    left: calc(20% + 30 * var(--px));
    top: calc(-140 * var(--px));
}

.steps__product-right {
    width: calc(250 * var(--px));
    left: calc(-10 * var(--px));
    top: calc(190 * var(--px));
}

.steps__product-bottom {
    width: calc(180 * var(--px));
    left: calc(50% + 50 * var(--px));
    top: calc(180 * var(--px));
}

.steps__phone-overlay {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -60%);
    width: calc(180 * var(--px));
    height: calc(210 * var(--px));
    z-index: 2;
}

.steps__phone-shutter {
    position: absolute;
    bottom: calc(20 * var(--px));
    left: 50%;
    transform: translateX(-50%);
    width: calc(60 * var(--px));
    height: calc(60 * var(--px));
    z-index: 2;
}

/* ============ CTA Section ============ */

.cta {
    position: relative;
    z-index: 2;
    padding: calc(60 * var(--px)) var(--padding-x);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(40 * var(--px));
}

.cta__title {
    font-size: calc(32 * var(--px));
    line-height: 100%;
}

/* ============ Promo Section ============ */

.promo {
    position: relative;
    z-index: 2;
    padding: 0 var(--padding-x) calc(40 * var(--px));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(30 * var(--px));
}

.promo-card {
    width: 100%;
    height: calc(484 * var(--px));
    border-radius: var(--radius-card);
    position: relative;
    overflow: hidden;
}

.promo-card--purple {
    background: var(--purple-card);
}

.promo-card--pink {
    background: var(--pink);
}

.promo-card__image {
    position: absolute;
    /* top: calc(-122 * var(--px)); */
    left: calc(-1 * var(--px));
    width: calc(341 * var(--px));
    height: auto;
    max-width: none;
    object-fit: cover;
}

.promo-card__overlay {
    position: absolute;
    bottom: 0;
    left: calc(-18 * var(--px));
    right: calc(-18 * var(--px));
    height: calc(120 * var(--px));
    background: rgba(217, 217, 217, 0.05);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    filter: blur(6px);
}

.promo-card__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    z-index: 1;
    padding-bottom: calc(20 * var(--px));
}

.promo-card__label {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: calc(14 * var(--px));
    line-height: calc(17 * var(--px));
    text-align: center;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    margin-bottom: calc(5 * var(--px));
}

.promo-card__discount {
    font-family: var(--font-heading);
    font-style: italic;
    font-weight: 800;
    font-size: calc(64 * var(--px));
    line-height: calc(77 * var(--px));
    text-align: center;
    letter-spacing: -0.03em;
    text-transform: uppercase;
}

.promo-card__period {
    font-family: var(--font-heading);
    font-style: italic;
    font-weight: 800;
    font-size: calc(23 * var(--px));
    line-height: calc(28 * var(--px));
    text-align: center;
    letter-spacing: -0.03em;
    text-transform: uppercase;
}

.promo-card__product-name {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: calc(14 * var(--px));
    line-height: calc(17 * var(--px));
    text-align: center;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    margin: calc(5 * var(--px)) 0;
}

.promo-card__note {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: calc(14 * var(--px));
    line-height: calc(17 * var(--px));
    text-align: center;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    margin-top: calc(10 * var(--px));
}

.promo-card__icon {
    display: block;
    width: calc(20 * var(--px));
    height: calc(18 * var(--px));
    margin: calc(8 * var(--px)) auto;
}

/* ============ Footer ============ */

.landing-footer {
    padding: calc(20 * var(--px));
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(15 * var(--px));
}

.landing-footer__octopus {
    width: calc(52 * var(--px));
    height: calc(44 * var(--px));
}

/* ============ Responsive ============ */

@media (min-width: 480px) {
    .landing {
        max-width: 480px;
    }
}
