/* Essential animations and styles that complement Tailwind */

/* Hero image position via CSS variable */
[data-hero-dark="true"] img {
    object-position: var(--hero-pos, center);
}

/* Tailwind v4 doesn't always generate object-center */
.object-center {
    object-position: center;
}

/* Scroll Snap Container */
.snap-container {
    height: 100vh;
    overflow-y: auto;
    scroll-snap-type: y mandatory;
}

.snap-child {
    scroll-snap-align: start;
}

/* Lemniscate Animation */
.lemniscate-svg .dot {
    offset-path: path('M50,50 C20,50 20,20 50,20 C80,20 80,50 100,50 C120,50 120,20 150,20 C180,20 180,50 150,50 C120,50 120,80 100,80 C80,80 80,50 50,50 Z');
    animation: flow 6s infinite linear;
}

.dot-right {
    animation-delay: -3s !important;
}

@keyframes flow {
    0% {
        offset-distance: 0%;
    }
    100% {
        offset-distance: 100%;
    }
}

/* Hero fade-in animation */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fadeIn {
    animation: fadeIn 1.5s ease-out forwards;
    animation-delay: 0.2s;
}

/* Scroll reveal for cards */
.offer-card,
.about-text,
.about-visual {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.offer-card.revealed,
.about-text.revealed,
.about-visual.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Disabled card stays at 60% opacity */
.offer-card.opacity-60 {
    opacity: 0.6;
}

.offer-card.opacity-60.revealed {
    opacity: 0.6;
}

/* Prose customization for content pages */
.prose h2 {
    font-family: var(--font-heading);
}

.prose h3 {
    font-family: var(--font-heading);
}

.prose blockquote {
    font-family: var(--font-heading);
    font-style: italic;
}

/* Icon list helpers */
.icon-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.icon-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.icon-list--arrow li::before {
    content: "\25B8";
    color: var(--color-brand-accent);
    font-size: 1.125rem;
    margin-top: 0.125rem;
    flex-shrink: 0;
}

.icon-list--check li::before {
    content: "\2713";
    color: var(--color-brand-accent);
    font-size: 1.1rem;
    margin-top: 0.1rem;
    flex-shrink: 0;
}

.icon-list--columns-2 ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.panel-content a {
    color: var(--color-brand-accent);
}

.panel-content a:hover {
    color: #1d4ed8;
}

/* Nav logo positioning */
.nav-logo__image {
    width: 6rem;
    height: 6rem;
    margin-top: -20px;
    margin-bottom: -3rem;
}

@media (min-width: 768px) {
    .nav-logo__image {
        width: 9rem;
        height: 9rem;
        margin-top: -20px;
        margin-bottom: -4.5rem;
    }
}

/* Transparent gradients for coaching page to reveal texture */
.bg-gradient-warm-90 {
    background: linear-gradient(to top right, rgba(255, 253, 247, 0.93), rgba(255, 255, 255, 0.93));
}

.bg-gradient-cool-90 {
    background: linear-gradient(to top right, rgba(248, 251, 255, 0.93), rgba(255, 255, 255, 0.93));
}
