/* =====================================================================
   BOWT — Sunset Redesign (2026)
   Camada de design carregada por ÚLTIMO. Sobrepõe os estilos antigos
   sem alterar a lógica: preserva todos os id/class usados pelo JS.
   Estilo: fresco e vibrante — pôr-do-sol sobre o Tejo.
   ===================================================================== */

:root {
    --ink:        #1B1030;   /* noite plum */
    --ink-2:      #271843;
    --ink-soft:   #4A3B63;
    --cream:      #FFF7EF;
    --cream-2:    #FDEFE2;

    --coral:      #FF5E62;
    --orange:     #FF9052;
    --amber:      #FFC24B;
    --pink:       #FF4D8D;
    --violet:     #7B2FF7;
    --teal:       #16C9B4;   /* eco brand teal, mais vivo */

    --grad-sunset: linear-gradient(120deg, #7B2FF7 0%, #FF4D8D 42%, #FF7A59 72%, #FFC24B 100%);
    --grad-cta:    linear-gradient(135deg, #FF5E62 0%, #FF9052 100%);
    --grad-cta-hover: linear-gradient(135deg, #FF4D8D 0%, #FF7A59 100%);
    --grad-warm:   linear-gradient(135deg, #FFC24B 0%, #FF7A59 100%);

    --shadow-sm:  0 4px 14px rgba(27,16,48,.08);
    --shadow-md:  0 12px 34px rgba(27,16,48,.14);
    --shadow-glow:0 10px 30px rgba(255,77,141,.35);

    --radius:     20px;
    --radius-lg:  28px;
    --radius-pill:999px;

    --font-display: 'Sora', 'Montserrat', sans-serif;
    --font-body:    'Montserrat', system-ui, sans-serif;
}

/* ---------- Base ---------- */
body {
    font-family: var(--font-body) !important;
    background-color: var(--cream) !important;
    color: var(--ink) !important;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6,
.text-bold, .fw-bolder, .fw-bold {
    font-family: var(--font-display) !important;
    letter-spacing: -.01em;
}

a { text-decoration: none; }
a:hover { color: var(--pink) !important; }

::selection { background: var(--pink); color: #fff; }

/* Scrollbar */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--grad-cta); border-radius: 999px; }

/* =====================================================================
   HEADER / NAV (novo, injetado no layout)
   ===================================================================== */
.bowt-nav {
    position: absolute; top: 0; left: 0; right: 0; z-index: 60;
    display: flex; align-items: center; justify-content: space-between;
    padding: 22px clamp(18px, 5vw, 64px);
}
.bowt-nav.solid {
    position: sticky; background: rgba(27,16,48,.85);
    backdrop-filter: blur(12px); animation: navdrop .4s ease;
}
@keyframes navdrop { from{transform:translateY(-100%)} to{transform:none} }
.bowt-nav__logo img { height: 34px; width: auto; }
.bowt-nav__links { display: flex; align-items: center; gap: clamp(12px,2vw,28px); }
.bowt-nav__links a {
    color: #fff; font-weight: 600; font-size: 15px; letter-spacing: .02em;
    opacity: .92; transition: opacity .2s;
}
.bowt-nav__links a:hover { opacity: 1; color: #fff !important; }
.bowt-nav__cta {
    background: var(--grad-cta); color:#fff !important;
    padding: 10px 22px; border-radius: var(--radius-pill);
    font-weight: 700 !important; box-shadow: var(--shadow-glow);
    transition: transform .2s, box-shadow .2s;
}
.bowt-nav__cta:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(255,77,141,.5); }
@media (max-width: 768px){
    .bowt-nav { padding: 16px 18px; }
    .bowt-nav__links a:not(.bowt-nav__cta) { display:none; }
    .bowt-nav__logo img { height: 28px; }
}

/* Language menu — pílula flutuante */
.language-menu {
    position: fixed !important; right: 16px; top: auto !important; bottom: 24px;
    z-index: 70; display: flex; gap: 6px; align-items: center;
    background: rgba(27,16,48,.72); backdrop-filter: blur(8px);
    padding: 6px 12px; border-radius: var(--radius-pill);
    box-shadow: var(--shadow-sm); font-weight: 700; font-size: 14px;
}
.language-menu a { color: rgba(255,255,255,.6) !important; }
.language-menu a.active { color: #fff !important; }

/* =====================================================================
   BOTÕES
   ===================================================================== */
.myButton, .book-button, .btn-primary, .btn-category {
    background: var(--grad-cta) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--radius-pill) !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: .01em;
    box-shadow: var(--shadow-glow);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease !important;
}
.myButton:hover, .btn-primary:hover, .btn-category:hover {
    background: var(--grad-cta-hover) !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 36px rgba(255,77,141,.5);
}
.myButton { height: 46px; padding: 0 30px !important; display:inline-flex; align-items:center; }

.book-button {
    height: 54px !important; border-radius: var(--radius) !important;
    display: flex !important; align-items: center; justify-content: center;
    font-size: 17px;
}
.book-button span { padding-top: 0 !important; text-transform: none !important; font-weight: 700; }
.book-button:hover { background: var(--grad-cta-hover) !important; transform: translateY(-2px); }
.book-button.disabled, .book-button:disabled {
    background: #E7DCF0 !important; color: var(--ink-soft) !important;
    box-shadow: none !important; cursor: default; transform: none !important;
}
.book-button.disabled span { color: var(--ink-soft) !important; }

.btn-category {
    padding: 8px 18px !important; font-size: 14px; margin: 0 6px 8px 0;
    box-shadow: var(--shadow-sm);
}

/* Extra buttons na página do barco */
.extra-button {
    background: var(--ink) !important; border-radius: 14px !important;
    height: 48px !important; width: 100% !important;
    display: flex !important; align-items: center; justify-content: center;
    box-shadow: none; transition: background .2s, transform .2s;
}
.extra-button span { padding-top: 0 !important; text-transform: none !important; font-weight: 700; }
.extra-button:hover { transform: translateY(-1px); }
.selected-extra-button { background: var(--teal) !important; }
.mandatory-extra { background: var(--grad-warm) !important; }
.voucherBtn span { color: var(--coral) !important; }

/* =====================================================================
   INPUTS / SELECTS
   ===================================================================== */
.custom_input,
input[type="text"], input[type="number"], input[type="email"], textarea,
.select select {
    border-radius: var(--radius-pill) !important;
    border: 1.5px solid #EBDFF0 !important;
    background: #fff !important;
    color: var(--ink) !important;
    height: 48px;
    transition: border-color .2s, box-shadow .2s;
}
textarea { border-radius: var(--radius) !important; height: auto; padding: 12px 16px; }
.custom_input:focus,
input:focus, textarea:focus, .select select:focus {
    outline: none !important;
    border-color: var(--pink) !important;
    box-shadow: 0 0 0 4px rgba(255,77,141,.14) !important;
    background: #fff !important;
    color: var(--ink) !important;
}
.select select:hover { background: #fff !important; color: var(--ink) !important; }
.select_arrow { border-color: var(--pink) !important; }

/* =====================================================================
   HERO / SLIDER (city + boat)
   ===================================================================== */
.slider {
    position: relative !important;
    height: 520px !important;
    border-bottom-left-radius: var(--radius-lg);
    border-bottom-right-radius: var(--radius-lg);
    overflow: hidden;
}
.slider .container-fluid {
    background: linear-gradient(180deg, rgba(27,16,48,.15) 0%, rgba(27,16,48,.55) 55%, rgba(123,47,247,.55) 100%) !important;
    height: 520px !important; position: relative;
}
.slider .gradient {
    height: 100% !important;
    background: linear-gradient(180deg, rgba(27,16,48,.25), rgba(27,16,48,.65)) !important;
}
.city-title {
    color: #fff !important;
    font-size: clamp(2.4rem, 6vw, 4.6rem) !important;
    font-weight: 800 !important;
    text-shadow: 0 6px 30px rgba(27,16,48,.5);
    margin-top: 2rem !important;
    padding-top: 3.5rem !important;
    line-height: 1.02;
}
.slider p, .slider .text-white { color: rgba(255,255,255,.94) !important; max-width: 720px; line-height: 1.6; }
.nav-top img { filter: drop-shadow(0 4px 14px rgba(0,0,0,.35)); }

/* boat hero */
section.slider .btn-light {
    background: rgba(255,255,255,.16) !important;
    border: 1.5px solid rgba(255,255,255,.6) !important;
    color: #fff !important; backdrop-filter: blur(6px);
    border-radius: var(--radius-pill) !important; font-weight: 600;
    padding: 10px 20px;
}
section.slider .btn-light:hover { background: rgba(255,255,255,.28) !important; }

/* =====================================================================
   FILTROS (barra de pesquisa)
   ===================================================================== */
.filters {
    background: #fff !important;
    border: none !important;
    box-shadow: var(--shadow-md);
    border-radius: var(--radius-lg);
    margin: -46px auto 0 !important;
    position: relative; z-index: 20;
    max-width: 1040px;
}
.filters.fixed {
    margin: 0 !important; border-radius: 0;
    background: rgba(255,255,255,.96) !important; backdrop-filter: blur(10px);
    box-shadow: var(--shadow-sm);
}
.filters .list-inline { gap: 10px; flex-wrap: wrap; justify-content: center; }

/* =====================================================================
   CARDS DE BARCO
   ===================================================================== */
.featured { padding-bottom: 30px; }
.featured h4 {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    font-size: clamp(1.6rem, 3.5vw, 2.4rem) !important;
    color: var(--ink) !important;
    position: relative; display: inline-block; left: 50%; transform: translateX(-50%);
    padding-bottom: 6px;
}
.featured h4::after {
    content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%);
    width: 64px; height: 4px; border-radius: 999px; background: var(--grad-cta);
}

/* O <a> externo envolve col-md-4; o cartão real é o .bg-white */
.featured .bg-white {
    background: #fff !important;
    border-radius: var(--radius) !important;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s;
    height: 100%;
}
.featured a:hover .bg-white {
    transform: translateY(-8px);
    box-shadow: var(--shadow-md);
}
.featured .col-md-4 { margin-bottom: 26px; }

.featured_carousel, .featured .carousel, .featured .carousel-item, .featured .carousel-item img {
    height: 260px !important;
}
.featured .carousel-item img { object-fit: cover; }

.carousel-control-prev, .carousel-control-next {
    width: 44px; height: 44px; top: 50%; transform: translateY(-50%);
    background: rgba(27,16,48,.45) !important; border-radius: 50%;
    opacity: 0; transition: opacity .2s; margin: 0 8px;
}
.featured .bg-white:hover .carousel-control-prev,
.featured .bg-white:hover .carousel-control-next { opacity: 1; }
.carousel-control-prev { left: 8px; } .carousel-control-next { right: 8px; }

/* capacidade — badge flutuante em vez de barra vermelha */
.capacity { display: none !important; }
.capacity_details {
    height: auto !important; right: 14px !important; bottom: 14px !important;
    background: rgba(27,16,48,.6); backdrop-filter: blur(6px);
    padding: 6px 12px !important; border-radius: var(--radius-pill);
    display: flex; align-items: center; gap: 4px;
}
.capacity_details span { color: #fff !important; font-family: var(--font-display) !important; }

.boat-info { padding: 16px 18px 54px !important; position: relative; }
.boat-info p.text-bold { font-family: var(--font-display) !important; font-size: 1.12rem !important; color: var(--ink) !important; margin-right: 0 !important; line-height: 1.25; }
.boat-info p.text-muted { color: var(--ink-soft) !important; font-size: .88rem !important; margin-right: 0 !important; }

/* Preço — pílula gradiente, não texto vermelho absoluto */
.price {
    font-family: var(--font-display) !important;
    color: var(--coral) !important;
    position: static !important;
    top: auto !important; right: auto !important;
    font-size: 1.4rem !important; font-weight: 800;
}
.boat-info .price {
    position: absolute !important; left: 18px; bottom: 16px; right: auto; top: auto;
    background: var(--grad-cta); -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 1.5rem !important;
}

/* =====================================================================
   PÁGINA DO BARCO — coluna de info + resumo/reserva
   ===================================================================== */
#boatInfo h1 { font-size: clamp(2rem, 5vw, 3.2rem) !important; font-weight: 800 !important; }
#boatInfo .strong-star i { color: var(--amber) !important; }
#boatInfo .boat-info { color: var(--coral) !important; padding: 0 !important; }
#boatInfo .fs-18 { color: var(--ink) !important; }
.description { line-height: 1.75; color: var(--ink-soft); }

.summary {
    background: #fff !important;
    border: none !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-md);
    padding: 24px !important;
}
.summary h2 { font-family: var(--font-display) !important; font-weight: 800 !important; }
.form-icon { color: var(--coral) !important; }
#prices .price, #priceHTML { color: var(--coral) !important; -webkit-text-fill-color: var(--coral); }

.extraDivs { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); background:#fff; }
.extraDivs > img { border-radius: var(--radius) var(--radius) 0 0; margin-bottom: 0 !important; }

/* Linha de controlo: quantidade + botão "adicionar" */
.extraDivs .d-flex { padding: 14px 14px 0 !important; gap: 12px; align-items: stretch !important; }
.extraDivs .d-flex > .col-2 {
    flex: 0 0 auto !important; width: auto !important; max-width: none !important;
    padding: 0 !important; display: flex; flex-direction: column; align-items: stretch;
}
/* Caixa da quantidade */
.extraDivs input[input-extra-amount] {
    width: 70px !important; height: 48px !important;
    text-align: center; padding: 0 4px !important;
    font-family: var(--font-display) !important; font-weight: 700 !important; font-size: 1.2rem !important;
    border: 1.5px solid #EBDFF0 !important; border-radius: 14px !important;
    color: var(--ink) !important; background: #fff !important;
    -moz-appearance: textfield;
}
.extraDivs input[input-extra-amount]:focus {
    border-color: var(--pink) !important; box-shadow: 0 0 0 4px rgba(255,77,141,.14) !important;
}
/* Etiqueta da unidade (pax / hora(s) / único) — legenda discreta, já não é o badge vermelho */
.extraDivs [price-label] {
    background: transparent !important; color: var(--ink-soft) !important;
    width: 70px !important; height: auto !important; margin: 0 !important;
    padding: 5px 0 0 !important;
    font-size: .66rem !important; font-weight: 800 !important;
    letter-spacing: .08em; text-transform: uppercase;
    justify-content: center !important;
}
.extraDivs .d-flex > .col-10 {
    flex: 1 1 auto !important; width: auto !important; max-width: none !important;
    padding: 0 !important; display: flex;
}
.extra-price-div { background: transparent !important; padding: 12px 14px 2px !important; }
.extra-price-div .text-bold { color: var(--coral) !important; font-family: var(--font-display) !important; }

.accordion {
    background: transparent !important; color: var(--ink) !important;
    border-radius: 0 !important; font-weight: 700; margin: 0 !important;
    padding: 8px 14px 16px !important;
}
.accordion.active, .accordion:hover { background: var(--cream-2) !important; }
.panel { border-radius: 0; }

/* =====================================================================
   FOOTER — reasons + hashtag + footer
   ===================================================================== */
.hashtag {
    height: auto !important; background: var(--cream) !important;
    border-top: none !important; padding: 46px 0;
}
.hashtag .text-center { margin-top: 0 !important; }
.hashtag .c-accent, .hashtag strong {
    background: var(--grad-sunset); -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; font-family: var(--font-display) !important;
    font-weight: 800; font-size: clamp(2.6rem, 8vw, 4.6rem) !important;
}
.instagramPhotos { display: none; }

.reasons {
    background: var(--grad-sunset) !important;
    margin-top: 0 !important;
}
.reasons .container-fluid { background: transparent !important; }
.reasons .c-white, .reasons .fs-20, .reasons li, .reasons span { color: #fff !important; }
.reasons .fs-50, .reasons .text-bold {
    color: #fff !important; font-family: var(--font-display) !important; font-weight: 800 !important;
}
.reasons ul { list-style: none; padding-left: 0 !important; }
.reasons li { position: relative; padding-left: 30px; margin: 12px 0; }
.reasons li::before {
    content: "\2713"; position: absolute; left: 0; top: 2px;
    width: 20px; height: 20px; border-radius: 50%;
    background: rgba(255,255,255,.25); color: #fff; font-size: 12px;
    display: flex; align-items: center; justify-content: center; font-weight: 800;
}

.footer {
    background: var(--ink) !important; margin-top: 0 !important;
    position: relative;
}
.footer::before {
    content:""; position:absolute; top:0; left:0; right:0; height:4px; background: var(--grad-sunset);
}
.footer .c-white, .footer span, .footer a { color: rgba(255,255,255,.86) !important; }
.footer a:hover { color: #fff !important; }
.footer strong { color: #fff !important; font-family: var(--font-display) !important; }
.footer .fa-stack .fa-circle { color: rgba(255,255,255,.12) !important; }
.footer .social { color: #fff !important; }

/* Botão flutuante WhatsApp */
.wa-button { filter: drop-shadow(0 8px 20px rgba(37,211,102,.4)); transition: transform .2s; }
.wa-button:hover { transform: scale(1.08); }

/* ---------- Footer estruturado ---------- */
.footer-col { margin-bottom: 30px; }
.footer-logo { height: 34px; width: auto; margin-bottom: 16px; }
.footer-tagline { color: rgba(255,255,255,.62) !important; font-size: .9rem; line-height: 1.65; max-width: 250px; margin: 0; }
.footer-title { display: block; color: #fff !important; font-family: var(--font-display) !important; font-weight: 700; font-size: 1.02rem; margin-bottom: 16px; }
.footer-link { display: flex; align-items: center; color: rgba(255,255,255,.72) !important; font-size: .95rem; margin-bottom: 11px; transition: color .2s, transform .2s; }
.footer-link:hover { color: #fff !important; transform: translateX(3px); }
.footer-link i { width: 18px; margin-right: 10px; text-align: center; color: var(--amber); }
.footer-social { margin-top: 18px; }
.footer-social .list-inline-item { margin-right: 4px; }
.footer-social .social { color: var(--ink) !important; }
.footer-social .fa-circle { color: #fff !important; }
.footer-social a:hover .fa-circle { color: var(--amber) !important; }
.footer-cards { max-width: 190px; width: 100%; margin-top: 6px; opacity: .92; }
@media (max-width: 575px){ .footer-tagline { max-width: none; } .footer-col { text-align: left; } }

/* Botão fixo FareHarbor */
.fh-fixed--bottom {
    border-radius: var(--radius-pill) !important;
    font-family: var(--font-display) !important; font-weight: 700 !important;
    box-shadow: var(--shadow-glow) !important;
}

/* =====================================================================
   Utilidades e micro-animações
   ===================================================================== */
.c-accent { color: var(--coral) !important; }
section { scroll-margin-top: 90px; }

@media (max-width: 768px){
    .slider, .slider .container-fluid { height: 420px !important; }
    .filters { margin: -30px 16px 0 !important; border-radius: var(--radius); }
    .summary { position: static !important; margin-top: 24px; }
}

@keyframes floaty { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-8px) } }

/* =====================================================================
   DATEPICKER (jQuery UI) — tema sunset
   ===================================================================== */
.ui-datepicker {
    width: auto !important; padding: 12px !important; margin-top: 8px !important;
    background: #fff !important; border: none !important;
    border-radius: 18px !important; box-shadow: var(--shadow-md) !important;
    font-family: var(--font-body) !important; z-index: 9999 !important;
}
.ui-datepicker .ui-datepicker-header {
    background: var(--grad-cta) !important; border: none !important;
    border-radius: 12px !important; padding: 8px 4px !important; position: relative;
}
.ui-datepicker .ui-datepicker-title {
    color: #fff !important; font-family: var(--font-display) !important; font-weight: 700 !important;
}
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
    top: 7px !important; height: 30px !important; width: 30px !important; cursor: pointer;
    background: rgba(255,255,255,.22) !important; border-radius: 9px !important; border: none !important;
}
.ui-datepicker .ui-datepicker-prev { left: 6px !important; }
.ui-datepicker .ui-datepicker-next { right: 6px !important; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover {
    background: rgba(255,255,255,.4) !important; top: 7px !important;
}
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: none !important; }
.ui-datepicker .ui-datepicker-prev::after, .ui-datepicker .ui-datepicker-next::after {
    content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px;
    border: solid #fff; border-width: 0 2px 2px 0;
}
.ui-datepicker .ui-datepicker-prev::after { transform: translate(-30%,-50%) rotate(135deg); }
.ui-datepicker .ui-datepicker-next::after { transform: translate(-70%,-50%) rotate(-45deg); }
.ui-datepicker table { margin: 10px 0 2px !important; border-collapse: separate; border-spacing: 3px; }
.ui-datepicker th {
    color: var(--ink-soft) !important; font-weight: 800; font-size: .72rem;
    padding: 6px 0 !important; text-transform: uppercase; border: none;
}
.ui-datepicker td { padding: 0 !important; border: none !important; }
.ui-datepicker td span, .ui-datepicker td a {
    text-align: center !important; padding: 0 !important; margin: 0 auto !important;
    width: 38px !important; height: 38px !important; line-height: 38px !important;
    border: none !important; border-radius: 11px !important;
    background: transparent !important; color: var(--ink) !important;
    font-weight: 600; display: block;
}
.ui-datepicker td a:hover, .ui-datepicker td a.ui-state-hover {
    background: var(--cream-2) !important; color: var(--coral) !important;
}
.ui-datepicker td a.ui-state-active,
.ui-datepicker td.ui-datepicker-current-day a {
    background: var(--grad-cta) !important; color: #fff !important; box-shadow: var(--shadow-glow);
}
.ui-datepicker .ui-datepicker-today a, .ui-datepicker td a.ui-state-highlight {
    background: transparent !important; color: var(--coral) !important;
    box-shadow: inset 0 0 0 2px var(--coral);
}
.ui-datepicker td.ui-state-disabled span, .ui-datepicker td.ui-datepicker-unselectable span {
    color: #CFC5DA !important; background: transparent !important; opacity: 1 !important;
}

/* =====================================================================
   GALERIA DE FOTOS DO BARCO + LIGHTBOX próprio
   ===================================================================== */
.bowt-gallery-btn { cursor: pointer; }
.bowt-gallery-section { margin-top: 28px; }
.bowt-gallery {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.bowt-gallery__thumb {
    padding: 0; border: none; background: none; cursor: pointer;
    border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3;
    box-shadow: var(--shadow-sm); position: relative;
}
.bowt-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s cubic-bezier(.2,.7,.3,1); }
.bowt-gallery__thumb:hover img { transform: scale(1.07); }
.bowt-gallery__thumb::after {
    content: ""; position: absolute; inset: 0; background: rgba(27,16,48,0); transition: background .25s;
}
.bowt-gallery__thumb:hover::after { background: rgba(27,16,48,.12); }
@media (max-width: 768px){ .bowt-gallery { grid-template-columns: repeat(2, 1fr); gap: 8px; } }

.bowt-lightbox {
    position: fixed; inset: 0; z-index: 10000; display: none;
    align-items: center; justify-content: center;
    background: rgba(20,12,36,.94); backdrop-filter: blur(8px);
}
.bowt-lightbox.is-open { display: flex; animation: lbfade .25s ease; }
@keyframes lbfade { from { opacity: 0 } to { opacity: 1 } }
.bowt-lightbox__img { max-width: 88vw; max-height: 82vh; border-radius: 16px; box-shadow: 0 30px 90px rgba(0,0,0,.6); }
.bowt-lightbox__close {
    position: absolute; top: 18px; right: 24px; background: none; border: none;
    color: #fff; font-size: 42px; line-height: 1; cursor: pointer; opacity: .85;
}
.bowt-lightbox__close:hover { opacity: 1; }
.bowt-lightbox__nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 58px; height: 58px; border-radius: 50%; border: none;
    background: rgba(255,255,255,.15); color: #fff; font-size: 30px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; transition: background .2s, transform .2s;
}
.bowt-lightbox__nav:hover { background: var(--grad-cta); transform: translateY(-50%) scale(1.06); }
.bowt-lightbox__prev { left: 24px; } .bowt-lightbox__next { right: 24px; }
.bowt-lightbox__counter {
    position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
    color: #fff; font-family: var(--font-display); font-weight: 600;
    background: rgba(255,255,255,.15); padding: 6px 16px; border-radius: 999px; font-size: .9rem;
}
@media (max-width: 768px){
    .bowt-lightbox__nav { width: 44px; height: 44px; font-size: 24px; }
    .bowt-lightbox__prev { left: 8px; } .bowt-lightbox__next { right: 8px; }
}

/* =====================================================================
   Botão flutuante WhatsApp (substitui imagem 404)
   ===================================================================== */
.wa-fab {
    position: fixed; right: 20px; bottom: 96px; z-index: 70;
    width: 58px; height: 58px; border-radius: 50%; background: #25D366;
    color: #fff !important; display: flex; align-items: center; justify-content: center;
    font-size: 30px; box-shadow: 0 8px 24px rgba(37,211,102,.45); transition: transform .2s;
}
.wa-fab:hover { transform: scale(1.08); color: #fff !important; }
