.site-inner {
    max-width: unset !important;
    padding: 0;
}

.site-inner .content {
    width: 100% !important;
}

.woocommerce.full-width-content .content,
.woocommerce-page.full-width-content .content {
    max-width: 1280px;
}

/* Estilo general de centrado*/
.centered-column {
    max-width: 1280px;
    padding: 0 15px;
}

.full {
    max-width: unset !important;
    width: 100% !important;
    padding: 0 !important;
}

.centered-column {
    margin: 2em auto;
}


/* SERVICIOS */

.servicios-content-container {
    text-align: center;
    max-width: 990px;
    margin: 0 auto;
}

.servicios-content-container h2 {
    color: var(--blue);
    font-weight: 200;
    font-size: 35px;
}

.servicios-content-container .content, .servicios-content-container p {
    font-size: 16px;
    text-wrap: balance;
}


.servicios-row {
    display: flex;
    flex-flow: row;
    justify-content: center;
    padding: 0 0 2em;
    gap: 3em;
}

.servicios-row .servicio {
    display: flex;
    flex-flow: column;
    gap: 2em;
    justify-content: start;
    text-align: center;
    align-items: center;
    max-width: 195px;
}

.servicios-row .servicio h2 {
    font-size: 20px;
}

.servicios-row .servicio img {
    max-height: 56px;
    height: 100%;
    object-fit: scale-down;
    max-width: 70px;
}

.servicios-row .servicio .content {
    font-size: 14px;
}

.bottom-shadow {
    box-shadow: 0 8px 12px -8px rgba(0, 0, 0, 0.4);
}

.full.bottom-shadow .centered-column {
    display: grid;
    gap: 2.5em;
}

/* SERVICIOS */

/*IZQUIERDA*/
.servicios-column-container.full>div:nth-of-type(odd) {}

/*DERECHA*/
.servicios-column-container.full>div:nth-of-type(even) {
    background-color: var(--light-blue);
}


.servicios-column-container.full>div:nth-of-type(odd) .content-container,
.servicios-column-container.full>div:nth-of-type(even) .content-container {
    margin: 0 auto;
    padding: 2em 0;
    max-width: 1280px;
    width: 100%;
    display: flex;
    gap: 3em;
}

.servicios-column-container.full>div:nth-of-type(even) .content-container {
    text-align: right;
    flex-flow: row-reverse;
    color: var(--white);
}

.servicios-column-container.full>div:nth-of-type(odd) .content-container {
    text-align: left;
    flex-flow: row;
    color: var(--black);
}

.servicios-column-container.full>div:nth-of-type(odd) .content-container h2 {
    color: var(--light-blue);
}


.servicios-column-container.full .content-container img {
    max-width: 550px;
    width: 100%;
    max-height: 550px;
    height: 100%;
    object-fit: cover;
}


.servicios-column-container.full .content-container h2 {
    font-size: 54px;
}

.servicios-column-container.full .content-container .content * {
    font-size: 18px;
    font-weight: 300;
}

.servicios-column-container.full .content-container div {
    display: grid;
    place-content: center;
}


/* PRODUCTOS */

.full:has(.tarifas) {
    background-color: var(--dark-blue);
    padding: 1em !important;
}

.tarifas {
    display: flex;
    flex-flow: row;
    justify-content: center;
    gap: 3em;
}

a.tarifa-btn {
    border: solid 1px var(--white);
    padding: 5px;
    border-radius: 3em;
    color: var(--white);
    text-decoration: none;
    width: 100%;
}

.product {
    border: solid 1px var(--white);
    border-radius: 0 3em 3em 3em;
    max-width: 270px;
    width: 100%;
    display: grid;
    grid-template-rows: 40px 95px auto 50px;
    place-content: stretch;
    place-items: center;
    text-align: center;
    padding: 10px 2em 1.5em;
    min-height: 427px;
}

.centered-column:has(.tarifa-content-container) {
    display: grid;
    gap: 1.5em;
}

.tarifa-content-container {
    color: var(--white);
    text-align: center;
}

.tarifa-content-container .content {
    font-size: 16px;
}

.product .price,
.product h2 {
    font-size: 35px;
}

.product h2 {
    margin: 0;
}

.product .price,
.product h2 {
    color: var(--white);
}

.product .content {
    color: var(--lighter-blue);
}

.product .content {
    font-size: 13px;
    padding: 0 27px;
}

.product-img {
    max-width: 260px !important;
    width: 100% !important;
    max-height: 160px !important;
    height: 100% !important;
    object-fit: cover;
    display: flex;
    margin: 0 auto;
    padding: 0 0 1em;
}

.product-listing {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    text-align: left;
    gap: 2.5em 1.5em;
}

.product-listing a {
    text-decoration: none;
    color: unset;
    display: grid;
    grid-template-rows: 160px minmax(40px, 1fr) 30px;
    border-bottom: solid 1px var(--grey);
    padding: 0 0 1em;
}

.product-listing a>.content {
    display: grid;
    gap: 1em;
}

.product-listing .product-name {
    font-size: 16px;
    font-weight: 500;
    color: var(--blue);
    text-transform: uppercase;
}

.product-listing .price {
    color: var(--black);
    font-weight: 700;
    font-size: 18px;
}

.product-listing .price {
    color: var(--black);
    font-weight: 700;
    font-size: 18px;
}

.pagination {
    text-align: center;
    display: flex;
    flex-flow: row;
    gap: 1em;
    justify-content: center;
}

.pagination a {
    color: unset;
    text-decoration: none;
}

.pagination a:hover {
    color: var(--blue);
    text-decoration: underline;
}


.centered-column.product-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2em;
}

.centered-column.product-details button[type="submit"] {
    background-color: var(--light-blue);
    color: var(--white);
}

.buy-button-container {
    display: grid;
    justify-content: right;
    width: 100%;
}

.centered-column.product-details .content {
    display: grid;
    gap: 1em;
    place-content: start;
}

.centered-column.product-details h1 {
    font-size: 24px;
    color: var(--light-blue);
    margin: 0;
}

.centered-column.product-details img {
    object-fit: cover;
    width: 100% !important;
}

form.cart {
    display: flex;
    align-items: center;
    gap: 10px;
}

form.cart .quantity-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.woocommerce .quantity .qty {
    margin-right: 0 !important;
    width: 100% !important;
}

form.cart .quantity input {
    text-align: center;
}


form.cart .quantity-wrapper button {
    padding: 1.15em 2em;
    border-radius: 0 !important;
    background-color: var(--light-blue) !important;
}

form.cart .quantity-wrapper button:hover,
form.cart .quantity-wrapper button:active,
form.cart .quantity-wrapper button:focus {
    background-color: var(--blue) !important;
}


.single_add_to_cart_button.button.alt {
    flex: 1;
    display: flex;
    justify-content: center;
    text-align: center;
    align-items: center;
}

.centered-column.product-details button[type="submit"]:hover,
.centered-column.product-details button[type="submit"]:focus,
.centered-column.product-details button[type="submit"]:active {
    background-color: var(--blue);
}

.form-fields {
    display: flex;
    flex-flow: row;
    width: 100%;
    gap: 2em;
    justify-content: right;
}

.form-fields .quantity {
    display: flex;
    flex: 1;
}

form.cart .quantity input::-webkit-outer-spin-button,
form.cart .quantity input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.centered-column.product-details span.price {
    font-size: 22px;
    font-weight: 700;
}

/* INSTALACIONES */

.instalaciones-content-container {
    text-align: center;
    font-size: 16px;
}

.instalaciones-content-container h2 {
    color: var(--blue);
    font-weight: 200;
}

.instalaciones {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 200px));
    place-content: center;
    place-items: center;
}

.instalaciones .instalacion {
    display: grid;
    place-content: center;
    place-items: center;
}

.instalaciones .instalacion h2 {
    font-size: 20px;
    margin: 0 0 20px;
    text-align: center;
}

.instalaciones .instalacion:not(:first-of-type) h2 {
    word-spacing: 400px;
}

/* HORARIOS */

.disclaimer-horarios {
    display: block;
    font-size: 13px;
    color: var(--blue);
    text-align: center;
    padding: 15px 0 0;
}

.horarios-row {
    text-align: center;
    display: flex;
    flex-flow: row;
    justify-content: space-around;
    max-width: 580px;
    align-items: center;
    margin: 0 auto;
}


.horarios-row .horario {
    max-width: 190px;
    width: 100%;
}

.horarios-row .horario p {
    margin: 0;
    font-size: 13px;
}

.horarios-row .horario .content {
    display: grid;
    gap: 18px;
}

.horarios-row .horario h2 {
    margin: 0 0 1.5em;
    color: var(--blue);
}


.hotels-container p {
    font-size: 14px;
    text-align: center;
}

.related-hotels {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    gap: 80px;
    align-items: end;
    text-align: center;
}

.hotel {
    flex: 125px;
    max-width: 125px;
}


/* BANNER */

.contacto-banner {
    height: 350px;
    max-width: 1920px;
    width: 100%;
    margin: 0 auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: var(--white);
    display: grid;
    place-content: center;
    place-items: center;
    text-align: center;
}

.contacto-banner .content-container {
    max-width: 645px;
    display: grid;
    gap: 2em;
}

.contacto-banner .content-container h2 {
    font-size: 40px;
    font-weight: 200;
    margin: 0;
    display: grid;
    gap: 3em;
}

.contacto-banner .content-container a {
    border: solid 1px var(--white);
    padding: 5px 60px;
    color: var(--white);
    text-decoration: none;
    border-radius: 3em;
}

.centered-column:has(.instalaciones) {
    display: grid;
    gap: 2em;
}


/* TIENDA */

span.page-numbers.current {
    color: var(--light-blue);
    font-weight: 700;
}

aside.product-filter .filters-btn {
    display: none;
}


.products-listing-and-filter {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 2em;
    padding-top: 2em;
}

aside.product-filter ul {
    display: flex;
    flex-flow: column;
    gap: .5em;
}

aside.product-filter ul li {
    padding: 0 0 .5em;
    border-bottom: solid 1px var(--grey);
    width: 100%;
    text-transform: uppercase;
}


aside.product-filter a {
    color: unset;
    font-size: 20px;
    text-decoration: none;
    text-transform: uppercase;
}

.product-sorters {
    text-align: right;
    /* display: flex;
    flex-flow: row;
    justify-content: space-between;
    max-width: 860px;
    width: 100%;
    margin: 0 0 0 auto; */
}

.product-sorters select {
    max-width: 300px;
}

main.content > div.woocommerce {
    margin: 2em 0 0;
}

button[name="update_cart"],
button[name="update_cart"]:disabled:hover,
button[name="update_cart"][disabled]:hover,
button[name="update_cart"]:hover,
button[name="update_cart"]:focus,
button[name="update_cart"]:active,
.checkout-button.button.alt.wc-forward,
.checkout-button.button.alt.wc-forward:hover,
.checkout-button.button.alt.wc-forward:focus,
.checkout-button.button.alt.wc-forward:active,
button[name="apply_coupon"],
button[name="apply_coupon"]:hover,
button[name="apply_coupon"]:focus,
button[name="apply_coupon"]:active,
a.button.wc-forward,
a.button.wc-forward:hover,
a.button.wc-forward:focus,
a.button.wc-forward:active,
button[name="woocommerce_checkout_place_order"]:hover,
button[name="woocommerce_checkout_place_order"]:focus,
button[name="woocommerce_checkout_place_order"]:active,
button[name="woocommerce_checkout_place_order"] {
    background-color: var(--blue) !important;
    font-weight: 700 !important;
}

button[name="woocommerce_checkout_place_order"]:hover,
button[name="woocommerce_checkout_place_order"]:focus,
button[name="woocommerce_checkout_place_order"]:active,
button[name="woocommerce_checkout_place_order"],
button[name="update_cart"]:disabled:hover,
button[name="update_cart"][disabled]:hover {
    color: var(--white) !important;
}

td.product-name a, 
td.product-name {
    color: var(--blue);
    font-weight: 700;
    text-decoration: none;
}

.woocommerce-error::before, .woocommerce-info::before, .woocommerce-message::before {
    color: var(--blue) !important;
}

.woocommerce-error, .woocommerce-info, .woocommerce-message {
    border-top-color: var(--light-blue) !important;
}

p.return-to-shop > a.button.wc-backward {
    background-color: var(--blue) !important;
    color: var(--white) !important;
    font-weight: 700 !important;
}


.woocommerce .col2-set, .woocommerce-page .col2-set {
    display: flex;
    flex-flow: column;
}

.woocommerce-additional-fields h3 {
    margin: 1.5em auto 0;
}

.woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1 {
    float: none !important;
    width: 100%;
}

.woocommerce .col2-set, .woocommerce-page .col2-set, #order_review, h3#order_review_heading {
    max-width: 890px;
    width: 100%;
    margin: 2em auto 0;
}

.woocommerce textarea[name="order_comments"] {
    min-block-size: 7em !important;
    resize: none !important;
}

@media(max-width: 1340px) {

    .servicios-column-container.full>div:nth-of-type(even) .content-container,
    .servicios-column-container.full>div:nth-of-type(odd) .content-container {
        padding: 2em 15px;
    }
}


@media(max-width: 1225px) {

    .centered-column:has(.tarifa-content-container) {
        place-items: center;
    }

    .tarifas {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4em 5em;
        place-content: center;
        place-items: stretch center;
        max-width: 800px;
    }
}

@media(max-width: 1080px) {

    .instalaciones,
    .servicios-row {
        display: grid;
        grid-template-columns: 200px 200px;
        place-items: center;
        gap: 2em 0;
        margin: 0 auto;
        gap: 3em;
    }

    .servicios-row {
        max-width: 800px;
        width: 100%;
    }

    .instalaciones {
        max-width: 600px;
        width: 100%;
    }
}

@media(max-width: 1020px) {
    .product-listing {
        grid-template-columns: 1fr 1fr;
    }
}


@media(max-width: 980px) {

    .servicios-column-container.full>div:nth-of-type(even) .content-container,
    .servicios-column-container.full>div:nth-of-type(odd) .content-container {
        flex-flow: column;
        text-align: center;
        max-width: 700px;
        width: 100%;
        justify-content: center;
        align-items: center;
    }
}

@media(max-width: 960px) {
    .centered-column.product-details {
        grid-template-columns: 1fr;
        max-width: 550px;
        width: 100%;
        margin: 0 auto;
    }
}

@media(max-width: 800px) {
    .products-listing-and-filter {
        grid-template-columns: 1fr;
    }

    aside.product-filter .filters-btn {
        display: block;
    }

    aside.product-filter ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    aside.product-filter ul li.filter {
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: all 0.4s ease;
        /* controla la suavidad */
        display: none;
    }

    aside.product-filter ul li.filter.open {
        max-height: 50px;
        /* ajusta según el alto de tus elementos */
        height: auto;
        opacity: 1;
        display: block;
    }

    .products-listing-and-filter:has(aside.product-filter ul li.filter.open) {
        gap: 4em;
    }
}

@media(max-width: 680px) {
    .tarifas {
        gap: 2em;
    }

    .contacto-banner .content-container {
        padding: 0 15px;
    }
}

@media(max-width: 630px) {

    .tarifas {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1.5em;
        place-content: center;
        place-items: center;
    }

    .full:has(.tarifas) {
        padding: 1em 0 !important;
    }

    .centered-column:has(.tarifas) {
        display: grid;
        gap: 2em;
    }

    .product-listing {
        grid-template-columns: 1fr;
    }

    .product-listing>a {
        max-width: 500px;
        margin: 0 auto;
        width: 100%;
    }

    .horarios-row {
        flex-flow: column;
        gap: 4em;
    }

    .horarios-row h2 {
        margin: 0 0 1em;
    }

    .disclaimer-horarios {
        padding: 30px 0 0;
    }

}

@media(max-width: 540px) {
    .form-fields {
        flex-flow: column;
    }

    form.cart .quantity-wrapper {
        max-width: 300px;
    }

    .form-fields .quantity {
        display: flex;
        flex: 1;
        justify-content: right;
    }
}

@media(max-width: 500px) {

    .instalaciones,
    .servicios-row {
        grid-template-columns: 1fr;
    }
}

@media(max-width: 300px) {
    .tarifas .product {
        max-width: 100%;
    }
}