/* #Primary
================================================== */
:root{
    
    --primary-black:#1D1D1B;
    --primary-white:#F7F5F6;
    --primary-color:#BDAD93;
    
    --color-green:#6C7E5C;
    --color-yellow:#D3A958;
    --color-cream:#E5E7D1;
    --color-green-02:#655F3F;
    --color-white-lubina:#F0EDE6;
    
    --color-gray:#666666;
    --color-light-gray:#C3C3C3;
    
    --color-success:#73C427;
    --color-error:#FF6868;
    
    --bs-body-font-family:var(--font-secondary);
    --bs-body-font-size: 1rem;
    --bs-body-color:var(--primary-black);
}
.text-white{
    color: var(--primary-white) !important;
}
h5,h4,h3,h2,h1,p,span,figure, small{ margin-bottom: 0;}

a{ text-decoration: none;color: inherit;transition: color .2s ease-in, background-color .2s ease-in, border-color .2s ease-in;}
.relativo{ position: relative;}
[type=button], [type=reset], [type=submit], button {
-webkit-appearance: button-bevel;
}
:focus-visible{
    outline: none;
    outline-color: transparent;
}
:-internal-direct-focus {
    outline-color: transparent;
}
body{
    font-family: var(--bs-body-font-family);
    font-size: var(--bs-body-font-size);
    color: var(--bs-body-color);
    text-align: var(--bs-body-text-align);
    background-color: var(--primary-white);
}
.gap-10 {gap: 10px;}
.gap-12 {gap: 12px;}
.gap-24 {gap: 24px;}
.gap-40 {gap: 40px;}
.mt-8 {margin-top: 8px;}
.mt-12 {margin-top: 12px;}
.mt-14 {margin-top: 14px;}
.mt-16 {margin-top: 16px;}
.mt-18 {margin-top: 18px;}
.mt-20 {margin-top: 20px;}
.mt-21 {margin-top: 21px;}
.mt-24 {margin-top: 24px;}
.mt-25 {margin-top: 25px;}
.mt-27 {margin-top: 27px;}
.mt-30 {margin-top: 30px;}
.mt-32 {margin-top: 32px;}
.mt-50 {margin-top: 50px;}
.mt-40 {margin-top: 40px;}
.mt-60 {margin-top: 60px;}
.mt-61 {margin-top: 61px;}
.mt-70 {margin-top: 70px;}
.mt-102 {margin-top: 102px;}
.mb-6 {margin-bottom: 6px;}
.mb-8 {margin-bottom: 8px;}
.mb-10 {margin-bottom: 10px;}
.mb-16 {margin-bottom: 16px;}
.mb-24 {margin-bottom: 24px;}
.mb-32 {margin-bottom: 32px;}
.mb-40 {margin-bottom: 40px;}
.mb-59 {margin-bottom: 59px;}
.mb-60 {margin-bottom: 60px;}
.mb-69 {margin-bottom: 69px;}
.pt-7 {padding-top: 7px;}
.pt-8 {padding-top: 8px;}
.pt-12 {padding-top: 12px;}
.pt-16 {padding-top: 16px;}
.pt-20 {padding-top: 20px;}
.pt-30 {padding-top: 30px;}
.pt-40 {padding-top: 40px;}
.pt-69 {padding-top: 69px;}
.pt-85 {padding-top: 85px;}
.pb-23 {padding-bottom: 23px;}
.pb-35 {padding-bottom: 35px;}
.pb-40 {padding-bottom: 40px;}
.pb-42 {padding-bottom: 42px;}
.pb-49 {padding-bottom: 49px;}
.w-90 {width: 90%;}
.w-80 {width: 93%;}
.h-30 {height: 30px;}
.text-w{color: var(--primary-white);}
.text-b{color: var(--primary-black);}
.text-p{color: var(--primary-color);}
.text-c{color: var(--color-cream);}
.text-p-desk{color: var(--primary-color);}
.pad-40{padding: 40px 0;}
.pad-60{padding: 60px 0;}
.pad-80{padding: 80px 0;}
.pad-20{padding: 20px 0;}
.bg-b{background-color: var(--primary-black);}
.bg-w{background-color: var(--primary-white);}
.bg-c{background-color: var(--color-cream);}
.bg-g{background-color: var(--color-green);}
.bg-g02{background-color: var(--color-green-02);}
.text-g{color: var(--color-green);}
.radius-16-b{border-radius: 0 0 16px 16px;}
.radius-16-t{border-radius: 16px 16px 0 0;}
.text-swap {
    display: block;
    overflow: hidden;
}
.text-swap > span {
    display: block;
    position: relative;
    white-space: nowrap;
    transition: transform .4s ease-in-out;
}
.text-swap > span::after {
    content: attr(data-title);
    position: absolute;
    top: 100%;
    left: 0;
}
/* #Header
================================================== */
@keyframes slideDown {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(0);
    }
}
header {
    --header-h: 60px;
    --menu-h: 460px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-h);
    z-index: 999;
    color: var(--primary-white);
    transition: background-color .2s ease-out, color .2s ease-out, box-shadow .2s ease-out;
}
.header-nav {
    height: 100%;
}
header.header-dark {
    color: var(--primary-black);
}
/* Header con fondo desde el inicio (páginas sin hero: gracias/thankyou) */
header.header-filled {
    background-color: var(--primary-white);
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    color: var(--primary-black);
}
header.scroll-on {
    position: fixed;
    background-color: var(--primary-white);
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    color: var(--primary-black);
    animation: slideDown 0.35s ease-out;
}

.header-nav .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}
.header-brand {
    display: block;
    flex-shrink: 0;
    width: 81px;
    height: 40px;
}
.header-logo {
    display: block;
    width: 100%;
    height: 100%;
}
.header-actions {
    display: flex;
    align-items: center;
    gap: 24px;
}
.header-lang {
    color: inherit;
}

.header-brand,
.header-lang {
    transition-property: background-color, border-color;
}
.btn-book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 6px 16px;
    border-radius: 4px;
    background-color: var(--primary-color);
    color: var(--primary-black);
    border-color: transparent;
}
.icon-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}
.icon-arrow svg {
    display: block;
    width: 11px;
    height: 11px;
    margin-top: 2px;
}
.btn-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
}
.icon-menu {
    width: 100%;
    height: 100%;
}

.icon-menu line {
    transform-box: fill-box;
    transform-origin: center;
    transition: transform .4s cubic-bezier(.16, 1, .3, 1), opacity .2s ease-out;
}
header.menu-open .icon-menu-top {
    transform: translateY(9.33px) rotate(45deg);
}
header.menu-open .icon-menu-mid {
    opacity: 0;
}
header.menu-open .icon-menu-bot {
    transform: translateY(-9.33px) rotate(-45deg);
}

header.menu-open {
    background-color: var(--primary-white);
    color: var(--primary-black);
}
header::after {
    content: '';
    position: absolute;
    top: calc(100% + var(--menu-h));
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, .5);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .4s ease-out, visibility 0s .4s;
}
header.menu-open::after {
    opacity: 1;
    visibility: visible;
    transition: opacity .4s ease-out, visibility 0s;
}

.menu-panel {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: var(--menu-h);
    display: flex;
    align-items: center;
    background-color: var(--primary-white);
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    color: var(--primary-black);
    clip-path: inset(0 0 100% 0);
    visibility: hidden;
    transition: clip-path .55s cubic-bezier(.16, 1, .3, 1), visibility 0s .55s;
}
header.menu-open .menu-panel {
    clip-path: inset(0 0 0 0);
    visibility: visible;
    transition: clip-path .55s cubic-bezier(.16, 1, .3, 1), visibility 0s;
}
.menu-inner {
    position: relative;
    flex-shrink: 0;
    height: 460px;
}
.menu-media {
    position: absolute;
    left: 0;
    top: 143px;
    width: 455px;
    height: 232px;
    overflow: hidden;
}
.menu-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(1.08);
    transition: opacity .45s ease-out, transform .7s cubic-bezier(.16, 1, .3, 1);
}
.menu-img.is-active {
    opacity: 1;
    transform: scale(1);
}
.menu-list {
    position: absolute;
    right: 0;
    top: 60px;
    width: 260px;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.menu-item {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .45s ease-out, transform .45s ease-out;
}
header.menu-open .menu-item {
    opacity: 1;
    transform: none;
}
header.menu-open .menu-item:nth-child(1) { transition-delay: .10s; }
header.menu-open .menu-item:nth-child(2) { transition-delay: .15s; }
header.menu-open .menu-item:nth-child(3) { transition-delay: .20s; }
header.menu-open .menu-item:nth-child(4) { transition-delay: .25s; }
header.menu-open .menu-item:nth-child(5) { transition-delay: .30s; }
header.menu-open .menu-item:nth-child(6) { transition-delay: .35s; }
.menu-link {
    position: relative;
    display: block;
    padding-right: 40px;
    text-align: right;
    color: inherit;
    opacity: .6;
    transition: opacity .3s ease-out;
}
.menu-link.is-active {
    opacity: 1;
}
.menu-link-text {
    display: block;
    transform: translateX(40px);
    transition: transform .45s cubic-bezier(.16, 1, .3, 1);
}
.menu-link.is-active .menu-link-text {
    transform: none;
}
.menu-arrow {
    position: absolute;
    right: 0;
    top: 50%;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity .3s ease-out, transform .45s cubic-bezier(.16, 1, .3, 1);
}
.menu-link.is-active .menu-arrow {
    opacity: 1;
    transform: none;
}
.menu-copy {
    position: absolute;
    left: 0;
    top: 391px;
    margin: 0;
}
.underline-bottom {
    position: relative;
    text-decoration: none;
}
.underline-bottom::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}
.text-underline {
    text-decoration: underline;
}

/* #Main
================================================== */

.hero-section {
    position: relative;
    height: 80vh;
    height: 80svh;
    min-height: 400px;
    padding-top: 120px;
    overflow: hidden;
}
.hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}
.hero-section::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, .5);
    z-index: 1;
}
.hero-section .container {
    z-index: 2;
    height: 100%;
}
.hero-content {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 60px;
}

.benefits-section {
    border-radius: 0 0 16px 16px;
    background-color: var(--primary-color);
    color: var(--primary-black);
}
.benefit {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
}
.benefit-icon {
    display: block;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
}

.tag {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
}
.tag::before {
    content: '';
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 4px;
    margin-top: calc((1lh - 8px) / 2);
    background-color: var(--primary-color);
}
.btn-book,
.btn-outline,
.btn-tertiary {
    transition: background-color .2s ease-in, color .2s ease-in, border-color .2s ease-in;
}
.btn-tertiary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px solid transparent;
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 6px 16px;
    border: 1px solid currentColor;
    border-radius: 4px;
    height: 29px;
}
.rooms-section {
    border-radius: 16px 16px 0 0;
}
.room-card {
    position: relative;
    height: 412px;
    overflow: hidden;
    cursor: pointer;
}
.room-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.room-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0);
}
.room-info {
    position: absolute;
    right: 8px;
    bottom: 16px;
    left: 8px;
    z-index: 1;
}
.room-info h3 {
    margin-bottom: 8px;
}
.rooms-slider .swiper-slide:first-child .room-card {
    border-radius: 8px 0 0 8px;
}
.rooms-slider .swiper-slide:last-child .room-card {
    border-radius: 0 8px 8px 0;
}

.map-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0;
    list-style: none;
}
.btn-map{ padding: 6px 31.5px;}
.lubina-section {
    position: relative;
    display: flex;
    align-items: center;
    height: 545px;
    padding: 60px 0;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
}
.lubina-bg {
    position: absolute;
    inset: 0;
}
.lubina-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.btn-lubina{ padding: 6px 70px;}
.lubina-section .container {
    z-index: 1;
}
.lubina-logo {
    display: block;
    width: 223px;
    height: auto;
    margin-bottom: 16px;
}
.promo-section {
    padding-bottom: 80px;
    overflow: hidden;
}
.promo-col-top img,
.promo-col-main img {
    display: block;
    width: 100%;
    object-fit: cover;
}
.promo-col-top {
    margin-bottom: -151px;
}
.promo-col-top img {
    height: 328px;
    border-radius: 0 0 8px 8px;
}
.promo-col-main {
    padding-right: 0;
}
.promo-col-main picture {
    display: block;
    width: calc(50vw - 20% - 14.4px);
}
.promo-col-main img {
    height: 457px;
    border-radius: 8px 0 0 8px;
}
.promo-logo {
    display: block;
    width: 232px;
    height: auto;
}
.slider-dots {
    display: none;
    position: relative;
    justify-content: center;
    gap: 16px;
    margin-top: 24px;
    bottom: 0 !important;
}
.slider-dots .swiper-pagination-bullet {
    width: 5px;
    height: 5px;
    margin: 0 !important;
    border-radius: 20px;
    background-color: var(--color-gray);
    opacity: 1;
    transition: width .3s ease;
}
.slider-dots .swiper-pagination-bullet-active {
    width: 60px;
    background-color: currentColor;
}
.slider-dots.dots-primary .swiper-pagination-bullet{
    background-color: var(--color-light-gray);
}
.slider-dots.dots-primary .swiper-pagination-bullet-active {
    background-color: var(--primary-color);
}
.amenity-card picture {
    display: block;
    margin-bottom: 16px;
}
.amenity-card img {
    display: block;
    width: 100%;
    height: 314px;
    object-fit: cover;
}
.testimonials-section {
    border-radius: 16px 16px 0 0;
}
.testimonials-slider .swiper-wrapper {
    align-items: stretch;
}
.testimonials-slider .swiper-slide {
    height: auto;
}
.testimonial {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0;
}
.testimonial-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 40px;
    margin-bottom: 8px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--primary-color);
}
.testimonial-quote {
    display: block;
    flex-shrink: 0;
    width: 57px;
    height: 42px;
}
.testimonial blockquote {
    flex: 1;
    margin: 0;
}
.testimonial-author {
    display: flex;
    align-items: center;
    gap: 20px;
}
.testimonial-author span{ width: 76px;}
.testimonial-avatar {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
}
.testimonial > p {
    margin: 0;
}
.closing-section {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 545px;
    padding: 60px 0;
    border-radius: 0 0 16px 16px;
    overflow: hidden;
}
.closing-bg {
    position: absolute;
    inset: 0;
}
.closing-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.closing-section .container {
    z-index: 1;
}
.closing-isotipo {
    display: block;
    width: 47px;
    height: 60px;
    margin-bottom: 8px;
}
.closing-text {
    max-width: 358px;
}

.gallery-slider {
    padding-left: 16px;
    overflow: hidden;
}
.gallery-slider .swiper-wrapper {
    transition-timing-function: linear;
}
.gallery-slider .swiper-slide {
    width: 360px;
}
.gallery-slider img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
}

.page-hero {
    padding: 120px 0 80px;
}
.page-hero-card {
    position: relative;
    display: flex;
    align-items: center;
    height: 559px;
    border-radius: 16px;
    overflow: hidden;
}
.page-hero-bg {
    position: absolute;
    inset: 0;
}
.page-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.page-hero-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: center;
}
.rooms-tabs-section {
    overflow: hidden;
}
.rooms-tabs {
    display: flex;
    justify-content: space-between;
    width: 645px;
    margin-bottom: 24px;
}
.room-tab {
    padding: 6px 18px;
    border: 0;
    border-bottom: 1px solid transparent;
    background: transparent;
    color: var(--primary-black);
    text-transform: uppercase;
    opacity: .5;
    transition: opacity .2s ease-in, border-color .2s ease-in;
}
.room-tab.is-active {
    border-bottom-color: var(--primary-color);
    opacity: 1;
}
.rooms-panel {
    position: relative;
    height: 432px;
}
.rooms-info {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 359px;
    height: 371px;
}
.room-specs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.room-specs li {
    display: flex;
    align-items: center;
    gap: 8px;
}
.spec-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}
.rooms-arrows {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: flex;
    gap: 16px;
}
.slider-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: var(--color-light-gray);
    color: var(--primary-black);
    transition: opacity .2s ease-in;
}
.slider-arrow svg {
    width: 24px;
    height: 24px;
}
.slider-arrow.is-prev svg {
    transform: rotate(180deg);
}
.slider-arrow.swiper-button-disabled {
    opacity: .5;
    pointer-events: none;
}
.rooms-gallery {
    position: absolute;
    top: 0;
    left: 380px;
    right: calc((100% - 100vw) / 2);
    height: 432px;
}
.rooms-gallery .swiper-slide {
    width: 551px;
    height: 371px;
    margin-top: 61px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    transition: margin-top .5s cubic-bezier(.16, 1, .3, 1);
}
.rooms-gallery .swiper-slide-active {
    margin-top: 0;
    cursor: default;
}
.rooms-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.rooms-info,
.rooms-gallery {
    transition: opacity .25s ease-out;
}
.rooms-tabs-section.is-switching .rooms-info,
.rooms-tabs-section.is-switching .rooms-gallery {
    opacity: 0;
}
body[data-section="rooms"] .map-list{ margin-bottom: 0;}
.divider-section {
    position: relative;
    display: flex;
    align-items: flex-end;
    height: 545px;
    padding-bottom: 80px;
    border-radius: 0 0 16px 16px;
    overflow: hidden;
}
.divider-bg {
    position: absolute;
    inset: 0;
}
.divider-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.divider-section .container {
    z-index: 1;
}
.grupos-section {
    border-radius: 16px;
}
.divider-top {
    padding-bottom: 80px;
    border-radius: 16px 16px 0 0;
}

.divider-band {
    height: 253px;
    padding-bottom: 80px;
    border-radius: 16px;
}
.divider-round {
    border-radius: 16px;
}
.gallery-page,
.legal-page {
    padding: 120px 0 60px;
}
.thanks-section {
    min-height: 492px;
    padding: 140px 0 60px;
}
.legal-text {
    display: flex;
    flex-direction: column;
    gap: 22px;
    max-width: 1024px;
}
.cookie-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.cookie-head,
.cookie-item {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: min-content 1fr;
    column-gap: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--primary-black);
}
.cookie-body,
.cookie-body-inner {
    display: contents;
}
.cookie-title {
    grid-column: 1;
    align-self: start;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}
.cookie-chevron {
    display: none;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}
.cookie-names {
    grid-column: 1;
}
.cookie-purpose {
    grid-column: 2;
    grid-row: 1 / span 2;
}
.cookie-expiry {
    grid-column: 3;
    grid-row: 1 / span 2;
}
.gallery-row,
.gallery-thumbs {
    --bs-gutter-x: 20px;
}
.gallery-thumbs > [class*="col-"]:not(:nth-last-child(-n+2)) {
    margin-bottom: 20px;
}
.gallery-thumb {
    display: block;
    border-radius: 16px;
    overflow: hidden;
    cursor: pointer;
}
.gallery-thumb img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
}
.gallery-view {
    position: sticky;
    top: 80px;
    height: 543px;
    border-radius: 16px;
    overflow: hidden;
}
.gallery-view-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity .35s ease-out;
}
.gallery-view-img.is-active {
    opacity: 1;
}
.services-row {
    --bs-gutter-x: 20px;
}
.services-row > [class*="col-"]:nth-child(-n+3) {
    margin-bottom: 40px;
}
.service-card {
    display: flex;
    flex-direction: column;
}
.service-media {
    display: block;
    margin-bottom: 20px;
}
.service-media img {
    display: block;
    width: 100%;
    height: 221px;
    border-radius: 8px;
    object-fit: cover;
}
.service-title {
    margin-bottom: 8px;
    transition: color .2s ease-in, padding .55s cubic-bezier(.16, 1, .3, 1);
}
.service-bullets {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.nearby-card picture {
    display: block;
    margin-bottom: 16px;
}
.nearby-card img {
    display: block;
    width: 100%;
    height: 320px;
    object-fit: cover;
}
.nearby-card h3 {
    margin-bottom: 16px;
}
.nearby-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 0;
    list-style: none;
    margin-bottom: 0;
}
.nearby-list li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.nearby-list li span:last-child {
    flex-shrink: 0;
    white-space: nowrap;
}

.map-embed {
    position: relative;
    overflow: hidden;
}
.map-canvas {
    height: 484px;
}
.map-embed-home .map-canvas {
    height: auto;
    aspect-ratio: 910 / 728;
}
.map-fallback {
    position: absolute;
    inset: 0;
    z-index: 1;
    transition: opacity .4s ease-out;
}
.map-fallback img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.map-embed.is-live .map-fallback {
    opacity: 0;
    pointer-events: none;
}
.map-marker {
    position: relative;
}
.map-marker img {
    display: block;
}
.map-marker .map-label {
    position: absolute;
    top: 8px;
    display: flex;
    align-items: center;
    height: 30px;
    padding: 0 19px;
    border-radius: 16px;
    background: var(--primary-white);
    color: var(--primary-black);
    font-family: 'Reckless Neue', serif;
    font-size: 14px;
    line-height: normal;
    white-space: nowrap;
}
.map-marker .map-label-right {
    left: calc(100% + 6px);
}
.map-marker .map-label-left {
    right: calc(100% + 6px);
}
.map-canvas .leaflet-control-attribution {
    font-size: 10px;
    opacity: .7;
}

.lubina-hero {
    background-color: var(--color-green);
}
.lubina-hero .page-hero-content {
    height: 100%;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 40px;
    text-align: left;
    color: var(--color-white-lubina);
}
.lubina-hero-logo {
    display: block;
    width: 255px;
    height: 40px;
    margin-bottom: 12px;
}
.benefits-lubina {
    border-radius: 0;
    background-color: var(--color-green);
    color: var(--color-cream);
}

.stage-section {
    color: var(--color-green);
}
.stage-viewport {
    display: contents;
}
.stage-head {
    position: sticky;
    top: 60px;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 20px;
    padding-bottom: 60px;
    background-color: var(--color-cream);
}
.stage-head h2 {
    max-width: 550px;
}
.stage-head p {
    max-width: 455px;
}
.stage-track::after {
    content: '';
    display: block;
    height: 80px;
}
.stage-item {
    position: sticky;
    top: var(--stage-top, 220px);
    display: flex;
    gap: 20px;
    align-items: flex-end;
    margin-bottom: 320px;
    padding-bottom: 20px;
    background-color: var(--color-cream);
    box-shadow: 0 0 0 1px var(--color-cream), 0 32px 0 var(--color-cream);
    transition: opacity .2s linear;
}
.stage-item:last-child {
    margin-bottom: 0;
}
.stage-item:nth-child(even) {
    flex-direction: row-reverse;
}
.stage-media {
    display: block;
    flex-shrink: 0;
    width: 646px;
}
.stage-media img {
    display: block;
    width: 100%;
    height: 381px;
    border-radius: 8px;
    object-fit: cover;
}
.stage-content {
    flex: 1;
    min-width: 0;
}
.stage-details {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-top: 8px;
}
.stage-bullets {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.stage-bullets li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.stage-bullets li::before {
    content: '';
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 4px;
    margin-top: calc((1lh - 8px) / 2);
    background-color: currentColor;
}

.divider-lubina {
    position: relative;
    display: flex;
    align-items: flex-end;
    height: 545px;
    padding: 60px 0;
    overflow: hidden;
    color: var(--primary-white);
}
.divider-lubina .container {
    z-index: 1;
}
.lubina-lockup {
    display: block;
    width: 213px;
    height: 51px;
    margin-bottom: 16px;
}

html {
    scroll-behavior: smooth;
}
.field {
    margin-bottom: 16px;
}
.field label {
    display: block;
    margin-bottom: 0;
}
.field-input {
    display: block;
    width: 100%;
    height: 32px;
    padding: 8px 16px 8px 0;
    border: 0;
    border-bottom: 1px solid var(--primary-black);
    border-radius: 0;
    background: transparent;
    color: var(--primary-black);
    transition: border-color .2s ease-in;
}
.field-input::placeholder {
    color: var(--color-gray);
    opacity: 1;
}
.field-input:focus {
    border-bottom-color: var(--primary-color);
}
.field-input.error {
    border-bottom-color: var(--color-error);
}
.field textarea.field-input {
    height: 59px;
    resize: none;
}
.field-chevron {
    position: absolute;
    top: 50%;
    right: 0;
    width: 24px;
    height: 24px;
    margin-top: -12px;
    pointer-events: none;
    transition: transform .2s ease-out;
}
.custom-select {
    position: relative;
    user-select: none;
}
.custom-select-trigger {
    display: flex;
    align-items: center;
    color: var(--color-gray);
    text-align: left;
    cursor: pointer;
}
.custom-select-trigger.is-selected {
    color: var(--primary-black);
}
.custom-select-trigger.error {
    border-bottom-color: var(--color-error);
    color: var(--color-error);
}
.custom-select.is-open .field-chevron {
    transform: rotate(180deg);
}
.custom-options {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 10;
    padding: 4px 0;
    border-radius: 0 0 8px 8px;
    background-color: var(--primary-white);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .05);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity .2s ease-out, transform .2s ease-out, visibility 0s .2s;
}
.custom-select.is-open .custom-options {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity .2s ease-out, transform .2s ease-out, visibility 0s;
}
.custom-option {
    display: flex;
    align-items: center;
    min-height: 28px;
    padding: 7px 16px;
    font-family: var(--font-primary);
    font-size: 12px;
    line-height: 14px;
    color: var(--primary-black);
    cursor: pointer;
    transition: background-color .2s ease-out;
}
.custom-option.is-selected {
    background-color: var(--primary-color);
}
.field .error-text {
    margin-top: 4px;
    color: var(--color-error);
}
#contact-form .btn-book {
    margin-top: 8px;
    opacity: .6;
    pointer-events: none;
    transition: opacity .2s ease-in;
}
#contact-form .btn-book.is-enabled {
    opacity: 1;
    pointer-events: auto;
}

/* #Footer
================================================== */
.footer-section {
    background-color: var(--primary-black);
    color: var(--primary-white);
}

.footer-brand {
    display: block;
    width: fit-content;
}

.footer-nav a,
.footer-legal a {
    display: block;
}
.footer-isotipo {
    display: block;
    width: 62px;
    height: 80px;
    color: var(--primary-color);
}
.footer-nav,
.footer-legal,
.footer-social {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
}
.footer-nav {
    flex-direction: column;
    gap: 8px;
}
.footer-contact > p:not(:last-child) {
    margin-bottom: 16px;
}
.footer-bottom {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 70px;
}
.footer-legal,
.footer-social {
    gap: 24px;
}
.footer-copy {
    margin: 0;
}

.footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
}
.footer-social img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

