/* Portada: bloques Gutenberg nativos (Cover, Columns, Query…) */

.vv-front-page > .wp-block-cover.vv-home-hero
{
    margin-top: 110px;
    min-height: 600px !important;
}

.vv-front-page .wp-block-cover.vv-home-hero .wp-block-cover__image-background
{
    object-fit: cover;
}

.vv-front-page .wp-block-cover.vv-home-hero .wp-block-cover__background
{
    background: linear-gradient(
        120deg,
        rgba(13, 27, 42, 0.92) 0%,
        rgba(13, 27, 42, 0.6) 55%,
        rgba(13, 27, 42, 0.25) 100%
    ) !important;
    opacity: 1 !important;
}

.vv-front-page .vv-home-hero-inner
{
    max-width: var(--vv-max, 1200px);
    width: 100%;
    margin: 0 auto;
    padding: 4rem 1.5rem;
}

.vv-front-page .vv-home-hero-title
{
    color: var(--vv-white, #fff);
    font-size: clamp(2.4rem, 4.5vw, 4.2rem);
    line-height: 1.08;
    margin-bottom: 1rem;
    max-width: 640px;
}

.vv-front-page .vv-home-hero-lead
{
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.1rem;
    max-width: 460px;
    margin-bottom: 2rem;
}

.vv-front-page .wp-block-cover.vv-home-cta
{
    min-height: 520px !important;
    margin: 0;
    padding: 0;
}

.vv-front-page .wp-block-cover.vv-home-cta .wp-block-cover__image-background
{
    object-fit: cover;
}

.vv-front-page .wp-block-cover.vv-home-cta .wp-block-cover__background
{
    background: linear-gradient(
        105deg,
        rgba(13, 27, 42, 0.94) 0%,
        rgba(13, 27, 42, 0.72) 45%,
        rgba(13, 27, 42, 0.35) 100%
    ) !important;
    opacity: 1 !important;
}

.vv-front-page .wp-block-cover.vv-home-cta .wp-block-cover__inner-container
{
    width: 100%;
    max-width: var(--vv-max, 1200px);
    margin: 0 auto;
    padding: 5.5rem 1.5rem;
    min-height: 520px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
}

.vv-front-page .vv-home-cta .vv-cta-eyebrow
{
    display: inline-block;
    background: var(--vv-green, #22c55e);
    color: var(--vv-white, #fff);
    font-family: var(--vv-font-title, 'DM Sans', sans-serif);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.4rem 1rem;
    border-radius: 4px;
    margin: 0 0 1.25rem;
    line-height: 1.4;
}

.vv-front-page .vv-home-cta h2.wp-block-heading
{
    color: var(--vv-white, #fff);
    font-size: clamp(2rem, 3.8vw, 2.85rem);
    line-height: 1.12;
    margin: 0 0 1.25rem;
    max-width: 520px;
    font-weight: 700;
}

.vv-front-page .vv-home-cta .wp-block-cover__inner-container > p:not(.vv-cta-eyebrow)
{
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.05rem;
    line-height: 1.75;
    margin: 0 0 2rem;
    max-width: 520px;
}

.vv-front-page .vv-home-cta .wp-block-buttons
{
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0 0 2rem;
}

.vv-front-page .vv-home-cta ul.vv-cta-points,
.vv-front-page .vv-home-cta .wp-block-list.vv-cta-points
{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2rem;
}

.vv-front-page .vv-home-cta ul.vv-cta-points li,
.vv-front-page .vv-home-cta .wp-block-list.vv-cta-points li
{
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.84rem;
    padding-left: 1.25rem;
    position: relative;
    margin: 0;
}

.vv-front-page .vv-home-cta ul.vv-cta-points li::before,
.vv-front-page .vv-home-cta .wp-block-list.vv-cta-points li::before
{
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--vv-green, #22c55e);
    font-weight: 700;
}

.vv-front-page .wp-block-columns.vv-property-grid,
.vv-front-page .wp-block-columns.vv-service-grid,
.vv-front-page .wp-block-columns.vv-features,
.vv-front-page .wp-block-columns.vv-stats
{
    display: grid !important;
    gap: 1.8rem;
    margin-top: 2.5rem;
}

.vv-front-page .wp-block-columns.vv-property-grid
{
    grid-template-columns: repeat(3, 1fr);
}

.vv-front-page .wp-block-columns.vv-service-grid
{
    grid-template-columns: repeat(3, 1fr);
}

.vv-front-page .wp-block-columns.vv-features
{
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    text-align: center;
}

.vv-front-page .wp-block-columns.vv-stats
{
    grid-template-columns: repeat(4, 1fr);
    text-align: center;
}

.vv-front-page .wp-block-columns.vv-property-grid > .wp-block-column,
.vv-front-page .wp-block-columns.vv-service-grid > .wp-block-column,
.vv-front-page .wp-block-columns.vv-features > .wp-block-column,
.vv-front-page .wp-block-columns.vv-stats > .wp-block-column
{
    width: 100% !important;
    flex-basis: 100% !important;
    margin: 0 !important;
}

.vv-front-page .wp-block-group.vv-property-card
{
    position: relative;
    background: var(--vv-white, #fff);
    border: 1px solid var(--vv-border, #e5e7eb);
    border-radius: 10px;
    overflow: hidden;
    height: 100%;
    transition: transform 0.25s, box-shadow 0.25s;
}

.vv-front-page .wp-block-group.vv-property-card:hover
{
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(13, 27, 42, 0.12);
}

.vv-front-page .vv-property-card .vv-property-thumb
{
    margin: 0;
}

.vv-front-page .vv-property-card .vv-property-thumb img
{
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.vv-front-page .vv-property-card .vv-property-badge
{
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
    margin: 0;
    padding: 0.35rem 0.85rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 4px;
    color: var(--vv-white, #fff);
    line-height: 1.4;
}

.vv-front-page .vv-property-card .vv-property-badge.vv-tag-green
{
    background: var(--vv-green, #22c55e);
}

.vv-front-page .vv-property-card .vv-property-badge.vv-tag-blue
{
    background: var(--vv-blue, #2563eb);
}

.vv-front-page .vv-property-card > :not(.vv-property-thumb):not(.vv-property-badge)
{
    padding-left: 1.4rem;
    padding-right: 1.4rem;
}

.vv-front-page .vv-property-card > h3
{
    padding-top: 1.4rem;
    margin-bottom: 0.3rem;
    color: var(--vv-navy, #0d1b2a);
    font-size: 1.15rem;
}

.vv-front-page .vv-property-card .vv-property-specs
{
    list-style: none;
    margin: 0 0 1rem;
    padding: 0 1.4rem;
    display: flex;
    gap: 1rem;
    color: var(--vv-muted, #6b7280);
    font-size: 0.82rem;
}

.vv-front-page .vv-property-card .vv-price
{
    padding-bottom: 1.4rem;
    color: var(--vv-blue, #2563eb);
    font-family: var(--vv-font-title, 'DM Sans', sans-serif);
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
}

.vv-front-page .wp-block-group.vv-service-card
{
    background: var(--vv-light, #f8f9fa);
    border-radius: 10px;
    padding: 2.5rem 2rem;
    text-align: center;
    border: 1px solid var(--vv-border, #e5e7eb);
    height: 100%;
}

.vv-front-page .vv-feature-icon,
.vv-front-page .vv-service-icon
{
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem !important;
    border-radius: 50%;
    background: rgba(34, 204, 94, 0.12);
    color: var(--vv-green, #22c55e);
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    line-height: 1;
}

.vv-front-page .vv-service-icon
{
    width: 60px;
    height: 60px;
    border-radius: 14px;
    background: var(--vv-navy, #0d1b2a);
    color: var(--vv-green, #22c55e);
}

.vv-front-page .vv-home-stats .vv-stat-value
{
    margin: 0 0 0.5rem;
    line-height: 1;
}

.vv-front-page .vv-home-stats .vv-stat-number
{
    display: inline-block;
    color: var(--vv-blue, #2563eb);
    font-family: var(--vv-font-title, 'DM Sans', sans-serif);
    font-size: clamp(2.4rem, 4vw, 3.2rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.02em;
}

.vv-front-page .vv-home-stats .vv-stat-label
{
    color: var(--vv-muted, #6b7280);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0;
}

.vv-front-page .wp-block-group.vv-testimonial
{
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    background: var(--vv-light, #f8f9fa);
    border-radius: 12px;
    padding: 3rem 2.5rem;
}

.vv-front-page .vv-testimonial .wp-block-quote.vv-quote
{
    border: none;
    margin: 1rem 0 2rem;
    padding: 0;
}

.vv-front-page .vv-testimonial .wp-block-quote p
{
    color: var(--vv-text, #374151);
    font-size: 1.15rem;
    line-height: 1.7;
}

.vv-front-page .vv-testimonial-author
{
    gap: 0.9rem;
    align-items: center;
}

.vv-front-page .vv-testimonial-avatar img
{
    border-radius: 50%;
    object-fit: cover;
}

.vv-front-page .vv-muted-role
{
    color: var(--vv-muted, #6b7280);
    font-size: 0.82rem;
}

.vv-front-page .wp-block-query.vv-blog-query .wp-block-post-template
{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.8rem;
    list-style: none;
    padding: 0;
    margin: 2.5rem 0 0;
}

.vv-front-page .wp-block-group.vv-blog-card
{
    background: var(--vv-white, #fff);
    border: 1px solid var(--vv-border, #e5e7eb);
    border-radius: 10px;
    overflow: hidden;
    height: 100%;
}

.vv-front-page .vv-blog-card .vv-blog-card-image img
{
    width: 100%;
    height: 190px;
    object-fit: cover;
}

.vv-front-page .vv-blog-card-body
{
    padding: 1.3rem;
}

.vv-front-page .vv-blog-date
{
    color: var(--vv-green, #22c55e);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

.vv-front-page .vv-blog-card-body h3 a
{
    color: var(--vv-navy, #0d1b2a);
    text-decoration: none;
}

.vv-front-page .vv-blog-card-body h3 a:hover
{
    color: var(--vv-green, #22c55e);
}

@media (max-width: 1024px)
{
    .vv-front-page .wp-block-columns.vv-property-grid,
    .vv-front-page .wp-block-columns.vv-service-grid,
    .vv-front-page .wp-block-query.vv-blog-query .wp-block-post-template
    {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .vv-front-page .wp-block-columns.vv-features,
    .vv-front-page .wp-block-columns.vv-stats
    {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 640px)
{
    .vv-front-page > .wp-block-cover.vv-home-hero
    {
        margin-top: 72px;
        min-height: 520px !important;
    }

    .vv-front-page .wp-block-cover.vv-home-cta .wp-block-cover__inner-container
    {
        padding: 3.5rem 1.25rem;
        min-height: 460px;
    }

    .vv-front-page .wp-block-cover.vv-home-cta
    {
        min-height: 460px !important;
    }

    .vv-front-page .vv-home-cta ul.vv-cta-points,
    .vv-front-page .vv-home-cta .wp-block-list.vv-cta-points
    {
        flex-direction: column;
        gap: 0.75rem;
    }

    .vv-front-page .wp-block-columns.vv-property-grid,
    .vv-front-page .wp-block-columns.vv-service-grid,
    .vv-front-page .wp-block-columns.vv-features,
    .vv-front-page .wp-block-columns.vv-stats,
    .vv-front-page .wp-block-query.vv-blog-query .wp-block-post-template
    {
        grid-template-columns: 1fr !important;
    }
}
