/* =========================================================
   ib-global.css · ivanbritto.com.br
   Seções: 1 Base · 2 Ícones · 3 Botões · 4 Header · 5 Accordion
           6 Slider mobile · 7 Movimento · 8 Utilitários
   ========================================================= */

/* 1 · Base */
html { scroll-behavior: smooth; }
body { background: #0A0612; color: #23222A; font-family: "Inter", system-ui, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
::selection { background: #DC88FF; color: #0A0612; }
.elementor h1, .elementor h2, .elementor h3 { text-wrap: balance; }
.elementor p { text-wrap: pretty; }
@media (max-width: 767px) { .ib-hide-br-mobile br { display: none; } }
.ib-grad { background: linear-gradient(90deg, #DC88FF 0%, #0047FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }

/* 2 · Ícones (máscara SVG sobre currentColor) */
.ib-ic { background-color: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.ib-ic-browsers { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='14' height='13' rx='2'/%3E%3Cpath d='M3 11h14M7 4h12a2 2 0 0 1 2 2v10'/%3E%3C/svg%3E"); }
.ib-ic-rocket { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5c3.2 2.2 5 5.8 5 9.6L15.3 17H8.7L7 12.1c0-3.8 1.8-7.4 5-9.6z'/%3E%3Ccircle cx='12' cy='10' r='1.8'/%3E%3Cpath d='M8.7 17 7 21M15.3 17 17 21M12 17v3'/%3E%3C/svg%3E"); }
.ib-ic-wand { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20 15 9M13 7l4 4M18 3v3M16.5 4.5h3M6 5v3M4.5 6.5h3M19 14v3M17.5 15.5h3'/%3E%3C/svg%3E"); }
.ib-ic-search { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.4-4.4'/%3E%3C/svg%3E"); }
.ib-ic-wrench { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3.5a5 5 0 0 0-4.6 6.9L3.8 17a2.1 2.1 0 0 0 3 3l6.6-6.6A5 5 0 0 0 20.5 9l-3.2 1.2-2.5-2.5L16 4.5z'/%3E%3C/svg%3E"); }
.ib-ic-chat { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v8a2.5 2.5 0 0 1-2.5 2.5H9.5L4 20.5z'/%3E%3Cpath d='M8.5 9.5h7M8.5 13h4.5'/%3E%3C/svg%3E"); }
.ib-ic-calendar { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='15' rx='2.5'/%3E%3Cpath d='M4 10h16M8.5 3v4M15.5 3v4M9 15l2 2 4-4'/%3E%3C/svg%3E"); }
.ib-ic-chart { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16M5 15.5l4.5-4.5 3 3L19 7.5M15 7.5h4v4'/%3E%3C/svg%3E"); }
.ib-ic-whatsapp { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 19.5l1.2-3.7A8 8 0 1 1 8.3 18.4z'/%3E%3Cpath d='M9 9.2c.2 2.6 2.9 5.2 5.6 5.6l1.2-1.4-1.9-.9-.8.8a4 4 0 0 1-2.6-2.6l.8-.8-.9-1.9z'/%3E%3C/svg%3E"); }
.ib-ic-arrow { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8.5 7H17v8.5'/%3E%3C/svg%3E"); }
.ib-ic-sparkle { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3.5 11.6 8 16 9.5l-4.4 1.6L10 15.5 8.4 11 4 9.5 8.4 8zM17.5 14l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8z'/%3E%3C/svg%3E"); }
.ib-stars { background: linear-gradient(90deg, #DC88FF 0%, #0047FF 100%); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 16'%3E%3Cg fill='%23000'%3E%3Cpath id='s' d='M8 .8l2.1 4.6 5 .5-3.8 3.4 1.1 4.9L8 11.7l-4.4 2.5 1.1-4.9L.9 5.9l5-.5z'/%3E%3Cuse href='%23s' x='19'/%3E%3Cuse href='%23s' x='38'/%3E%3Cuse href='%23s' x='57'/%3E%3Cuse href='%23s' x='76'/%3E%3C/g%3E%3C/svg%3E") left center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 16'%3E%3Cg fill='%23000'%3E%3Cpath id='s' d='M8 .8l2.1 4.6 5 .5-3.8 3.4 1.1 4.9L8 11.7l-4.4 2.5 1.1-4.9L.9 5.9l5-.5z'/%3E%3Cuse href='%23s' x='19'/%3E%3Cuse href='%23s' x='38'/%3E%3Cuse href='%23s' x='57'/%3E%3Cuse href='%23s' x='76'/%3E%3C/g%3E%3C/svg%3E") left center / contain no-repeat; }

/* 3 · Botões: círculo com seta no fim */
.ib-btn::after { content: ""; width: 36px; height: 36px; border-radius: 999px; flex-shrink: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0612' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8.5 7H17v8.5'/%3E%3C/svg%3E") center / 16px no-repeat, #FFFFFF; transition: transform 220ms cubic-bezier(.23,1,.32,1); }
.ib-btn-ghost-light::after { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8.5 7H17v8.5'/%3E%3C/svg%3E") center / 16px no-repeat, #23222A; }
@media (hover: hover) and (pointer: fine) { .ib-btn:hover::after { transform: rotate(45deg); } .ib-btn-primary:hover { filter: brightness(1.08); } }
@media (max-width: 767px) { .ib-btn-block { display: flex !important; width: 100%; justify-content: space-between; } }

/* 4 · Header */
.ib-header { transition: background-color 240ms ease, backdrop-filter 240ms ease; }
.ib-header.is-scrolled { background-color: rgba(10, 6, 18, .78) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.ib-nav .elementor-nav-menu--main .elementor-item { font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500; line-height: 1.4em; color: #FFFFFF; padding: 10px 16px; border-radius: 999px; }
.ib-nav .elementor-nav-menu--main .elementor-item:hover, .ib-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #DC88FF; }
.ib-nav .elementor-nav-menu--main .elementor-item::before, .ib-nav .elementor-nav-menu--main .elementor-item::after { display: none !important; }
.ib-nav .elementor-menu-toggle { display: none !important; }

/* Menu mobile (painel tela cheia) */
.ib-burger { width: 44px !important; height: 44px !important; min-height: 0 !important; border-radius: 999px !important; border: 1px solid #2C1D48 !important; background: transparent !important; display: none !important; position: relative; cursor: pointer; padding: 0 !important; color: #fff !important; font-size: 0 !important; line-height: 0 !important; }
.ib-burger::before, .ib-burger::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.8px; background: #fff; border-radius: 2px; translate: -50% -4px; }
.ib-burger::after { translate: -50% 3px; width: 11px; margin-left: -2.5px; }
@media (max-width: 1024px) { .ib-burger { display: inline-block !important; } .ib-header-desktop-only { display: none !important; } }
.ib-mpanel { position: fixed; inset: 0; z-index: 9998; background: #0A0612; padding: 88px 20px 32px; display: flex; flex-direction: column; gap: 4px; overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity 260ms ease, visibility 0s linear 260ms; }
.ib-mpanel.is-open { opacity: 1; visibility: visible; transition: opacity 260ms ease; }
.ib-mpanel a.ib-mlink { font-family: "Albert Sans", sans-serif; font-weight: 700; font-size: 34px; line-height: 1.1em; letter-spacing: -0.01em; color: #fff; text-decoration: none; padding: 14px 0; border-bottom: 1px solid #2C1D48; display: flex; justify-content: space-between; align-items: center; opacity: 0; translate: 0 16px; transition: opacity 420ms cubic-bezier(.23,1,.32,1), translate 420ms cubic-bezier(.23,1,.32,1); }
.ib-mpanel.is-open a.ib-mlink { opacity: 1; translate: 0 0; }
.ib-mpanel .ib-mctas { margin-top: auto; display: flex; flex-direction: column; gap: 12px; padding-top: 24px; }
.ib-mpanel .ib-mctas a { display: flex; justify-content: space-between; }
.ib-mpanel .ib-btn { display: flex; align-items: center; gap: 16px; padding: 8px 8px 8px 24px; min-height: 52px; border-radius: 999px; font: 600 15px/1 "Inter", sans-serif; text-decoration: none; }
.ib-mpanel .ib-btn-primary { background: linear-gradient(90deg, #DC88FF 0%, #0047FF 100%); color: #fff; }
.ib-mpanel .ib-btn-ghost-dark { border: 1px solid #2C1D48; color: #fff; }
.ib-mclose { position: absolute; top: 14px; right: 20px; width: 44px; height: 44px; border-radius: 999px; border: 1px solid #2C1D48; background: transparent; color: #fff; font-size: 0; cursor: pointer; }
.ib-mclose::before, .ib-mclose::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.8px; background: currentColor; translate: -50% -50%; rotate: 45deg; }
.ib-mclose::after { rotate: -45deg; }
body.ib-lock { overflow: hidden; }

/* 5 · Accordion (serviços e FAQ) */
.ib-acc details > summary { list-style: none; cursor: pointer; }
.ib-acc details > summary::-webkit-details-marker { display: none; }
.ib-acc-toggle { position: relative; width: 40px; height: 40px; border-radius: 999px; flex-shrink: 0; border: 1px solid currentColor; }
.ib-acc-toggle::before, .ib-acc-toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.8px; background: currentColor; translate: -50% -50%; transition: rotate 260ms cubic-bezier(.23,1,.32,1); }
.ib-acc-toggle::after { rotate: 90deg; }
.ib-acc details[open] .ib-acc-toggle { border-color: transparent; background: linear-gradient(90deg, #DC88FF, #0047FF); color: #fff; }
.ib-acc details[open] .ib-acc-toggle::after { rotate: 0deg; }
.ib-acc details[open] > :not(summary) { animation: ib-acc-in 420ms cubic-bezier(.23,1,.32,1); }
@keyframes ib-acc-in { from { opacity: 0; translate: 0 -6px; } to { opacity: 1; translate: 0 0; } }

/* 6 · Slider mobile padrão */
@media (max-width: 767px) {
  .ib-slider { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px !important; margin-inline: calc(var(--gutter) * -1) !important; padding-inline: var(--gutter) !important; scroll-padding-inline: var(--gutter); scrollbar-width: none; min-width: 0; grid-template-columns: none !important; }
  .ib-slider::-webkit-scrollbar { display: none; }
  .ib-slider > * { flex: 0 0 min(320px, calc(100vw - 56px)) !important; width: min(320px, calc(100vw - 56px)) !important; scroll-snap-align: start; }
  .ib-slider > *:last-child { scroll-snap-align: end; }
  .ib-slider-bar { display: block; height: 2px; background: rgba(127,127,140,.25); border-radius: 2px; margin-top: 20px; position: relative; overflow: hidden; }
  .ib-slider-bar i { position: absolute; top: 0; bottom: 0; left: 0; width: 30%; background: linear-gradient(90deg, #DC88FF, #0047FF); border-radius: 2px; }
}
@media (min-width: 768px) { .ib-slider-bar { display: none; } }

/* 7 · Movimento */
@media (prefers-reduced-motion: no-preference) {
  .ib-reveal { opacity: 0 !important; translate: 0 22px; transition: opacity 600ms cubic-bezier(.23,1,.32,1), translate 600ms cubic-bezier(.23,1,.32,1) !important; }
  .ib-reveal.is-in { opacity: 1 !important; translate: 0 0; }
  .elementor-editor-active .ib-reveal { opacity: 1 !important; translate: 0 0; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* 8 · Utilitários */
.ib-wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 9990; height: 52px; min-width: 52px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 0 16px; color: #fff; text-decoration: none; background: #1C1230; border: 1px solid #2C1D48; box-shadow: 0 12px 32px rgba(10,6,18,.35); font: 600 14px/1 "Inter", sans-serif; transition: padding 260ms ease, gap 260ms ease; }
.ib-wa-float .ib-wa-txt { white-space: nowrap; overflow: hidden; max-width: 160px; transition: max-width 260ms ease, opacity 200ms ease; }
.ib-wa-float.is-compact { padding: 0 14px; gap: 0; }
.ib-wa-float.is-compact .ib-wa-txt { max-width: 0; opacity: 0; }
@media (max-width: 767px) { .ib-wa-float { right: 16px; bottom: 16px; height: 48px; min-width: 48px; } }
