/* --- FUNDAMENTOS SUIZOS & VARIABLES --- */
:root {
    --white: #ffffff;
    --black: #000000;
    --gray-bg: #F5F5F7;
    --gray-text: #86868B;
    --bordo: #990000;
    --helvetica: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* RESET GENERAL */
* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    font-family: var(--helvetica); 
    -webkit-font-smoothing: antialiased; 
}

body { 
    background: var(--white); 
    color: var(--black); 
    line-height: 1.5; 
    scroll-behavior: smooth; 
}

.container { 
    max-width: 1440px; 
    margin: 0 auto; 
    padding: 0; 
    /* position: relative; */
}

.hidden { display: none !important; }

/* --- HEADER & IDENTIDAD --- */
/* .header-swiss { 
    padding: 40px 0; 
    border-bottom: 1px solid #EEE; 
}

.flex-header { 
    display: flex; 
    justify-content: space-between; 
    align-items: flex-start; 
}

.logo-main { 
    font-size: 28px; 
    font-weight: 800; 
    letter-spacing: -0.04em; 
}

.logo-sub { 
    font-size: 11px; 
    font-weight: 500; 
    letter-spacing: 0.2em; 
    color: var(--gray-text); 
    text-transform: uppercase; 
}

.contact-group { text-align: right; }
.contact-line { 
    font-size: 13px; 
    color: var(--black); 
    display: flex; 
    align-items: center; 
    justify-content: flex-end; 
    margin-bottom: 5px; 
}

.icon-svg { width: 16px; height: 16px; margin-right: 8px; fill: var(--bordo); }
 */
/* --- NAVEGACIÓN STICKY --- */
/* .nav-swiss { 
    background: var(--white); 
    padding: 20px 0; 
    border-bottom: 1px solid #EEE; 
    position: sticky; 
    top: 0; 
    z-index: 1000; 
}

.nav-links { 
    display: flex; 
    gap: 40px; 
    list-style: none; 
}

.nav-links a { 
    text-decoration: none; 
    color: var(--black); 
    font-size: 12px; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    transition: 0.2s; 
}

.nav-links a:hover { color: var(--bordo); }
 */
/* --- HERO & BUSCADOR --- */
.hero-container { 
    position: relative; 
    height: 85vh; 
    background: #000; 
    overflow: hidden; 
}

.hero-slide { position: absolute; inset: 0; }

.slide { 
    position: absolute; 
    inset: 0; 
    opacity: 0; 
    transition: opacity 1s ease-in-out; 
    background-size: cover; 
    background-position: center; 
}

.slide.active { opacity: 1 !important; }

.hero-title { 
    color: #FFF; 
    font-size: 80px; 
    font-weight: 800; 
    line-height: 0.9; 
    letter-spacing: -3px; 
    margin-top: 20vh; 
    position: relative; 
    z-index: 5; 
}

.search-container { 
    position: absolute; 
    bottom: 0; 
    left: 50%; 
    transform: translate(-50%, 50%); 
    z-index: 20; 
    width: 100%; 
}

.search-box-swiss { 
    background: #FFF; 
    padding: 40px; 
    display: grid; 
    grid-template-columns: 1fr 1fr 1fr auto; 
    gap: 30px; 
    box-shadow: 0 20px 40px rgba(0,0,0,0.1); 
}

.search-field { display: flex; flex-direction: column; }
.search-field label { 
    font-size: 10px; 
    font-weight: 700; 
    text-transform: uppercase; 
    color: var(--gray-text); 
    margin-bottom: 10px; 
}

.search-field select { 
    border: none; 
    border-bottom: 2px solid #EEE; 
    padding: 10px 0; 
    font-size: 16px; 
    outline: none; 
    cursor: pointer; 
}

.btn-search-swiss { 
    background: var(--bordo); 
    color: #FFF; 
    border: none; 
    padding: 0 60px; 
    font-weight: 800; 
    cursor: pointer; 
    transition: 0.3s; 
}

.btn-search-swiss:hover { background: #000; }

/* --- GRID DE PROPIEDADES --- */
.section-spacer { padding: 120px 0; }

.grid-title { 
    font-size: 40px; 
    font-weight: 800; 
    letter-spacing: -1.5px; 
    margin-bottom: 60px; 
}

.properties-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); 
    gap: 2px; 
    background: #EEE; /* Líneas divisorias minimalistas */
}

.prop-card { 
    background: #FFF; 
    position: relative; 
    padding: 30px; 
    cursor: pointer; 
    transition: 0.3s; 
}

.prop-card:hover { background: var(--gray-bg); }

.prop-inner-slider { 
    height: 300px; 
    background: #000; 
    position: relative; 
    margin-bottom: 25px; 
    overflow: hidden; 
}

.prop-img-slide { 
    position: absolute; 
    inset: 0; 
    opacity: 0; 
    transition: 0.5s; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    color: rgba(255,255,255,0.2); 
    font-size: 12px; 
}

.prop-img-slide.active { opacity: 1; }

.prop-info h3 { 
    font-size: 22px; 
    font-weight: 700; 
    letter-spacing: -0.5px; 
    margin-bottom: 10px; 
}

.card-price { 
    font-size: 18px; 
    font-weight: 400; 
    color: var(--bordo); 
}


/* Contenedor principal de paginación */
.pagination-container {
    margin: 50px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.pagination-info {
    font-size: 14px;
    color: #666;
}

.pagination-list {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    overflow: hidden;
    border: 1px solid #e0e0e0;
}

.pagination-list li {
    display: flex;
    align-items: center;
}

/* Botones de número y navegación */
.pag-num, .pag-nav {
    display: block;
    padding: 12px 18px;
    text-decoration: none;
    color: #3483fa; /* Azul tipo Mercado Libre */
    font-weight: 500;
    transition: background 0.2s;
    border-right: 1px solid #eee;
}

.pagination-list li:last-child .pag-nav {
    border-right: none;
}

.pag-num:hover, .pag-nav:hover:not(.disabled) {
    background-color: #f5f5f5;
}

/* Estado Activo */
.pag-num.active {
    background-color: #3483fa;
    color: #fff;
    pointer-events: none;
}

/* Estado Deshabilitado */
.pag-nav.disabled {
    color: #ccc;
    pointer-events: none;
    background: #fafafa;
}

/* Puntos suspensivos (...) */
.pag-dots {
    padding: 12px 10px;
    color: #999;
    border-right: 1px solid #eee;
}

/* Responsive */
@media (max-width: 480px) {
    .pag-num { display: none; } /* Ocultar números en móvil muy pequeño */
    .pag-num.active { display: block; }
}

/* --- SECCIÓN HISTORIA --- */
.history-layout { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 80px; 
}

.large-heading { 
    font-size: 70px; 
    font-weight: 700; 
    line-height: 0.9; 
}

.history-block { margin-bottom: 40px; }
.history-block h3 { 
    color: var(--bordo); 
    font-size: 13px; 
    text-transform: uppercase; 
    margin-bottom: 15px; 
}

.history-block p { 
    color: #333; 
    line-height: 1.7; 
    text-align: justify; 
}

/* --- FOOTER --- */
.footer-swiss { 
    background: #000; 
    color: #FFF; 
    padding: 80px 0; 
}

.footer-grid { 
    display: grid; 
    grid-template-columns: 1.5fr 1fr 1fr 1fr; 
    gap: 40px; 
}

.footer-logo { font-size: 20px; font-weight: 800; margin-bottom: 20px; }
.footer-col h4 { 
    font-size: 11px; 
    text-transform: uppercase; 
    letter-spacing: 2px; 
    margin-bottom: 20px; 
    color: var(--gray-text); 
}

.footer-links { list-style: none; }
.footer-links li { margin-bottom: 10px; }
.footer-links a { 
    color: #EEE; 
    text-decoration: none; 
    font-size: 14px; 
    transition: 0.2s; 
}

.grid-title-secciones {
        /* margin-bottom: 60px; */
        font-size: 1rem;
        font-weight: 800;
        color: #162265;
        text-transform: uppercase;
        letter-spacing: 0.0625rem;
}

.footer-links a:hover { color: var(--bordo); }

/* RESPONSIVE */
@media (max-width: 480px) {
    .hero-title { font-size: 50px; }
    .search-box-swiss { grid-template-columns: 1fr 1fr; }
    .history-layout { grid-template-columns: 1fr; }
    .properties-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .container {
         /* padding: 0 20px;  */
         width: 100% !important;
        padding: 0 !important;
        }
    .search-box-swiss { grid-template-columns: 1fr; }
    .properties-grid { grid-template-columns: 1fr; }
}