/* =============================================================================
   App stylesheet (global)
   -----------------------------------------------------------------------------
   Purpose: Base styles and page sections for Camping Mas Patoxas
   Author:   —
   Notes:    This file is intentionally organized by high‑level sections.

   TABLE OF CONTENTS
   0. Global/Base
   1. Header (initial + sticky)
   2. Home page sections
      2.1. Home slider
      2.2. Main content / page info
      2.3. Image scroll block
      2.4. Accommodations block
      2.5. Services — Homepage Icons
      2.6. Interactive map
   3. Accommodation detail sections
   4. Services list/detail (cards + gallery)
      4.1. Services layout and cards
      4.2. Services gallery slider
      4.3. Slick overrides — Services gallery controls
   5. Footer
   6. Utilities & helpers
   7. Media queries

   Conventions:
   - Use banner comments to delimit sections
   - Do not reorder blocks casually; many rules depend on order/specificity
   - Prefer component-scoped selectors
   ============================================================================= */

/* ============================================================================
   0. Global/Base
   ============================================================================ */

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: "Montserrat", Helvetica, sans-serif;
    font-size: 16px;
    color: #11436D;
    position: relative;
}

.container {
    max-width: 1510px;
    margin: 0 auto;
}

a {
    color: #11436D;
}

a:hover {
    color: #EC6A31;
}

/* ==========================================================================
   Header Styles
   ========================================================================== */

/* Initial Header */
.initial_header {
    position: relative;
    padding: 15px 0 0 0;
}

.initial_header a {
    text-decoration: none;
    color: #11436D;
}

.initial_header .container {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    font-size: 15px;
}

.initial_header .container .right,
header .container .stickyMenu .logo .right{
    text-align: right;
}

.initial_header .container .right .secondaryMenu,
header .container .stickyMenu .logo .secondaryMenu {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    font-size: 13px;
    font-weight: bold;
}

header {
    max-height: 100vh;
    overflow-y: auto;
}


.initial_header .container .right .secondaryMenu .languagesMenu,
header .container .stickyMenu .logo .secondaryMenu .languagesMenu {
    margin-left: 20px;
    position: relative;
}

.initial_header .container .right .secondaryMenu .languagesMenu .languagesList,
header .container .stickyMenu .logo .secondaryMenu .languagesMenu .languagesList {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    background-color: #fff;
    list-style: none;
    padding: 10px;
    margin: 0;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 10;
    min-width: 60px;
    text-align: center;
}

.initial_header .container .right .secondaryMenu .languagesMenu:hover .languagesList,
header .container .stickyMenu .logo .secondaryMenu .languagesMenu:hover .languagesList {
    display: block;
}

.initial_header .container .right .secondaryMenu .languagesMenu .languagesList li,
header .container .stickyMenu .logo .secondaryMenu .languagesMenu .languagesList li {
    padding: 5px 0;
}

.initial_header .container .right .secondaryMenu .languagesMenu .languagesList li a,
header .container .stickyMenu .logo .secondaryMenu .languagesMenu .languagesList li a{
    display: block;
    color: #11436D;
    text-decoration: none;
}

.initial_header .container .right .secondaryMenu .languagesMenu .languagesList li a:hover,
header .container .stickyMenu .logo .secondaryMenu .languagesMenu .languagesList li a:hover {
    color: #EC6A31;
}

/* Main Menu */
.initial_header .container .mainMenu {
    padding-top: 15px;
    margin-bottom: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    list-style-type: none;
}

.initial_header .container .mainMenu li a {
    padding: 10px;
    color: #11436D;
    margin-left: 20px;
    text-decoration: none;
}

.initial_header .container .mainMenu li a.active {
    font-weight: bold;
}

.initial_header .container .mainMenu li:last-child a {
    padding-right: 0;
}

/* Sticky Header */
header {
    display: none;
    z-index: 1000;
    background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(0, 0, 0, 0) 100%);
}

header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 30px auto 10px auto;
    padding: 10px 30px;
    background-color: #11436D;
    border-radius: 45px;
    color: white;
}

header.fixed-header {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    animation: fadeInTop 0.5s ease-out;
}

@keyframes fadeInTop {
    from {
        opacity: 0;
        transform: translateY(-100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

header .container .burgerLink {
    flex: 0 0 40px;
}

header .container .logo {
    flex: 0 0 180px;
    padding-left: 20px;
}

header .container .reservationBlock {
    flex: 0 0 calc(100% - 280px);
    max-width: calc(100% - 280px);
    background-color: transparent;
    height: 100%;
    will-change: display;
    transition: all 0.5s ease-in-out;
    display: block;
    text-align: right;
    min-height: 56px;
}

/* Burger anim */

header .navbar {
    width: 100%;
}

header .nav-container {
    min-height: 62px;
}

header .navbar .stickyFullMenu {
    display: flex;
}

header .navbar .nav-container li {
    list-style: none;
}

header .navbar .nav-container a {
    text-decoration: none;
    color: #0e2431;
    font-weight: 500;
    font-size: 1.2rem;
    padding: 0.7rem;
}

header .navbar .nav-container a:hover{
    font-weight: bolder;
}

header nav {
    width:100%;
}

header .nav-container {
    width:100%;
}

header .nav-container .stickyMenu {
    display: flex;
    position: relative;
    min-height: 60px;
    justify-content: space-between;
    align-items: flex-start;
    width:100%;
    flex-wrap: wrap;
    will-change: height;
    transition: height 0.3s ease-in-out;
}

header .nav-container .checkbox {
    position: absolute;
    display: block;
    height: 40px;
    width: 40px;
    top: 12px;
    left: 5px;
    z-index: 5;
    opacity: 0;
    cursor: pointer;
}

header .nav-container .hamburger-lines {
    height: 26px;
    width: 32px;
    position: absolute;
    top: 18px;
    left: 9px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

header .nav-container .hamburger-lines .line {
    display: block;
    height: 4px;
    width: 100%;
    border-radius: 10px;
    background: #FFFFFF;
}

header .nav-container .hamburger-lines .line1 {
    transform-origin: 0% 0%;
    transition: transform 0.4s ease-in-out;
}

header .nav-container .hamburger-lines .line2 {
    transition: transform 0.2s ease-in-out;
}

header .nav-container .hamburger-lines .line3 {
    transform-origin: 0 100%;
    transition: transform 0.4s ease-in-out;
}

header .stickyFullMenu {
    color: white;
    width:100%;
    padding: 60px 0;
    display: flex;
    justify-content: space-between;
    align-items: stretch;

    /*padding-top: 120px;
    box-shadow: inset 0 0 2000px rgba(255, 255, 255, .5);
    height: 100vh;
    width: 100%;
    transform: translate(-150%);
    display: flex;
    flex-direction: column;
    margin-left: -40px;
    padding-left: 50px;
    transition: transform 0.5s ease-in-out;
    text-align: center;
    */
}

header .stickyFullMenu > div {
    width:calc(25% - 20px);
    position: relative;
}

header .stickyFullMenu > div.cta_map {
    width:calc(50% - 20px);
    position: relative;
}

header .stickyFullMenu .menuColumnB {
    border-left:1px solid white;
}

header .navbar .nav-container .stickyFullMenu ul a {
    padding: 10px 0;
    display: block;
}

header .navbar .nav-container .stickyFullMenu a {
    color: white;
    font-weight: 400;
}

header .navbar .nav-container .stickyFullMenu a:hover {
    color: #EC6A31;
    font-weight: 400;
}

header .navbar .nav-container .stickyFullMenu a.active {
    font-weight: bold;
}

/* Interactive Map Menu */


.interactiveMapMenu {
    height: 100%;
}

.interactiveMapMenu a.mapLink {
    position: absolute;
    display: flex;
    background-size: cover;
    background-position: center;
    margin: 0 auto;
    text-decoration: none;
    width:100%;
    height: 100%;
    border-radius: 40px;
}

.interactiveMapMenu a.mapLink .background-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    border-radius: 40px;
    background: linear-gradient(180deg, rgba(0, 45, 82, 0) 0%, rgba(0, 45, 82, 0) 50%, rgba(0, 45, 82, 0.8) 100%);
}

.interactiveMapMenu a.mapLink span {
    font-size: 40px;
    color: white;
    display: block;
    text-align: left;
    margin: auto auto 30px 30px;
    z-index: 2;
    line-height: normal;
}


header .logo {
/*
    position: absolute;
    top: 5px;
    right: 15px;
    font-size: 1.2rem;
    color: #0e2431;
    */

    margin-left: 50px;
}

header .nav-container .stickyFullMenu{
    display: none;
}

header .nav-container input[type="checkbox"]:checked ~ .stickyFullMenu {
    display: flex;
}

header .nav-container input[type="checkbox"]:checked ~ .hamburger-lines .line1 {
    transform: rotate(45deg);
}

header .nav-container input[type="checkbox"]:checked ~ .hamburger-lines .line2 {
    transform: scaleY(0);
}

header .nav-container input[type="checkbox"]:checked ~ .hamburger-lines .line3 {
    transform: rotate(-45deg);
}

header .nav-container input[type="checkbox"]:checked ~ .logo{
    /*display: none;*/
}

header .nav-container input[type="checkbox"]:checked ~ .reservationBlock{
    /*display: none;*/
}

#reservationBlockMobile {
    display: none;
}
/* WIDGET */

.reservationBlock {
    border-radius: 40px;
}
.widgetBookingContainer.widget_columns {
    background-color: transparent;
    font-family: 'Montserrat', sans-serif;
    display: flex;
    justify-content: stretch;
    align-items: center;
    text-align: center;
    padding: 15px 0 15px 0;
}

.widget_columns .categorySelector {
    margin-right: 10px;
    min-width: auto;
}


.widget_columns .categorySelector span {
   padding-right: 30px;
    display: inline-block;
}

.widget_columns .checkinCheckoutContainer {
    width: auto;
    position: relative;
    min-width: 35%;
}

.widget_columns .peopleContainer {
    min-width: 25%;
}

.widget_columns .peopleContainer>div.adultsContainer {
    margin-right: 0;
    width: 50%;
}

.widget_columns .peopleContainer>div.adultsContainer {
    margin-right: 0;
    width: 50%;
}


.widgetBookingContainer .checkinCheckoutContainer  label,
.widgetBookingContainer .adultsContainer > label,
.widgetBookingContainer .childsContainer > label {
    display: none;
}
.widgetBookingContainer span.inputBox, .datePicker span.inputBox, .widgetBookingContainer span.inputBox:hover {
    border-bottom: 1px solid white;
 }


.widget_columns .facilities {
    display: none !important;
}

.peopleContainer .comboBox,
.categorySelector>span,
.icon-chevron-right {
    position: relative;
    padding-right: 0;
    margin-right: 10px;
}

.peopleContainer .comboBox:after,
.categorySelector>span:after,
.icon-chevron-right:before {
    font-family: 'Montserrat', sans-serif !important;
    display: inline-block;
    color: white;
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);

    /* triangle cap avall */
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #ffffff; /* color del chevron */
}

.widget_side button.searchButton, .widget_columns button.searchButton {
    background: #EC6A31;
    border: none;
    color: #FFF;
    padding: 10px 30px;
    /* margin: 10px 0; */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font-size: 15px;
    line-height: 16px;
    text-transform: uppercase;
    border-radius: 20px;
    margin-left: 20px;
    font-family: 'Montserrat', sans-serif;
    margin-top: 0;
    margin-bottom: 0;
    width: auto !important;
}

.widget_side button.searchButton, .widget_columns button.searchButton:hover {
    background: #0e2431;
}

.comboPopup, .categoriesPopup {
    padding: 10px 20px;
    border-radius: 20px;
}

.datePickerPopup .popupTitle,
.widgetBookingContainer .popupTitle {
    text-align: center;
    font-size: 16px;
    color: #FFF;
    background: #EC6A31;
    padding: 10px;
    font-weight: bold;
}

.categoriesPopup .closeButton {
    right: -10px;
}
.widgetBookingContainer button,
.widgetBookingContainer label.categoryGroupLabel,
.widgetBookingContainer label.categoryLabel {
    color: #11436d;
}

.widget_columns .categorySelector .categoriesPopup span {
    display: none;
}

.widget_columns .categorySelector .categoriesPopup .categoryContainer > label {
     padding:5px;
}

.widget_columns .datePickerPopup {
    border-radius: 20px;
}
.widget_columns .monthswindow {
    border-radius: 0 0 20px;
}

.widget_columns .stayLen {
    bottom: -20px;
}

.widget_columns .peopleContainer .childAgeGroupContainer {
    background: #e6e6e6;
    display: flex;
    flex-direction: column;
    border-radius: 0 0 20px 20px;
    min-width: 150px;;
}

.widget_columns .peopleContainer .childAgeGroupContainer span.inputBox {
    color: #11436d;
    border:none;
}

.peopleContainer .childAgeContainer .comboBox:after {
    border-top: 6px solid #11436d;
}


/* ==========================================================================
   Home Page Sections
   ========================================================================== */

/* Home Slider */
.homeSlider .container .homeTopSliders {
    border-radius: 45px;
    overflow: hidden;
}

.homeSlider .container .homeTopSliders .homeTopSliderItem {
    aspect-ratio: 16/9;
    background-size: cover;
    background-position: center;
    padding: 50px;
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    width: 100%;
}

.homeSlider .container .homeTopSliders .homeTopSliderItem .overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(0deg, #11436D 0%, #11436D00 56%);
}

.homeSlider .container .homeTopSliders .homeTopSliderItem .info {
    color: white;
    margin-bottom: 100px;
    width: 500px;
    max-width: 80%;
    z-index: 1;
}

.homeSlider .container .homeTopSliders .homeTopSliderItem .info h2 {
    font-size: clamp(42px, 10vw, 57px);
    font-weight: 500;
}

.homeSlider .slick-prev,
.homeSlider .slick-next {
    z-index: 1;
}

.homeSlider .slick-prev { left: 15px; }
.homeSlider .slick-next { right: 15px; }

/* Main Content / Page Info */
.mainContent .pageInfo {
    padding: 40px 0;
    text-align: center;
}

.mainContent .pageInfo h2 {
    font-size: 30px;
    font-weight: 600;
}

.mainContent .pageInfo .paragraph {
    font-size: 15px;
    font-weight: 400;
}

/* Image Scroll Block */
.imageScrollBlock {
    position: relative;
    background-color: #002d52;
    width: 100%;
    height: 50vw;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    margin-bottom: 40px;
}

.imageScrollBlock.sticky {
    position: sticky;
    top: 140px;
    width: 100%;
    height: 50vw;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.imageScrollBlock .item {
    height: 100%;
    width: 20%;
    position: relative;
    border-radius: 40px;
    margin: 0 auto;
    filter: brightness(1);
    text-align: center;
    will-change: width;
    border: 20px solid #002d52;
}

.imageScrollBlock .background_items {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    will-change: opacity;
    filter: brightness(0.5);
}

.imageScrollBlock .background_items .background_item {
    height: calc(100% - 40px);
    width: 100%;
    background-size: cover;
    background-position: center;
    border-radius:20px;
    margin:20px 10px;
}

.imageScrollBlock .item .principal {
    height: 100%;
    width: 100%;
    padding: 0;
    background-size: cover;
    background-position: center;
    transition: width 0.1s ease-out, filter 0.3s ease;
    position: relative;
    border-radius: 20px;
    margin: 0 auto;
    filter: brightness(1);
    color: white;
    text-align: center;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
}

.imageScrollBlock .item .principal .title {
    color: white;
    font-size: clamp(25px, 7vw, 48px);
    font-style: italic;
    font-weight: 500;
    width: 700px;
    max-width: 80%;
    opacity: 0;
    margin-left: auto;
    margin-right: auto;
    transition: opacity 0.3s ease-out;
    text-shadow: 0 0 1px rgba(0, 0, 0, 0.5);
}

.imageScrollBlock .item .principal .title span {
    display: block;
}

/* Accommodations Block */
.accommodationsBlock {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: nowrap;
    background-color: #002d52;
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}

.accommodationsBlock .background-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    z-index: 1;
}

.accommodationsBlock .accommodationsTitle {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 100px);
    display: block;
    z-index: 4;
    max-width: 80%;
    margin: 0 auto;
}

.accommodationsBlock .accommodationsTitle h2 {
    color: white;
    font-size: 37px;
    font-weight: 600;
    text-align: center;
}

.accommodationsBlock a {
    width:25%;
    aspect-ratio: 3/4;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding: 50px;
    border: none;
    border-right: 1px solid rgba(255, 255, 255, .4);
    border-bottom: 1px solid rgba(255, 255, 255, .4);
    background-color: rgba(0, 45, 82, 0.4);
    color: white;
    text-decoration: none;
    text-align: center;
    transition: background-color 0.3s ease;
    position: relative;
    z-index: 2;
    background-image: none;
}

.accommodationsBlock a:hover {
    background-color: rgba(0, 45, 82, 0.4);
}

.accommodationsBlock a:last-child {
    border-right: none;
}

.accommodationsBlock a p {
    width: 300px;
    max-width: 100%;
    margin: 0 auto;
}

.accommodationsBlock a span {
    width: 60px;
    margin: 20px auto 0 auto;
    will-change: width;
    display: inline-block;
    background-color: white;
    color: black;
    border-radius: 50px;
    padding: 5px 10px;
    font-size: 20px;
    transition: width 0.5s ease-in-out;
}

.accommodationsBlock a:hover span {
    width: 50%;
}

/* ============================================================================
   2.5. Services — Homepage Icons
   ============================================================================ */
.servicesBlock {
    background-color: #EC6A31;
    padding: 100px 0 0 0;
}

.servicesBlock h2 {
    color: white;
    font-size: 37px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 50px;
}

.servicesSlider {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}

.servicesSlider .item {
    flex: 0 0 12%;
    padding: 10px;
    text-align: center;
    text-decoration: none;
    color: white;
}

.servicesSlider .item img {
    width: 50px;
    aspect-ratio: 1/1;
    object-fit: contain;
    margin: 0 auto 10px auto;
    filter: invert(1);
}

.servicesSlider .item span {
    display: block;
    text-align: center;
    color: white;
    font-size: 13px;
    font-weight: 500;
    margin: 0 auto 10px auto;
}

/* Interactive Map */
.interactiveMap {
    background: linear-gradient(180deg, #EC6A31 0, #EC6A31 50%, #ffffff 50%, #ffffff 100%);
    padding: 100px 0;

}

.interactiveMap.clean {
    background: none;
    padding: 0;

}

.interactiveMap .container {
    position: relative;
}

.interactiveMap a.mapLink {
    position: relative;
    display: flex;
    aspect-ratio: 16/6;
    background-size: cover;
    background-position: center;
    margin: 0 auto;
    border-radius: 40px;
    text-decoration: none;
}

.interactiveMap a.mapLink .background-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    border-radius: 40px;
    background: linear-gradient(180deg, rgba(0, 45, 82, 0) 0%, rgba(0, 45, 82, 0) 50%, rgba(0, 45, 82, 0.8) 100%);
}

.interactiveMap a.mapLink span {
    font-size: 40px;
    color: white;
    display: block;
    text-align: left;
    margin: auto auto 30px 30px;
    z-index: 2;
}

.interactiveMap .anim_map {
    position: absolute;
    bottom: -50px;
    right: -30px;
    z-index: 2;
    text-align: center;
}

.interactiveMap .anim_map img {
    animation: bounce 2s infinite ease-in-out;
    z-index: 3;
}

.interactiveMap .anim_map .shadow {
    width: 200px;
    height: 40px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 50%;
    margin: -10px auto 0 auto;
    mix-blend-mode: multiply;
    filter: blur(10px);
    animation: shadowSize 2s infinite ease-in-out;
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-30px);
    }
}

@keyframes shadowSize {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(0.6);
        opacity: 0.4;
    }
}



/* Descubre Block */
.descubreBlock {
    padding: 100px 0;
    background: linear-gradient(180deg, rgba(17, 67, 109, 0) 0%, rgba(17, 67, 109, 0) 25%, rgba(17, 67, 109, .2) 25%, rgba(17, 67, 109, .2) 75%, rgba(17, 67, 109, 0) 75%, rgba(17, 67, 109, 0) 100%);
}

.descubreBlock h2 {
    color: #11436D;
    font-size: 37px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 50px;
}

.descubreSlider {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
}

.descubreSlider .item {
    width: calc(50% - 20px);
    padding-bottom: 50px;
    color: white;
    text-decoration: none;
    display: flex;
    flex-direction: column;
}

.descubreSlider .item .background-image {
    aspect-ratio: 16/9;
    border-radius: 40px;
    margin-bottom: -20%;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}

.descubreSlider .item .info {
    padding: 20px;
    border-radius: 40px;
    background-color: red; /* Default fallback */
    max-width: 70%;
    margin: 0 auto;
    text-align: center;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: transform 0.5s ease-in-out;
}

.descubreSlider .item .info h3 {
    font-size: 30px;
    font-weight: 600;
}

.descubreSlider .item .info p {
    font-size: 15px;
}

.descubreSlider .item .info span {
    width: 150px;
    margin: 20px auto;
    will-change: width;
    display: inline-block;
    background-color: white;
    color: black;
    border-radius: 50px;
    padding: 5px 30px;
    transition: width 0.5s ease-in-out;
}

/* Descubre Item Colors */
.descubreSlider .item:nth-child(1) .info { background-color: #11436D; }
.descubreSlider .item:nth-child(2) .info { background-color: #EC6A31; }
.descubreSlider .item:nth-child(3) .info { background-color: #76777C; }
.descubreSlider .item:nth-child(4) .info { background-color: #0084C7; }

.descubreSlider .item:nth-child(1) .info span { color: #11436D; }
.descubreSlider .item:nth-child(2) .info span { color: #EC6A31; }
.descubreSlider .item:nth-child(3) .info span { color: #76777C; }
.descubreSlider .item:nth-child(4) .info span { color: #0084C7; }

/* Descubre Hover Effects */
.descubreSlider .item:hover .info {
    transform: translateY(-30px);
}

.descubreSlider .item:hover .info span {
    width: 400px;
    max-width: 100%;
}



/* Top Slider */
.topSlider .container .topSliders {
    border-radius: 45px;
    overflow: hidden;
}

.topSlider .container .topSliders .topSliderItem {
    aspect-ratio: 8/2;
    background-size: cover;
    background-position: center;
    padding: 50px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.topSlider .container .topSliders .topSliderItem .overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(0deg, #11436D 0%, #11436D00 56%);
}

.topSlider .container .topSliders .topSliderItem .info {
    color: white;
    margin: 20px auto;
    width: 500px;
    max-width: 80%;
    z-index: 1;
    text-align: center;
}

.topSlider .container .topSliders .topSliderItem .info h2 {
    font-size: clamp(30px, 7vw, 57px);
    font-weight: 500;
}

.topSlider .slick-prev,
.topSlider .slick-next {
    z-index: 1;
}

.topSlider .slick-prev { left: 15px; }
.topSlider .slick-next { right: 15px; }

/* Accomodation */

.accommodations {
    scroll-margin-top: 100px;
}

.accommodations h3.title {
    font-size: clamp(30px, 8vw, 150px);
    font-weight: 700;
    text-align: center;
    margin-bottom: 20px;
    opacity: 0.5;
}

.accommodations h4.subTitle {
    font-size: clamp(20px, 4vw, 30px);
    font-weight: 700;
    text-align: center;
    margin-bottom: 40px;
    opacity: 1;
}

/* Accomodation Item Colors */
.accommodationsHeader h3.title {
    color: #11436D;
    opacity: 20%;
}

.accommodationsList {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
}

.accommodationsRelatedBlock .accommodationsList {
    display: flex;
    justify-content: center;
    align-items: stretch;
    flex-wrap: wrap;
}

.accommodationsList .item {
    width: calc(50% - 20px);
    padding-bottom: 50px;
    color: white;
    text-decoration: none;
    display: flex;
    flex-direction: column;
}

.accommodationsRelatedBlock .accommodationsList .item {
    width: calc(30% - 20px);
    padding-bottom: 50px;
    color: white;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    margin:0 10px;
    min-width: 400px;
}

.accommodationsList .item .background-image {
    aspect-ratio: 16/9;
    border-radius: 40px;
    margin-bottom: -20%;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}

.accommodationsList .item .info {
    padding: 20px;
    border-radius: 40px;
    max-width: 70%;
    min-width: 60%;
    margin: 0 auto;
    text-align: center;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: transform 0.5s ease-in-out;
}

.accommodationsList .item .info h3 {
    font-size: 30px;
    font-weight: 600;
}

.accommodationsList .item .info p {
    font-size: 15px;
}

.accommodationsList .item .info .specs {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.accommodationsList .item .info .specs .spec {
    margin: 5px;
    border-left: 1px solid white;
    padding: 0 5px 0 10px
}

.accommodationsList .item .info .specs .spec:first-child {
    border-left: none;
}

.accommodationsList .item .info .specs .spec img {
    width:30px;
    aspect-ratio: 1/1;
    object-fit: contain;
    filter:invert(1);
}

.accommodationDetail .specs.detail {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    color: black;
    padding: 20px 0;
}

.accommodationDetail .specs.detail .spec {
    margin: 5px;
    border-left: 1px solid black;
    padding: 0 5px 0 10px;
    text-align: center;
}

.accommodationDetail .specs.detail .spec:first-child {
    border-left: none;
}

.accommodationDetail .specs.detail .spec img {
    width: 100px;
    aspect-ratio: 2 / 1;
    object-fit: contain;
    margin-bottom: 20px;
}

.accommodationsList .item .info span.more {
    width: 150px;
    margin: 20px auto;
    will-change: width;
    display: inline-block;
    background-color: white;
    color: black;
    border-radius: 50px;
    padding: 5px 30px;
    transition: width 0.5s ease-in-out;
}

/* Accomodation Hover Effects */
.accommodationsList .item:hover .info {
    transform: translateY(-30px);
}

.accommodationsList .item:hover .info span {
    width: 280px;
    max-width: 100%;
}

.accommodationDetail .title {
    font-size: clamp(30px, 8vw, 150px);
    font-weight: bold;
    margin-bottom: 10px;
    text-align: center;
}

.accommodationDetail .subTitle {
    font-size: 30px;
    font-weight: bold;
    margin-bottom: 10px;
    text-align: center;
}

.accommodationDetail p {
    margin-bottom: 10px;
    text-align: center;
}

.accommodationImages {
    padding: 50px 0 75px 0
}

.accommodationImages .container img {
    border-radius: 40px;
    aspect-ratio: 16/9;
    object-fit: cover;
}
.accommodationImages .container img.mobileImage {
    border-radius: 40px;
    aspect-ratio: 9/12;
    object-fit: cover;
}


.accommodationImages .container {
    position: relative;
}

.accommodationImages .more-images-link {
    position: absolute;
    bottom: 0;
    left: 50px;
    padding: 10px 30px;
    border-radius: 20px;
    text-decoration: none;
    font-weight: bold;
    z-index: 10;
    transform: translateY(50%);
    color:white;
    transition: background-color 0.5s ease-in-out;
}

.accommodationImages .more-images-link:hover {
    background-color: #000;
}

.accommodationImages .more-images-link img {
    width: 40px;
    vertical-align: middle;
    margin: -5px 10px -5px -15px;
    object-fit: contain;
    filter:invert(1);
}

.accommodationInfo {
    padding: 50px 0;
    color: #000000;
}
.accommodationInfo .double_column {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.accommodationInfo .double_column:nth-child(even){
    flex-direction: row-reverse;
}


.accommodationResumeBlock {
    padding: 50px;
    color:white;
    border-radius: 40px;
}

.accommodationResumeBlock .title {
    font-size: 30px;
    font-weight: bold;
    margin: 0 0 30px 0;
}
.accommodationResumeBlock ul {
    padding-left: 20px;
}


.accommodationInfo .documentButton {
    background-color: #FFFFFF;
    color: #000000;
    padding: 10px 20px;
    border-radius: 20px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.5s ease-in-out;
    display: flex;
}

.accommodationInfo .documentButton:hover {
    background-color: #000000;
    color:#FFFFFF;
}

.accommodationInfo .accommodationDescriptionBlock .documentButton:hover {
    background-color: #000000;
    color:#FFFFFF;
}

.accommodationInfo .documentButton svg {
    width: 30px;
    vertical-align: middle;
    margin: -3px 10px 0 0;
    object-fit: contain;
}

.accommodationInfo .accommodationDescriptionBlock .documentButton svg {
    width: 30px;
    vertical-align: middle;
    margin: -3px 10px 0 0;
    object-fit: contain;
}

.accommodationDescriptionBlock {
    padding:0 0 0 50px;
}

.conditionsBlock {
    padding: 50px 0;
    color: #000000;
}

.conditionsBlock .title {
    font-size: 30px;
    font-weight: bold;
    margin: 0 0 30px 0;
}

.accommodationsRelatedBlock {
    padding: 100px 0 50px 0;
}

.accommodationsRelatedBlock .title {
    font-size: 30px;
    font-weight: bold;
    margin: 0 0 30px 0;
}


/* ============================================================================
   4. Services/Facilities and surrounds list/detail (cards + gallery)
   4.1. Services/Facilities and surrounds layout and cards
   ============================================================================ */
.servicesBlock,
.facilitiesBlock,
.surroundsBlock{
    padding: 50px 0;
    color: #000000;
}
/* -- Services/Facilities and surrounds: two-column layout wrapper -- */
.servicesList .double_column,
.facilitiesList .double_column,
.surroundsList .double_column {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    overflow: hidden;
    width: 100%;
    margin-bottom: 40px;
    scroll-margin-top: 100px;

}

.servicesList .double_column:nth-child(even),
.facilitiesList .double_column:nth-child(even),
.surroundsList .double_column:nth-child(even){
    flex-direction: row-reverse;
}


.servicesList .serviceInfoBlock,
.facilitiesList .facilityInfoBlock,
.surroundsList .surroundInfoBlock{
    padding: 50px;
    color:white;
    border-radius: 40px;
    background-color: #11436D;
    width:44%;
    display: block;
    min-height: 500px;
    position: relative;
}

.servicesList .serviceInfoBlock a,
.facilitiesList .facilityInfoBlock a,
.surroundsList .surroundInfoBlock a {
    color:white;
    text-decoration: underline;
    font-weight: 500;
}

.servicesList .serviceInfoBlock a:hover,
.facilitiesList .facilityInfoBlock a:hover,
.surroundsList .surroundInfoBlock a:hover {
    color:black;
    text-decoration: underline;
}


.servicesList .serviceInfoBlock .fullBadge,
.facilitiesList .facilityInfoBlock .fullBadge,
.surroundsList .surroundInfoBlock .fullBadge {
    position: absolute;
    top: 20px;
    right: 20px;
    background-color: #ff0000;
    color: white;
    padding: 5px 15px;
    border-radius: 20px;
    font-weight: bold;
    font-size: 14px;
}


.servicesList .iconWrapper,
.facilitiesList .iconWrapper,
.surroundsList .iconWrapper {
    color: white;
}

.servicesList .iconWrapper img,
.facilitiesList .iconWrapper img,
.surroundsList .iconWrapper img {
    width:60px;
    height:60px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    margin: 0 auto 20px auto;
    filter:grayscale(100%) invert(100%);
}

.servicesList .serviceInfoBlock .title,
.facilitiesList .facilityInfoBlock .title,
.surroundsList .surroundInfoBlock .title {
    font-size: clamp(30px,6vw,50px);
    font-weight: bold;
    margin: 0 0 20px 0;
    color:white;
    opacity: .5;
}

.servicesList .serviceInfoBlock .subTitle,
.facilitiesList .facilityInfoBlock .subTitle,
.surroundsList .surroundInfoBlock .subTitle {
    font-size: 30px;
    font-weight: bold;
    margin: 0 0 30px 0;
}

.servicesList .serviceInfoBlock ul,
.facilitiesList .facilityInfoBlock ul,
.surroundsList .surroundInfoBlock ul{
    padding-left: 20px;
}

.serviceImagesBlock,
.facilityImagesBlock,
.surroundImagesBlock {
    padding: 0;
    color:white;
    border-radius: 40px;
    width:calc(56% - 20px);
    position: relative;
}


.serviceImagesBlock .serviceImagesSlider,
.facilityImagesBlock .facilityImagesSlider,
.surroundImagesBlock .surroundImagesSlider{
    border-radius: 40px;
    overflow: hidden;
    height: 100%;
    width:100%;
    position: relative;
}

.serviceImagesBlock .serviceImagesSlider .slick-list,
.serviceImagesBlock .serviceImagesSlider .slick-track,
.facilityImagesBlock .facilityImagesSlider .slick-list,
.facilityImagesBlock .facilityImagesSlider .slick-track,
.surroundImagesBlock .surroundImagesSlider .slick-list,
.surroundImagesBlock .surroundImagesSlider .slick-track {
    height: 100%;
}

.serviceImagesBlock .serviceImagesSlider .serviceImagesSliderItem,
.facilityImagesBlock .facilityImagesSlider .facilityImagesSliderItem,
.surroundImagesBlock .surroundImagesSlider .surroundImagesSliderItem {
    position: relative;
    height: 100%;
    width:100%;
    background-size: cover;
    background-position: center;
}


/* ============================================================================
   4.3. Slick overrides — Services/Facilities and surrounds gallery controls
   ============================================================================ */

.serviceImagesSlider .slick-prev,
.facilityImagesSlider .slick-prev,
.surroundImagesSlider .slick-prev,
.serviceImagesSlider .slick-next,
.facilityImagesSlider .slick-next,
.surroundImagesSlider .slick-next {
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: 50%;
    display: block;
    width: 50px;
    height: 50px;
    padding: 0;
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
    cursor: pointer;
    color: transparent;
    border: none;
    outline: none;
    background-color: white;
    border-radius: 100px;
}

.serviceImagesSlider .slick-prev,
.facilityImagesSlider .slick-prev,
.surroundImagesSlider .slick-prev{
    left: -12px;
    z-index: 1;
}

.serviceImagesSlider .slick-next,
.facilityImagesSlider .slick-next,
.surroundImagesSlider .slick-next {
    right: -12px;
    z-index: 1;
}

.serviceImagesSlider .slick-prev:before,
.facilityImagesSlider .slick-prev:before,
.surroundImagesSlider .slick-prev:before,
.serviceImagesSlider .slick-next:before,
.facilityImagesSlider .slick-next:before,
.surroundImagesSlider .slick-next:before {
    font-family: "Montserrat", Helvetica, sans-serif;
    font-weight: 300;
    font-size: 30px;
    line-height: 50px;
    vertical-align: middle;
    opacity: 1;
    color: black;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.serviceImagesSlider .slick-prev:before,
.facilityImagesSlider .slick-prev:before,
.surroundImagesSlider .slick-prev:before{
    content: '←';
}

.serviceImagesSlider .slick-next:before,
.facilityImagesSlider .slick-next:before,
.surroundImagesSlider .slick-next:before {
    content: '→';
}


.serviceImagesSlider .slick-prev:hover,
.serviceImagesSlider .slick-prev:focus,
.serviceImagesSlider .slick-next:hover,
.serviceImagesSlider .slick-next:focus,
.serviceImagesSlider .slick-prev:hover:before,
.serviceImagesSlider .slick-prev:focus:before,
.serviceImagesSlider .slick-next:hover:before,
.serviceImagesSlider .slick-next:focus:before,
.facilityImagesSlider .slick-prev:hover,
.facilityImagesSlider .slick-prev:focus,
.facilityImagesSlider .slick-next:hover,
.facilityImagesSlider .slick-next:focus,
.facilityImagesSlider .slick-prev:hover:before,
.facilityImagesSlider .slick-prev:focus:before,
.facilityImagesSlider .slick-next:hover:before,
.facilityImagesSlider .slick-next:focus:before,
.surroundImagesSlider .slick-prev:hover,
.surroundImagesSlider .slick-prev:focus,
.surroundImagesSlider .slick-next:hover,
.surroundImagesSlider .slick-next:focus,
.surroundImagesSlider .slick-prev:hover:before,
.surroundImagesSlider .slick-prev:focus:before,
.surroundImagesSlider .slick-next:hover:before,
.surroundImagesSlider .slick-next:focus:before{
    color: white;
    outline: none;
    background: black;
}

.serviceImagesSlider .slick-dots,
.facilityImagesSlider .slick-dots,
.surroundImagesSlider .slick-dots {
    position: absolute;
    left:50%;
    bottom: 15px;
    transform: translateX(-50%);
    padding: 0;
    list-style: none;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80%;
    margin: 0 auto;
}

.serviceImagesSlider .slick-dots li,
.facilityImagesSlider .slick-dots li,
.surroundImagesSlider .slick-dots li {
    position: relative;
    display: inline-block;
    width: 80px;
    max-width: 25%;
    height: 10px;
    margin: 0 5px;
    padding: 0;
    cursor: pointer;
    text-align: center;
    background-color: white;
    border-radius: 20px;
    opacity: .50
}

.serviceImagesSlider .slick-dots li:hover,
.serviceImagesSlider .slick-dots li.slick-active,
.facilityImagesSlider .slick-dots li:hover,
.facilityImagesSlider .slick-dots li.slick-active,
.surroundImagesSlider .slick-dots li:hover,
.surroundImagesSlider .slick-dots li.slick-active{
    opacity: 1
}

.serviceImagesSlider .slick-dots li button,
.facilityImagesSlider .slick-dots li button,
.surroundImagesSlider .slick-dots li button {
    font-size: 0;
    line-height: 0;
    display: block;
    width: 100%;
    height: 10px;
    padding: 0;
    cursor: pointer;
    color: transparent;
    border: 0;
    outline: none;
    background: transparent;
    text-align: center;
}

.serviceImagesSlider .slick-dots li button:before,
.facilityImagesSlider .slick-dots li button:before,
.surroundImagesSlider .slick-dots li button:before {
    font-family: 'slick';
    font-size: 6px;
    line-height: 20px;
    width: 100%;
    height: 10px;
    content: ' ';
    text-align: center;
    opacity: .25;
    color: white;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


.moreItems {
    text-align: center;
    color: #ec6930;
}

.moreItems .title {
    text-align: center;
    color: #ec6930;
    font-size: 30px;
    margin-bottom:20px;
}

.moreItems .serviceSlider,
.moreItems .facilitiesSlider,
.moreItems .surroundSlider {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.moreItems .serviceSlider .item,
.moreItems .facilitiesSlider .item,
.moreItems .surroundSlider .item{
    flex: 0 0 12%;
    padding: 10px;
    text-align: center;
}

.moreItems .serviceSlider .item img,
.moreItems .facilitiesSlider .item img,
.moreItems .surroundSlider .item img {
    width: 50px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    margin: 0 auto 10px auto;
    filter:grayscale(100%);
}

.moreItems .serviceSlider .item .svg-icon,
.moreItems .facilitiesSlider .item .svg-icon,
.moreItems .surroundSlider .item .svg-icon {
    margin: 0 auto 10px auto;
    width: 50px;
    height: 50px;
    background-color: #ec6930;

    -webkit-mask-image: var(--icon-url);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;

    mask-image: var(--icon-url);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
}


.moreItems .serviceSlider .item span.name,
.moreItems .facilitiesSlider .item span.name,
.moreItems .surroundSlider .item span.name {
    display: block;
    text-align: center;
    color: #ec6930;
    font-size: 13px;
    font-weight: 500;
    margin: 0 auto 10px auto;
}

a.linkPill {
    min-width: 150px;
    margin: 20px auto;
    will-change: color, background-color;
    display: inline-block;
    background-color: #11436D;
    color: white;
    border-radius: 50px;
    padding: 5px 30px;
    transition: width 0.5s ease-in-out;
    text-decoration: none;
    font-weight: 500;
}

a.linkPill img {
    width: auto;
    height: 20px;
    margin: 0 10px 0 -10px;
    vertical-align: middle;
    filter: invert(1);
}

a.linkPill:hover {
    background-color: black;
    color: white;
    transition: all 0.5s ease-in-out;
    text-decoration: none;
}

.surroundInfoBlock a.linkPill {
    min-width: 150px;
    margin: 20px auto;
    will-change: color, background-color;
    display: inline-block;
    background-color: rgba(255,255,255,.7);
    color: black;
    border-radius: 50px;
    padding: 5px 30px;
    transition: width 0.5s ease-in-out;
    text-decoration: none;
    font-weight: 500;
}

.surroundInfoBlock a.linkPill:hover {
    background-color: black;
    color: white;
    transition: all 0.5s ease-in-out;
    text-decoration: none;
}


.faqsCategory {
    margin-bottom:30px;
}

.faqsCategory .container {
    border-radius: 40px;
    padding:50px;
}

.faqsCategory .title {
    display: block;
    border-radius: 20px;
    padding: 10px 20px;
    background-color: black;
    color: white;
    font-size: 30px;
    margin-bottom: 20px;
}

.faqsCategory .container .faqItem {
    padding: 20px 0;
}


/* ==========================================================================
   Footer Styles
   ========================================================================== */

footer {
    background-color: #FFFFFF;
    color: #fff;
    padding: 20px 0;
    text-align: left;
    font-size: 12px;
}

footer .top-footer {
    background-color: #11436D;
    position: relative;
}

footer .top-footer .footerWhiteBackground {
    background-color: white;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50px;
}

footer .top-footer .container {
    z-index: 1;
    position: relative;
    padding: 0 0 25px 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

footer .top-footer .footer-col-1 {
    width: 50%;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

footer .top-footer .footer-col-2 {
    width: 30%;
    padding-top: 150px;
}

footer .top-footer .footer-col-3 {
    width: 20%;
    text-align: right;
    padding-top: 150px;
}

footer .logo_text {
    width: 350px;
    max-width: 100%;
    padding-top: 90px;
    padding-left: 15px;
}

footer .logo_text p {
    width: 100%;
    margin-top: 15px;
}

footer ul.footer_menu {
    columns: 2;
    list-style-type: none;
    width: 100%;
    font-size: 15px;
}

footer ul.footer_menu li {
    list-style: none;
    display: block;
}

footer ul.footer_menu li a {
    text-decoration: none;
    color: white;
    display: block;
    padding: 5px 0;
}

footer ul.footer_menu li a:hover {
    color: #EC6A31;
}

footer .bottom-footer {
    background-color: white;
    color: black;
}

.colouredSpacerLine {
    margin: 10px 0 20px 0;
    width: 100%;
    padding: 5px 0;
    background: #11436D;
    background: linear-gradient(90deg, #11436D 0%, #11436D 11%, #0D5384 11%, #0D5384 22%, #09649A 22%, #09649A 33%, #0474B1 33%, #0474B1 44%, #0084C7 44%, #0084C7 55%, #3B7EA2 55%, #3B7EA2 66%, #76777C 66%, #76777C 77%, #B17157 77%, #B17157 88%, #EC6A31 88%, #EC6A31 100%);
}

footer .bottom-footer .copyright {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    font-size: 13px;
}

footer .bottom-footer .copyright a {
    color: black;
    text-decoration: none;
    position: relative;
    padding: 0 10px 0 15px;
}

footer .bottom-footer .copyright a:hover {
    color: red;
}

footer .bottom-footer .copyright a:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    border-left: 1px solid black;
}

footer .bottom-footer .copyright .first {
    margin-right: 10px;
    display: inline-block;
}
