/**
 * Destino: assets/front/ibex-front.css
 * CSS estático do frontend (antes repetido inline em cada página).
 * Cores vêm de variáveis: --ibex-* (site/cores.php) e --ibxh-* (header).
 * Impresso por site/front-helpers.php no fim do wp_head.
 */

/* ── Utilitário: texto só para leitores de tela ── */
.ibex-sr-only {
    position: absolute !important; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ══════════════════════════════════════════════════════════════════════
   HEADER
══════════════════════════════════════════════════════════════════════ */

/* ── Nav ── */
#ibex-header-wrap .ibex-nav-list {
    list-style: none; margin: 0; padding: 0;
    display: flex; align-items: center; gap: 4px;
}
#ibex-header-wrap .ibex-nav-list li { position: relative; }
#ibex-header-wrap .ibex-nav-list li a {
    display: inline-block; padding: 8px 14px; font-size: 14px; font-weight: 500;
    color: var(--ibxh-menu); text-decoration: none;
    border-radius: 6px; transition: color .15s; white-space: nowrap;
}
#ibex-header-wrap .ibex-nav-list li a:hover,
#ibex-header-wrap .ibex-nav-list li a:focus-visible,
#ibex-header-wrap .ibex-nav-list li.current-menu-item > a {
    color: var(--ibxh-hover);
}
#ibex-header-wrap .ibex-nav-list li > a::after {
    content: ''; position: absolute; bottom: -8px; left: 0; right: 0; height: 8px;
}
#ibex-header-wrap .ibex-nav-list .sub-menu {
    display: none; position: absolute; top: 100%; left: 0; min-width: 200px;
    background: var(--ibxh-sub, #fff); border: 1px solid var(--ibxh-sub-borda, #e2e8f0); border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,.1); padding: 6px; z-index: 9999;
    list-style: none; margin: 0;
}
/* Abre no hover e também pelo teclado (Tab) */
#ibex-header-wrap .ibex-nav-list li:hover > .sub-menu,
#ibex-header-wrap .ibex-nav-list li:focus-within > .sub-menu { display: block; }
#ibex-header-wrap .ibex-nav-list .sub-menu li { list-style: none; margin: 0; padding: 0; }
#ibex-header-wrap .ibex-nav-list .sub-menu li a {
    display: block; padding: 8px 14px; font-size: 13px; border-radius: 6px;
    color: var(--ibxh-menu); text-decoration: none;
    transition: background .12s, color .12s;
}
#ibex-header-wrap .ibex-nav-list .sub-menu li a:hover {
    background: var(--ibxh-hover-soft);
    color: var(--ibxh-hover);
}

/* Mini-cart nativo do Hello fora do nosso drawer — só quando o header Ibex
   está na página (antes esta regra saía junto com o header). */
body:has(#ibex-cart-drawer):not(:has(#ibex-cart-drawer.active)) .hello-elementor-header-button,
body:has(#ibex-cart-drawer) .widget_shopping_cart_content:not(#ibex-cart-drawer *) { display: none !important; }

/* ── Overlay ── */
#ibex-cart-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,.45);
    z-index: 999998; opacity: 0; visibility: hidden; transition: .25s;
}
#ibex-cart-overlay.active { opacity: 1; visibility: visible; }

/* ── Drawer do carrinho ── */
/* visibility:hidden quando fechado tira os links do Tab (antes o foco
   entrava no drawer invisível). O atraso no transition mantém a animação. */
#ibex-cart-drawer {
    position: fixed; top: 0; right: -460px; width: 420px; max-width: 95vw;
    height: 100vh; background: var(--ibxh-dk-bg) !important; z-index: 999999;
    visibility: hidden;
    transition: right .28s cubic-bezier(.4,0,.2,1), visibility 0s linear .28s;
    box-shadow: var(--ibxh-dk-sombra);
    display: flex; flex-direction: column; border-radius: 16px 0 0 16px;
}
#ibex-cart-drawer.active {
    right: 0; border-radius: 0; visibility: visible;
    transition: right .28s cubic-bezier(.4,0,.2,1), visibility 0s;
}

.ibex-cart-header {
    display: grid; grid-template-columns: 48px 1fr 48px; align-items: center;
    padding: 0 8px 0 4px; height: 60px;
    border-bottom: 1px solid var(--ibxh-dk-borda) !important;
    background: transparent !important; flex-shrink: 0;
}
#ibex-cart-close {
    background: none; border: none; cursor: pointer;
    width: 44px; height: 44px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: var(--ibxh-menu); transition: background .15s; justify-self: start;
}
#ibex-cart-close:hover { background: var(--ibxh-dk-hover) !important; }
#ibex-cart-close svg { display: block; stroke: var(--ibxh-menu); }
.ibex-cart-header-title {
    font-size: 16px; font-weight: 700; color: var(--ibxh-menu) !important;
    text-align: center; justify-self: center; white-space: nowrap;
}

/* Containers intermediários nunca pintam fundo próprio — o único fundo do
   drawer é o do #ibex-cart-drawer. Evita camada branca do tema. */
#ibex-cart-drawer .ibex-cart-body,
#ibex-cart-drawer .widget_shopping_cart_content,
#ibex-cart-drawer .woocommerce-mini-cart,
#ibex-cart-drawer .ibex-cart-footer,
#ibex-cart-drawer .ibex-cart-item-info,
#ibex-cart-drawer .woocommerce-mini-cart__total,
#ibex-cart-drawer .woocommerce-mini-cart__buttons {
    background: transparent !important; background-image: none !important; box-shadow: none !important;
}
#ibex-cart-drawer .ibex-cart-body {
    flex: 1 !important; overflow-y: auto !important; padding: 20px 24px !important;
    scrollbar-width: thin; scrollbar-color: var(--ibxh-dk-scroll) transparent;
}
#ibex-cart-drawer .ibex-cart-body::-webkit-scrollbar { width: 4px; }
#ibex-cart-drawer .ibex-cart-body::-webkit-scrollbar-thumb { background: var(--ibxh-dk-scroll); border-radius: 4px; }

#ibex-cart-drawer .woocommerce-mini-cart {
    list-style: none !important; margin: 0 !important; padding: 0 !important;
    display: flex !important; flex-direction: column !important; gap: 16px !important;
}
#ibex-cart-drawer .woocommerce-mini-cart-item {
    display: flex !important; align-items: flex-start !important; gap: 14px !important;
    padding: 14px !important; border-radius: 12px !important;
    background: var(--ibxh-dk-surf) !important; background-image: none !important;
    border: 1px solid var(--ibxh-dk-borda) !important;
    position: relative !important; list-style: none !important;
}
#ibex-cart-drawer .woocommerce-mini-cart-item > a:first-child { flex-shrink: 0 !important; display: block !important; }
#ibex-cart-drawer .woocommerce-mini-cart-item img {
    width: 72px !important; height: 72px !important; object-fit: cover !important;
    border-radius: 10px !important; display: block !important;
    border: 1px solid var(--ibxh-dk-borda2) !important;
}
.ibex-cart-item-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }

#ibex-cart-drawer .ibex-cart-item-info > a {
    font-size: 13px; font-weight: 600; line-height: 1.4;
    color: var(--ibxh-menu) !important; text-decoration: none;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
#ibex-cart-drawer .ibex-cart-item-info > a:hover { color: var(--ibxh-hover) !important; }

#ibex-cart-drawer .woocommerce-mini-cart-item .quantity {
    font-size: 13px; color: var(--ibxh-dk-muted) !important;
    display: flex; align-items: center; gap: 4px; position: static;
}
#ibex-cart-drawer .woocommerce-mini-cart-item .quantity .amount { font-weight: 700; color: var(--ibxh-menu) !important; }

/* Meta do item (Data, Assentos, Hospedagem — plugin de reservas) */
#ibex-cart-drawer .woocommerce-mini-cart-item .variation {
    margin: 2px 0 0 !important; padding: 0 !important; display: block !important; line-height: 1.45 !important;
}
#ibex-cart-drawer .woocommerce-mini-cart-item .variation dt,
#ibex-cart-drawer .woocommerce-mini-cart-item .variation dd,
#ibex-cart-drawer .woocommerce-mini-cart-item .variation dd p {
    color: var(--ibxh-dk-muted) !important; margin: 0 !important; padding: 0 !important;
    font-size: 12px !important; font-weight: 500 !important;
    background: transparent !important; float: none !important; clear: none !important; display: inline !important;
}
#ibex-cart-drawer .woocommerce-mini-cart-item .variation dt { font-weight: 600 !important; margin-right: 4px !important; }
#ibex-cart-drawer .woocommerce-mini-cart-item .variation dd::after { content: ''; display: block; }

/* Botão remover — canto superior direito do card */
#ibex-cart-drawer .remove {
    position: absolute; top: 8px; right: 8px;
    width: 22px; height: 22px; border-radius: 50%;
    background: #fee2e2; color: #e11d48 !important;
    font-size: 16px; line-height: 22px; text-align: center;
    text-decoration: none; display: flex; align-items: center; justify-content: center;
    transition: background .15s; font-weight: 700;
}
#ibex-cart-drawer .remove:hover { background: #fecaca; }

/* Footer: subtotal + botões */
.ibex-cart-footer {
    padding: 16px 24px 24px; border-top: 1px solid var(--ibxh-dk-borda) !important;
    display: flex; flex-direction: column; gap: 12px;
}
#ibex-cart-drawer .woocommerce-mini-cart__total {
    display: flex; align-items: center; justify-content: space-between; font-size: 15px; margin: 0;
}
#ibex-cart-drawer .woocommerce-mini-cart__total .label,
#ibex-cart-drawer .woocommerce-mini-cart__total strong { font-weight: 500; color: var(--ibxh-dk-muted) !important; }
#ibex-cart-drawer .woocommerce-mini-cart__total .amount { font-size: 20px; font-weight: 800; color: var(--ibxh-menu) !important; }

#ibex-cart-drawer .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 10px; margin: 0; }
#ibex-cart-drawer .woocommerce-mini-cart__buttons a {
    display: flex; align-items: center; justify-content: center;
    min-height: 50px; border-radius: 999px;
    text-decoration: none; font-weight: 700; font-size: 14px;
    transition: transform .15s, box-shadow .15s; letter-spacing: .01em;
}
#ibex-cart-drawer .wc-forward,
#ibex-cart-drawer a.wc-forward,
#ibex-cart-drawer .button.wc-forward {
    background: var(--ibxh-dk-surf) !important; background-image: none !important;
    color: var(--ibxh-menu) !important; border: 1.5px solid var(--ibxh-dk-borda) !important;
}
#ibex-cart-drawer .wc-forward:hover,
#ibex-cart-drawer a.wc-forward:hover,
#ibex-cart-drawer .button.wc-forward:hover { background: var(--ibxh-dk-hover) !important; transform: translateY(-1px); }
#ibex-cart-drawer .checkout {
    background: var(--ibxh-btn) !important; color: var(--ibxh-btn-txt) !important;
    box-shadow: 0 4px 14px var(--ibxh-btn-sombra);
}
#ibex-cart-drawer .checkout:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px var(--ibxh-btn-sombra2);
}
#ibex-cart-drawer .woocommerce-mini-cart__empty-message {
    text-align: center; color: var(--ibxh-dk-faint) !important; padding: 40px 0; font-size: 14px;
}

/* ── Toggle mobile ── */
#ibex-mobile-toggle {
    display: none; background: none; border: none; cursor: pointer; padding: 4px; color: var(--ibxh-menu);
}
@media (max-width: 900px) {
    #ibex-header-wrap .ibex-header-btn-desktop { display: none; }
    #ibex-header-wrap .ibex-nav-menu { display: none; }
    #ibex-mobile-toggle { display: flex; }
}

/* ── Menu drawer — abre pela esquerda ── */
#ibex-menu-drawer {
    position: fixed; top: 0; left: -320px;
    width: 300px; max-width: 88vw; height: 100vh;
    background: var(--ibxh-fundo); z-index: 999999;
    visibility: hidden;
    transition: left .28s cubic-bezier(.4,0,.2,1), visibility 0s linear .28s;
    box-shadow: 12px 0 40px rgba(0,0,0,.12);
    display: flex; flex-direction: column;
}
#ibex-menu-drawer.active {
    left: 0; visibility: visible;
    transition: left .28s cubic-bezier(.4,0,.2,1), visibility 0s;
}
.ibex-menu-drawer-head {
    display: grid; grid-template-columns: 1fr 48px; align-items: center;
    padding: 0 8px 0 20px; height: var(--ibxh-alt);
    border-bottom: 1px solid rgba(255,255,255,.07); flex-shrink: 0;
}
.ibex-menu-drawer-logo a { display: inline-flex; align-items: center; text-decoration: none; }
.ibex-menu-drawer-logo img {
    max-width: var(--ibxh-logo-max); max-height: var(--ibxh-logo-alt);
    height: auto; object-fit: contain; display: block;
}
/* Logo "selo" no drawer: maior, e o cabeçalho cresce junto (empurra o menu) */
#ibex-menu-drawer.ibex-drawer-selo .ibex-menu-drawer-head {
    height: auto; min-height: var(--ibxh-alt); padding-top: 16px; padding-bottom: 16px;
}
#ibex-menu-drawer.ibex-drawer-selo .ibex-menu-drawer-logo img { max-width: 150px; max-height: 130px; }
.ibex-menu-drawer-logo span { font-size: 18px; font-weight: 800; color: var(--ibxh-menu); text-decoration: none; }
#ibex-menu-close {
    background: none; border: none; cursor: pointer;
    width: 44px; height: 44px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: var(--ibxh-menu); stroke: var(--ibxh-menu);
    transition: background .15s; justify-self: end;
}
#ibex-menu-close svg { stroke: var(--ibxh-menu); }
#ibex-menu-close:hover { background: rgba(127,127,127,.18); }
.ibex-menu-drawer-nav {
    flex: 1; overflow-y: auto; padding: 8px 0;
    scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.1) transparent;
}
.ibex-menu-drawer-nav ul { list-style: none; margin: 0; padding: 0 12px; display: flex; flex-direction: column; gap: 2px; }
.ibex-menu-drawer-nav li a {
    display: flex; align-items: center; padding: 13px 16px;
    font-size: 15px; font-weight: 600; line-height: 1.3;
    color: var(--ibxh-menu); text-decoration: none;
    border-radius: 10px; border-left: 3px solid transparent;
    transition: color .15s, background .15s, border-color .15s;
}
.ibex-menu-drawer-nav li a:hover,
.ibex-menu-drawer-nav li.current-menu-item > a {
    color: var(--ibxh-hover);
    background: var(--ibxh-hover-soft);
    border-left-color: var(--ibxh-hover);
}
.ibex-menu-drawer-nav li + li a { border-top: none; }
.ibex-menu-drawer-nav .sub-menu { list-style: none; margin: 0; padding: 0 0 0 12px; background: transparent; }
.ibex-menu-drawer-nav .sub-menu li a {
    padding-left: 28px; font-size: 13px; font-weight: 500;
    border-left: 3px solid transparent; opacity: .8;
}
.ibex-menu-drawer-foot { padding: 16px 16px 32px; border-top: 1px solid rgba(255,255,255,.07); flex-shrink: 0; }
.ibex-menu-drawer-foot a {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 52px; border-radius: 999px;
    background: var(--ibxh-btn); color: var(--ibxh-btn-txt);
    font-size: 15px; font-weight: 700; text-decoration: none;
    box-shadow: 0 4px 20px var(--ibxh-btn-sombra);
    transition: transform .15s, box-shadow .15s;
}
.ibex-menu-drawer-foot a:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px var(--ibxh-btn-sombra2);
}

@media (prefers-reduced-motion: reduce) {
    #ibex-cart-drawer, #ibex-menu-drawer, #ibex-cart-overlay { transition: none !important; }
}

/* ══════════════════════════════════════════════════════════════════════
   CARDS DE PRODUTO (home, produto relacionado, widgets)
══════════════════════════════════════════════════════════════════════ */
.ibex-card {
    background: var(--ibex-surface, #fff); border: 1px solid var(--ibex-border, rgba(15,23,42,.08));
    border-radius: var(--ibex-radius-card, 16px); overflow: hidden;
    box-shadow: var(--ibex-shadow-card, 0 2px 10px rgba(0,0,0,.07));
    transition: box-shadow .25s, transform .25s;
    display: flex; flex-direction: column; flex-shrink: 0;
}
.ibex-card:hover { box-shadow: var(--ibex-shadow-card-hover, 0 14px 36px rgba(0,0,0,.13)); transform: translateY(-4px); }
.ibex-card-img-wrap { position: relative; overflow: hidden; }
.ibex-card-img-wrap img {
    width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; display: block; transition: transform .35s;
}
.ibex-card:hover .ibex-card-img-wrap img { transform: scale(1.04); }
.ibex-card-body { padding: 16px 18px 20px; display: flex; flex-direction: column; flex: 1; }
.ibex-card-cat {
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
    color: var(--ibex-muted, #94a3b8); margin-bottom: 6px;
}
.ibex-card-nome {
    font-family: var(--ibex-font); font-size: 16px; font-weight: 700; color: var(--ibex-on-surface, #1e293b); text-decoration: none;
    line-height: 1.4; margin-bottom: auto; display: block; padding-bottom: 14px;
}
.ibex-card-nome:hover { color: var(--ibex-cor-principal); }
.ibex-card-bottom {
    display: flex; align-items: flex-end; justify-content: space-between; gap: 8px;
    padding-top: 14px; border-top: 1px solid rgba(0,0,0,0.06);
}
.ibex-card-preco-label { font-size: 10px; color: #94a3b8; margin-bottom: 2px; }
.ibex-card-preco { font-size: 20px; font-weight: 800; color: var(--ibex-on-surface, #1e293b); line-height: 1; letter-spacing: -.01em; }
.ibex-card-preco .woocommerce-Price-amount { font-size: 19px; font-weight: 800; }
.ibex-card-preco del { font-size: 13px; font-weight: 500; color: var(--ibex-muted, #94a3b8); }
.ibex-btn {
    display: inline-block; padding: 9px 18px; border-radius: 50px; font-size: 13px; font-weight: 700;
    text-decoration: none; white-space: nowrap; transition: background .2s, transform .15s, box-shadow .2s; flex-shrink: 0;
}
.ibex-btn:hover { opacity: .85; transform: translateY(-1px); }

/* ══════════════════════════════════════════════════════════════════════
   HOME [ibex_home]
══════════════════════════════════════════════════════════════════════ */
.ibex-sec { padding: clamp(44px, 6vw, 72px) 0; }
.ibex-sec-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.ibex-sec-header {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; gap: 12px;
}
.ibex-sec-titulo { font-family: var(--ibex-font); font-size: clamp(22px, 2.6vw, 32px); font-weight: 800; color: var(--ibex-texto-fundo, #1e293b); margin: 0; line-height: 1.2; letter-spacing: -.015em; }
.ibex-ver-mais {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; font-weight: 700; text-decoration: none;
    border: 2px solid; border-radius: 50px; padding: 8px 18px;
    white-space: nowrap; flex-shrink: 0; transition: all .2s;
}
.ibex-ver-mais:hover { opacity: .75; }

/* Slider (mobile) */
.ibex-slider-outer { position: relative; }
.ibex-slider-track {
    display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 8px 24px 12px; cursor: grab;
}
.ibex-slider-track::-webkit-scrollbar { display: none; }
.ibex-slider-track:active { cursor: grabbing; }
.ibex-slider-track .ibex-card { scroll-snap-align: start; }
.ibex-cv-track::-webkit-scrollbar { display: none; }

/* Destaque / Quem Somos */
.ibex-destaque-wrap {
    display: grid; grid-template-columns: 1fr 1fr; min-height: 600px;
    align-items: stretch; max-width: 1200px; margin: 0 auto;
}
.ibex-destaque-col-txt { display: flex; flex-direction: column; justify-content: center; padding: 60px 24px; }
.ibex-destaque-col-img { position: relative; overflow: hidden; padding: 20px 24px 20px 0; display: flex; align-items: stretch; }
.ibex-destaque-col-img img {
    width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 16px; min-height: 400px;
}
.ibex-destaque-txt-tag {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
    margin-bottom: 14px; opacity: .5;
}
.ibex-destaque-titulo { font-size: clamp(22px, 3.5vw, 42px); font-weight: 800; line-height: 1.2; margin: 0 0 18px; }
.ibex-destaque-texto { font-size: 15px; opacity: .82; line-height: 1.75; margin: 0 0 24px; }
.ibex-destaque-preco { display: flex; flex-direction: column; margin-bottom: 24px; }
.ibex-destaque-preco-label {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .6; margin-bottom: 4px;
}
.ibex-destaque-preco-val { font-size: 36px; font-weight: 900; line-height: 1; }
.ibex-destaque-preco-val .woocommerce-Price-amount { font-size: 36px; font-weight: 900; }
.ibex-destaque-btns { display: flex; gap: 12px; flex-wrap: wrap; }
/* Botão secundário (2º botão): branco com letra preta */
.ibex-btn--wpp-dest {
    display: inline-flex; align-items: center; gap: 8px;
    background: #ffffff !important; color: #1e293b !important;
    padding: 13px 28px; font-size: 14px; border-radius: 50px; font-weight: 700; text-decoration: none;
}
.ibex-btn--wpp-dest:hover { background: #f1f5f9 !important; color: #1e293b !important; }
.ibex-btn--wpp-dest svg { color: #1e293b !important; fill: #1e293b !important; }

/* Banner hero */
.ibex-banner-hero { width: 100%; display: block; }
.ibex-banner-hero img { width: 100%; display: block; }

/* Diferenciais */
.ibex-difs-grid { display: grid; gap: 8px; }
.ibex-dif-item { display: flex; align-items: center; gap: 14px; padding: 14px 0; }
.ibex-dif-icon { font-size: 30px; flex-shrink: 0; }
.ibex-dif-text { font-size: 14px; font-weight: 600; line-height: 1.3; }

.ibex-grid { display: grid; gap: 20px; }

/* Parceiros — logos inteiros (contain), sem cortar */
.ibx-parceiros-grid {
    display: grid; grid-template-columns: repeat(6,1fr); gap: 10px;
    justify-items: center; align-items: center; max-width: 1200px; margin: 0 auto;
}
.ibx-parceiros-grid a, .ibx-parceiros-grid span { display: flex; justify-content: center; align-items: center; width: 100%; }
.ibx-parceiros-grid img { width: 180px; height: 180px; object-fit: contain; opacity: .9; transition: opacity .2s; }
.ibx-parceiros-grid img:hover { opacity: 1; }

@media (max-width: 900px) {
    .ibex-destaque-wrap { grid-template-columns: 1fr; margin: 0; }
    .ibex-sec--destaque { padding-left: 0 !important; padding-right: 0 !important; }
    .ibex-destaque-col-img {
        order: -1; width: 100%; aspect-ratio: 4/5; position: relative; overflow: hidden;
        min-height: unset; padding: 0; margin: 0; border-radius: 0;
    }
    .ibex-destaque-col-img img {
        position: absolute; inset: 0; width: 100%; height: 100%;
        object-fit: cover; border-radius: 0; min-height: unset;
    }
    .ibex-destaque-col-txt { padding: 36px 24px; }
    .ibex-sec { padding: 36px 0; }
    .ibex-difs-grid { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 600px) {
    .ibex-sec-inner { padding: 0 16px; }
}
@media (max-width: 768px) {
    .ibx-parceiros-grid { grid-template-columns: repeat(3,1fr); }
    .ibx-parceiros-grid img { width: 100%; height: 110px; }
}
@media (max-width: 400px) {
    .ibx-parceiros-grid img { height: 85px; }
}

/* Desktop: esconde slider, mostra grid */
@media (min-width: 769px) {
    .ibex-slider-outer { display: none; }
    .ibex-grid-wrap { display: block; }
}
/* Mobile: esconde grid, mostra slider. Slider cola na margem esquerda, 5px de respiro. */
@media (max-width: 768px) {
    .ibex-grid-wrap { display: none; }
    .ibex-slider-outer { display: block; }
    .ibex-sec-inner .ibex-slider-outer::after { display: none; }
    /* Só na home (os relacionados do produto têm espaçamento próprio) */
    .ibex-sec-inner .ibex-slider-outer { margin-left: -11px; margin-right: -16px; }
    .ibex-sec-inner .ibex-slider-track { padding: 0 0 12px 5px !important; gap: 12px; }
}

/* Banner e diferenciais respeitam quem pediu menos movimento */
@media (prefers-reduced-motion: reduce) {
    .ibex-card, .ibex-card-img-wrap img, .ibex-btn { transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Onda 4 — linguagem visual única
   Todos os cards (home, loja, serviços, posts, shortcodes) seguem o mesmo
   desenho: superfície, borda, raio, sombra e hover. Os nomes de classe antigos
   continuam (clientes podem ter CSS próprio); o "body" na frente dá a
   especificidade para vencer os <style> antigos de cada template, mas nunca
   vence estilos inline salvos pelo cliente.
   ═══════════════════════════════════════════════════════════════════════════ */
body .ibx-prod-card,
body .sv-card,
body .ibex-pd-card,
body .ibex-bl-card,
body .ibex-blog-card {
    background: var(--ibex-surface, #fff);
    color: var(--ibex-on-surface, #0f172a);
    border: 1px solid var(--ibex-border, rgba(15,23,42,.08));
    border-radius: var(--ibex-radius-card, 16px);
    box-shadow: var(--ibex-shadow-card, 0 2px 10px rgba(0,0,0,.07));
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
}
body .ibx-prod-card:hover,
body .sv-card:hover,
body .ibex-pd-card:hover,
body .ibex-bl-card:hover,
body .ibex-blog-card:hover {
    box-shadow: var(--ibex-shadow-card-hover, 0 14px 36px rgba(0,0,0,.13));
    transform: translateY(-4px);
}
body .ibx-prod-card img,
body .sv-card img,
body .ibex-pd-card img,
body .ibex-bl-card img,
body .ibex-blog-card img { object-fit: cover; }

/* Títulos e preços dos cards */
body .ibx-prod-card-nome, body .sv-card-nome, body .ibex-pd-nome, body .ibex-bl-nome {
    font-family: var(--ibex-font);
    color: var(--ibex-on-surface, #0f172a);
    font-weight: 700;
    line-height: 1.35;
}
body .ibx-prod-card-nome a, body .ibex-pd-nome a, body .ibex-bl-nome a { color: inherit; }
body .ibx-prod-card-cat, body .sv-card-data {
    color: var(--ibex-muted, #64748b);
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
}
body .ibx-prod-card-preco, body .ibex-pd-preco {
    font-size: 20px; font-weight: 800; letter-spacing: -.01em;
    /* Mesma cor de preço dos cards da home (cores.php: cor principal) */
    color: var(--ibex-cor-principal, #0f172a);
}
body .sv-card-desc, body .ibex-card-desc { color: var(--ibex-muted, #64748b) !important; }
body .sv-card-link { color: var(--ibex-cor-principal); font-weight: 700; }

/* Botões dos cards: pílula na cor do botão */
body .ibx-prod-card-btn,
body .ibex-pd-btn,
body .ibex-bl-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    padding: 9px 18px; border-radius: 999px;
    font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap;
    background: var(--ibex-cor-botao); color: var(--ibex-texto-botao);
    transition: background .2s, transform .15s;
}
body .ibx-prod-card-btn:hover,
body .ibex-pd-btn:hover,
body .ibex-bl-btn:hover { background: var(--ibex-botao-hover, var(--ibex-cor-botao)); transform: translateY(-1px); }

/* ── Botões: primário / secundário / fantasma ── */
.ibex-btn, .ibx-btn { font-family: inherit; cursor: pointer; }
.ibex-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px var(--ibex-botao-sombra, rgba(0,0,0,.15)); }
a.ibex-btn.ibex-btn--sec, .ibex-btn.ibex-btn--sec {
    background: var(--ibex-cor-principal) !important;
    color: var(--ibex-texto-principal) !important;
    border-color: var(--ibex-cor-principal) !important;
}
a.ibex-btn.ibex-btn--sec:hover, .ibex-btn.ibex-btn--sec:hover { background: var(--ibex-principal-hover) !important; border-color: var(--ibex-principal-hover) !important; }
a.ibex-btn.ibex-btn--ghost, .ibex-btn.ibex-btn--ghost {
    background: transparent !important;
    color: inherit !important;
    border: 2px solid currentColor !important;
}
a.ibex-btn.ibex-btn--ghost:hover, .ibex-btn.ibex-btn--ghost:hover { background: rgba(255,255,255,.14) !important; border-color: currentColor !important; box-shadow: none; }
.ibex-hero .ibex-hero-selo.ibex-destaque-txt-tag { color: inherit !important; }
.ibex-btn--lg { padding: 14px 28px; font-size: 15px; }

/* Ver mais (outline) com hover cheio */
.ibex-ver-mais:hover {
    background: var(--ibex-cor-botao);
    color: var(--ibex-texto-botao) !important;
}

/* ── Foco visível (teclado) ── */
.ibex-ver-mais:focus-visible,
.ibx-prod-card-btn:focus-visible, .ibex-pd-btn:focus-visible, .ibex-bl-btn:focus-visible,
.sv-card:focus-visible, .ibex-gp-card:focus-visible,
.ibex-hero a:focus-visible {
    outline: 3px solid var(--ibex-foco, rgba(0,87,184,.45));
    outline-offset: 3px;
}

/* ═══ Seção Hero (opcional, home) ═══ */
.ibex-hero {
    position: relative; isolation: isolate; overflow: hidden;
    display: flex; align-items: center;
    min-height: clamp(420px, 72vh, 720px);
    background: var(--ibex-cor-secundaria, #0f172a) center/cover no-repeat;
    color: #fff;
}
.ibex-hero--curto { min-height: clamp(320px, 52vh, 520px); }
.ibex-hero-img {
    position: absolute; inset: 0; z-index: -2;
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.ibex-hero-overlay {
    position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(180deg, rgba(2,6,23,.15) 0%, rgba(2,6,23,.55) 100%), #020617;
}
.ibex-hero-inner {
    width: 100%; max-width: 1200px; margin: 0 auto;
    padding: clamp(56px, 9vw, 112px) 24px;
}
.ibex-hero--centro .ibex-hero-inner { text-align: center; }
.ibex-hero--centro .ibex-hero-btns { justify-content: center; }
.ibex-hero--centro .ibex-hero-sub { margin-left: auto; margin-right: auto; }
.ibex-hero-selo {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 14px; margin-bottom: 18px; border-radius: 999px;
    background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22);
    font-size: 13px; font-weight: 600; letter-spacing: .02em;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
body .ibex-hero .ibex-hero-titulo {
    font-family: var(--ibex-font);
    font-size: var(--ibex-fs-h1, clamp(30px,4.6vw,54px));
    font-weight: 800; line-height: 1.08; letter-spacing: -.025em;
    margin: 0 0 18px; max-width: 16ch;
    color: inherit !important;
    text-wrap: balance;
}
.ibex-hero--centro .ibex-hero-titulo { margin-left: auto; margin-right: auto; }
body .ibex-hero .ibex-hero-sub {
    font-size: clamp(16px, 1.6vw, 20px); line-height: 1.6;
    max-width: 58ch; margin: 0 0 30px; opacity: .92;
    color: inherit !important;
}
.ibex-hero-btns { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 600px) {
    .ibex-hero-inner { padding: 64px 16px 56px; }
    .ibex-hero-btns .ibex-btn { flex: 1 1 100%; justify-content: center; text-align: center; }
}

/* ── Movimento reduzido: sem translações de hover ── */
@media (prefers-reduced-motion: reduce) {
    .ibex-card, .ibex-card img,
    body .ibx-prod-card, body .sv-card, body .ibex-pd-card, body .ibex-bl-card, body .ibex-blog-card,
    .ibex-btn { transition: none !important; transform: none !important; }
}
/* Rótulos pequenos (preço "a partir de", categoria, cargo, títulos da barra
   lateral): o cinza #94a3b8 ficava abaixo do contraste legível sobre branco.
   --ibex-muted é #64748b no claro e #94a3b8 no escuro. */
.ibex-card-preco-label, .ibex-card-cat, .ibex-eq-cargo,
.ibx-prod-card-preco-label, .ibx-arq-sidebar-titulo, .ibx-arq-tags-titulo,
.ibex-ct-info-label { color: var(--ibex-muted, #64748b) !important; }

/* ── Carrinho do header: mesma cor dos links, sem hover/fundo do tema ── */
#ibex-header-wrap #ibex-cart-btn,
#ibex-header-wrap #ibex-cart-btn:hover,
#ibex-header-wrap #ibex-cart-btn:focus,
#ibex-header-wrap #ibex-cart-btn:active {
    color: var(--ibxh-menu) !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    opacity: 1 !important;
}
#ibex-header-wrap #ibex-cart-btn svg { stroke: currentColor !important; }

/* ── Logo "selo": maior que a faixa do menu, pendurada para baixo ── */
#ibex-header-wrap .ibex-logo-selo {
    position: relative; display: block; align-self: stretch;
    flex-shrink: 0; text-decoration: none;
}
#ibex-header-wrap .ibex-logo-selo img {
    position: absolute; top: 8px; left: 0; z-index: 2;
    width: 100%; height: auto; max-height: calc(var(--ibxh-alt) * 2.2);
    object-fit: contain; object-position: left top; display: block;
    filter: drop-shadow(0 6px 14px rgba(0,0,0,.35));
}
@media (max-width: 900px) {
    #ibex-header-wrap .ibex-logo-selo { max-width: 84px; }
}

/* Espaço da logo selo nas páginas internas (altura calculada no PHP) */
.ibex-selo-espaco { height: var(--ibxh-selo-sobra, 0px); }
@media (max-width: 900px) {
    .ibex-selo-espaco { height: var(--ibxh-selo-sobra-m, 0px); }
}
/* Produto no celular: foto colada no topo, a logo fica por cima (pedido) */
@media (max-width: 600px) {
    body.ibex-produto-single .ibex-selo-espaco { height: 0; }
}

/* ── Header transparente (sobre a primeira seção) ── */
#ibex-header-wrap.ibex-hdr-transp { transition: box-shadow .25s ease; }
#ibex-header-wrap.ibex-hdr-transp-sticky.is-scrolled {
    position: fixed !important; top: 0; left: 0; right: 0;
    background: var(--ibxh-fundo) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.12);
}
body.admin-bar #ibex-header-wrap.ibex-hdr-transp-sticky.is-scrolled { top: 32px; }
@media (max-width: 782px) {
    body.admin-bar #ibex-header-wrap.ibex-hdr-transp-sticky.is-scrolled { top: 46px; }
}