﻿@import url('../../css/styles.css');
@import url('../../css/inner-pages.css');
@import url('../../css/menu.css');

a {
    cursor: pointer !important;
    text-underline-offset: 5px;
}

a:focus {
    outline: none !important;
}

input, select, textarea {
    font-family: 'Open Sans', sans-serif;
    margin: 0;
}

input[type='button'], input[type='submit'], button {
    cursor: pointer;
    font-family: "Work Sans", sans-serif;
}

img {
    max-width: 100%;
}

a, a:focus, a:hover {
    color: #0C3B31;
}

a:focus-visible, span:focus-visible, div:focus-visible, textarea:focus-visible, input:focus-visible, select:focus-visible {
    outline: solid #0C3B31 1px !important;
    outline-offset: 5px !important;
}

.owl-carousel {
    z-index: 0 !important;
}

.bx-wrapper img {
    width: 100%;
}
/*for IE10*/
.fancybox-slide--iframe .fancybox-content {
    width: 800px !important;
    max-width: 100%;
}

.modal button.close {
    position: relative;
    z-index: 999;
}

.CMSMenu {
    z-index: 0 !important;
    width: 100%;
}
/*Cookies*/
.eGDSCookiesOverlay .eGDSCookiesWindow .eGDSCookiesWindowBtnWrapper .eGDSCookiesWindowBtn.eGDSCookiesWindowClose {
    background: #0C3B31 !important;
    border-color: #0C3B31 !important;
}

body .eGDSCookiesOverlay .eGDSCookiesWindow .switch input:checked ~ .draggableSwitch {
    background: #0C3B31;
}
/* [Calendar] */
.ui-datepicker {
    background: #EFEFEF;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .10);
    border: 1px solid rgba(0, 0, 0, .10);
}

    .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
        display: block;
        left: 50%;
        margin-left: -8px;
        margin-top: -8px;
        position: absolute;
        top: 50%;
        line-height: 16px;
    }

.ui-widget-header .ui-icon {
    background-image: url(images/ui-icons_222222_256x240.png);
    width: 16px;
}

.ui-icon-circle-triangle-w {
    background-position: -80px -192px;
}

.ui-icon-circle-triangle-e {
    background-position: -48px -192px;
}

.ui-datepicker-header, .ui-datepicker-calendar thead {
    border-bottom: solid 1px #D5D5D5;
}

.ui-datepicker td span, .ui-datepicker td a {
    text-align: center !important;
}

.ui-datepicker td a {
    color: #1a0908 !important;
}

.ui-datepicker-unselectable span {
    color: #D5D5D5;
}

.ui-datepicker-current-day a, a.ui-state-hover {
    color: #1a0908;
    background: #D5D5D5;
}

.ui-datepicker .ui-datepicker-prev-hover {
    left: 2px !important;
    top: 2px !important;
}

.ui-datepicker .ui-datepicker-next-hover {
    right: 2px !important;
    top: 2px !important;
}

.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
}
/* [TOS MODAL] */
.sidebar_content h1 {font-size: 22px;margin-bottom: 20px;}
.sidebar_content ol {list-style-type: decimal;font-size: 16px;line-height: 20px;}
.sidebar_content ol li{margin-bottom: 10px;}
/* Skip links: ocultos por padrão, visíveis ao foco */
.skip-link {
    position: absolute;
    top: -44px;
    left: 0;
    background: #0C3B31;
    color: #FFF !important;
    padding: 8px 16px;
    z-index: 99999;
    border-radius: 4px;
    text-decoration: none;
    transition: top 0.2s ease;
}

.skip-link:focus, .skip-link:focus-visible, .skip-link:focus-within {
  top: 10px;
}
/* [Bootstrap Helpers] */
.NoPadding {
    padding: 0 !important;
    margin: 0 !important;
}

.NoPaddingRight {
    padding-right: 0 !important;
    margin-right: 0 !important;
}

.NoPaddingLeft {
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.Equal {
    display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox; /* TWEENER - IE 10 */
    display: -webkit-flex; /* NEW - Chrome */
    display: flex;
    flex-wrap: wrap;
}
/* [CMSEditMode] */
.CMSEditMode [data-cue="fadeIn"], .CMSEditMode [data-cues="fadeIn"] > * {
    opacity: 1;
}
/*.CMSEditMode.bEditMode .Banner::after, .CMSEditMode.bEditMode header {
    pointer-events: none;
}*/
.CMSEditMode [data-cue="zoomIn"], .CMSEditMode [data-cues="zoomIn"] > * {
    opacity: 1 !important;
}
.CMSEditMode.bEditMode .Banner::after {
    display:none;
}
.CMSEditMode.bEditMode header {
    position: relative;
}
/* ================================================================
   [Retoques finais] — igualar alturas, efeito scale e interações
   ================================================================ */

/* Links: colunas de igual altura para que os .LinksText alinhem em baixo,
   independentemente da quantidade de texto de cada um. */
.Links .row { align-items: stretch; }
.Links [class*="col-"] { display: flex; flex-direction: column; }
.Links [class*="col-"] > img { flex: 0 0 auto; }
.Links .LinksText { flex: 1 1 auto; }

/* Efeito scale subtil ao passar o rato nas imagens das secções da homepage
   (as imagens de inner-pages — SectionIntro, galerias e cartões — já têm). */
.HomeImageBig, .HomeImageSmall, .Rooms .RoomsImage { overflow: hidden; }
.HomeImageBig img, .HomeImageSmall img, .Rooms .RoomsImage img {
    transition: transform 0.6s ease;
}
.HomeImageBig:hover img, .HomeImageSmall:hover img, .Rooms .RoomsImage:hover img {
    transform: scale(1.05);
}

/* Botões / links-botão: transição suave + ligeiro "lift" em hover e focus. */
.btnAlt, .btn, .LocationContent a, .ContactsForm .SearchButton, header .BookNow a {
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.btnAlt:hover, .btn:hover, .LocationContent a:hover, .ContactsForm .SearchButton:hover, header .BookNow a:hover,
.btnAlt:focus-visible, .btn:focus-visible, .LocationContent a:focus-visible, .ContactsForm .SearchButton:focus-visible, header .BookNow a:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(12, 59, 49, 0.18);
}

/* ================================================================
   [Responsive]
   Abordagem desktop-first (cumulativa, max-width). Fronteiras alinhadas
   com os breakpoints e-GDS: XS ≤767 / SM ≤991 / MD ≤1199 / LG ≤1365 / XL ≤1919.
   O desktop validado (≥1200px) fica INTACTO — as adaptações começam em ≤1199.
   ================================================================ */

/* ================================================================
   XL ≤1919 — abaixo de Full HD (o desktop foi desenhado a 1920x1080)
   Só a secção Acomodações precisa de folga: 3 blocos dentro de col-md-8
   (66%) ficam apertados. Alarga-se o bloco central e a moldura.
   ================================================================ */
@media (max-width: 1919px) {
    .Rooms .col-md-2 { flex: 0 0 8.333333%; max-width: 8.333333%; }
    .Rooms .col-md-8 { flex: 0 0 83.333333%; max-width: 83.333333%; }
    .Rooms::before { left: 80px; width: calc(100% - 160px); }
    .RoomsText { padding: 45px; }
}

/* ================================================================
   MD ≤1199 — tablet grande / portátil pequeno
   (redução moderada dos paddings largos; ainda sem empilhamento)
   ================================================================ */
@media (max-width: 1199px) {
    header { padding: 50px 50px 0; }
    main { padding: 55px 60px; }
    .Links { padding: 55px 60px; }
    /* Links usam col-lg-4 → empilham abaixo de 1200px: espaçar os blocos */
    .Links .col-lg-4 { margin-bottom: 30px; }
    .Links .col-lg-4:last-child { margin-bottom: 0; }
    /* Acomodações a largura total sem moldura (a moldura só encaixa bem perto de 1920) */
    .Rooms::before { display: none; }
    .Rooms .col-md-2 { display: none; }
    .Rooms .col-md-8 { flex: 0 0 100%; max-width: 100%; }
    .RoomsText { padding: 40px; }

    /* --- Páginas internas: reduzir os paddings horizontais largos (150px) --- */
    .PageTitle { padding-left: 60px; padding-right: 60px; }
    .MainSectionIntro, .InnerSection, .RoomsIntro, .RoomCard, .AmenitiesBar,
    .InfoBanner, .BreakfastHero, .BreakfastFeatures, .BreakfastSchedule,
    .BistroIntro, .MenuHighlights, .BistroHours, .ContactCards, .FormSection,
    .HowToArrive, .Section { padding-left: 60px; padding-right: 60px; }
    .SectionDivider { margin-left: 60px; margin-right: 60px; }
}

/* ================================================================
   SM ≤991 — tablet: início do empilhamento
   ================================================================ */
@media (max-width: 991px) {
    /* --- Header numa só linha: menu | logo (centrado) | reservar --- */
    header { padding: 25px 20px 0; }
    header .row { flex-wrap: nowrap; }
    header .col-md-4 { flex: 0 0 auto; width: auto; max-width: none; }
    header .col-md-4:nth-child(2) { flex: 1 1 auto; }
    .HeaderLogo img { width: 95px; }
    header .BookNow { width: auto; margin-top: 0; }
    header .BookNow a { padding: 10px 16px; font-size: 13px; }

    /* --- Main (imagem + texto empilham via Bootstrap abaixo de md) --- */
    main { padding: 45px 30px; }
    .HomeText { padding: 35px; }

    /* --- Rooms: usar largura total e empilhar os blocos --- */
    .Rooms { padding: 55px 0 60px; }
    .Rooms h2 { margin: 20px 0 40px; }
    .Rooms::before { display: none; }
    .Rooms .col-md-2 { display: none; }
    .Rooms .col-md-8 { flex: 0 0 100%; max-width: 100%; }
    .RoomsImage, .RoomsText { width: 100%; margin: 0 0 20px; float: none; }
    .RoomsImage { height: 280px; }
    .RoomsText { padding: 40px; }

    /* --- Links: paddings (empilhamento/espaçamento tratados no bloco ≤1199) --- */
    .Links { padding: 45px 30px; }
    .LinksText { padding: 30px; }

    /* --- Special Offers: layout simplificado (defensivo) --- */
    .SpecialOffers { padding: 50px 20px; }
    .specialoffers_carousel { width: 100% !important; margin-left: 0; }
    .SpecialOffer { flex-direction: column; }
    .SpecialOffer .itemImage,
    .SpecialOffer .Description { width: 100% !important; }
    .SpecialOffer.SpecialOfferLeft,
    .SpecialOffer.SpecialOfferRight { display: none; }

    /* --- Páginas internas: paddings e título --- */
    .PageTitle { padding-left: 30px; padding-right: 30px; padding-bottom: 35px; }
    .PageTitle h1 { font-size: 34px; }
    .MainSectionIntro, .InnerSection, .RoomsIntro, .RoomCard, .AmenitiesBar,
    .InfoBanner, .BreakfastHero, .BreakfastFeatures, .BreakfastSchedule,
    .BistroIntro, .MenuHighlights, .BistroHours, .ContactCards, .FormSection,
    .HowToArrive, .Section { padding-left: 30px; padding-right: 30px; }
    .SectionDivider { margin-left: 30px; margin-right: 30px; }

    /* Cartões de quarto (RoomCard): empilhar imagem/conteúdo, imagem sempre em cima.
       A imagem vive num carrossel owl (RoomGallery) em altura 100% encadeada; ao empilhar
       a coluna perde altura, por isso fixa-se a altura no contentor da galeria. */
    .RoomCard .row { flex-direction: column; }
    .RoomCardContent { padding: 30px 0 0; }
    .RoomCardImageWrap { height: 300px; }

    /* Blocos 50/50 (café/bistrô/intro): remover recuo do texto ao empilhar */
    .BreakfastHeroText, .BistroIntroText { padding-left: 0; padding-top: 30px; }
    .Internal.InternalWithIntroImage .SectionIntroText { padding-left: 0; }

    /* Galerias em grelha */
    .BreakfastGallery { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: 150px; }
    .BreakfastGallery .GalleryMain { grid-row: auto; grid-column: 1 / -1; }
    .BistroGallery { grid-template-columns: 1fr 1fr; height: auto; grid-auto-rows: 150px; }

    /* Galeria de imagens (GalleryItem 23% → 3 por linha via flex) */
    .GalleryContainer { display: flex; flex-wrap: wrap; gap: 10px; }
    .GalleryItem { width: calc(33.333% - 7px); margin: 0; }

    /* Mapa dos contactos */
    .MapSection { height: 360px; }

    /* Formulário: campos a 100% */
    .Form.CustomForm .txtEmailField,
    .Form.CustomForm .smallField,
    .Form.CustomForm > div { width: 100%; }

    /* Secções internas em flex (styles.css), caso usadas */
    .SectionsListAll .SectionsContainer { flex-direction: column; }
    .SectionsListAll > .SectionsContainer .SectionInfo .SectionInfoContent { padding: 40px 0; }
    .ServicesImages .ServicesImagesItem,
    .ServicesImages .ServicesImagesItem:nth-child(even) { flex-direction: column; }
    .ServicesImages .ServicesImagesItem .ServicesImagesItemText,
    .ServicesImages .ServicesImagesItem .ServicesImagesItemImage { width: 100%; }
    .AvailableServices .ServicesItens li { width: 100%; }
    .Contacts .Text { padding: 40px 0; }

    /* --- Footer --- */
    footer { padding: 50px 0 20px; }
}

/* Exceção pontual: os cartões de contacto usam col-md-3 (4/linha), que fica
   apertado entre 768-991px — passam a 2 por linha nessa faixa. */
@media (min-width: 768px) and (max-width: 991px) {
    .ContactCards .col-md-3 { flex: 0 0 50%; max-width: 50%; }
}

/* MainSectionIntro (páginas internas com imagem): abaixo da banda XL, e enquanto
   imagem e texto estão lado a lado (≥768), o texto passa a ocupar mais espaço
   que a imagem — troca das proporções col-md-7 (imagem) / col-md-5 (texto). */
@media (min-width: 768px) and (max-width: 1365px) {
    .MainSectionIntro .SectionIntroImageCol { flex: 0 0 41.666667%; max-width: 41.666667%; }
    .MainSectionIntro .SectionIntroCol { flex: 0 0 58.333333%; max-width: 58.333333%; }
}

/* ================================================================
   XS ≤767 — telemóvel
   ================================================================ */
@media (max-width: 767px) {
    .fancybox-slide.fancybox-slide--iframe { padding: 0; }

    /* --- Header ainda mais compacto (só ícone no menu) --- */
    header { padding: 18px 15px 0; }
    .MenuOpen { margin-right: 0; }
    .MenuOpen span { display: none; }
    .MenuOpen svg { margin-right: 0; }
    .HeaderLogo img { width: 85px; }
    header .BookNow a { padding: 9px 12px; font-size: 12px; }
	.HeaderLogo {margin-left: 60px;}

    /* --- Main --- */
    main { padding: 35px 18px; }
    .HomeText { padding: 28px; }
    .HomeImageSmall img { margin-top: 20px; }

    /* --- Rooms --- */
    .RoomsImage { height: 230px; }
    .RoomsText { padding: 30px; }

    /* --- Links --- */
    .Links { padding: 35px 18px; }

    /* --- Páginas internas --- */
    .PageTitle { padding-left: 20px; padding-right: 20px; padding-bottom: 25px; }
    .PageTitle h1 { font-size: 28px; }
    .MainSectionIntro, .InnerSection, .RoomsIntro, .RoomCard, .AmenitiesBar,
    .InfoBanner, .BreakfastHero, .BreakfastFeatures, .BreakfastSchedule,
    .BistroIntro, .MenuHighlights, .BistroHours, .ContactCards, .FormSection,
    .HowToArrive, .Section { padding-left: 20px; padding-right: 20px; }
    .SectionDivider { margin-left: 20px; margin-right: 20px; }
    .RoomCardImageWrap { height: 230px; }

    /* Amenidades e galerias a 1 coluna; galeria de imagens a 2 por linha */
    .RoomAmenities { grid-template-columns: 1fr; }
    .BreakfastGallery, .BistroGallery { grid-template-columns: 1fr; }
    .GalleryItem { width: calc(50% - 5px); }
    .Contacts ul.SmallList li,
    .SectionsListAll > .SectionsContainer .SectionInfo .SectionInfoContent ul.SmallList li { width: 100%; }

    /* --- Footer centrado --- */
    footer .About img { width: 170px; }
    footer .Powered,
    footer .Social { text-align: center; }
    footer .Social { margin-top: 15px; }
}