/* ==========================================================================
   INICIO — Estilos exclusivos de index.html

   Las secciones van en el mismo orden en que aparecen en la página, y cada
   regla parte de la clase de su sección.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Héroe — .home-hero
   -------------------------------------------------------------------------- */

.home-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: min(85vh, 760px);
    padding-block: var(--spacing-2xl);
    background-color: var(--deep-color);
    overflow: hidden;
}

.home-hero__media {
    position: absolute;
    inset: 0;
    /* El encuadre se asienta al cargar; la fotografía se mueve al desplazar. */
    will-change: transform;
}

.home-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    filter: grayscale(0.35);
    /* La fotografía se mueve con el desplazamiento y con el ratón. */
    will-change: transform;
}

/* Velo para que el texto mantenga contraste sobre la fotografía.

   La fotografía puede tener zonas muy claras, así que el velo no baja del 80 %
   en la franja donde se apoya el texto: ahí el titular conserva más de 7:1 y la
   descripción más de 4,9:1 aun sobre blanco puro. Solo en el último cuarto,
   donde ya no hay texto, se abre para que se vea bien el caballo. */
.home-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(18, 35, 58, 0.95) 0%,
        rgba(18, 35, 58, 0.9) 46%,
        rgba(18, 35, 58, 0.8) 72%,
        rgba(18, 35, 58, 0.34) 100%
    );
}

.home-hero__shell {
    position: relative;
    display: grid;
    gap: var(--spacing-md);
    max-width: 980px;
    margin-inline: 0 auto;
    padding-inline: var(--shell-gutter);
}

.home-hero__title {
    color: var(--inverse-color);
    font-size: clamp(2.5rem, 7.5vw, 6rem);
    line-height: 0.95;
}

.home-hero__description {
    max-width: 34rem;
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-inverse-color);
    color: var(--inverse-muted-color);
    font-size: 1rem;
}

.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.home-hero__scroll {
    position: absolute;
    right: var(--spacing-md);
    bottom: var(--spacing-2xl);
    color: var(--secondary-color);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: var(--label-tracking);
    text-transform: uppercase;
    writing-mode: vertical-rl;
}

/* --------------------------------------------------------------------------
   2. Cinta de la línea — .home-lineage
   -------------------------------------------------------------------------- */

.home-lineage {
    background-color: var(--secondary-color);
    overflow: hidden;
}

.home-lineage__viewport {
    display: flex;
    padding-block: var(--spacing-sm);
}

.home-lineage__track {
    display: flex;
    flex: none;
    gap: var(--spacing-xl);
    padding-right: var(--spacing-xl);
    animation: site-marquee 38s linear infinite;
}

.home-lineage__item {
    display: flex;
    align-items: center;
    gap: var(--spacing-xl);
    white-space: nowrap;
}

/* Separador entre nombres, puramente decorativo. */
.home-lineage__item::after {
    content: "✦";
    color: rgba(18, 35, 58, 0.55);
    font-size: 0.7rem;
}

.home-lineage__name {
    color: var(--deep-color);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: var(--label-tracking);
    text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   3. La casa — .home-story
   -------------------------------------------------------------------------- */

.home-story {
    padding-block: var(--section-padding);
    background-color: var(--body-color);
}

.home-story__shell {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: clamp(2rem, 6vw, 5rem);
}

.home-story__intro {
    display: grid;
    gap: var(--spacing-md);
    align-content: start;
}

.home-story__title {
    font-size: clamp(2rem, 3.6vw, 3rem);
}

.home-story__title em {
    color: var(--primary-color);
    font-style: italic;
}

.home-story__seal {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-color);
}

.home-story__seal-image {
    flex: none;
    width: 72px;
    height: 72px;
    object-fit: contain;
    mix-blend-mode: multiply;
}

/* El hierro lleva dos líneas: la marca a fuego y el origen de la ganadería. */
.home-story__seal-body {
    display: grid;
    gap: var(--spacing-2xs);
}

.home-story__seal-text {
    color: var(--title-color);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.55;
}

.home-story__seal-note {
    color: var(--muted-color);
    font-size: 0.82rem;
    line-height: 1.55;
}

.home-story__body {
    display: grid;
    gap: var(--spacing-md);
    align-content: start;
}

.home-story__paragraph {
    font-size: 1.02rem;
}

.home-story__paragraph strong {
    color: var(--title-color);
}

.home-story__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-md);
    margin-top: var(--spacing-2xl);
    padding-top: var(--spacing-xl);
    border-top: 1px solid var(--border-color);
}

.home-story__stat {
    display: grid;
    gap: var(--spacing-2xs);
    padding-inline: var(--spacing-md) 0;
    border-left: 1px solid var(--border-color);
    padding-left: var(--spacing-md);
}

.home-story__stat:first-child {
    border-left: 0;
    padding-left: 0;
}

.home-story__stat-value {
    display: flex;
    align-items: baseline;
    gap: 0.15rem;
    color: var(--title-color);
    font-size: clamp(2rem, 3.4vw, 2.8rem);
    font-weight: 800;
    line-height: 1;
}

.home-story__stat-suffix {
    font-size: 0.9rem;
    font-weight: 700;
}

/* Un sufijo vacío no debe dejar hueco. */
.home-story__stat-suffix:empty {
    display: none;
}

.home-story__stat-label {
    color: var(--muted-color);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.5;
}

/* --------------------------------------------------------------------------
   4. El entorno — .home-estate
   -------------------------------------------------------------------------- */

.home-estate {
    position: relative;
    padding-block: var(--section-padding);
    background-color: var(--deep-color);
    overflow: hidden;
}

.home-estate__media {
    position: absolute;
    inset: 0;
}

.home-estate__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1);
    opacity: 0.28;
}

.home-estate__shell {
    position: relative;
    display: grid;
    gap: var(--spacing-md);
}

.home-estate__title {
    max-width: 18ch;
    color: var(--inverse-color);
    font-size: clamp(2rem, 5vw, 3.75rem);
    text-transform: uppercase;
}

/* Las cuatro características se apoyan en un panel azul sólido: sobre la
   fotografía a pelo el texto perdía legibilidad. El filete dorado corona el
   panel y los separadores verticales sustituyen al hueco entre columnas. */
.home-estate__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: var(--spacing-xl);
    border-top: 2px solid var(--secondary-color);
    background-color: rgba(11, 24, 43, 0.93);
}

.home-estate__item {
    display: grid;
    gap: var(--spacing-xs);
    align-content: start;
    padding: clamp(1.5rem, 2.4vw, 2.25rem);
    border-left: 1px solid rgba(245, 243, 239, 0.14);
}

.home-estate__item:first-child {
    border-left: 0;
}

.home-estate__item-icon {
    color: var(--secondary-color);
}

.home-estate__item-title {
    color: var(--inverse-color);
}

.home-estate__item-text {
    color: var(--inverse-muted-color);
    font-size: 0.86rem;
    line-height: 1.6;
}

/* --------------------------------------------------------------------------
   5. Sementales — .home-stallions
   -------------------------------------------------------------------------- */

.home-stallions {
    padding-block: var(--section-padding);
    background-color: var(--surface-color);
}

.home-stallions__shell {
    display: grid;
    gap: var(--spacing-xl);
}

.home-stallions__intro {
    display: grid;
    gap: var(--spacing-xs);
}

.home-stallions__title {
    font-size: clamp(2rem, 4.4vw, 3.25rem);
    text-transform: uppercase;
}

.home-stallions__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-md);
}

.home-stallions__card-link {
    display: grid;
    height: 100%;
    background-color: var(--body-color);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.home-stallions__card-link:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-card);
}

.home-stallions__card-image {
    width: 100%;
    aspect-ratio: 4 / 4.4;
    object-fit: cover;
    filter: grayscale(1);
    transition: filter var(--transition-slow);
}

.home-stallions__card-link:hover .home-stallions__card-image {
    filter: grayscale(0);
}

.home-stallions__card-body {
    display: grid;
    gap: var(--spacing-2xs);
    justify-items: start;
    padding: var(--spacing-md);
}

.home-stallions__card-name {
    font-size: 1.3rem;
    text-transform: uppercase;
}

.home-stallions__card-lineage {
    color: var(--muted-color);
    font-size: 0.84rem;
}

/* --------------------------------------------------------------------------
   6. Galería — .home-gallery
   -------------------------------------------------------------------------- */

.home-gallery {
    display: grid;
    gap: var(--spacing-lg);
    padding-block: var(--section-padding);
    background-color: var(--body-color);
}

.home-gallery__title {
    font-size: clamp(2rem, 4.4vw, 3.25rem);
    text-transform: uppercase;
}

.home-gallery__strip {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2px;
}

.home-gallery__image {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    filter: grayscale(1);
    transition: filter var(--transition-slow), transform var(--transition-slow);
}

.home-gallery__item:hover .home-gallery__image {
    filter: grayscale(0);
    transform: scale(1.03);
}

/* --------------------------------------------------------------------------
   7. Visita — .home-visit
   -------------------------------------------------------------------------- */

.home-visit {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.home-visit__image {
    width: 100%;
    height: 100%;
    min-height: 420px;
    object-fit: cover;
    filter: grayscale(1);
}

.home-visit__panel {
    display: flex;
    align-items: center;
    background-color: var(--primary-color);
}

.home-visit__panel-inner {
    display: grid;
    gap: var(--spacing-md);
    width: 100%;
    max-width: 34rem;
    padding: var(--spacing-2xl) clamp(1.5rem, 4vw, 3.5rem);
}

/* El panel azul necesita el dorado con más margen de contraste. */
.home-visit .site-eyebrow--on-dark,
.home-visit__data-term {
    color: var(--secondary-on-primary-color);
}

.home-visit__title {
    color: var(--inverse-color);
    font-size: clamp(2rem, 3.8vw, 3rem);
    text-transform: uppercase;
}

.home-visit__description {
    color: rgba(245, 243, 239, 0.82);
}

.home-visit__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.home-visit__data {
    display: grid;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-sm);
}

.home-visit__data-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding-top: var(--spacing-sm);
    border-top: 1px solid rgba(245, 243, 239, 0.25);
}

.home-visit__data-term {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: var(--label-tracking);
    text-transform: uppercase;
}

.home-visit__data-value {
    margin: 0;
}

.home-visit__data-link {
    color: var(--inverse-color);
    font-weight: 700;
    transition: color var(--transition-fast);
}

.home-visit__data-link:hover {
    color: var(--secondary-color);
}

/* --------------------------------------------------------------------------
   8. Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
    .home-story__shell {
        grid-template-columns: 1fr;
    }

    .home-story__stats {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-lg);
    }

    .home-story__stat:nth-child(3) {
        border-left: 0;
        padding-left: 0;
    }

    .home-estate__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Con dos columnas el separador vuelve a empezar en cada fila, y una línea
       horizontal marca el corte entre ellas. */
    .home-estate__item:nth-child(odd) {
        border-left: 0;
    }

    .home-estate__item:nth-child(n + 3) {
        border-top: 1px solid rgba(245, 243, 239, 0.14);
    }

    .home-gallery__strip {
        grid-template-columns: repeat(3, 1fr);
    }

    .home-visit {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .home-hero {
        min-height: 78vh;
    }

    /* En vertical el texto ocupa todo el ancho, así que el velo no puede
       aclararse por debajo del 82 % en ningún punto. */
    .home-hero__media::after {
        background: linear-gradient(180deg, rgba(18, 35, 58, 0.82) 0%, rgba(18, 35, 58, 0.95) 100%);
    }

    .home-hero__scroll {
        display: none;
    }

    .home-story__stats,
    .home-estate__grid,
    .home-stallions__grid {
        grid-template-columns: 1fr;
    }

    /* En una sola columna los separadores pasan a ser horizontales. */
    .home-estate__item {
        border-left: 0;
        border-top: 1px solid rgba(245, 243, 239, 0.14);
    }

    .home-estate__item:first-child {
        border-top: 0;
    }

    .home-story__stat {
        border-left: 0;
        padding-left: 0;
        padding-top: var(--spacing-sm);
        border-top: 1px solid var(--border-color);
    }

    .home-gallery__strip {
        grid-template-columns: repeat(2, 1fr);
    }
}
