/* ═══════════════════════════════════════════════════════════
   Mollusca Gift Card page
   ═══════════════════════════════════════════════════════════ */

.gift-root {
    --gift-bg: #111;
    --gift-surface: rgba(255,255,255,0.05);
    --gift-surface-hover: rgba(255,255,255,0.08);
    --gift-text: #f0f0f0;
    --gift-text-2: rgba(240,240,240,0.8);
    --gift-text-3: rgba(240,240,240,0.6);
    --gift-accent: #c8a97e;
    --gift-accent-soft: rgba(200,169,126,0.10);
    --gift-border: rgba(255,255,255,0.08);
    --gift-radius: 16px;
    --gift-radius-sm: 10px;
    --gift-ease: cubic-bezier(.4,0,.2,1);

    position: relative;
    color: var(--gift-text);
    font-family: 'Open Sans', sans-serif;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
    overflow: hidden;
}

.gift-root *, .gift-root *::before, .gift-root *::after { box-sizing: border-box; }

.gift-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 32px;
}

/* Entrance animation */
.gift-anim { opacity: 0; transform: translateY(24px); }
.gift-anim.gift-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity .55s var(--gift-ease), transform .55s var(--gift-ease);
}


/* ═══════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════ */

.gift-hero {
    position: relative;
    padding: 140px 0 100px;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
}

.gift-hero__bg-pattern {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 60%, var(--gift-accent-soft) 0%, transparent 50%),
        radial-gradient(circle at 80% 30%, rgba(255,255,255,0.02) 0%, transparent 50%);
    pointer-events: none;
}

.gift-hero__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.gift-hero__centered {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}

.gift-hero__centered .gift-hero__title {
    text-align: center;
}

.gift-hero__centered .gift-hero__desc {
    margin-left: auto;
    margin-right: auto;
}

.gift-hero__centered .gift-hero__actions {
    justify-content: center;
}

/* Card visual */
.gift-card-visual {
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 1200px;
}

.gift-card-visual__inner {
    width: 100%;
    max-width: 480px;
    aspect-ratio: 16 / 10;
    border-radius: 18px;
    overflow: hidden;
    background: #1a1a1a;
    box-shadow:
        0 30px 80px rgba(0,0,0,0.55),
        0 0 80px rgba(200,169,126,0.12),
        inset 0 0 0 1px rgba(255,255,255,0.06);
    transform: rotate(-3deg) translateY(0);
    transition: transform .6s var(--gift-ease);
}

.gift-card-visual__inner:hover {
    transform: rotate(-2deg) translateY(-8px);
}

.gift-card-visual__inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Hero content */
.gift-hero__content { display: flex; flex-direction: column; }

.gift-hero__overtitle {
    font-family: 'Cormorant', serif;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.4em;
    color: var(--gift-accent);
    margin-bottom: 24px;
}

.gift-hero__title {
    font-family: 'Cormorant', serif;
    font-weight: 300;
    font-size: clamp(48px, 6vw, 88px);
    line-height: 1;
    margin: 0 0 32px;
    color: var(--gift-text);
}

.gift-hero__desc {
    font-size: 17px;
    line-height: 1.6;
    color: var(--gift-text-2);
    margin: 0 0 40px;
    max-width: 520px;
}

.gift-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }


/* ═══════════════════════════════════════════════
   Buttons
   ═══════════════════════════════════════════════ */

.gift-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 36px;
    background: var(--gift-accent);
    color: #111;
    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    text-decoration: none;
    border: 1px solid var(--gift-accent);
    border-radius: 4px;
    transition: all .25s var(--gift-ease);
    cursor: pointer;
}

.gift-btn:hover {
    background: transparent;
    color: var(--gift-accent);
    text-decoration: none;
}

.gift-btn--outline {
    background: transparent;
    color: var(--gift-accent);
}

.gift-btn--outline:hover {
    background: var(--gift-accent);
    color: #111;
}


/* ═══════════════════════════════════════════════
   SECTIONS
   ═══════════════════════════════════════════════ */

.gift-section { padding: 100px 0; position: relative; }

.gift-section__title {
    font-family: 'Cormorant', serif;
    font-weight: 300;
    font-size: clamp(36px, 4vw, 56px);
    line-height: 1.1;
    text-align: center;
    margin: 0 0 60px;
    color: var(--gift-text);
}


/* Steps */
.gift-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    max-width: 1000px;
    margin: 0 auto;
}

.gift-step {
    background: var(--gift-surface);
    border: 1px solid var(--gift-border);
    border-radius: var(--gift-radius);
    padding: 40px 28px;
    transition: all .3s var(--gift-ease);
    position: relative;
}

.gift-step:hover {
    background: var(--gift-surface-hover);
    transform: translateY(-4px);
}

.gift-step__number {
    font-family: 'Cormorant', serif;
    font-size: 64px;
    font-weight: 300;
    line-height: 1;
    color: var(--gift-accent);
    margin-bottom: 24px;
    opacity: 0.85;
}

.gift-step__title {
    font-family: 'Cormorant', serif;
    font-weight: 400;
    font-size: 26px;
    margin: 0 0 12px;
    color: var(--gift-text);
}

.gift-step__desc {
    font-size: 15px;
    line-height: 1.6;
    color: var(--gift-text-2);
    margin: 0;
}


/* CTA */
.gift-cta {
    padding: 100px 0 140px;
    background:
        radial-gradient(circle at 50% 50%, var(--gift-accent-soft) 0%, transparent 60%);
}

.gift-cta__inner {
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
}

.gift-cta__title {
    font-family: 'Cormorant', serif;
    font-weight: 300;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.15;
    margin: 0 0 20px;
    color: var(--gift-text);
}

.gift-cta__desc {
    font-size: 16px;
    line-height: 1.6;
    color: var(--gift-text-2);
    margin: 0 0 36px;
}

.gift-cta__contacts {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}


/* ═══════════════════════════════════════════════
   Responsive
   ═══════════════════════════════════════════════ */

@media (max-width: 900px) {
    .gift-hero { padding: 120px 0 60px; min-height: auto; }
    .gift-hero__grid { grid-template-columns: 1fr; gap: 40px; }
    .gift-card-visual { order: -1; }
    .gift-card-visual__inner { max-width: 360px; }

    .gift-section { padding: 70px 0; }
    .gift-section__title { margin-bottom: 40px; }

    .gift-steps { grid-template-columns: 1fr; gap: 16px; }
    .gift-step { padding: 28px 24px; }
    .gift-step__number { font-size: 48px; margin-bottom: 16px; }

    .gift-cta { padding: 70px 0 100px; }
    .gift-cta__contacts { flex-direction: column; align-items: stretch; }
    .gift-cta__contacts .gift-btn { width: 100%; }
}

@media (max-width: 540px) {
    .gift-container { padding: 0 20px; }
    .gift-hero__title { font-size: 48px; }
    .gift-hero__desc { font-size: 15px; }
}
