/* ============================================================
   Heading font override + entrance animations
   Safe to load alongside any version of style.css
   ============================================================ */

:root {
    --serif: 'Cormorant Garamond', Georgia, serif;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: none; }
}
@keyframes growLine {
    from { width: 0; }
    to   { width: 34px; }
}
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-16px); }
    to   { opacity: 1; transform: none; }
}
@keyframes floatCard {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-5px); }
}
@keyframes kenBurns {
    from { transform: scale(1); }
    to   { transform: scale(1.1) translateY(-1.5%); }
}
@keyframes sheen {
    0%, 55%  { left: -80%; }
    85%,100% { left: 130%; }
}
@keyframes nudge {
    from { transform: translateX(0); }
    to   { transform: translateX(5px); }
}

/* ---------- Hero entrance ---------- */
.hero .eyebrow-line { animation: growLine .8s ease .2s both; }
.hero-content .eyebrow { animation: fadeUp .7s ease .1s both; }
.hero-content h1 {
    animation: fadeUp .9s cubic-bezier(.2,.7,.3,1) .25s both;
}
.hero-sub { animation: fadeUp .9s cubic-bezier(.2,.7,.3,1) .45s both; }
.hero-actions { animation: fadeUp .9s cubic-bezier(.2,.7,.3,1) .65s both; }
.search-card {
    animation: slideDown .9s cubic-bezier(.2,.7,.3,1) .85s both,
               floatCard 6s ease-in-out 2s infinite;
}

/* ---------- Inner-page hero: real photo background ---------- */
.page-hero {
    background: linear-gradient(rgba(21, 19, 14, .78), rgba(21, 19, 14, .78)),
                url('../images/banner2.png') center/cover no-repeat;
}
.page-hero .eyebrow { animation: fadeUp .7s ease .05s both; }
.page-hero h1       { animation: fadeUp .8s cubic-bezier(.2,.7,.3,1) .15s both; }
.page-hero-sub      { animation: fadeUp .8s cubic-bezier(.2,.7,.3,1) .3s both; }

/* ---------- Hero banner: slow Ken Burns drift ---------- */
.hero-bg { overflow: hidden; }
.hero-bg img {
    animation: kenBurns 18s ease-in-out infinite alternate;
    transform-origin: center;
    will-change: transform;
}

/* ---------- Gradient shimmer on headings ---------- */
.section-title {
    background: linear-gradient(120deg, var(--ink) 70%, var(--gold-dark, #A87B22));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hero-content h1, .page-hero h1, .cta-grid h2, .process-text h2 {
    background: linear-gradient(120deg, #FFFFFF 60%, var(--gold-light, #E8CE8F));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ---------- Staggered scroll-reveal (JS adds .reveal) ---------- */
.property-grid .property-card:nth-child(2),
.features-grid  .feature-item:nth-child(2),
.why-grid       .why-card:nth-child(2),
.process-steps  .step:nth-child(2) { transition-delay: .08s; }
.property-grid .property-card:nth-child(3),
.features-grid  .feature-item:nth-child(3),
.why-grid       .why-card:nth-child(3),
.process-steps  .step:nth-child(3) { transition-delay: .16s; }
.property-grid .property-card:nth-child(4),
.features-grid  .feature-item:nth-child(4),
.why-grid       .why-card:nth-child(4) { transition-delay: .24s; }
.property-grid .property-card:nth-child(5),
.features-grid  .feature-item:nth-child(5) { transition-delay: .32s; }
.property-grid .property-card:nth-child(6) { transition-delay: .4s; }

/* ---------- Property cards: lift + image zoom ---------- */
.property-card {
    transition: transform .35s ease, box-shadow .35s ease;
    will-change: transform;
}
.property-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 22px 44px rgba(21, 19, 14, .14);
}
.card-media { overflow: hidden; }
.card-media img {
    transition: transform .6s cubic-bezier(.2, .7, .3, 1);
}
.property-card:hover .card-media img { transform: scale(1.07); }

/* ---------- About image: gentle zoom on hover ---------- */
.about-media { overflow: hidden; }
.about-media img {
    transition: transform .8s cubic-bezier(.2, .7, .3, 1);
}
.about-media:hover img { transform: scale(1.05); }

/* ---------- Gold buttons: moving light sheen ---------- */
.btn-gold { position: relative; overflow: hidden; }
.btn-gold::after {
    content: '';
    position: absolute;
    top: 0; left: -80%;
    width: 50%; height: 100%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .45), transparent);
    transform: skewX(-20deg);
    animation: sheen 4.5s ease-in-out infinite;
    pointer-events: none;
}

/* ---------- Feature / why icons: playful hover ---------- */
.feature-item .feature-ico,
.why-card    .why-ico {
    display: inline-block;
    transition: transform .3s ease;
}
.feature-item:hover .feature-ico,
.why-card:hover    .why-ico {
    transform: translateY(-4px) scale(1.15) rotate(-4deg);
}

/* ---------- Process arrows nudge on hover ---------- */
.step:hover .step-arrow { animation: nudge .6s ease infinite alternate; }

/* ---------- Testimonial cards: subtle raise ---------- */
.testi-card { transition: transform .3s ease; }
.testi-card:hover { transform: translateY(-4px); }

@media (prefers-reduced-motion: reduce) {
    .hero-content h1, .hero-sub, .hero-actions, .search-card, .hero-content .eyebrow, .hero .eyebrow-line,
    .page-hero .eyebrow, .page-hero h1, .page-hero-sub,
    .hero-bg img, .btn-gold::after,
    .property-card, .card-media img, .about-media img,
    .feature-item .feature-ico, .why-card .why-ico,
    .step:hover .step-arrow, .testi-card {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
