/*
Theme Name:  DBI Med
Theme URI:   https://dbimed.com.br
Description: Child theme do Hello Elementor para o site DBI Med (migração do Framer). Layout no Elementor Pro; aqui ficam só os efeitos que o Elementor não faz nativamente.
Author:      WAVEST
Template:    hello-elementor
Version:     0.1.0
Text Domain: dbimed
*/

/* =========================================================
   Tokens (espelham o kit do Elementor)
   ========================================================= */
:root {
	--dbi-navy: #001a5e;
	--dbi-navy-2: #001447;
	--dbi-blue: #5887da;
	--dbi-green: #00ac69;
	--dbi-gray: #999999;
	--dbi-lilac: #eceefb;
	--dbi-whats: #14db3c;
	--dbi-mint: #8fffd4;
	--dbi-sky: #abcaff;
	--dbi-header-h: 82px;
}

html, body { overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

.sr-only, .sr-only .elementor-heading-title {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.elementor-widget:not(:last-child) { margin-block-end: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { margin-top: 0; }
.dbi-ico { display: inline-flex; width: 1em; height: 1em; flex: none; }
.dbi-ico svg { width: 100%; height: 100%; display: block; }

/* =========================================================
   Header
   ========================================================= */
.dbi-header {
	position: fixed !important; top: 0; left: 0; right: 0; z-index: 900;
	height: var(--dbi-header-h);
}
.admin-bar .dbi-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dbi-header { top: 46px; } }
.elementor-editor-active .dbi-header, .elementor-location-header .elementor-editor-active .dbi-header { position: relative !important; top: 0; }

.dbi-header__nav {
	position: absolute !important; left: 50%; top: 50%;
	transform: translate(calc(-50% + 50px), -50%);
	width: auto !important;
}
.dbi-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 66px; }
.dbi-nav__item { position: relative; }
.dbi-nav__link {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 0 16px; height: 32px; border-radius: 40px;
	font-family: "Roboto", sans-serif; font-size: 16px; line-height: 32px; letter-spacing: -0.16px;
	color: var(--dbi-navy); text-decoration: none; transition: background-color .25s, color .25s;
}
.dbi-nav__link .dbi-ico { width: 12px; height: 12px; transition: transform .25s; }
.dbi-nav__item.has-dd:hover > .dbi-nav__link,
.dbi-nav__item.has-dd:focus-within > .dbi-nav__link { background: var(--dbi-green); color: #fff; }
.dbi-nav__item.has-dd:hover > .dbi-nav__link .dbi-ico,
.dbi-nav__item.has-dd:focus-within > .dbi-nav__link .dbi-ico { transform: rotate(-90deg); }
.dbi-dd {
	position: absolute; left: 50%; top: 100%; padding-top: 6px;
	transform: translate(-50%, 6px); opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .25s, transform .25s, visibility .25s;
}
.dbi-nav__item:hover > .dbi-dd, .dbi-nav__item:focus-within > .dbi-dd { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.dbi-dd__box {
	min-width: 290px; background: #fff; border-radius: 12px; padding: 16px 20px;
	border: 1px solid rgba(0, 172, 105, .45); box-shadow: 0 10px 20px rgba(0, 0, 0, .05);
}
.dbi-dd__title { margin: 0 0 10px; font: 600 13px/1.4 "Poppins", sans-serif; color: var(--dbi-navy); }
.dbi-dd ul { list-style: none; margin: 0; padding: 0; }
.dbi-dd li a { display: block; padding: 3px 0; font: 300 12px/1.6 "Poppins", sans-serif; color: #000; text-decoration: none; }
.dbi-dd li a:hover { color: var(--dbi-green); }
.dbi-nav__search { margin-left: -16px; }
.dbi-search-open, .dbi-burger, .dbi-oc__close, .dbi-search-close {
	background: none; border: 0; padding: 0; cursor: pointer; color: inherit; line-height: 0;
}
.dbi-nav__search .dbi-search-open { color: var(--dbi-navy); width: 22px; height: 22px; }
.dbi-nav__search .dbi-ico { width: 22px; height: 22px; }

/* Botão de menu */
.dbi-burger {
	width: 47px; height: 47px; border-radius: 80px; background: var(--dbi-navy) !important;
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
	transition: transform .25s;
}
.dbi-burger span { display: block; width: 22px; height: 2px; border-radius: 100px; background: var(--dbi-lilac); }
.dbi-burger span:nth-child(2) { width: 15px; margin-right: 7px; }
.dbi-burger:hover { transform: scale(1.05); }

/* Off-canvas */
.dbi-oc { position: fixed; inset: 0; z-index: 1000; pointer-events: none; }
.dbi-oc__backdrop {
	position: absolute; inset: 0; background: rgba(255, 255, 255, .15);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	opacity: 0; transition: opacity .4s;
}
.dbi-oc__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: min(515px, 100%);
	background: var(--dbi-navy); color: #fff; transform: translateX(100%);
	transition: transform .5s cubic-bezier(.22, .8, .25, 1); overflow-y: auto;
}
.dbi-oc-open .dbi-oc { pointer-events: auto; }
.dbi-oc-open .dbi-oc__backdrop { opacity: 1; }
.dbi-oc-open .dbi-oc__panel { transform: none; }
.dbi-oc__close {
	position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border-radius: 50%;
	border: 1.5px solid #fff !important; color: #fff; display: grid; place-items: center;
}
.dbi-oc__close .dbi-ico { width: 18px; height: 18px; }
.dbi-oc__inner { padding: 180px 40px 60px 65px; }
.dbi-oc__search { color: #fff; margin-bottom: 30px; }
.dbi-oc__search .dbi-ico { width: 30px; height: 30px; }
.dbi-oc__menu { list-style: none; margin: 0 0 30px; padding: 0; }
.dbi-oc__menu a { font: 500 26px/1.2 "Poppins", sans-serif; color: #fff; text-decoration: none; transition: color .2s; }
.dbi-oc__menu a:hover { color: var(--dbi-blue); }
.dbi-oc__label { margin: 26px 0 6px; font: 400 12px/1.4 "Poppins", sans-serif; color: var(--dbi-blue); }
.dbi-oc__small { font: 400 13px/1.6 "Poppins", sans-serif; color: #fff; text-decoration: none; }
.dbi-oc__socials { list-style: none; margin: 0; padding: 0; }

/* Busca */
.dbi-search { position: fixed; inset: 0; z-index: 1100; background: rgba(0, 26, 94, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: grid; place-items: start center; padding-top: 140px; opacity: 0; transition: opacity .25s; }
.dbi-search[hidden] { display: none !important; }
.dbi-search.is-open { opacity: 1; }
.dbi-search__box { position: relative; width: min(640px, 90vw); }
.dbi-search__box form { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 50px; padding: 0 22px; }
.dbi-search__box .dbi-ico { width: 20px; height: 20px; color: var(--dbi-navy); }
.dbi-search__box input { flex: 1; border: 0 !important; outline: 0; padding: 18px 0 !important; font: 400 17px "Poppins", sans-serif; color: var(--dbi-navy); background: transparent; }
.dbi-search-close { position: absolute; right: -54px; top: 10px; width: 40px; height: 40px; color: #fff; }
.dbi-search-close .dbi-ico { width: 22px; height: 22px; }

/* WhatsApp flutuante */
.dbi-wa {
	position: fixed; right: 22px; bottom: 65px; z-index: 800;
	width: 88px; height: 88px; border-radius: 40px; background: var(--dbi-whats);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .25); display: grid; place-items: center; color: #fff;
	transition: transform .25s;
}
.dbi-wa:hover { transform: scale(1.06); color: #fff; }
.dbi-wa .dbi-ico { width: 46px; height: 46px; }

/* =========================================================
   Hero
   ========================================================= */
.dbi-hero { overflow: hidden; }
.dbi-hero > .elementor-background-video-container { opacity: .4; }
.dbi-type { margin: 0; white-space: nowrap; font: 600 80px/80px "Poppins", sans-serif; color: var(--dbi-navy); min-height: 80px; }
.dbi-type__cursor { font-weight: 600; color: #000; animation: dbiBlink 1s steps(1) infinite; margin-left: 1px; }
@keyframes dbiBlink { 50% { opacity: 0; } }

/* Vidro do bloco "Existimos para ajudar" */
.dbi-glass { backdrop-filter: blur(11px); -webkit-backdrop-filter: blur(11px); }

/* =========================================================
   Seções com blobs
   ========================================================= */
.dbi-section { position: relative; }
.dbi-section > .e-con-inner, .dbi-section > .elementor-element:not(.dbi-blob-w) { position: relative; z-index: 1; }
.dbi-over { position: relative; z-index: 3; }
.dbi-blob-w { position: absolute !important; inset: 0; z-index: 0 !important; pointer-events: none; margin: 0 !important; width: 100% !important; max-width: none !important; }
.dbi-blob-w .elementor-widget-container { height: 100%; }
.dbi-blob { position: absolute; filter: blur(96px); will-change: transform; pointer-events: none; }
.dbi-blob--mint { width: 904px; height: 787px; border-radius: 74.35% / 43.96%; background: var(--dbi-mint); }
.dbi-blob--sky { width: 460px; height: 778px; border-radius: 230px; background: var(--dbi-sky); }
@media (max-width: 809px) {
	.dbi-blob--mint { width: 560px; height: 480px; }
	.dbi-blob--sky { width: 300px; height: 520px; }
}

/* Grids: linhas sempre pelo conteúdo (o padrão do Elementor é 2 linhas "fr") */
.e-con.e-grid.dbi-grid, .e-con.e-grid.dbi-stagger { grid-template-rows: none !important; grid-auto-rows: auto; }

/* Título "Linha" + logo e pílulas */
.dbi-pill .elementor-heading-title {
	display: inline-block; border: 1px solid currentColor; border-radius: 40px; padding: 8px 25px;
}
.dbi-pill--solid .elementor-heading-title { border: 0; }

/* =========================================================
   Cards de produto (Home, família, "Outros produtos")
   ========================================================= */
.dbi-card {
	text-decoration: none; transition: transform .35s cubic-bezier(.22, .8, .25, 1), box-shadow .35s;
	backdrop-filter: blur(2px);
}
a.dbi-card:hover { transform: translateY(-4px); box-shadow: 6px 10px 22px rgba(135, 135, 135, .26) !important; }
.dbi-card__img { overflow: hidden; }
.dbi-card__img img { width: 100% !important; height: 198px !important; object-fit: cover; display: block; transition: transform .5s; }
a.dbi-card:hover .dbi-card__img img { transform: scale(1.03); }
.dbi-card .elementor-heading-title { overflow-wrap: anywhere; }

/* Revelação na rolagem (bloco Lançamento) */
.dbi-scroll-reveal { will-change: transform, opacity; }

/* Appear */
.dbi-appear { opacity: 0; transform: perspective(1200px) translateY(10px); transition: opacity .6s ease var(--dbi-delay, 0s), transform .6s ease var(--dbi-delay, 0s); }
.dbi-appear.is-in { opacity: 1; transform: perspective(1200px) translateY(0); }
.elementor-editor-active .dbi-appear { opacity: 1; transform: none; }

/* Lançamento */
.dbi-lanc__img img { width: 100%; height: auto; display: block; }
.dbi-lanc__tag { position: absolute !important; top: 24px; left: 24px; width: auto !important; }
.dbi-lanc__list p { margin: 0 0 21px; }
.dbi-btn-ico .elementor-button-icon svg, .dbi-btn-ico .elementor-button-icon .dbi-ico { width: 24px; height: 24px; }
.dbi-btn-ico .elementor-button-content-wrapper { align-items: center; gap: 12px; }

/* =========================================================
   Cards do blog (loop item)
   ========================================================= */
.dbi-bcard { text-decoration: none; transition: transform .35s cubic-bezier(.22, .8, .25, 1), box-shadow .35s; }
a.dbi-bcard:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(0, 0, 0, .18) !important; }
.dbi-bcard__img img { width: 100% !important; height: 242px !important; object-fit: cover; display: block; }
.dbi-bcard__title { display: flex; gap: 24px; align-items: flex-start; justify-content: space-between; }
.dbi-bcard__arrow { color: #000; margin-top: 9px; }
.dbi-bcard__arrow .dbi-ico { width: 10px; height: 10px; }
.dbi-post-date { font: 400 12px/16.8px "Montserrat", sans-serif; color: var(--dbi-blue); }
.dbi-pill-cat { display: inline-block; padding: 4px 16px; border-radius: 16px; background: var(--dbi-navy); color: #fff; font: 600 12px/18px "Montserrat", sans-serif; }
/* Como no Framer: cada card do blog tem a altura do próprio conteúdo */
.elementor-widget-loop-grid .elementor-loop-container { align-items: start; }

/* =========================================================
   Rodapé
   ========================================================= */
.dbi-footer-mid { flex: 1 1 auto !important; width: auto !important; min-width: 0; }
.dbi-footer-soc { flex: 0 0 auto !important; width: auto !important; }
.dbi-footer-btn .elementor-button { gap: 0; }
.dbi-footer-btn .elementor-button-icon .dbi-ico, .dbi-footer-btn .elementor-button-icon svg { width: 20px; height: 20px; }
.dbi-footer-nav ul { list-style: none; margin: 0; padding: 0; }
.dbi-footer-nav a { font: 400 18px/28.8px "Montserrat", sans-serif; letter-spacing: -.36px; color: #fff; text-decoration: none; transition: color .2s; }
.dbi-footer-nav a:hover, .dbi-footer-nav .current-menu-item > a { color: var(--dbi-blue); }
.dbi-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.dbi-socials a { display: block; width: 32px; height: 32px; color: #fff; transition: opacity .2s; }
.dbi-socials a:hover { opacity: .75; }
.dbi-socials .dbi-ico { width: 32px; height: 32px; }

/* =========================================================
   Produto (detalhe e família)
   ========================================================= */
.dbi-voltar { display: inline-flex; align-items: center; gap: 6px; font: 400 16px/27.2px "Inter", sans-serif; color: rgba(0, 0, 0, .5); text-decoration: none; }
.dbi-voltar .dbi-ico { width: 18px; height: 18px; }
.dbi-voltar:hover { color: var(--dbi-navy); }

.dbi-gallery { position: relative; width: 100%; height: 443px; overflow: hidden; }
@media (max-width: 809px) { .dbi-gallery { height: 345px; } }
.elementor-widget-shortcode:has(.dbi-gallery) { width: 100%; }
.dbi-gallery__track { display: flex; height: 100%; transition: transform .6s cubic-bezier(.22, .8, .25, 1); }
.dbi-gallery__slide { flex: 0 0 100%; display: grid; place-items: center; padding: 30px; box-sizing: border-box; }
.dbi-gallery__slide img { width: 100%; height: 100%; max-height: 383px; object-fit: contain; }
.dbi-gallery__dots { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; gap: 11px; padding: 10px; border-radius: 200px; background: var(--dbi-navy); }
.dbi-gallery__dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #fff; opacity: .45; cursor: pointer; transition: opacity .2s; }
.dbi-gallery__dots button.is-active { opacity: 1; }

.dbi-prod-info { max-width: 100%; min-width: 0; }
.dbi-specs p { margin: 0 0 20px; font: 400 16px/27.2px "Poppins", sans-serif; color: var(--dbi-navy); }
.dbi-specs p:last-child { margin-bottom: 0; }
.dbi-specs strong { font-weight: 700; }
.dbi-orcamento {
	display: inline-block; width: 264px; max-width: 100%; text-align: center; padding: 10px; border-radius: 90px;
	background: var(--dbi-navy); color: #fff !important; font: 500 13px/normal "Poppins", sans-serif; text-decoration: none; transition: background-color .25s;
}
.dbi-orcamento:hover { background: var(--dbi-blue); }
