@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap');
*, *::before, *::after {
  box-sizing: border-box;
}
/* Reset básico */
body, h1, h2, h3, p, ul, li {
    margin: 0;
    padding: 0;
    font-family: 'Poppins', sans-serif;
}

body {
    background-color: #f5f5f5;
    color: #333;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1 {
    font-size: 32px;
    font-weight: 600;
    line-height: 1.3;
    color: #1a1a1a;
    margin-bottom: 16px;
}

h2 {
    margin-top: 40px;
    margin-bottom: 20px;
    font-weight: 500;
    font-size: 24px;
    line-height: 1.4;
    color: #1a1a1a;
}

h3 {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.4;
    color: #1a1a1a;
    margin-top: 24px;
    margin-bottom: 12px;
}

h4 {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #4a4a4a;
    margin-top: 16px;
    margin-bottom: 8px;
}

p {
    font-size: 16px;
    line-height: 1.6;
    color: #4a4a4a;
    margin-bottom: 16px;
}

a {
    color: #565656;
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    text-decoration: underline;
    color: #00ac9d;
}
/* Cabecera */
.header {
    background-color: #00ac9d; /* Color corporativo Cocopool */
    color: white;
    padding: 20px;
    text-align: center;
    align-items: center;
    margin-bottom: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Header más pequeño cuando no estás en la home de piscinas municipales */
/* Cuando el header tiene clase "home" pero NO "homepiscinas" */
/* Esto aplica a páginas como piscinas.php (ciudades) y piscina.php (piscina individual) */
.header.home:not(.homepiscinas) {
    padding: 12px 20px;
    min-height: auto;
}

.header.home:not(.homepiscinas) img {
    height: 35px;
    margin-bottom: 5px;
}

.header.home:not(.homepiscinas) .content {
    padding: 0;
}

/* Asegurar que el header compacto funcione correctamente con el mapa */
body:has(.piscinas-container) .header.home:not(.homepiscinas) {
    z-index: 10;
    position: relative;
    margin-bottom: 0;
}

.header .content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.header img {
    height: 50px; /* Ajusta el tamaño del logo */
    margin-left: 0;
    margin-bottom: 0;
    max-width: 100%;
}
.header h2{font-weight: 400;    margin-bottom: 15px;}

/* --- AJUSTE: buscador más flexible --- */
.search-box {
    width: 100%;
    max-width: 600px;
    margin: 25px auto 30px auto;
    padding: 0 16px;
}
.search{
    background-color: white;
    border-radius: 40px;
    padding:5px 7px;
    width: 100%;
    margin: auto;
    display: flex;
    align-items: center;
}
.search-box button {
    background-color: #00ac9d;
    border-radius: 100px;
    border: none;
    padding: 11px 20px;
    color: white;
    font-weight: 500;
    font-size: 15px;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

.search-box button:hover {
    background-color: #008a7a;
    transform: translateY(-1px);
}

.search-box button:active {
    transform: translateY(0);
}
.search-box input {
    width: 100%; /* antes 370px */
    padding: 10px;
    border: none;
    border-radius: 40px;
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    
}
.dentro h2{display: none;}
.dentro a{float: left;}
.dentro .search-box{margin: 0; width: auto;}
.content{
    width: 1000px; 
    margin: auto;
    padding: 0 20px;
    box-sizing: border-box;
}

/* Piscinas municipales: el content no debe limitar el ancho */
body:has(.piscinas-container) .content {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

/* Layout flex para piscina + sidebar - solo cuando ambos existen */
body:has(.piscina):has(.piscina-sidebar) .content {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: flex-start;
}

@media (max-width: 1024px) {
    .content {
        width: 100%;
        max-width: 100%;
        padding: 0 20px;
    }
}
@media (max-width: 768px) {
    .content {
        width: 100%!important;
        padding: 0!important;
        max-width: 100%;
    }
    
    /* Cuando hay piscina, quitar todo el padding del content pero mantenerlo en los elementos internos */
    .content:has(.piscina) {
        padding: 0!important;
    }
    
    /* Asegurar que el body no tenga padding que afecte */
    body:has(.piscina) {
        margin: 0;
        padding: 0;
    }
}
/* Categorías */
.categories {
    text-align: center;
    margin: 20px 0;
}
.subcategories li{
	margin:10px!important;
}
.subcategories li a{
	font-size: 16px!important;
}
.categories ul {
    list-style: none;
    padding: 0;
}

.categories li {
    display: inline-block;
    margin: 15px;
    border-radius: 15px;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1);
    background-color: white;
    width: 300px;
    font-size: 14px;
    color: #5f5f5f;
    vertical-align: top;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.categories li:hover {
    transform: translateY(-4px);
    box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);
}
@media (max-width: 1024px) {
    .categories li {
        width: calc(50% - 30px);
        min-width: 280px;
    }
}
.categories a:hover {
    cursor: pointer;
    background-color: transparent;
    color: #00ac9d;
}

.categories img{display: block; width: 60px; margin: 10px auto;}

.categories a {
    text-decoration: none;
    color: #565656;
    font-weight: 400;
    font-family: 'Poppins', sans-serif;
    display: block;
    font-size: 20px;
    padding: 20px;
}
.subcategory {
    font-size: 16px !important;
}

.description {
    font-size: 14px;
    line-height: 1.5;
    color: #5f5f5f;
}

.faq-category a {
    font-size: 13px;
    text-decoration: none !important;
    color: #565656;
    transition: color 0.2s ease;
}

.faq-category a:hover {
    color: #00ac9d;
}

.faq-excerpt {
    font-size: 14px;
    color: #8d8d8d;
    margin-top: 10px;
    line-height: 1.5;
}

/* Lista de preguntas frecuentes */
.faqs {
    max-width: 800px;
    border-radius: 5px;
   
}
.faqs h3{margin-top: 40px;}
.faqs li {
    list-style: none;
    border-bottom: 1px solid #e0e0e0;
    padding: 20px;
    transition: background-color 0.2s ease;
}

.faqs li:hover {
    background-color: #f8f9fa;
}

.faqs li a {
    color: #1a1a1a;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.faqs li a:hover {
    color: #00ac9d;
    text-decoration: underline;
}

.faqs h2 {
    margin-bottom: 15px;
}

.faq-item {
    border-bottom: 1px solid #e0e0e0;
    padding: 16px 0;
}

.faq-item:last-child {
    border-bottom: none;
}

.faq-item strong {
    display: block;
    font-size: 18px;
    color: #00ac9d;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    margin-bottom: 8px;
}

.faq-item p {
    margin-top: 8px;
    color: #4a4a4a;
    line-height: 1.6;
}
.breadcrumb {
    font-size: 14px;
    word-wrap: break-word;
    padding: 0 20px;
    margin: 20px 0;
    box-sizing: border-box;
    color: #6a6a6a;
    line-height: 1.6;
}

.breadcrumb a {
    margin: 0 8px;
    color: #00ac9d;
    transition: color 0.2s ease;
}

.breadcrumb a:hover {
    color: #008a7a;
    text-decoration: underline;
}

.breadcrumb span {
    color: #4a4a4a;
}
.posts{
    overflow: hidden; 
    display: flex; 
    flex-wrap: wrap; 
    gap: 20px;
    margin: 20px 0;
}
.posts ul{
    display: flex; 
    flex-wrap: wrap; 
    gap: 20px; 
    list-style: none; 
    padding: 0; 
    margin: 0;
    width: 100%;
}
.posts li{
    width: 280px;
    max-width: 100%;
    list-style: none;
    flex-shrink: 0;
    background-color: white;
    border-radius: 15px;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.posts li:hover {
    transform: translateY(-2px);
    box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);
}
.posts li a {
    display: block;
    text-decoration: none;
    color: inherit;
}
.posts li a {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.posts li img{
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 15px 15px 0 0;
    display: block;
    flex-shrink: 0;
}
.posts li h3 {
    padding: 15px 20px;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    color: #333;
    line-height: 1.4;
}
.footer{width: 100%; min-height: 300px;}
.faq-content{
    float: left; 
    width: 640px;
    box-sizing: border-box;
    padding: 0 20px;
}

.faq-content h2 {
    margin-top: 0;
    margin-bottom: 20px;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.3;
}

.faq-content p {
    font-size: 16px;
    line-height: 1.6;
    color: #4a4a4a;
    margin-bottom: 20px;
}

.faq-content a {
    color: #00ac9d;
    text-decoration: none;
    transition: color 0.2s ease;
}

.faq-content a:hover {
    color: #008a7a;
    text-decoration: underline;
}

.faq-similar{
    float: right; 
    width: 300px;    
    padding: 0 0 0 40px;
    box-sizing: border-box;
}
.faq-similar h3{    margin-top: 40px; font-weight: 500;}

/* Clearfix para layouts con float */
.faq-content::after,
.faq-similar::after {
    content: "";
    display: table;
    clear: both;
}
.spinner {
  border: 2px solid #f3f3f3;
  border-top: 2px solid white;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  animation: spin 0.8s linear infinite;
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
/* Responsive */
@media (max-width: 768px) {
	.formanfitriones {
        width: 100% !important;
        padding: 30px 20px !important;
        margin: 20px auto !important;
    }
    
    .formanfitriones h3 {
        font-size: 18px !important;
        margin-bottom: 20px !important;
    }
    
    .formanfitriones label {
        width: 100% !important;
        display: block !important;
        margin-bottom: 8px !important;
    }
    
    .formanfitriones input[type="text"],
    .formanfitriones input[type="tel"],
    .formanfitriones input[type="email"] {
        width: 100% !important;
        padding: 12px !important;
    }
    .search-box {
        padding: 0 10px;
    }
    .search-box input {
        width: 100%;
        font-size: 14px;
    }
    .search-box button {
        padding: 10px 15px;
        font-size: 14px;
        white-space: nowrap;
    }
    .formanfitriones .checkbox label{display: contents;}
    .referral-funciona {
        padding: 40px 20px;
    }
    
    .comofuncionareferidos {
        gap: 30px !important;
        padding: 0 20px;
    }
    
    .comofuncionareferidos > div {
        min-width: 100%;
        max-width: 100%;
    }
    
    /* --- AJUSTE: ya no quitamos el fondo del header global --- */
    .header{
        position:relative;
        z-index: 2;
        padding: 15px 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    
    .header .content {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
    }
    
    .header img {
        margin-left: 0!important;
        margin-bottom: 10px;
        height: 40px;
    }
    
    /* Header transparente para homepiscinas y anfitriones */
    .header.homepiscinas,
    .header.anfitriones,
    .header.homepiscinas.anfitriones {
        background: transparent !important;
        position: relative;
        margin-bottom: 0 !important;
    }
    
    /* Header transparente cuando hay piscina en la página */
    .content:has(.piscina) ~ .header,
    body:has(.piscina) .header {
        background: transparent!important;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        z-index: 10;
        padding: 15px 0;
        margin-bottom: 0;
    }
	   
    body:has(.piscina) .header .content {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0;
        width: 100%;
    }
	   
    body:has(.piscina) .header img,
    .content:has(.piscina) ~ .header img {
        filter: drop-shadow(0 2px 6px rgba(0,0,0,0.6));
        margin-left: 0;
        height: 40px;
    }

    .formanfitriones ul li {
        margin: 0 0 10px 0!important;
    }
    .header img {
        margin-bottom: 10px;
        margin-left: 0;
        height: 40px;
    }
    .footer{
        display: block!important;
        min-height: auto;
    }
    .select, .dropdown-toggle{
        width: 100%!important;
    }
    .dropdown-toggle {
        width: 100%!important;
        box-sizing: border-box;
    }
    .searchpiscinas ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
    }
    .searchpiscinas ul li a {
        padding: 7px 5px!important;
        font-size: 16px!important;
    }
    .header.anfitriones,
    .header.homepiscinas.anfitriones {
        min-height: auto;
        background-attachment: scroll;
        padding: 20px 0 40px 0;
    }
    
    .header.anfitriones .content,
    .header.homepiscinas.anfitriones .content {
        padding: 20px 15px 40px 15px;
    }
    
    .header.anfitriones img,
    .header.homepiscinas.anfitriones img {
        margin-bottom: 30px;
        height: 40px;
    }
    
    .header.anfitriones h1,
    .header.homepiscinas.anfitriones h1 {
        margin-top: 0 !important;
        margin-bottom: 16px !important;
        font-size: 28px !important;
        padding: 0 15px;
        line-height: 1.3 !important;
    }
    
    .header.anfitriones h1 strong,
    .header.homepiscinas.anfitriones h1 strong {
        padding: 4px 12px;
        font-size: 28px;
    }
    
    .header.anfitriones h2,
    .header.homepiscinas.anfitriones h2 {
        font-size: 18px !important;
        margin-bottom: 30px !important;
        padding: 0 15px;
        line-height: 1.4 !important;
    }
    
    .header.anfitriones .formanfitriones,
    .header.homepiscinas.anfitriones .formanfitriones {
        margin-top: 0;
        padding: 30px 20px;
        border-radius: 20px;
    }
    
    .formanfitriones h3 {
        font-size: 20px !important;
        margin-bottom: 24px !important;
    }
    /* Layout especial para página de piscina en mobile - estilo cocopool */
    .piscina{
        width: 100%!important; 
        float: none!important;    
        margin-top: 0!important;
        padding: 0!important;
        box-sizing: border-box;
        position: relative;
    }
    
    /* Foto grande como hero - 100% ancho, alto fijo con crop */
    .piscina .foto{
        width: 100%!important;
        position: relative;
        left: 0;
        right: 0;
        z-index: 1; 
        border-radius: 0!important;
        height: 300px!important;
        margin-bottom: 0!important;
        background-size: cover;
        background-position: center center;
        overflow: hidden;
    }
    
    /* Overlay con degradado oscuro desde arriba solo para el header */
    .piscina .foto::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 30%;
        background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 60%, rgba(0,0,0,0) 100%);
        z-index: 2;
        pointer-events: none;
    }
    
    /* Títulos debajo de la foto - posición normal con padding */
    .piscina > h1 {
        position: relative;
        margin: 20px 0 8px 0;
        padding: 0 20px;
        color: #333;
        text-shadow: none;
        font-size: 24px!important;
        line-height: 1.3;
        font-weight: 600;
        pointer-events: auto;
    }
    
    .piscina > h2 {
        position: relative;
        margin: 0 0 20px 0;
        padding: 0 20px;
        color: #666;
        text-shadow: none;
        font-size: 15px!important;
        font-weight: 400;
    }
    
    .piscina > h2 a {
        color: #666;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        pointer-events: auto;
    }
    
    .piscina > h2 a::before {
        content: '📍';
        font-size: 14px;
    }
    
    .piscina > h2 a:hover {
        text-decoration: underline;
        opacity: 1;
    }
    
    /* Descripción con fondo blanco y padding lateral */
    .piscina .description {
        padding: 0 20px 24px 20px;
        background: white;
        margin-top: 0;
        box-sizing: border-box;
    }
    
    .piscina .description h3 {
        font-size: 18px;
        font-weight: 600;
        margin: 24px 0 12px 0;
        color: #333;
        padding-left: 0;
        margin-left: 0;
        padding-right: 0;
    }
    
    .piscina .description h3:first-of-type {
        margin-top: 0;
    }
    
    .piscina .description h3.ico {
        padding-left: 32px;
        margin-left: 0;
        padding-right: 0;
    }
    
    .piscina .description p,
    .piscina .description > *:not(h3) {
        font-size: 15px;
        line-height: 1.6;
        color: #555;
        margin-bottom: 16px;
        padding-left: 0;
        padding-right: 0;
        max-width: 100%;
        word-wrap: break-word;
    }
    
    /* Asegurar que todo el texto dentro de description respete el padding */
    .piscina .description * {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .piscina .description a {
        color: #00ac9d;
        text-decoration: none;
    }
    
    .piscina .description a:hover {
        text-decoration: underline;
    }
    
    .content {
        flex-direction: column;
        gap: 20px;
    }
    
    .piscina-sidebar{
        width: 100%!important;
        max-width: 100%!important;
        flex: 1 1 100%!important;
        margin-top: 20px!important;
        padding: 0 20px;
        box-sizing: border-box;
    }
    .piscina-sidebar ul {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }
    .piscina-sidebar li {
        width: 100%!important;
    }
    .piscina-sidebar li img {
        height: 200px;
    }
    .homepiscinas{
        background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
        url('/img/piscinas-municipales.jpg')!important;
        background-size: cover !important;
        background-position: center !important;
    }
    .comofuncionareferidos{
        display: flex; 
        gap: 10px!important; 
        justify-content: center; 
        text-align: center; 
        flex-wrap: wrap;
    }

    /* --- AJUSTE: tarjetas a ancho completo --- */
    .categories li{
        display:block;
        width: calc(100% - 40px);
        margin:15px auto;
    }
    /* Home de piscinas municipales - mobile */
    .piscinas {
        padding: 0 15px!important;
    }
    
    .piscinas h1 {
        padding: 0 15px!important;
        margin-top: 20px!important;
        font-size: 24px!important;
        line-height: 1.3!important;
    }
    
    .piscinas h2 {
        padding: 0 15px!important;
        font-size: 16px!important;
        margin-bottom: 20px!important;
    }
    
    .piscinas ul {
        gap: 12px;
        padding: 0 5px;
    }
    
    .piscinas li {
        width: 100%!important;
        margin: 0!important;
        max-width: 100%;
    }
    
    .piscinas .content_piscinas {
        padding: 16px!important;
        min-height: auto;
    }
    
    .piscinas h3 {
        font-size: 16px!important;
        line-height: 1.4;
    }
    
    .piscinas h4 {
        font-size: 14px!important;
    }
    
    /* FAQ responsive */
    .breadcrumb {
        padding: 0 20px!important;
        margin: 15px 0!important;
        font-size: 13px;
    }
    
    .faq-content {
        float: none!important;
        width: 100%!important;
        margin-bottom: 30px;
        padding: 0 20px!important;
    }
    
    .faq-content h2 {
        font-size: 24px!important;
        margin-top: 0!important;
        margin-bottom: 15px!important;
    }
    
    .faq-content p {
        font-size: 15px!important;
        line-height: 1.6;
    }
    
    .faq-similar {
        float: none!important;
        width: 100%!important;
        padding: 0 20px!important;
        margin-top: 30px;
    }
    
    .faq-similar h3 {
        margin-top: 0!important;
        font-size: 18px!important;
    }
    
    /* Posts responsive */
    .posts {
        margin: 20px 0;
        padding: 0 20px;
    }
    
    .posts ul {
        gap: 15px;
    }
    
    .posts li {
        width: calc(50% - 7.5px)!important;
        max-width: 100%;
        flex: 1 1 calc(50% - 7.5px);
        min-width: 150px;
    }
    
    .posts li img {
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }
    
    .posts li h3 {
        padding: 12px 15px;
        font-size: 15px;
    }
    
    /* Breadcrumb responsive */
    .breadcrumb {
        font-size: 12px;
        line-height: 1.6;
    }
    .breadcrumb a {
        margin: 0 5px;
        display: inline-block;
    }
}



footer {
    background-color: #fff;
    border-top: 1px solid #e5e5e6;
    overflow: hidden;
    margin-top: 50px;
    padding-bottom: 50px;
}
footer ul li{list-style: none;}
.SectionContainer_sectionContent__vqzb1{
    width:1100px; 
    max-width: 100%;
    margin:auto; 
    padding:50px 20px;
    box-sizing: border-box;
}
.SectionFooter_detailsInfo__ZULT5{
    float:left; 
    width:330px;    
    padding-right: 30px;
    box-sizing: border-box;
}
.BlockContainer_root__9JaaU{
    float:left; 
    font-size: 14px; 
    margin-left:20px;
}
@media (max-width: 1024px) {
    .SectionContainer_sectionContent__vqzb1 {
        width: 100%;
        padding: 30px 20px;
    }
    .SectionFooter_detailsInfo__ZULT5 {
        width: 100%;
        float: none;
        padding-right: 0;
        margin-bottom: 20px;
    }
    .BlockContainer_root__9JaaU {
        float: none;
        margin-left: 0;
        margin-bottom: 20px;
        width: 100%;
    }
}
.SocialMediaLink_link__91k0R {
    color: #00ac9d;
    display: inline-block;
}
.SectionFooter_copyright__pikcm {
    color: #7c7c83;
    display: inline-block;
    font-size: 12px;
    line-height: 16px;
    margin-top: 24px;
}
svg {
    fill: currentColor;
}
.SectionFooter_icons__WyTwh{margin-top: 20px;}

/* Layout de dos columnas para piscinas con mapa - estilo cocopool.es */
/* El body no debe tener scroll, solo la lista */
body:has(.piscinas-container) {
    overflow: hidden;
    height: 100vh;
}

/* Asegurar que el header no interfiera */
body:has(.piscinas-container) .header {
    position: relative;
    z-index: 10;
}

/* Ajustar el header para que solo muestre logo y buscador - páginas de ciudad */
body:has(.piscinas-container) .header {
    padding: 12px 20px;
    margin-bottom: 0;
}

body:has(.piscinas-container) .header .content {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}

body:has(.piscinas-container) .header img {
    margin-bottom: 0;
    height: 35px;
}

/* Header compacto también en páginas individuales de piscinas municipales (site 2) */
body:has(.piscina) .header.home:not(.homepiscinas) {
    padding: 12px 20px;
    margin-bottom: 0;
    background-color: #00ac9d;
    position: relative;
    z-index: 10;
}

body:has(.piscina) .header.home:not(.homepiscinas) .content {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}

body:has(.piscina) .header.home:not(.homepiscinas) img {
    margin-bottom: 0;
    height: 35px;
    filter: none;
}

/* Mostrar buscador en header de páginas individuales */
body:has(.piscina) .header.home:not(.homepiscinas) .searchpiscinas {
    margin-top: 0;
    padding: 0;
    width: auto;
    flex: 1;
    max-width: 500px;
    margin-left: 20px;
}

body:has(.piscina) .header.home:not(.homepiscinas) .searchpiscinas ul {
    display: none;
}

body:has(.piscina) .header.home:not(.homepiscinas) .city-search-container {
    position: relative;
    width: 100%;
}

body:has(.piscina) .header.home:not(.homepiscinas) .city-search-input {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    box-sizing: border-box;
}

/* Estilos para el buscador de ciudades en el header cuando hay piscinas-container */
body:has(.piscinas-container) .header .searchpiscinas {
    margin-top: 0;
    padding: 0;
    width: auto;
    flex: 1;
    max-width: 500px;
    margin-left: 20px;
}

body:has(.piscinas-container) .header .searchpiscinas ul {
    display: none; /* Ocultar los tabs en el header compacto */
}

body:has(.piscinas-container) .header .city-search-container {
    position: relative;
    width: 100%;
}

body:has(.piscinas-container) .header .city-search-input {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    box-sizing: border-box;
}

/* Altura del contenedor según el tipo de header */
.piscinas-container {
    display: flex;
    width: 100%;
    height: calc(100vh - 60px); /* Altura para header compacto (no homepiscinas) */
    position: relative;
    box-sizing: border-box;
    overflow: hidden;
    margin: 0;
    padding: 0;
    margin-top: 0;
    align-items: stretch;
}

/* Si el header es homepiscinas (home), más espacio */
body:has(.header.homepiscinas) .piscinas-container {
    height: calc(100vh - 80px);
}

.piscinas-list {
    flex: 0 0 62%;
    width: 62%;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 24px;
    padding-bottom: 100px; /* Espacio extra al final para que no se corte y permita scroll */
    box-sizing: border-box;
    background-color: #ffffff;
    /* Permitir scroll independiente suave */
    -webkit-overflow-scrolling: touch;
    /* Altura completa menos header compacto */
    height: calc(100vh - 60px);
    max-height: calc(100vh - 60px);
    /* Asegurar que el scroll funciona */
    position: relative;
    z-index: 2;
}

/* Si el header es homepiscinas (home), más espacio */
body:has(.header.homepiscinas) .piscinas-list {
    height: calc(100vh - 80px);
}

.piscinas-list h1 {
    font-size: 22px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 8px 0;
    padding: 0;
}

.piscinas-list h2 {
    font-size: 14px;
    font-weight: 400;
    color: #717171;
    margin: 0 0 24px 0;
    padding: 0;
}

.piscinas-map-container {
    flex: 0 0 38%;
    width: 38%;
    height: 100%;
    position: relative;
    box-sizing: border-box;
    z-index: 1;
    background-color: #f5f5f5;
    overflow: hidden;
}

#map {
    width: 100%;
    height: 100%;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 1;
}

.piscinas-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    width: 100%;
    box-sizing: border-box;
}

.piscina-item {
    margin: 0;
    border-radius: 12px;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.08), 0px 4px 12px rgba(0, 0, 0, 0.05);
    background-color: white;
    font-size: 14px;
    color: #1a1a1a;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
    border: 1px solid #e0e0e0;
    height: 100%;
}

.piscina-item:hover {
    transform: translateY(-2px);
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1), 0px 8px 16px rgba(0, 0, 0, 0.08);
    border-color: #d0d0d0;
}

.piscina-item a {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.piscina-item .image-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 200px;
    overflow: hidden;
}

.piscina-item img {
    width: 100%;
    height: 100%;
    min-height: 200px;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.piscina-item:hover img {
    transform: scale(1.05);
}

.piscina-item .content_piscinas {
    padding: 16px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: auto;
}

.piscina-item .content_piscinas h3 {
    margin: 0 0 8px 0;
    font-size: 16px;
    line-height: 1.4;
    color: #1a1a1a;
    font-weight: 600;
    word-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.piscina-item .content_piscinas h4 {
    margin: 4px 0 12px 0;
    font-size: 14px;
    font-weight: 400;
    color: #717171;
}

.piscina-item .content_piscinas .description {
    font-size: 14px;
    color: #717171;
    line-height: 1.5;
    margin-bottom: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.piscina-item .private-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background-color: #00ac9d;
    color: white;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    z-index: 10;
}

/* Marcadores privados en el mapa */
.piscina-marker-private .marker-pin-private {
    background-color: #ff5722;
}

.piscina-marker-private.marker-highlight .marker-pin-private {
    background-color: #00ac9d;
}

/* Estilos para marcadores del mapa */
.piscina-marker {
    width: 30px;
    height: 30px;
    border-radius: 50% 50% 50% 0;
    background-color: #00ac9d;
    transform: rotate(-45deg);
    border: 3px solid white;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
}

.piscina-marker .marker-pin {
    width: 100%;
    height: 100%;
    border-radius: 50% 50% 50% 0;
    background-color: #00ac9d;
    transition: all 0.3s ease;
}

/* Efecto highlight cuando se hace hover en la card */
.piscina-marker.marker-highlight {
    transform: rotate(-45deg) scale(1.4);
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 172, 157, 0.6);
}

.piscina-marker.marker-highlight .marker-pin {
    background-color: #ff5722;
}

.map-popup {
    padding: 0;
    min-width: 250px;
    max-width: 300px;
}

.map-popup img {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 8px 8px 0 0;
}

.map-popup > div {
    padding: 12px;
}

.map-popup h4 {
    margin: 0 0 5px 0;
    font-size: 16px;
    color: #1a1a1a;
    font-weight: 600;
}

.map-popup p {
    margin: 0 0 10px 0;
    font-size: 14px;
    color: #666;
}

.map-popup a {
    color: #00ac9d;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    display: inline-block;
    margin-top: 8px;
}

.map-popup a:hover {
    text-decoration: underline;
    color: #008a7a;
}

.piscinas ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
}
.piscinas {
    padding: 0 20px;
    box-sizing: border-box;
}

.piscinas h1{    
	font-size: 31px!important;
    margin-top: 30px!important;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    word-wrap: break-word;
}
.piscinas h2{
	font-size: 20px!important;
    color: #939393!important;
    margin-bottom: 40px!important;
    margin-top: 0!important;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    word-wrap: break-word;
    }

.piscinas li {
    margin: 0;
    border-radius: 15px;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1);
    background-color: white;
    width: 300px;
    font-size: 14px;
    color: #5f5f5f;
    flex-shrink: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: auto;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.piscinas li:hover {
    transform: translateY(-4px);
    box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);
}
.piscinas li a {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}
.piscinas li img{
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}
@media (max-width: 1024px) {
    .piscinas li {
        width: calc(50% - 15px);
        min-width: 280px;
    }
}
.piscina-sidebar ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.piscina-sidebar li {
    width: 100%;
    height: auto !important;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1);
    background-color: white;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.piscina-sidebar li:hover {
    transform: translateY(-2px);
    box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);
}

.piscina-sidebar li img{
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}

.piscina-sidebar .content_piscinas{
	padding:15px!important;
	height: auto!important;
}
.piscina-sidebar h2{
	font-size: 14px;
}
.piscina-sidebar h3{
	text-align: center;
	font-size: 20px!important;
}

.piscina-sidebar li h3{
	text-align: left!important;
	font-size: 14px!important;
}
.piscinas .content_piscinas{
    padding: 25px;
    min-height: 60px;
    height: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
.piscinas h3{ 
    margin: 0;
    font-size: 16px;
    line-height: 1.4;
    color: #000;
    font-weight: 500;
    word-wrap: break-word;
    hyphens: auto;
}
.piscinas h4 {
    margin: 5px 0 0 0;
    font-size: 14px;
    font-weight: normal;
    color: #666;
    line-height: 1.3;
}
.piscinas h5{    
    font-size: 14px;
    font-weight: normal;
    margin: 5px 0 0 0;
    line-height: 1.3;
}
.piscinas .description {
    margin-top: 8px;
    font-size: 13px;
    color: #777;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}
/* Layout de piscina + sidebar */
/* Cuando existe .piscina, el content usa flexbox para layout de dos columnas */
.content:has(.piscina) {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: flex-start;
}

.piscina{
    flex: 1;
    min-width: 300px;
    max-width: 700px;
    margin-top: 50px;
    box-sizing: border-box;
}
.piscina-sidebar{
    flex: 0 0 280px;
    min-width: 250px;
    max-width: 300px;
    margin-top: 50px;
    box-sizing: border-box;
}

.piscina-sidebar h3{font-weight: normal; margin-bottom: 20px;}
.piscina .foto{
    background-position: center center; 
    background-attachment: scroll; 
    background-size: cover;    
    height: 400px;
    width: 100%;
    max-width: 100%;
    border-radius: 10px;
    margin-bottom: 20px;
}
 .piscina h1{    
    line-height: 40px; 
    font-weight: 500;
    word-wrap: break-word;
}
 .piscina h2 {
    color: #666;
    font-weight: 400;
    margin: 0 0 20px 0;
    font-size: 20px;
    word-wrap: break-word;
    line-height: 1.4;
}

.piscina h2 a {
    color: #666;
    transition: color 0.2s ease;
}

.piscina h2 a:hover {
    color: #00ac9d;
}
   
 .piscina h3{margin-top:30px;}
 .piscina .description {
    padding: 20px 20px 20px 60px;
    font-size: 16px;
    word-wrap: break-word;
    line-height: 1.6;
    box-sizing: border-box;
    color: #4a4a4a;
}

.piscina .description a {
    color: #00ac9d;
    text-decoration: none;
    transition: color 0.2s ease;
}

.piscina .description a:hover {
    color: #008a7a;
    text-decoration: underline;
}

.piscina .description h3 {
    margin-top: 25px;
    margin-bottom: 8px;
    font-size: 18px;
    font-weight: 500;
}

.piscina .description h3:first-child {
    margin-top: 0;
}

.piscina .description p {
    margin-bottom: 15px;
}
@media (max-width: 1024px) {
    .piscina {
        width: 100%;
        max-width: 100%;
        margin-top: 30px;
        flex: 1 1 100%;
    }
    .piscina-sidebar {
        width: 100%;
        max-width: 100%;
        margin-top: 30px;
        flex: 1 1 100%;
    }
    .piscina .foto {
        width: 100%;
        max-width: 100%;
    }
    .piscina .description {
        padding: 20px!important;
    }
    
    .piscina-sidebar ul {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 15px;
    }
}
    
 .ico{     
    background-repeat: no-repeat;
    background-size: 25px;
    margin-left: 0;
    padding-left: 32px;
    background-position: left center;
}
 
 .web{background-image: url('/img/web.png');}
 .precios{background-image: url('/img/euro.png');}
 .fechas{background-image: url('/img/fechas.png');}
 .ubicacion{background-image: url('/img/map.png');}
 
 /* En mobile, ajustar los iconos para que respeten el padding */
 @media (max-width: 768px) {
     .piscina .description .ico {
         margin-left: 0;
         padding-left: 32px;
     }
 }
/* ============================================
   SITE 4 - ANFITRIONES - NUEVO DISEÑO
   ============================================ */
.header.anfitriones,
.header.homepiscinas.anfitriones {
    background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.5)),
        url('https://sharetribe-assets.imgix.net/65f41697-a0f3-4405-9944-f2771191df57/raw/b0/6ace177e15cd9c05dc78e64a577776c65911f5?auto=format&fit=clip&h=2400&w=2400&s=c345cc49badd14a774d9bccf36499a97');
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    color: white;
    position: relative;
    padding: 0;
    margin-bottom: 0;
    overflow-x: hidden;
}

.header.anfitriones .content,
.header.homepiscinas.anfitriones .content {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px 60px 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
}

.header.anfitriones img,
.header.homepiscinas.anfitriones img {
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.7));
    margin-bottom: 40px;
    height: 50px;
    width: auto;
}

/* Títulos del site 4 */
.header.anfitriones h1,
.header.homepiscinas.anfitriones h1 {
    margin: 0 0 20px 0;
    padding: 0 20px;
    font-size: 42px;
    font-weight: 700;
    line-height: 1.2;
    color: white;
    text-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
    max-width: 900px;
    word-wrap: break-word;
}

.header.anfitriones h1 strong,
.header.homepiscinas.anfitriones h1 strong {
    background-color: #00ac9d;
    padding: 6px 16px;
    border-radius: 10px;
    display: inline-block;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.header.anfitriones h2,
.header.homepiscinas.anfitriones h2 {
    margin: 0 0 50px 0;
    padding: 0 20px;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    color: white;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
    max-width: 700px;
}

.header.anfitriones h2 strong,
.header.homepiscinas.anfitriones h2 strong {
    font-weight: 600;
}
.searchpiscinas{margin-top: 80px;}
.searchpiscinas ul li{list-style: none; display: inline-block;}
.searchpiscinas ul li a{ padding:10px 20px; color: white; font-size: 24px; font-weight: 600;}
.searchpiscinas ul li a:hover{text-decoration: none;}
.searchpiscinas ul li a.active{border-bottom: 4px solid #00ac9d;}

.dropdown {
    position: relative;
    float: left;
}

.dropdown-toggle {
    padding: 10px 15px;
    font-size: 18px;
    cursor: pointer;
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    color: #888;
    width: 330px;
    max-width: 100%;
    text-align: left;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dropdown-toggle:hover {
    border-color: #00ac9d;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.dropdown-menu {
    display: none;
    position: absolute;
    background-color: white;
    min-width: 200px;
    width: 100%;
    max-width: 330px;
    border: 1px solid #ccc;
    border-radius: 4px;
    z-index: 1000;
    margin-top: 5px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    max-height: 400px;
    overflow-y: auto;
    box-sizing: border-box;
}

.dropdown-menu li {
    list-style: none;
    width: 100%!important;
}

.dropdown-menu li a {
   display: block;
    padding: 10px !important;
    color: #333 !important;
    text-decoration: none;
    font-size: 16px !important;
    width: 100%;
}

.dropdown-menu li a:hover {
    background-color: #f8f9fa;
    color: #00ac9d;
}

.dropdown.open .dropdown-menu {
    display: block;
}
.select{
    background-color: white;
    border-radius: 60px;
    padding: 8px;
    width: 630px;
    max-width: 100%;
    margin: 32px auto 0 auto;
    text-align: left;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Estilos para el buscador de ciudades con Mapbox */
.city-search-container {
    position: relative;
    width: 100%;
    flex: 1;
}

.city-search-input {
    width: 100%;
    padding: 12px 20px;
    border: none;
    border-radius: 30px;
    font-size: 16px;
    font-family: 'Poppins', sans-serif;
    box-sizing: border-box;
    outline: none;
}

.city-search-input:focus {
    box-shadow: 0 0 0 2px #00ac9d;
}

.city-search-results {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border-radius: 10px;
    margin-top: 5px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    box-sizing: border-box;
}

.search-result-item {
    padding: 12px 20px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    transition: background-color 0.2s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.search-result-item:last-child {
    border-bottom: none;
}

.search-result-item:hover {
    background-color: #f8f9fa;
}

.search-result-item .result-name {
    display: block;
    color: #1a1a1a !important;
    font-size: 16px;
    font-weight: 600;
    flex: 1;
}

.search-result-item .result-context {
    display: block;
    color: #666;
    font-size: 14px;
}

.search-result-item .result-count {
    display: inline-block;
    color: #666;
    font-size: 13px;
    font-weight: 400;
    margin-left: auto;
    flex-shrink: 0;
}
.ctabuscar{
    background-color: #00ac9d;
    color: white;
    border-radius: 30px;
    padding: 12px 41px; 
    float: right;
    border: none;
    cursor: pointer;
    text-decoration: none;
}
.ctabuscar:hover {
    background-color: #008a7a;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.ctabuscar:active {
    transform: translateY(0);
}
.clearfix::after {
  content: "";
  display: table;
  clear: both;
}
@media (max-width: 768px) {
    .select {
        width: 100%;
        padding: 8px 12px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin: 20px auto 0 auto;
    }
    .select .dropdown {
        float: none;
        width: 100%;
    }
    .dropdown-toggle {
        width: 100% !important;
        box-sizing: border-box;
        font-size: 16px !important;
        padding: 12px 15px !important;
    }
    .dropdown-menu {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        right: 0 !important;
    }
    .ctabuscar {
        float: none;
        width: 100%;
        margin-top: 0;
        text-align: center;
        padding: 12px 20px;
        font-size: 16px;
    }
    .searchpiscinas {
        margin-top: 30px;
        padding: 0 15px;
        width: 100%;
        box-sizing: border-box;
    }
    .searchpiscinas ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
        margin-bottom: 20px;
        padding: 0;
    }
    .searchpiscinas ul li {
        margin: 0;
    }
    .searchpiscinas ul li a {
        padding: 8px 12px !important;
        font-size: 16px !important;
        white-space: nowrap;
    }
    .header.homepiscinas {
        padding: 20px 0 30px 0 !important;
    }
    .header.homepiscinas .content {
        padding: 20px 15px 30px 15px !important;
    }
    .header.homepiscinas img {
        height: 35px !important;
        margin-bottom: 20px !important;
    }
    .header.homepiscinas h1 {
        font-size: 24px !important;
        line-height: 1.3 !important;
        padding: 0 15px !important;
        margin-bottom: 20px !important;
    }
    .header.homepiscinas h1 strong {
        padding: 4px 10px;
        font-size: 24px;
        display: inline-block;
        line-height: 1.3;
    }
    .dropdown-menu {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        right: 0 !important;
    }
}

/* Formulario de anfitriones - Diseño mejorado */
.header.anfitriones .formanfitriones,
.header.homepiscinas.anfitriones .formanfitriones {
    background-color: #fff;
    padding: 40px;
    color: #1a1a1a;
    text-align: left;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    border-radius: 24px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
    position: relative;
    z-index: 3;
    backdrop-filter: blur(10px);
}

.formanfitriones {
    background-color: #fff;
    padding: 40px;
    color: #1a1a1a;
    text-align: left;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    border-radius: 24px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
}

.formanfitriones h3 {
    margin: 0 0 32px 0;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.3;
    color: #1a1a1a;
    text-align: center;
}

.formanfitriones ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.formanfitriones label {
    width: 100%;
    display: block;
    padding: 4px 0;
    font-size: 14px;
    font-weight: 500;
    color: #1a1a1a;
    margin-bottom: 8px;
}

.formanfitriones ul li {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
}

.formanfitriones input[type="text"],
.formanfitriones input[type="tel"],
.formanfitriones input[type="email"] {
    padding: 14px 18px;
    border-radius: 12px;
    border: 2px solid #e0e0e0;
    width: 100%;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    color: #1a1a1a;
    background-color: #fafafa;
    transition: all 0.3s ease;
}

.formanfitriones input[type="text"]:focus,
.formanfitriones input[type="tel"]:focus,
.formanfitriones input[type="email"]:focus {
    outline: none;
    border-color: #00ac9d;
    background-color: #fff;
    box-shadow: 0 0 0 4px rgba(0, 172, 157, 0.15);
    transform: translateY(-1px);
}

.formanfitriones input[type="text"]:hover,
.formanfitriones input[type="tel"]:hover,
.formanfitriones input[type="email"]:hover {
    border-color: #00ac9d;
    background-color: #fff;
}

.formanfitriones .ctabuscar {
    border: none;
    border-radius: 12px !important;
    padding: 16px 32px !important;
    float: none;
    width: 100% !important;
    margin-top: 8px;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 4px 12px rgba(0, 172, 157, 0.3);
    transition: all 0.3s ease;
}

.formanfitriones .ctabuscar:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 172, 157, 0.4);
}

.formanfitriones .ctabuscar:active {
    transform: translateY(0);
}

.formanfitriones .submit {
    margin: 0 !important;
    text-align: center;
}

.formanfitriones .checkbox {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.formanfitriones .checkbox input[type="checkbox"] {
    width: 18px !important;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0;
    cursor: pointer;
}

.formanfitriones .checkbox label {
    display: block;
    width: auto;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    color: #4a4a4a;
    cursor: pointer;
}

.formanfitriones .checkbox label a {
    color: #00ac9d;
    text-decoration: underline;
}

.formanfitriones .checkbox label a:hover {
    color: #008a7a;
}
/* Sección "Cómo funciona" del site 4 - Diseño mejorado */
.referral-funciona {
    padding: 80px 20px;
    background: linear-gradient(to bottom, #ffffff 0%, #f8f9fa 100%);
    position: relative;
    z-index: 1;
}

.comofuncionareferidos {
    display: flex;
    gap: 40px;
    justify-content: center;
    text-align: center;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.comofuncionareferidos > div {
    flex: 1;
    min-width: 250px;
    max-width: 320px;
    background-color: #fff;
    padding: 40px 30px;
    border-radius: 20px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.comofuncionareferidos > div:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.comofuncionareferidos > div > div {
    font-size: 48px;
    margin-bottom: 20px;
    display: block;
}

.comofuncionareferidos strong {
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: 16px;
    margin-top: 0;
}

.comofuncionareferidos p {
    font-size: 15px;
    line-height: 1.7;
    color: #4a4a4a;
    margin: 0;
}

#enlaceInvitacion {
    width: 100%;
    max-width: 400px;
    font-size: 16px;
    color: #1a1a1a;
    border-radius: 8px;
    padding: 12px 16px;
    margin: 10px 0;
    border: 1px solid #e0e0e0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}

/* Responsive para piscinas con mapa */
@media (max-width: 768px) {
    /* Ajustar body en mobile cuando hay piscinas-container */
    body:has(.piscinas-container) {
        overflow: auto;
        height: auto;
    }
    
    .piscinas-container {
        flex-direction: column;
        height: auto;
        min-height: auto;
    }
    
    .piscinas-list {
        flex: 1 1 100%;
        max-width: 100%;
        height: auto;
        max-height: none;
        padding: 20px;
        overflow: visible;
    }
    
    .piscinas-list h1 {
        font-size: 20px;
        margin-bottom: 8px;
    }
    
    .piscinas-list h2 {
        font-size: 14px;
        margin-bottom: 20px;
    }
    
    /* Grid de 1 columna en mobile para páginas de ciudad */
    .piscinas-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    
    /* Ocultar el mapa en móvil */
    .piscinas-map-container {
        display: none !important;
    }
    
    /* Ajustar header en mobile cuando hay piscinas-container */
    body:has(.piscinas-container) .header {
        padding: 12px 15px;
    }
    
    body:has(.piscinas-container) .header .content {
        flex-direction: row;
        gap: 10px;
    }
    
    body:has(.piscinas-container) .header img {
        height: 32px;
        flex-shrink: 0;
    }
    
    body:has(.piscinas-container) .header .searchpiscinas {
        flex: 1;
        min-width: 0;
    }
    
    body:has(.piscinas-container) .header .city-search-input {
        padding: 8px 12px;
        font-size: 14px;
    }
    
    .city-search-results {
        max-height: 200px;
        font-size: 14px;
    }
    
    .piscina-item {
        flex-direction: column;
    }
    
    .piscina-item .image-wrapper {
        width: 100%;
        aspect-ratio: 16 / 9;
        min-height: 200px;
    }
    
    .piscina-item .content_piscinas {
        min-height: auto;
        padding: 16px;
    }
    
    .piscina-item .content_piscinas h3 {
        font-size: 16px;
    }
    
    .piscina-item .content_piscinas h4 {
        font-size: 14px;
    }
}
