/*
Theme Name: CozyStay Child
Template: cozystay
Version: 1.0.0
*/

@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400;500&display=swap');


/* ============================================================
   HERO — SINGLE LOFT
   ============================================================ */
.loft-hero {
    position: relative; width: 100%; height: 52vh; min-height: 420px;
    background-size: cover; background-position: center; background-repeat: no-repeat;
    display: flex; flex-direction: column; align-items: center;
    justify-content: flex-end; padding-bottom: 32px;
}
.admin-bar .loft-hero { height: calc(52vh - 32px); }
@media (max-width: 782px) { .admin-bar .loft-hero { height: calc(52vh - 46px); } }
.loft-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
}
.loft-hero__content { position: relative; z-index: 2; text-align: center; color: #fff; padding: 0 24px; width: 100%; }
.loft-hero__title {
    font-family: 'Marcellus', serif !important; font-size: clamp(1.8rem, 4vw, 3.5rem) !important;
    font-weight: 400 !important; color: #fff !important; margin: 0 0 12px !important;
    letter-spacing: 0.08em !important; text-transform: uppercase !important;
    text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.loft-hero__btn {
    display: inline-block; margin-top: 4px; padding: 14px 36px; background-color: #134442;
    color: #fff !important; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 500;
    letter-spacing: 0.15em; text-transform: uppercase; text-decoration: none !important;
    border-radius: 2px; transition: opacity 0.2s ease;
}
.loft-hero__btn:hover { opacity: 0.85; }
.loft-hero__thumbs { position: relative; z-index: 2; display: flex; gap: 6px; margin-top: 16px; padding: 0 24px; flex-wrap: wrap; justify-content: center; }
.loft-hero__thumb { width: 60px; height: 40px; border-radius: 2px; border: 2px solid transparent; background-size: cover; background-position: center; cursor: pointer; opacity: 0.65; transition: opacity 0.2s, border-color 0.2s; padding: 0; }
.loft-hero__thumb:hover, .loft-hero__thumb.active { opacity: 1; border-color: #fff; }

/* ============================================================
   ACCORDION — POLITICAS
   ============================================================ */
.loft-policies { background: #F5F2EC; padding: 72px 24px; }
.loft-policies__inner { max-width: 860px; margin: 0 auto; }
.loft-accordion { border-top: 1px solid #D4CEC6; }
.loft-accordion__item { border-bottom: 1px solid #D4CEC6; background: transparent !important; box-shadow: none !important; }
.loft-accordion__trigger { width: 100% !important; display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 20px 0 !important; background: none !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; cursor: pointer !important; font-family: 'Inter', sans-serif !important; font-size: 13px !important; color: #3A3A3A !important; text-align: left !important; outline: none !important; margin: 0 !important; line-height: 1.4 !important; }
.loft-accordion__trigger:hover { color: #134442 !important; }
.loft-accordion__icon { width: 20px; height: 20px; flex-shrink: 0; position: relative; display: inline-block; }
.loft-accordion__icon::before { content: '' !important; position: absolute; width: 8px; height: 8px; border-right: 1.5px solid #3A3A3A; border-bottom: 1.5px solid #3A3A3A; top: 3px; left: 50%; transform: translateX(-50%) rotate(45deg); transition: transform 0.3s ease, top 0.3s ease; }
.loft-accordion__icon::after { display: none !important; }
.loft-accordion__trigger[aria-expanded="true"] .loft-accordion__icon::before { transform: translateX(-50%) rotate(-135deg); top: 7px; }
.loft-accordion__body { display: none; padding: 0 0 20px; font-family: 'Inter', sans-serif; font-size: 13px; color: #5A5550; line-height: 1.85; }
.loft-accordion__body ul { padding-left: 18px; margin: 8px 0; list-style: disc; }
.loft-accordion__body li { margin-bottom: 6px; }
.loft-accordion__body p  { margin-bottom: 10px; }

/* ============================================================
   CTA FINAL
   ============================================================ */
.loft-cta { position: relative; padding: 100px 24px; background-size: cover; background-position: center; text-align: center; }
.loft-cta__overlay { position: absolute; inset: 0; background: rgba(10,30,28,0.80); }
.loft-cta__inner { position: relative; z-index: 2; max-width: 640px; margin: 0 auto; }
.loft-cta__btn { display: inline-block; padding: 14px 40px; background-color: #134442; color: #fff !important; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; text-decoration: none !important; border-radius: 2px; transition: opacity 0.2s ease; }
.loft-cta__btn:hover { opacity: 0.85; }
@media (max-width: 768px) {
    .loft-hero { height: 52svh; }
    .loft-hero__thumb { width: 48px; height: 32px; }
    .loft-policies { padding: 48px 20px; }
    .loft-cta { padding: 72px 20px; }
}

/* ============================================================
   RODAPÉ — MOBILE
   ============================================================ */
@media (max-width: 1024px) {
    body div#footer-grid, body .footer-grid.e-con {
        --flex-direction: column !important; flex-direction: column !important;
        --container-widget-width: 100% !important; --container-widget-flex-grow: 0 !important;
    }
    body div#footer-grid > .e-con, body .footer-grid > .e-con {
        --container-widget-width: 100% !important; --container-widget-flex-grow: 0 !important;
        width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important;
    }
    body .footer-grid > .e-con + .e-con { margin-top: 28px !important; }
    body #colophon .elementor-widget-container, body #colophon .cs-title-wrap { text-align: left !important; }
    body #colophon .elementor-icon-list-items { justify-content: flex-start !important; }
    body #colophon * { word-break: normal !important; overflow-wrap: anywhere !important; hyphens: none !important; }
    body #colophon .elementor-widget-cs_logo img { max-width: 140px !important; height: auto !important; }
    body #colophon .elementor-widget-image img { max-width: 180px !important; height: auto !important; }
}

/* ============================================================
   HEADER — DESKTOP (> 1024px)
   ============================================================ */
@media (min-width: 1025px) {
    body .header-container > .e-con-inner {
        display: flex !important; align-items: center !important;
        justify-content: space-between !important; flex-wrap: nowrap !important;
    }
    body .header-container .header-logo { flex: 0 0 auto !important; order: 1 !important; }
    body .header-container .header-nav  { flex: 1 1 auto !important; order: 2 !important; justify-content: center !important; position: relative !important; }
    body .header-container #header-cta  { flex: 0 0 auto !important; order: 3 !important; }

    /* overflow visible para o sub-menu não ser clipado */
    body .header-container .header-nav,
    body .header-container .header-nav .elementor-widget-container,
    body .header-container .header-nav .elementor-nav-menu__container,
    body .header-container .header-nav .elementor-nav-menu--main,
    body .header-container .header-nav .elementor-nav-menu--main li {
        overflow: visible !important;
    }

    body .header-container .header-nav .elementor-nav-menu--main li.menu-item-has-children {
        position: relative !important;
    }

    /* Sub-menu desktop — CSS hover puro + JS hover */
    body .header-container .header-nav .elementor-nav-menu--main li.menu-item-has-children:hover > ul.sub-menu {
        display: block !important;
        position: absolute !important; top: 100% !important; left: 0 !important;
        z-index: 99999 !important; min-width: 200px !important;
        background: #134442 !important;
        border: 1px solid rgba(255,255,255,0.08) !important;
        border-radius: 4px !important;
        box-shadow: 0 8px 24px rgba(0,0,0,0.25) !important;
        padding: 8px 0 !important; margin: 0 !important; list-style: none !important;
    }
    body .header-container .header-nav ul.sub-menu a {
        display: block !important; padding: 10px 20px !important;
        color: rgba(255,255,255,0.85) !important; font-family: 'Inter', sans-serif !important;
        font-size: 10px !important; letter-spacing: 0.12em !important;
        text-transform: uppercase !important; text-decoration: none !important;
        border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    }
    body .header-container .header-nav ul.sub-menu a:hover {
        background: rgba(255,255,255,0.06) !important; color: #fff !important;
    }

    .header-nav .elementor-nav-menu a.elementor-item {
        font-family: 'Inter', sans-serif !important; font-size: 11px !important;
        letter-spacing: 0.12em !important; text-transform: uppercase !important;
        color: rgba(255,255,255,0.85) !important;
    }
    .header-nav .elementor-nav-menu a.elementor-item:hover { opacity: 0.7 !important; }
    .header-nav .elementor-nav-menu .current-menu-item > a {
        color: #c3bcaa !important; border-bottom: 1px solid #c3bcaa !important;
    }
}

/* ============================================================
   HEADER — MOBILE (≤ 1024px)
   ============================================================ */
@media (max-width: 1024px) {
    body .header-container > .e-con-inner {
        display: flex !important; align-items: center !important;
        justify-content: space-between !important; flex-wrap: nowrap !important;
    }
    body .header-container .header-logo { order: 1 !important; flex: 0 0 auto !important; }
    body .header-container #header-cta  { order: 2 !important; flex: 0 0 auto !important; display: flex !important; }
    body .header-container .header-nav  { order: 3 !important; flex: 0 0 auto !important; }

    body .header-container #header-cta .elementor-button {
        padding: 9px 14px !important; font-size: 10px !important; white-space: nowrap !important;
    }
    body .header-container .elementor-menu-toggle {
        display: flex !important; align-items: center !important; justify-content: center !important;
        cursor: pointer !important; width: 44px !important; height: 44px !important;
    }
    body .header-container .elementor-menu-toggle .e-font-icon-svg,
    body .header-container .elementor-menu-toggle svg {
        width: 24px !important; height: 24px !important; fill: #ffffff !important;
    }
}


/* ============================================================
   DRAWER MOBILE — estilos quando movido para body pelo JS
   ============================================================ */

/* Reset base 
body > nav.elementor-nav-menu--dropdown * {
    box-sizing: border-box !important;
    margin: 0 !important;
}

/* Botão fechar 
body > nav.elementor-nav-menu--dropdown button {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
    padding: 20px 24px 12px !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
}

/* Lista principal 
body > nav.elementor-nav-menu--dropdown .elementor-nav-menu {
    display: block !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100% !important;
}

/* Cada item 
body > nav.elementor-nav-menu--dropdown .menu-item {
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    padding: 0 !important;
}

/* Links principais 
body > nav.elementor-nav-menu--dropdown .menu-item > a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    padding: 18px 28px !important;
    color: #ffffff !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    background: transparent !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

body > nav.elementor-nav-menu--dropdown .menu-item > a:hover {
    background: rgba(255,255,255,0.07) !important;
}

/* Seta animada 
body > nav.elementor-nav-menu--dropdown .loft-arrow {
    display: inline-block !important;
    margin-left: 8px !important;
    opacity: 0.6 !important;
    font-size: 16px !important;
    transition: transform 0.2s ease !important;
    line-height: 1 !important;
}

/* Submenu 
body > nav.elementor-nav-menu--dropdown ul.sub-menu {
    display: none;
    list-style: none !important;
    padding: 0 !important;
    background: rgba(0,0,0,0.18) !important;
    width: 100% !important;
}

body > nav.elementor-nav-menu--dropdown ul.sub-menu .menu-item {
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}

body > nav.elementor-nav-menu--dropdown ul.sub-menu .menu-item > a {
    padding: 14px 28px 14px 44px !important;
    font-size: 10px !important;
    letter-spacing: 0.15em !important;
    color: rgba(255,255,255,0.8) !important;
}

body > nav.elementor-nav-menu--dropdown ul.sub-menu .menu-item > a:hover {
    color: #ffffff !important;
    background: rgba(255,255,255,0.06) !important;
}

/* ============================================================
   ESCONDE ícone de submenu do Elementor Pro no drawer mobile
   e corrige seta JS na mesma linha do texto
   ============================================================ */

/* Esconde o caret/icon que o Elementor Pro injeta no li 
body > nav.elementor-nav-menu--dropdown .elementor-submenu-icon,
body > nav.elementor-nav-menu--dropdown .sub-arrow,
body > nav.elementor-nav-menu--dropdown li > svg,
body > nav.elementor-nav-menu--dropdown li > i,
body > nav.elementor-nav-menu--dropdown li > span:not(.loft-arrow):empty {
    display: none !important;
}

/* Garante que a seta JS fica na mesma linha — flex no link 
body > nav.elementor-nav-menu--dropdown .menu-item > a {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
}

body > nav.elementor-nav-menu--dropdown .loft-arrow {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}
*/

/* ============================================================
   PÁGINA DE ACOMODAÇÕES — correções visuais
   ============================================================ */

/* Reordena visualmente: nome primeiro, tagline abaixo */
.loft-acom-cat-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.loft-acom-cat-nome {
    order: 1 !important;
    font-family: 'Dancing Script', cursive !important;
    font-size: clamp(2rem, 4vw, 2.8rem) !important;
    font-weight: 400 !important;
    color: #2C2C2C !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    margin: 0 0 8px !important;
}

.loft-acom-cat-divider {
    order: 2 !important;
}

.loft-acom-cat-tagline {
    order: 3 !important;
    font-family: 'Dancing Script', cursive !important;
    font-size: 1.15rem !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: #000000 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    margin: 0 0 16px !important;
}

.loft-acom-cat-desc {
    order: 4 !important;
}

.loft-acom-precos {
    order: 5 !important;
}

/* Força carregamento da fonte Dancing Script inline */

/* ============================================================
   ACOMODAÇÕES — correção completa de layout e tipografia
   ============================================================ */

/* Torna o header da categoria flex para o order funcionar */
body .loft-acom-cat-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding: 0px 24px 48px !important;
}

/* 1. Nome da categoria — grande, script, primeiro */
body .loft-acom-cat-nome {
    order: 1 !important;
    font-family: 'Dancing Script', cursive !important;
    font-size: clamp(2.2rem, 5vw, 3rem) !important;
    font-weight: 400 !important;
    font-style: normal !important;
    color: #2C2C2C !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.2 !important;
    margin: 0 0 4px !important;
}

/* 2. Divisor — segundo */
body .loft-acom-cat-divider {
    order: 2 !important;
    margin: 12px auto !important;
}

/* 3. Tagline — terceiro, itálico script em terracota */
body .loft-acom-cat-tagline {
    order: 3 !important;
    font-family: 'Dancing Script', cursive !important;
    font-size: 1.2rem !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: #000000 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.5 !important;
    margin: 0 0 24px !important;
}

/* 4. Descrição — quarto */
body .loft-acom-cat-desc {
    order: 4 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 0.9rem !important;
    color: #6a6a6a !important;
    line-height: 1.85 !important;
    max-width: 640px !important;
    margin: 0 auto 28px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

/* 5. Preços — quinto, sem card pesado */
body .loft-acom-precos {
    order: 5 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Labels dos preços (Segunda-Quinta / Fim de Semana) */
body .loft-acom-preco-label {
    font-family: 'Dancing Script', cursive !important;
    font-style: normal !important;
    font-size: 0.9rem !important;
    color: #A89F95 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

/* Valores dos preços */
body .loft-acom-preco-valor {
    font-family: 'Playfair Display', serif !important;
    font-size: 1.4rem !important;
    font-weight: 400 !important;
    color: #5A5550 !important;
    text-transform: none !important;
}