:root {
            --sand: #f4ede4;
            --cream: #fffaf4;
            --clay: #cc8b67;
            --clay-dark: #9f6243;
            --sage: #cfd8c7;
            --ink: #3f342d;
            --muted: #73655c;
            --line: rgba(91, 67, 55, 0.12);
            --panel: rgba(255, 250, 244, 0.8);
            --shadow: 0 24px 60px rgba(78, 56, 45, 0.12);
            --radius-xl: 40px;
            --radius-lg: 26px;
            --radius-md: 18px;
        }

        * {
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            margin: 0;
            font-family: "Outfit", sans-serif;
            color: var(--ink);
            background:
                linear-gradient(135deg, rgba(207, 216, 199, 0.4) 0%, rgba(207, 216, 199, 0) 30%),
                radial-gradient(circle at top right, rgba(204, 139, 103, 0.22), transparent 26%),
                linear-gradient(180deg, #f8f1e8 0%, #f3eadf 55%, #efe4d6 100%);
            line-height: 1.65;
        }

        h1, h2, h3, .brand {
            font-family: "DM Serif Display", serif;
            letter-spacing: -0.03em;
        }

        .section-space {
            padding: 90px 0;
        }

        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 10px 16px;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.48);
            border: 1px solid rgba(159, 98, 67, 0.14);
            color: var(--clay-dark);
            text-transform: uppercase;
            letter-spacing: 0.06em;
            font-size: 0.76rem;
            font-weight: 700;
        }

        .hero {
            position: relative;
            min-height: 100vh;
            display: flex;
            align-items: center;
            padding: 28px 0 54px;
        }

        .hero::before {
            content: "";
            position: absolute;
            inset: 0;
            background:
                radial-gradient(circle at 15% 18%, rgba(255, 255, 255, 0.55), transparent 18%),
                radial-gradient(circle at 80% 14%, rgba(204, 139, 103, 0.12), transparent 18%),
                linear-gradient(180deg, rgba(255, 250, 244, 0.18), rgba(255, 250, 244, 0));
            pointer-events: none;
        }

        .hero-inner {
            position: relative;
            z-index: 1;
        }

        .nav-shell {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 16px;
            padding: 16px 18px;
            border-radius: 26px;
            background: rgba(255, 250, 244, 0.6);
            border: 1px solid var(--line);
            backdrop-filter: blur(12px);
            box-shadow: 0 14px 36px rgba(78, 56, 45, 0.08);
            margin-bottom: 40px;
        }

        .brand {
            font-size: 1.85rem;
        }

        .nav-meta {
            color: var(--muted);
            font-size: 0.95rem;
        }

        .hero-copy-card,
        .hero-photo-card,
        .soft-card,
        .contact-card,
        .notice-card,
        .footer-card {
            background: var(--panel);
            border: 1px solid var(--line);
            backdrop-filter: blur(14px);
            box-shadow: var(--shadow);
        }

        .hero-copy-card {
            border-radius: var(--radius-xl);
            padding: clamp(30px, 4vw, 48px);
        }

        .hero-photo-card {
            padding: 18px;
            border-radius: var(--radius-xl);
            position: relative;
        }

        h1 {
            font-size: clamp(3rem, 7vw, 5.3rem);
            line-height: 0.94;
            margin: 20px 0 18px;
        }

        h2 {
            font-size: clamp(2.2rem, 4vw, 3.5rem);
            margin-bottom: 1rem;
        }

        h3 {
            font-size: 1.9rem;
            margin-bottom: 0.7rem;
        }

        .intro {
            font-size: 1.1rem;
            color: var(--muted);
            max-width: 680px;
        }

        .cta-row {
            display: flex;
            flex-wrap: wrap;
            gap: 14px;
            margin-top: 26px;
        }

        .btn-main,
        .btn-alt {
            border-radius: 999px;
            font-weight: 700;
            padding: 15px 24px;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            text-decoration: none;
            transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
        }

        .btn-main {
            border: none;
            color: #fff;
            background: linear-gradient(135deg, var(--clay), var(--clay-dark));
            box-shadow: 0 18px 34px rgba(159, 98, 67, 0.24);
        }

        .btn-main:hover,
        .btn-main:focus {
            color: #fff;
            transform: translateY(-2px);
            box-shadow: 0 22px 38px rgba(159, 98, 67, 0.28);
        }

        .btn-alt {
            color: var(--clay-dark);
            border: 1px solid rgba(159, 98, 67, 0.18);
            background: rgba(255, 255, 255, 0.58);
        }

        .btn-alt:hover,
        .btn-alt:focus {
            color: var(--clay-dark);
            transform: translateY(-2px);
            background: #fff;
        }

        .hero-highlights {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 16px;
            margin-top: 30px;
        }

        .highlight {
            background: rgba(255, 255, 255, 0.5);
            border: 1px solid rgba(91, 67, 55, 0.08);
            border-radius: 22px;
            padding: 18px;
        }

        .highlight strong {
            display: block;
            margin-bottom: 6px;
            color: var(--clay-dark);
        }

        .hero-photo {
            width: 100%;
            aspect-ratio: 4 / 5;
            object-fit: cover;
            border-radius: 30px;
        }

        .photo-note {
            position: absolute;
            left: 20px;
            bottom: 20px;
            max-width: 220px;
            padding: 14px 16px;
            border-radius: 18px;
            background: rgba(255, 250, 244, 0.85);
            border: 1px solid rgba(91, 67, 55, 0.08);
            color: var(--muted);
            font-size: 0.93rem;
        }

        .services-wrap,
        .details-wrap,
        .contact-wrap {
            display: grid;
            gap: 22px;
        }

        .services-wrap {
            grid-template-columns: repeat(4, minmax(0, 1fr)); /* 3 - tarjetas en sección servicios */
        }

        .soft-card,
        .contact-card,
        .notice-card {
            border-radius: var(--radius-lg);
            padding: 28px;
            height: 100%;
        }

        .icon-badge {
            width: 54px;
            height: 54px;
            border-radius: 18px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 18px;
            font-size: 1.25rem;
            background: linear-gradient(135deg, rgba(207, 216, 199, 0.6), rgba(255, 255, 255, 0.9));
            color: var(--clay-dark);
        }

        .soft-card p,
        .soft-card li,
        .contact-card p,
        .notice-card p {
            color: var(--muted);
        }

        .service-list,
        .training-list {
            margin: 0;
            padding-left: 1.15rem;
        }

        .service-list li,
        .training-list li {
            margin-bottom: 0.7rem;
        }

        .details-wrap {
            grid-template-columns: 1.1fr 0.9fr;
            align-items: stretch;
        }

        .profile-shot {
            width: 100%;
            max-width: 360px;
            aspect-ratio: 1 / 1.06;
            object-fit: cover;
            border-radius: 28px;
            display: block;
            margin: 0 auto 20px;
        }

        .contact-wrap {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .contact-line {
            display: flex;
            gap: 16px;
            align-items: flex-start;
            margin-bottom: 18px;
        }

        .contact-line:last-child {
            margin-bottom: 0;
        }

        .contact-line a {
            color: var(--clay-dark);
            font-weight: 700;
            text-decoration: none;
        }

        .contact-line a:hover,
        .contact-line a:focus {
            text-decoration: underline;
        }

        .social-row {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            margin-top: 14px;
        }

        .social-row a {
            width: 48px;
            height: 48px;
            border-radius: 15px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.62);
            border: 1px solid rgba(91, 67, 55, 0.1);
            color: var(--clay-dark);
            font-size: 1.12rem;
            transition: transform 0.2s ease, background 0.2s ease;
        }

        .social-row a:hover,
        .social-row a:focus {
            transform: translateY(-3px);
            background: #fff;
        }

        .notice-card {
            background: rgba(227, 226, 223, 0.8);
            border-style: dashed;
        }

        .notice-chip {
            display: inline-block;
            padding: 8px 14px;
            margin-bottom: 14px;
            border-radius: 999px;
            background: rgba(85, 85, 85, 0.08);
            color: #615c58;
            font-size: 0.78rem;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            font-weight: 800;
        }

        .info-band {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 22px;
        }

        .footer-card {
            border-radius: 24px;
            padding: 20px 24px;
        }

        .floating-cta {
            position: fixed;
            right: 18px;
            bottom: 18px;
            z-index: 1030;
        }

        .modal-content {
            border: 1px solid rgba(91, 67, 55, 0.1);
            border-radius: 30px;
            background: var(--cream);
            box-shadow: 0 28px 60px rgba(78, 56, 45, 0.2);
        }

        .modal-header,
        .modal-footer {
            border-color: rgba(91, 67, 55, 0.08);
        }

        .form-label {
            font-weight: 700;
        }

        .form-control {
            border-radius: 16px;
            border: 1px solid rgba(91, 67, 55, 0.16);
            padding: 0.92rem 1rem;
            background: rgba(255, 255, 255, 0.88);
        }

        .form-control:focus {
            border-color: rgba(204, 139, 103, 0.42);
            box-shadow: 0 0 0 0.24rem rgba(204, 139, 103, 0.14);
        }

        .reveal {
            opacity: 0;
            transform: translateY(18px);
            animation: rise 0.75s ease forwards;
        }

        .delay-1 { animation-delay: 0.08s; }
        .delay-2 { animation-delay: 0.16s; }
        .delay-3 { animation-delay: 0.24s; }

        @keyframes rise {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @media (max-width: 991.98px) {
            .hero {
                min-height: auto;
            }

            .nav-shell {
                flex-direction: column;
                align-items: flex-start;
            }

            .hero-highlights,
            .services-wrap,
            .details-wrap,
            .contact-wrap,
            .info-band {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 575.98px) {
            .section-space {
                padding: 72px 0;
            }

            .hero-copy-card,
            .hero-photo-card,
            .soft-card,
            .contact-card,
            .notice-card,
            .footer-card {
                padding: 22px;
            }

            .floating-cta {
                right: 12px;
                left: 12px;
                bottom: 12px;
            }

            .floating-cta .btn-main {
                width: 100%;
                justify-content: center;
            }
        }


/* Icono de corazón latiendo */
.heart {
    display: inline-block;
    animation: latido 1.2s ease infinite;
    }

    @keyframes latido {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
        color: #ff3366;
    }
}


