.ca-hero {
    align-items: center;
    background-color: var(--ca-carbon);
    background-position: center;
    background-size: cover;
    color: var(--ca-marfil);
    display: flex;
    min-height: 100vh;
    min-height: 100svh;
    padding: clamp(6.5rem, 15vh, 9rem) 0 clamp(4rem, 9vh, 6rem);
    position: relative;
}

.ca-hero::before {
    background:
        linear-gradient(180deg, rgba(23, 17, 13, 0.65) 0%, rgba(23, 17, 13, 0) 22%),
        linear-gradient(90deg, rgba(23, 17, 13, 0.82) 0%, rgba(23, 17, 13, 0.45) 40%, rgba(23, 17, 13, 0) 75%);
    content: '';
    inset: 0;
    position: absolute;
}

.ca-hero > .container {
    max-width: none;
    padding-left: var(--ca-margen);
    padding-right: var(--ca-margen);
    position: relative;
}

.ca-hero-contenido {
    animation: ca-entrada 1.1s ease both;
    max-width: 44rem;
}

.ca-hero-etiqueta {
    align-items: center;
    color: var(--ca-oro);
    display: flex;
    font-size: clamp(0.7rem, min(0.75vw, 1.3vh), 0.85rem);
    gap: 1rem;
    letter-spacing: 0.42em;
    margin-bottom: clamp(1rem, 2.4vh, 1.75rem);
    text-transform: uppercase;
}

.ca-hero-etiqueta::before {
    background: var(--ca-oro);
    content: '';
    height: 1px;
    width: clamp(32px, 2.6vw, 48px);
}

.ca-hero h1 {
    font-family: var(--ca-serif);
    font-size: clamp(2.5rem, min(5.2vw, 9vh), 5.5rem);
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.06;
    margin: 0;
}

.ca-hero-texto {
    color: rgba(246, 241, 231, 0.82);
    font-size: clamp(1rem, min(1.1vw, 2vh), 1.25rem);
    font-weight: 300;
    letter-spacing: 0.08em;
    margin: clamp(1.1rem, 2.6vh, 1.9rem) 0 clamp(1.6rem, 3.8vh, 2.75rem);
}

.ca-hero .btn-oro {
    font-size: clamp(0.76rem, min(0.8vw, 1.45vh), 0.9rem);
    font-weight: 500;
    letter-spacing: 0.22em;
    padding: clamp(0.9rem, 1.9vh, 1.2rem) clamp(1.9rem, 2.3vw, 2.6rem);
}

.ca-hero-bajar {
    align-items: center;
    bottom: clamp(0.5rem, 2vh, 1.5rem);
    color: rgba(246, 241, 231, 0.7);
    display: flex;
    font-size: 1.25rem;
    height: 44px;
    justify-content: center;
    left: 50%;
    position: absolute;
    text-decoration: none;
    transform: translateX(-50%);
    transition: color 0.2s ease;
    width: 44px;
}

.ca-hero-bajar:hover {
    color: var(--ca-oro);
}

@keyframes ca-entrada {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.ca-confianza {
    border-bottom: 1px solid rgba(107, 74, 47, 0.2);
    padding: clamp(3rem, 7vh, 4.5rem) 0;
}

.ca-confianza > .container {
    max-width: none;
    padding-left: var(--ca-margen);
    padding-right: var(--ca-margen);
}

.ca-ventaja-img {
    height: clamp(60px, 5vw, 84px);
    object-fit: contain;
    width: clamp(60px, 5vw, 84px);
}

.ca-ventaja-bi {
    color: var(--ca-oro-oscuro);
    display: inline-block;
    font-size: clamp(60px, 5vw, 84px);
    line-height: 1;
}

.ca-confianza h2 {
    font-size: clamp(1rem, 1.05vw, 1.2rem);
    font-weight: 600;
    letter-spacing: 0.16em;
    margin: 1.4rem 0 0.6rem;
    text-transform: uppercase;
}

.ca-confianza p {
    color: rgba(42, 30, 22, 0.75);
    font-size: clamp(0.95rem, 0.95vw, 1.1rem);
    margin: 0 auto;
    max-width: 19rem;
}

@media (min-width: 768px) {
    .ca-confianza .col-md-4 + .col-md-4 {
        border-left: 1px solid rgba(107, 74, 47, 0.2);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ca-hero-contenido {
        animation: none;
    }
}

/* ---------- Aparición al hacer scroll ---------- */
.ca-revelar {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
    will-change: opacity, transform;
}

.ca-revelar.ca-revelar-zoom {
    transform: scale(0.94);
}

.ca-revelar.ca-revelar-izq {
    transform: translateX(-40px);
}

.ca-revelar.ca-visible {
    opacity: 1;
    transform: none;
} 

/* ---------- Botón flotante de WhatsApp ---------- */
.ca-whatsapp {
    align-items: center;
    background: linear-gradient(135deg, #d6b978 0%, var(--ca-oro) 50%, var(--ca-oro-oscuro) 100%);
    border-radius: 999px;
    bottom: clamp(1rem, 3vw, 1.75rem);
    box-shadow: 0 12px 28px rgba(23, 17, 13, 0.35);
    color: var(--ca-carbon);
    display: flex;
    height: 58px;
    justify-content: center;
    overflow: hidden;
    position: fixed;
    right: clamp(1rem, 3vw, 1.75rem);
    text-decoration: none;
    transition: width 0.35s ease, box-shadow 0.3s ease, transform 0.3s ease;
    width: 58px;
    z-index: 1030;
}

.ca-whatsapp i {
    flex-shrink: 0;
    font-size: 1.6rem;
    line-height: 1;
}

.ca-whatsapp-texto {
    font-size: 0.85rem;
    font-weight: 500;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-width 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
    white-space: nowrap;
}

.ca-whatsapp:hover,
.ca-whatsapp:focus-visible {
    box-shadow: 0 16px 34px rgba(23, 17, 13, 0.45);
    color: var(--ca-carbon);
    transform: translateY(-2px);
    width: auto;
    padding: 0 1.25rem;
}

.ca-whatsapp:hover .ca-whatsapp-texto,
.ca-whatsapp:focus-visible .ca-whatsapp-texto {
    margin-left: 0.6rem;
    max-width: 220px;
    opacity: 1;
}

.ca-whatsapp:focus-visible {
    outline: 2px solid var(--ca-carbon);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .ca-whatsapp,
    .ca-whatsapp-texto {
        transition: none;
    }
}

/* ---------- Heros: fondo más visible ---------- */
.ca-hero::before {
    background: linear-gradient(
        90deg,
        rgba(23, 17, 13, 0.62) 0%,
        rgba(23, 17, 13, 0.32) 45%,
        rgba(23, 17, 13, 0.08) 100%
    );
}

.ca-hero-contenido {
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}

@media (max-width: 767.98px) {
    .ca-hero::before {
        background: linear-gradient(
            180deg,
            rgba(23, 17, 13, 0.35) 0%,
            rgba(23, 17, 13, 0.55) 100%
        );
    }
}

/* ---------- Antispam ---------- */
.ca-trampa {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.ca-antispam-error {
    background: rgba(176, 58, 46, 0.1);
    border: 1px solid rgba(176, 58, 46, 0.35);
    border-radius: 10px;
    color: #8a2c22;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
}