/* Accommodation page — custom tabs */
.acc-tabs__nav{list-style:none;padding:0;margin:0;width:100%;height:100%;display:flex;flex-direction:column}
.acc-tabs__nav-item{border-bottom:1px solid rgba(66,58,52,0.08);flex:1 1 0;display:flex}
.acc-tabs__nav-item:last-child{border-bottom:none}
.acc-tabs__link{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 30px;width:100%;min-height:72px;text-decoration:none;color:var(--primary-color);transition:all .35s ease;position:relative;overflow:hidden;cursor:pointer}
.acc-tabs__link::before{content:'';position:absolute;inset:0;background:var(--accent-color);transform:translateX(-100%);transition:transform .45s ease;z-index:0}
.acc-tabs__link>*{position:relative;z-index:1}
.acc-tabs__link:hover::before,.acc-tabs__link.is-active::before{transform:translateX(0)}
.acc-tabs__link:hover,.acc-tabs__link.is-active{color:var(--primary-color)}
.acc-tabs__label{display:flex;align-items:flex-start;gap:12px;font-size:1.05rem;font-weight:600;line-height:1.4;font-family:var(--default-font)}
.acc-tabs__num{font-family:'Playfair Display',serif;font-style:italic;color:var(--accent-color);font-size:0.95rem;line-height:1.5;flex-shrink:0;font-weight:600;transition:color .35s ease}
.acc-tabs__link.is-active .acc-tabs__num,.acc-tabs__link:hover .acc-tabs__num{color:var(--primary-color)}
.acc-tabs__arrow{width:44px;height:44px;border-radius:50%;background:var(--accent-color);color:var(--primary-color);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .35s ease}
.acc-tabs__link.is-active .acc-tabs__arrow,.acc-tabs__link:hover .acc-tabs__arrow{background:var(--primary-color);color:var(--accent-color);transform:translateX(4px)}

/* Row: nav defines height, content is absolute */
.acc-tabs__row{position:relative;overflow:hidden;min-height:560px}
.acc-tabs__nav-col{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:stretch}
.acc-tabs__content-col{position:absolute;top:0;right:0;bottom:0;overflow:hidden}
@media (min-width:768px){.acc-tabs__content-col{left:41.667%}}
@media (min-width:992px){.acc-tabs__content-col{left:33.333%}}
@media (min-width:1200px){.acc-tabs__content-col{left:25%}}
@media (max-width:767px){.acc-tabs__content-col{position:relative;left:auto}}

.acc-tabs__content{height:100%;overflow:hidden;position:relative}
.acc-tab-pane{display:none;height:100%;animation:accFade .4s ease}
.acc-tab-pane.is-active{display:flex}
.acc-tab-pane .row{height:100%;align-items:stretch;width:100%;flex:1 1 auto}
.acc-tab-pane .row>.col-xl-6{overflow:hidden}
.acc-tab-pane__media{position:relative;height:100%;min-height:0;overflow:hidden}
.acc-tab-pane__media .acc-room-swiper{position:absolute;inset:0;height:100%}
.acc-tab-pane__media .swiper-slide{background-size:cover;background-position:center;height:100%;width:100% !important}
.acc-tab-pane__media .swiper-wrapper{height:100%}
.acc-room-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,0.55);background:rgba(255,255,255,0.14);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.85;transition:background .25s ease,opacity .25s ease}
.acc-room-nav:hover{background:rgba(255,255,255,0.3);opacity:1}
.acc-room-nav--prev{left:28px}
.acc-room-nav--next{right:28px}
@media (max-width:640px){.acc-room-nav--prev{left:14px}.acc-room-nav--next{right:14px}}
@keyframes accFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

.acc-tab-pane__price{position:absolute;right:0;bottom:0;display:flex;align-items:stretch}
.acc-tab-pane__price-box{background:#fff;padding:0 22px;display:flex;flex-direction:column;justify-content:center;min-height:80px}
.acc-tab-pane__price-label{font-family:var(--default-font);font-size:0.64rem;font-weight:600;color:var(--text-color);letter-spacing:2px;text-transform:uppercase;margin-bottom:2px}
.acc-tab-pane__price-value{font-family:var(--default-font);font-size:1.3rem;font-weight:700;color:var(--primary-color);line-height:1}
.acc-tab-pane__book{background:var(--primary-color);padding:0 24px;display:flex;align-items:center;gap:12px;min-height:65px;text-decoration:none;color:#fff;border:none;cursor:pointer;font-family:var(--default-font);transition:all .3s}
.acc-tab-pane__book:hover{background:var(--accent-color);color:var(--primary-color)}
.acc-tab-pane__book-label{font-family:var(--default-font);font-size:0.78rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;line-height:1.2}
.acc-tab-pane__book-arrow{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.12);display:flex;align-items:center;justify-content:center;transition:all .3s}
.acc-tab-pane__book:hover .acc-tab-pane__book-arrow{background:var(--primary-color);color:var(--accent-color)}

.acc-tab-pane__info{padding:40px 44px;display:flex;flex-direction:column;justify-content:center;height:100%;overflow-y:auto}
.acc-tab-pane__view{font-family:var(--default-font);color:var(--accent-color);font-size:0.78rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:14px}
.acc-tab-pane__title{font-family:var(--default-font);color:var(--primary-color);font-size:1.9rem;font-weight:600;line-height:1.25;margin:0 0 16px}
.acc-tab-pane__title em{font-family:'Playfair Display',serif;color:var(--accent-color);font-style:italic}
.acc-tab-pane__desc{font-family:var(--default-font);color:var(--text-color);font-size:0.92rem;line-height:1.85;margin-bottom:26px}

.acc-tab-pane__features{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 30px;border-top:1px solid rgba(66,58,52,0.08);padding-top:24px}
.acc-tab-pane__feature{display:flex;align-items:flex-start;gap:9px;text-align:left;padding:0;border:none}

.acc-tab-pane__feature-icon{flex-shrink:0;color:var(--accent-color);line-height:0;margin-top:4px}
.acc-tab-pane__feature-label{font-family:var(--default-font);font-size:0.83rem;font-weight:400;letter-spacing:0;color:var(--text-color);line-height:1.5}

@media (max-width:991px){
    .acc-tabs__link{padding:24px 28px}
    .acc-tabs__label{font-size:1.05rem}
    .acc-tab-pane__info{padding:36px 30px}
    .acc-tab-pane__title{font-size:1.7rem}
    .acc-tab-pane__features{grid-template-columns:repeat(2,1fr);gap:10px 20px;padding-top:20px}
    .acc-tab-pane__feature{padding:0;gap:8px}
    .acc-tab-pane__feature-label{font-size:0.78rem}
    .acc-tab-pane__media{min-height:250px}
}
@media (max-width:640px){
    .acc-tab-pane__price-box,.acc-tab-pane__book{padding:0 16px;min-height:55px}
    .acc-tab-pane__price-value{font-size:1.1rem}
    .acc-tab-pane__book-label{font-size:0.72rem}
    .acc-tab-pane__book-arrow{width:30px;height:30px}
}

@media (max-width:767px){.acc-tabs__row{min-height:0}.acc-tabs__nav{height:auto;display:block}.acc-tabs__nav-item{display:block}.acc-tabs__link{min-height:0;padding:18px 22px}}

/* ── Packs: carrossel dentro da página de alojamento ──────────────────────── */
.acc-activities-swiper,.acc-packs-swiper{overflow:hidden}
.acc-activities-swiper .swiper-slide,.acc-packs-swiper .swiper-slide{height:auto}
.acc-packs-swiper .swiper-wrapper{align-items:stretch}
.acc-packs-swiper .swiper-slide>article{height:100%}

/* ===== Factos da localização (intro do alojamento) =====
   Substituíram o botão para a outra localização, que a seguir ao banner
   competia com o conteúdo da própria página. Os valores vêm das unidades
   geridas no backoffice, não estão escritos no código. */
.acc-factos{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    border-top: 1px solid rgba(66, 58, 52, .12);
    border-bottom: 1px solid rgba(66, 58, 52, .12);
    padding: 26px 0;
}

.acc-facto{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 4px 38px;
    text-align: center;
    flex: 1 1 0;
    min-width: 150px;
}

.acc-facto + .acc-facto{
    border-left: 1px solid rgba(66, 58, 52, .12);
}

.acc-facto__valor{
    font-family: 'Playfair Display', serif;
    color: var(--primary-color);
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 1;
}

.acc-facto__label{
    color: var(--text-color);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: .75;
}

@media (max-width: 767px){
    .acc-factos{ padding: 20px 0; }
    .acc-facto{ padding: 14px 18px; min-width: 50%; flex: 0 0 50%; }
    .acc-facto + .acc-facto{ border-left: 0; }
    .acc-facto__valor{ font-size: 1.5rem; }
}

/* ===== A outra localização (antes do CTA de reserva) =====
   Padding simétrico: já não é o último bloco da página, tem o CTA a seguir. */
.acc-outra{
    padding: 20px 0 100px;
    background: #fff;
}

.acc-outra__card{
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: 10px;
    background: #ebe7df;
    text-decoration: none;
    transition: box-shadow .35s ease, transform .35s ease;
}

.acc-outra__card:hover{
    transform: translateY(-3px);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .12);
}

.acc-outra__media{
    display: block;
    flex: 0 0 42%;
    min-height: 280px;
    background-size: cover;
    background-position: center;
    transition: transform .6s ease;
}

.acc-outra__card:hover .acc-outra__media{
    transform: scale(1.04);
}

.acc-outra__corpo{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    padding: 48px 54px;
    flex: 1 1 auto;
}

.acc-outra__eyebrow{
    color: var(--accent-color);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.acc-outra__titulo{
    font-family: var(--default-font);
    color: var(--primary-color);
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 1.3;
}

.acc-outra__titulo em{
    font-family: 'Playfair Display', serif;
    color: var(--accent-color);
    font-style: italic;
}

.acc-outra__desc{
    color: var(--text-color);
    font-size: .92rem;
    line-height: 1.85;
    max-width: 480px;
}

.acc-outra__cta{
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    color: var(--primary-color);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.acc-outra__cta svg{
    color: var(--accent-color);
    transition: transform .35s ease;
}

.acc-outra__card:hover .acc-outra__cta svg{
    transform: translateX(5px);
}

@media (max-width: 991px){
    .acc-outra{ padding: 10px 0 60px; }
    .acc-outra__card{ flex-direction: column; }
    .acc-outra__media{ flex: 0 0 auto; min-height: 210px; }
    .acc-outra__corpo{ padding: 32px 28px; }
    .acc-outra__titulo{ font-size: 1.5rem; }
}
