{"id":613,"date":"2026-04-08T16:55:12","date_gmt":"2026-04-08T19:55:12","guid":{"rendered":"https:\/\/sitexis.com.br\/brutuscaps\/?page_id=613"},"modified":"2026-07-01T16:59:17","modified_gmt":"2026-07-01T19:59:17","slug":"modelos","status":"publish","type":"page","link":"https:\/\/sitexis.com.br\/brutuscaps\/modelos\/","title":{"rendered":"Modelos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"613\" class=\"elementor elementor-613\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93fd562 e-flex e-con-boxed e-con e-parent\" data-id=\"93fd562\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f2f726e e-con-full e-flex e-con e-parent\" data-id=\"f2f726e\" data-element_type=\"container\" data-e-type=\"container\" id=\"modelos\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a3451e2 elementor-widget elementor-widget-html\" data-id=\"a3451e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  \/* ==========================================================================\r\n     VITRINE BRUTUS CAPS COM FILTROS - UNIQUE SCOPED CSS\r\n     ========================================================================== *\/\r\n\r\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Figtree:wght@700;800&family=DM+Sans:wght@400;500;700&display=swap');\r\n\r\n  .ifb-vit-section {\r\n    --ifb-vit-primary: #CF2236 !important;\r\n    --ifb-vit-primary-dark: #A9182A !important;\r\n    --ifb-vit-dark: #07080A !important;\r\n    --ifb-vit-ink: #111318 !important;\r\n    --ifb-vit-muted: #2A2F38 !important;\r\n    --ifb-vit-soft-muted: #3F4652 !important;\r\n    --ifb-vit-cardbg: #ffffff !important;\r\n    --ifb-vit-bg: #ffffff !important;\r\n    --ifb-vit-soft-bg: #F4F6F8 !important;\r\n    --ifb-vit-steel: #E8EBEF !important;\r\n    --ifb-vit-border: #D7DCE3 !important;\r\n    --ifb-vit-border-strong: #B9C0CA !important;\r\n\r\n    background-color: var(--ifb-vit-bg) !important;\r\n    font-family: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;\r\n    padding: 88px 20px !important;\r\n    width: 100% !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: center !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  .ifb-vit-section * {\r\n    box-sizing: border-box !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  .ifb-vit-header {\r\n    text-align: center !important;\r\n    margin-bottom: 28px !important;\r\n    width: 100% !important;\r\n    max-width: 820px !important;\r\n  }\r\n\r\n  .ifb-vit-header h2 {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: clamp(30px, 4vw, 44px) !important;\r\n    font-weight: 800 !important;\r\n    line-height: 1.08 !important;\r\n    margin-bottom: 14px !important;\r\n    color: var(--ifb-vit-dark) !important;\r\n    text-wrap: balance !important;\r\n  }\r\n\r\n  .ifb-vit-header h2 span {\r\n    color: var(--ifb-vit-primary) !important;\r\n  }\r\n\r\n  .ifb-vit-header p {\r\n    color: var(--ifb-vit-muted) !important;\r\n    font-size: 17px !important;\r\n    font-weight: 400 !important;\r\n    line-height: 1.65 !important;\r\n    text-wrap: pretty !important;\r\n  }\r\n\r\n  .ifb-vit-filters {\r\n    display: flex !important;\r\n    flex-wrap: wrap !important;\r\n    justify-content: center !important;\r\n    gap: 10px !important;\r\n    margin-bottom: 44px !important;\r\n    width: 100% !important;\r\n    max-width: 960px !important;\r\n  }\r\n\r\n  .ifb-vit-filter-btn {\r\n    min-height: 42px !important;\r\n    background-color: var(--ifb-vit-soft-bg) !important;\r\n    border: 1px solid var(--ifb-vit-border) !important;\r\n    color: var(--ifb-vit-ink) !important;\r\n    padding: 0 18px !important;\r\n    border-radius: 10px !important;\r\n    font-size: 14px !important;\r\n    font-weight: 700 !important;\r\n    font-family: 'Figtree', sans-serif !important;\r\n    cursor: pointer !important;\r\n    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease !important;\r\n    outline: none !important;\r\n  }\r\n\r\n  .ifb-vit-filter-btn:hover {\r\n    border-color: var(--ifb-vit-primary) !important;\r\n    color: var(--ifb-vit-primary-dark) !important;\r\n    background-color: #ffffff !important;\r\n    transform: translateY(-1px) !important;\r\n  }\r\n\r\n  .ifb-vit-filter-btn.active {\r\n    background-color: var(--ifb-vit-primary) !important;\r\n    border-color: var(--ifb-vit-primary) !important;\r\n    color: #ffffff !important;\r\n    font-weight: 800 !important;\r\n  }\r\n\r\n  .ifb-vit-filter-btn:focus-visible {\r\n    outline: 3px solid rgba(207, 34, 54, 0.25) !important;\r\n    outline-offset: 3px !important;\r\n  }\r\n\r\n  .ifb-vit-grid {\r\n    display: grid !important;\r\n    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)) !important;\r\n    gap: 24px !important;\r\n    width: 100% !important;\r\n    max-width: 1240px !important;\r\n  }\r\n\r\n  @keyframes ifb-vit-fadein {\r\n    from {\r\n      opacity: 0;\r\n      transform: translateY(12px);\r\n    }\r\n\r\n    to {\r\n      opacity: 1;\r\n      transform: translateY(0);\r\n    }\r\n  }\r\n\r\n  .ifb-vit-card {\r\n    background-color: var(--ifb-vit-cardbg) !important;\r\n    border: 1px solid var(--ifb-vit-border) !important;\r\n    box-shadow: 0 8px 18px rgba(21, 24, 30, 0.035) !important;\r\n    border-radius: 12px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;\r\n    overflow: hidden !important;\r\n    position: relative !important;\r\n    animation: ifb-vit-fadein 0.45s ease forwards !important;\r\n  }\r\n\r\n  .ifb-vit-card:hover {\r\n    transform: translateY(-4px) !important;\r\n    box-shadow: 0 12px 26px rgba(21, 24, 30, 0.06) !important;\r\n    border-color: var(--ifb-vit-primary) !important;\r\n  }\r\n\r\n  .ifb-vit-image-wrap {\r\n    position: relative !important;\r\n    background-color: #ffffff !important;\r\n    height: 270px !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    padding: 28px !important;\r\n    border-bottom: 1px solid var(--ifb-vit-border) !important;\r\n    overflow: hidden !important;\r\n  }\r\n\r\n  .ifb-vit-image-wrap img {\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    object-fit: contain !important;\r\n    transition: transform 0.45s ease !important;\r\n    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.045)) !important;\r\n  }\r\n\r\n  .ifb-vit-card:hover .ifb-vit-image-wrap img {\r\n    transform: scale(1.045) translateY(-3px) !important;\r\n  }\r\n\r\n  .ifb-vit-badge {\r\n    position: absolute !important;\r\n    top: 14px !important;\r\n    right: 14px !important;\r\n    padding: 7px 12px !important;\r\n    border-radius: 8px !important;\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: 11px !important;\r\n    font-weight: 800 !important;\r\n    text-transform: uppercase !important;\r\n    color: #ffffff !important;\r\n    z-index: 2 !important;\r\n    letter-spacing: 0.05em !important;\r\n  }\r\n\r\n  .ifb-vit-badge-off {\r\n    background-color: var(--ifb-vit-primary) !important;\r\n  }\r\n\r\n  .ifb-vit-info {\r\n    padding: 22px 20px 20px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    flex-grow: 1 !important;\r\n  }\r\n\r\n  .ifb-vit-info h3 {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: 20px !important;\r\n    font-weight: 800 !important;\r\n    margin-bottom: 14px !important;\r\n    line-height: 1.25 !important;\r\n    color: var(--ifb-vit-ink) !important;\r\n    text-align: left !important;\r\n    transition: color 0.25s ease !important;\r\n    text-wrap: balance !important;\r\n  }\r\n\r\n  .ifb-vit-card:hover .ifb-vit-info h3 {\r\n    color: var(--ifb-vit-primary-dark) !important;\r\n  }\r\n\r\n  .ifb-vit-price-box {\r\n    margin-bottom: 14px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: flex-start !important;\r\n    background-color: rgba(207, 34, 54, 0.055) !important;\r\n    padding: 13px 14px !important;\r\n    border-radius: 10px !important;\r\n    border: 1px solid rgba(207, 34, 54, 0.12) !important;\r\n  }\r\n\r\n  .ifb-vit-old-price {\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    gap: 8px !important;\r\n    font-size: 13px !important;\r\n    color: var(--ifb-vit-soft-muted) !important;\r\n    margin-bottom: 4px !important;\r\n    line-height: 1.2 !important;\r\n  }\r\n\r\n  .ifb-vit-old-price del {\r\n    text-decoration: line-through !important;\r\n  }\r\n\r\n  .ifb-vit-old-price .ifb-vit-discount-percent {\r\n    color: var(--ifb-vit-primary-dark) !important;\r\n    font-weight: 800 !important;\r\n  }\r\n\r\n  .ifb-vit-current-price {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: 25px !important;\r\n    font-weight: 800 !important;\r\n    color: var(--ifb-vit-dark) !important;\r\n    line-height: 1 !important;\r\n  }\r\n\r\n  .ifb-vit-current-price span {\r\n    font-family: 'DM Sans', sans-serif !important;\r\n    font-size: 14px !important;\r\n    font-weight: 700 !important;\r\n    color: var(--ifb-vit-soft-muted) !important;\r\n    margin-left: 2px !important;\r\n  }\r\n\r\n  .ifb-vit-volume {\r\n    color: var(--ifb-vit-primary-dark) !important;\r\n    font-size: 13px !important;\r\n    font-weight: 800 !important;\r\n    margin-bottom: 7px !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    gap: 5px !important;\r\n    text-align: left !important;\r\n    min-height: 18px !important;\r\n    line-height: 1.35 !important;\r\n    transition: opacity 0.25s ease !important;\r\n  }\r\n\r\n  .ifb-vit-volume.ifb-vit-loading {\r\n    opacity: 0.55 !important;\r\n  }\r\n\r\n  .ifb-vit-shipping {\r\n    color: var(--ifb-vit-soft-muted) !important;\r\n    font-size: 12.5px !important;\r\n    font-weight: 500 !important;\r\n    line-height: 1.45 !important;\r\n    margin-bottom: 22px !important;\r\n    text-align: left !important;\r\n  }\r\n\r\n  .ifb-vit-shipping b {\r\n    color: var(--ifb-vit-ink) !important;\r\n    font-weight: 800 !important;\r\n  }\r\n\r\n  .ifb-vit-btn-wrapper {\r\n    position: relative !important;\r\n    display: block !important;\r\n    margin-top: auto !important;\r\n    width: 100% !important;\r\n  }\r\n\r\n  .ifb-vit-btn-shine {\r\n    position: relative !important;\r\n    margin: 0 !important;\r\n    min-height: 52px !important;\r\n    padding: 0 22px !important;\r\n    width: 100% !important;\r\n    outline: none !important;\r\n    text-decoration: none !important;\r\n    display: inline-flex !important;\r\n    justify-content: center !important;\r\n    align-items: center !important;\r\n    cursor: pointer !important;\r\n    text-transform: uppercase !important;\r\n    background-color: var(--ifb-vit-primary) !important;\r\n    border: 1px solid var(--ifb-vit-primary) !important;\r\n    border-radius: 10px !important;\r\n    color: #ffffff !important;\r\n    font-weight: 800 !important;\r\n    font-family: 'Figtree', sans-serif !important;\r\n    overflow: hidden !important;\r\n    transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;\r\n  }\r\n\r\n  .ifb-vit-btn-shine span {\r\n    color: #ffffff !important;\r\n    font-size: 14px !important;\r\n    font-weight: 800 !important;\r\n    letter-spacing: 0.04em !important;\r\n    line-height: 1 !important;\r\n    position: relative !important;\r\n    z-index: 2 !important;\r\n  }\r\n\r\n  .ifb-vit-btn-shine:hover {\r\n    background-color: var(--ifb-vit-primary-dark) !important;\r\n    border-color: var(--ifb-vit-primary-dark) !important;\r\n    box-shadow: 0 8px 18px rgba(207, 34, 54, 0.22) !important;\r\n    transform: translateY(-2px) !important;\r\n  }\r\n\r\n  .ifb-vit-btn-shine:focus-visible {\r\n    outline: 3px solid rgba(207, 34, 54, 0.28) !important;\r\n    outline-offset: 3px !important;\r\n  }\r\n\r\n  .ifb-vit-btn-shine::after {\r\n    background: rgba(255, 255, 255, 0.55) !important;\r\n    content: \"\" !important;\r\n    height: 155px !important;\r\n    left: -85px !important;\r\n    opacity: 0.75 !important;\r\n    position: absolute !important;\r\n    top: -50px !important;\r\n    transform: rotate(35deg) !important;\r\n    transition: left 550ms cubic-bezier(0.19, 1, 0.22, 1) !important;\r\n    width: 44px !important;\r\n    z-index: 1 !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  .ifb-vit-btn-shine:hover::after {\r\n    left: 120% !important;\r\n  }\r\n\r\n  .ifb-vit-skeleton {\r\n    background: linear-gradient(90deg, #f0f1f3 25%, #e4e7eb 50%, #f0f1f3 75%) !important;\r\n    background-size: 200% 100% !important;\r\n    animation: ifb-vit-shimmer 1.5s infinite !important;\r\n    border-radius: 8px !important;\r\n  }\r\n\r\n  @keyframes ifb-vit-shimmer {\r\n    0% {\r\n      background-position: -200% 0;\r\n    }\r\n\r\n    100% {\r\n      background-position: 200% 0;\r\n    }\r\n  }\r\n\r\n  .ifb-vit-skeleton-card {\r\n    background-color: var(--ifb-vit-cardbg) !important;\r\n    border: 1px solid var(--ifb-vit-border) !important;\r\n    border-radius: 12px !important;\r\n    overflow: hidden !important;\r\n  }\r\n\r\n  .ifb-vit-skeleton-img {\r\n    height: 270px !important;\r\n    width: 100% !important;\r\n    border-radius: 0 !important;\r\n  }\r\n\r\n  .ifb-vit-skeleton-text {\r\n    height: 20px !important;\r\n    margin: 22px 20px 14px 20px !important;\r\n    width: 70% !important;\r\n  }\r\n\r\n  .ifb-vit-skeleton-price {\r\n    height: 62px !important;\r\n    margin: 0 20px 14px 20px !important;\r\n    border-radius: 10px !important;\r\n  }\r\n\r\n  .ifb-vit-skeleton-btn {\r\n    height: 52px !important;\r\n    margin: 20px 20px 20px 20px !important;\r\n    border-radius: 10px !important;\r\n  }\r\n\r\n  .ifb-vit-error {\r\n    text-align: center !important;\r\n    padding: 54px 22px !important;\r\n    color: var(--ifb-vit-muted) !important;\r\n    font-size: 15px !important;\r\n    line-height: 1.5 !important;\r\n    width: 100% !important;\r\n    grid-column: 1 \/ -1 !important;\r\n    border-radius: 12px !important;\r\n    border: 1px dashed var(--ifb-vit-border-strong) !important;\r\n    background-color: var(--ifb-vit-soft-bg) !important;\r\n  }\r\n\r\n  .ifb-vit-error-icon {\r\n    font-size: 24px !important;\r\n    margin-bottom: 10px !important;\r\n  }\r\n\r\n  .ifb-vit-error-title {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    color: var(--ifb-vit-ink) !important;\r\n    font-size: 20px !important;\r\n    font-weight: 800 !important;\r\n    margin-bottom: 6px !important;\r\n  }\r\n\r\n  @media (max-width: 900px) {\r\n    .ifb-vit-section {\r\n      padding: 64px 20px !important;\r\n    }\r\n\r\n    .ifb-vit-grid {\r\n      gap: 20px !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 600px) {\r\n    .ifb-vit-header {\r\n      margin-bottom: 24px !important;\r\n    }\r\n\r\n    .ifb-vit-header p {\r\n      font-size: 15.5px !important;\r\n    }\r\n\r\n    .ifb-vit-filters {\r\n      justify-content: flex-start !important;\r\n      flex-wrap: nowrap !important;\r\n      overflow-x: auto !important;\r\n      padding-bottom: 6px !important;\r\n      margin-bottom: 34px !important;\r\n      scrollbar-width: thin !important;\r\n    }\r\n\r\n    .ifb-vit-filter-btn {\r\n      flex: 0 0 auto !important;\r\n      font-size: 13.5px !important;\r\n      padding: 0 16px !important;\r\n    }\r\n\r\n    .ifb-vit-grid {\r\n      grid-template-columns: 1fr !important;\r\n    }\r\n\r\n    .ifb-vit-image-wrap {\r\n      height: 250px !important;\r\n      padding: 24px !important;\r\n    }\r\n\r\n    .ifb-vit-info {\r\n      padding: 20px !important;\r\n    }\r\n\r\n    .ifb-vit-info h3 {\r\n      font-size: 19px !important;\r\n    }\r\n\r\n    .ifb-vit-current-price {\r\n      font-size: 24px !important;\r\n    }\r\n\r\n    .ifb-vit-btn-shine {\r\n      min-height: 52px !important;\r\n    }\r\n\r\n    .ifb-vit-btn-shine span {\r\n      font-size: 14px !important;\r\n    }\r\n  }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    .ifb-vit-card,\r\n    .ifb-vit-image-wrap img,\r\n    .ifb-vit-filter-btn,\r\n    .ifb-vit-btn-shine,\r\n    .ifb-vit-btn-shine::after,\r\n    .ifb-vit-skeleton {\r\n      transition: none !important;\r\n      animation: none !important;\r\n    }\r\n\r\n    .ifb-vit-card:hover,\r\n    .ifb-vit-card:hover .ifb-vit-image-wrap img,\r\n    .ifb-vit-filter-btn:hover,\r\n    .ifb-vit-btn-shine:hover {\r\n      transform: none !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"ifb-vit-section\" id=\"ifb-vit-section\">\r\n\r\n  <div class=\"ifb-vit-header\">\r\n    <h2>Modelos <span>&<\/span> Cores<\/h2>\r\n    <p>Confira as op\u00e7\u00f5es de bon\u00e9s dispon\u00edveis para personalizar com a sua marca.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"ifb-vit-filters\" id=\"ifb-vit-filters\">\r\n    <button class=\"ifb-vit-filter-btn active\">Carregando categorias...<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"ifb-vit-grid\" id=\"ifb-vit-grid\">\r\n    <div class=\"ifb-vit-skeleton-card\">\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-img\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-text\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-price\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-btn\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ifb-vit-skeleton-card\">\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-img\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-text\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-price\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-btn\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ifb-vit-skeleton-card\">\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-img\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-text\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-price\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-btn\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ifb-vit-skeleton-card\">\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-img\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-text\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-price\"><\/div>\r\n      <div class=\"ifb-vit-skeleton ifb-vit-skeleton-btn\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  const CONFIG = {\r\n    STORE_URL: 'https:\/\/sitexis.com.br\/brutuscaps',\r\n    METHOD: 'store_api',\r\n\r\n    PER_PAGE: 30,\r\n    ORDER_BY: 'popularity',\r\n\r\n    BUTTON_TEXT: 'Personalizar Agora',\r\n    SHIPPING_TEXT: 'Compras a partir de <b>R$ 1.000 Frete Gr\u00e1tis<\/b>',\r\n\r\n    WHOLESALE_QTY: 50,\r\n    WHOLESALE_PREFIX: 'A partir de ',\r\n    WHOLESALE_SUFFIX: ' no Atacado',\r\n    WHOLESALE_LOADING: 'Calculando atacado...',\r\n    VOLUME_FALLBACK: 'Descontos progressivos no Atacado',\r\n\r\n    PRODUCTS_CACHE_MIN: 15,\r\n    TIERS_CACHE_HOURS: 24,\r\n    TIERS_CONCURRENCY: 3,\r\n    FETCH_TIMEOUT_MS: 12000,\r\n    FETCH_RETRIES: 2,\r\n    RETRY_BASE_MS: 800\r\n  };\r\n\r\n  const TIERS_CACHE_KEY = 'ifb_vit_tiers_v2';\r\n  const PRODUCTS_CACHE_KEY = 'ifb_vit_products_filtros_v1';\r\n\r\n  let allProductsData = [];\r\n  let activeFilter = 'all';\r\n\r\n  function fetchWithTimeout(url, options) {\r\n    const ctrl = new AbortController();\r\n    const timer = setTimeout(function() {\r\n      ctrl.abort();\r\n    }, CONFIG.FETCH_TIMEOUT_MS);\r\n\r\n    return fetch(url, Object.assign({ signal: ctrl.signal }, options || {}))\r\n      .finally(function() {\r\n        clearTimeout(timer);\r\n      });\r\n  }\r\n\r\n  function lsGet(key) {\r\n    try {\r\n      return JSON.parse(localStorage.getItem(key) || 'null');\r\n    } catch (e) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function lsSet(key, value) {\r\n    try {\r\n      localStorage.setItem(key, JSON.stringify(value));\r\n    } catch (e) {}\r\n  }\r\n\r\n  function formatBRL(value) {\r\n    return value.toLocaleString('pt-BR', {\r\n      style: 'currency',\r\n      currency: 'BRL'\r\n    });\r\n  }\r\n\r\n  function escapeHTML(value) {\r\n    return String(value || '')\r\n      .replace(\/&\/g, '&amp;')\r\n      .replace(\/<\/g, '&lt;')\r\n      .replace(\/>\/g, '&gt;')\r\n      .replace(\/\"\/g, '&quot;')\r\n      .replace(\/'\/g, '&#039;');\r\n  }\r\n\r\n  function buildApiUrl() {\r\n    const base = CONFIG.STORE_URL.replace(\/\\\/$\/, '');\r\n    return `${base}\/wp-json\/wc\/store\/v1\/products?per_page=${CONFIG.PER_PAGE}&orderby=${CONFIG.ORDER_BY}&order=desc&_fields=id,name,permalink,prices,images,on_sale,categories`;\r\n  }\r\n\r\n  function normalizeProduct(raw) {\r\n    const prices = raw.prices || {};\r\n    const minorUnit = prices.currency_minor_unit || 2;\r\n    const regularPrice = parseInt(prices.regular_price || '0', 10) \/ Math.pow(10, minorUnit);\r\n    const currentPrice = parseInt(prices.price || '0', 10) \/ Math.pow(10, minorUnit);\r\n    const onSale = regularPrice > currentPrice;\r\n    const imageData = raw.images && raw.images.length > 0 ? raw.images[0] : {};\r\n    const image = imageData.thumbnail || imageData.src || 'https:\/\/via.placeholder.com\/400x400\/f5f5f5\/999999?text=Sem+Imagem';\r\n    const imageSrcset = imageData.thumbnail_srcset || imageData.srcset || '';\r\n\r\n    let categories = [];\r\n\r\n    if (raw.categories && Array.isArray(raw.categories)) {\r\n      categories = raw.categories.map(function(c) {\r\n        return {\r\n          name: c.name,\r\n          slug: c.slug\r\n        };\r\n      });\r\n    }\r\n\r\n    return {\r\n      id: raw.id,\r\n      name: raw.name,\r\n      url: raw.permalink,\r\n      image: image,\r\n      imageSrcset: imageSrcset,\r\n      imageAlt: imageData.alt || raw.name,\r\n      regularPrice: regularPrice,\r\n      currentPrice: currentPrice,\r\n      onSale: onSale,\r\n      categories: categories\r\n    };\r\n  }\r\n\r\n  function computeWholesalePrice(basePrice, tiers) {\r\n    if (!Array.isArray(tiers) || tiers.length === 0) return null;\r\n\r\n    const applicable = tiers\r\n      .filter(function(t) {\r\n        return Number(t.min_qty) <= CONFIG.WHOLESALE_QTY;\r\n      })\r\n      .sort(function(a, b) {\r\n        return Number(b.min_qty) - Number(a.min_qty);\r\n      })[0];\r\n\r\n    if (!applicable) return null;\r\n\r\n    const value = Number(applicable.discount_value) || 0;\r\n    const type = String(applicable.discount_type || 'fixed').toLowerCase();\r\n\r\n    const price = type === 'percent' || type === 'percentage'\r\n      ? basePrice * (1 - value \/ 100)\r\n      : basePrice - value;\r\n\r\n    return price > 0 ? price : null;\r\n  }\r\n\r\n  async function fetchTiers(product) {\r\n    const cache = lsGet(TIERS_CACHE_KEY) || {};\r\n    const hit = cache[product.id];\r\n    const ttl = CONFIG.TIERS_CACHE_HOURS * 3600 * 1000;\r\n\r\n    if (hit && Date.now() - hit.t < ttl) return hit.tiers;\r\n\r\n    let tiers = null;\r\n\r\n    try {\r\n      const res = await fetchWithTimeout(product.url, { credentials: 'same-origin' });\r\n\r\n      if (res.ok) {\r\n        const htmlText = await res.text();\r\n        const match = htmlText.match(\/\"discount_tiers\"\\s*:\\s*(\\[[^\\]]*\\])\/);\r\n\r\n        if (match) tiers = JSON.parse(match[1]);\r\n      }\r\n    } catch (err) {\r\n      console.warn('[Vitrine Brutus Caps] Falha ao ler tiers do produto', product.id, err);\r\n    }\r\n\r\n    const fresh = lsGet(TIERS_CACHE_KEY) || {};\r\n    fresh[product.id] = {\r\n      t: Date.now(),\r\n      tiers: tiers\r\n    };\r\n\r\n    lsSet(TIERS_CACHE_KEY, fresh);\r\n\r\n    return tiers;\r\n  }\r\n\r\n  function updateVolumeEl(product, tiers) {\r\n    const els = document.querySelectorAll(`.ifb-vit-volume[data-ifb-pid=\"${product.id}\"]`);\r\n\r\n    if (!els.length) return;\r\n\r\n    const price = computeWholesalePrice(product.currentPrice, tiers);\r\n\r\n    const html = price !== null\r\n      ? `\u26a1 ${CONFIG.WHOLESALE_PREFIX}${formatBRL(price)}${CONFIG.WHOLESALE_SUFFIX}`\r\n      : `\u26a1 ${CONFIG.VOLUME_FALLBACK}`;\r\n\r\n    els.forEach(function(el) {\r\n      el.classList.remove('ifb-vit-loading');\r\n      el.innerHTML = html;\r\n    });\r\n  }\r\n\r\n  async function applyWholesalePrices(products) {\r\n    const cache = lsGet(TIERS_CACHE_KEY) || {};\r\n    const ttl = CONFIG.TIERS_CACHE_HOURS * 3600 * 1000;\r\n    const pending = [];\r\n\r\n    products.forEach(function(p) {\r\n      const hit = cache[p.id];\r\n\r\n      if (hit && Date.now() - hit.t < ttl) {\r\n        updateVolumeEl(p, hit.tiers);\r\n      } else {\r\n        pending.push(p);\r\n      }\r\n    });\r\n\r\n    let cursor = 0;\r\n\r\n    async function worker() {\r\n      while (cursor < pending.length) {\r\n        const p = pending[cursor++];\r\n        const tiers = await fetchTiers(p);\r\n        updateVolumeEl(p, tiers);\r\n      }\r\n    }\r\n\r\n    const workers = [];\r\n\r\n    for (let i = 0; i < Math.min(CONFIG.TIERS_CONCURRENCY, pending.length); i++) {\r\n      workers.push(worker());\r\n    }\r\n\r\n    await Promise.all(workers);\r\n  }\r\n\r\n  function renderFilters() {\r\n    const filterContainer = document.getElementById('ifb-vit-filters');\r\n\r\n    if (!filterContainer) return;\r\n\r\n    const catMap = {};\r\n\r\n    allProductsData.forEach(function(p) {\r\n      p.categories.forEach(function(c) {\r\n        if (!catMap[c.slug]) {\r\n          catMap[c.slug] = {\r\n            name: c.name,\r\n            count: 0\r\n          };\r\n        }\r\n\r\n        catMap[c.slug].count++;\r\n      });\r\n    });\r\n\r\n    if (activeFilter !== 'all' && !catMap[activeFilter]) activeFilter = 'all';\r\n\r\n    let html = `<button class=\"ifb-vit-filter-btn${activeFilter === 'all' ? ' active' : ''}\" data-filter=\"all\">Todos (${allProductsData.length})<\/button>`;\r\n\r\n    Object.entries(catMap).forEach(function(entry) {\r\n      const slug = entry[0];\r\n      const data = entry[1];\r\n      const isActive = activeFilter === slug ? ' active' : '';\r\n\r\n      html += `<button class=\"ifb-vit-filter-btn${isActive}\" data-filter=\"${escapeHTML(slug)}\">${escapeHTML(data.name)} (${data.count})<\/button>`;\r\n    });\r\n\r\n    filterContainer.innerHTML = html;\r\n\r\n    const btns = filterContainer.querySelectorAll('.ifb-vit-filter-btn');\r\n\r\n    btns.forEach(function(btn) {\r\n      btn.addEventListener('click', function(e) {\r\n        btns.forEach(function(b) {\r\n          b.classList.remove('active');\r\n        });\r\n\r\n        e.currentTarget.classList.add('active');\r\n        activeFilter = e.currentTarget.getAttribute('data-filter');\r\n        renderProducts(activeFilter);\r\n      });\r\n    });\r\n  }\r\n\r\n  function renderProducts(filterSlug = activeFilter) {\r\n    const grid = document.getElementById('ifb-vit-grid');\r\n\r\n    if (!grid) return;\r\n\r\n    grid.innerHTML = '';\r\n\r\n    const filteredProducts = allProductsData.filter(function(p) {\r\n      if (filterSlug === 'all') return true;\r\n      return p.categories.some(function(c) {\r\n        return c.slug === filterSlug;\r\n      });\r\n    });\r\n\r\n    if (filteredProducts.length === 0) {\r\n      grid.innerHTML = `<div class=\"ifb-vit-error\">Nenhum produto nesta categoria.<\/div>`;\r\n      return;\r\n    }\r\n\r\n    const cardsHTML = filteredProducts.map(function(product, index) {\r\n      const discount = product.onSale && product.regularPrice > product.currentPrice\r\n        ? Math.round(((product.regularPrice - product.currentPrice) \/ product.regularPrice) * 100)\r\n        : 0;\r\n\r\n      let badgesHTML = '';\r\n\r\n      if (discount > 0) {\r\n        badgesHTML += `<span class=\"ifb-vit-badge ifb-vit-badge-off\">-${discount}% OFF<\/span>`;\r\n      }\r\n\r\n      let priceHTML = '';\r\n\r\n      if (product.onSale && discount > 0) {\r\n        priceHTML = `\r\n          <div class=\"ifb-vit-old-price\">\r\n            <del>${formatBRL(product.regularPrice)}<\/del>\r\n            <span class=\"ifb-vit-discount-percent\">-${discount}%<\/span>\r\n          <\/div>\r\n          <div class=\"ifb-vit-current-price\">${formatBRL(product.currentPrice)}<span>\/un<\/span><\/div>`;\r\n      } else {\r\n        priceHTML = `<div class=\"ifb-vit-current-price\">${formatBRL(product.currentPrice)}<span>\/un<\/span><\/div>`;\r\n      }\r\n\r\n      const volumeHTML = `<div class=\"ifb-vit-volume ifb-vit-loading\" data-ifb-pid=\"${product.id}\">\u26a1 ${CONFIG.WHOLESALE_LOADING}<\/div>`;\r\n      const shippingHTML = CONFIG.SHIPPING_TEXT ? `<div class=\"ifb-vit-shipping\">${CONFIG.SHIPPING_TEXT}<\/div>` : '';\r\n      const srcsetAttr = product.imageSrcset ? `srcset=\"${escapeHTML(product.imageSrcset)}\" sizes=\"(max-width: 768px) 86vw, 320px\"` : '';\r\n      const loadAttr = index < 3 ? 'loading=\"eager\" fetchpriority=\"high\"' : 'loading=\"lazy\" fetchpriority=\"low\"';\r\n\r\n      return `\r\n        <div class=\"ifb-vit-card\">\r\n          <div class=\"ifb-vit-image-wrap\">\r\n            ${badgesHTML}\r\n            <img fetchpriority=\"high\" src=\"${escapeHTML(product.image)}\" ${srcsetAttr} alt=\"${escapeHTML(product.imageAlt)}\" width=\"300\" height=\"300\" decoding=\"async\" ${loadAttr}>\r\n          <\/div>\r\n\r\n          <div class=\"ifb-vit-info\">\r\n            <h3>${escapeHTML(product.name)}<\/h3>\r\n\r\n            <div class=\"ifb-vit-price-box\">\r\n              ${priceHTML}\r\n            <\/div>\r\n\r\n            ${volumeHTML}\r\n            ${shippingHTML}\r\n\r\n            <div class=\"ifb-vit-btn-wrapper\">\r\n              <a href=\"${escapeHTML(product.url)}\" class=\"ifb-vit-btn-shine\">\r\n                <span>${CONFIG.BUTTON_TEXT}<\/span>\r\n              <\/a>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>`;\r\n    }).join('');\r\n\r\n    grid.innerHTML = cardsHTML;\r\n\r\n    applyWholesalePrices(filteredProducts);\r\n  }\r\n\r\n  function renderError(message) {\r\n    const filters = document.getElementById('ifb-vit-filters');\r\n    const grid = document.getElementById('ifb-vit-grid');\r\n\r\n    if (filters) filters.innerHTML = '';\r\n\r\n    if (grid) {\r\n      grid.innerHTML = `\r\n        <div class=\"ifb-vit-error\">\r\n          <div class=\"ifb-vit-error-icon\">\u26a0\ufe0f<\/div>\r\n          <div class=\"ifb-vit-error-title\">Ops, algo deu errado<\/div>\r\n          <p>${escapeHTML(message)}<\/p>\r\n        <\/div>`;\r\n    }\r\n  }\r\n\r\n  async function fetchProducts() {\r\n    const url = buildApiUrl();\r\n    let lastErr;\r\n\r\n    for (let attempt = 0; attempt <= CONFIG.FETCH_RETRIES; attempt++) {\r\n      try {\r\n        const res = await fetchWithTimeout(url);\r\n\r\n        if (!res.ok) throw new Error(`HTTP ${res.status}`);\r\n\r\n        const data = await res.json();\r\n\r\n        if (!Array.isArray(data)) throw new Error('Resposta inesperada da API');\r\n\r\n        return data;\r\n      } catch (err) {\r\n        lastErr = err;\r\n\r\n        if (attempt < CONFIG.FETCH_RETRIES) {\r\n          const wait = CONFIG.RETRY_BASE_MS * Math.pow(2, attempt);\r\n\r\n          console.warn(`[Vitrine Brutus Caps] Tentativa ${attempt + 1} falhou, repetindo em ${wait}ms`, err);\r\n\r\n          await new Promise(function(resolve) {\r\n            setTimeout(resolve, wait);\r\n          });\r\n        }\r\n      }\r\n    }\r\n\r\n    throw lastErr;\r\n  }\r\n\r\n  function drawAll() {\r\n    renderFilters();\r\n    renderProducts(activeFilter);\r\n  }\r\n\r\n  async function init() {\r\n    const cached = lsGet(PRODUCTS_CACHE_KEY);\r\n    const maxAge = CONFIG.PRODUCTS_CACHE_MIN * 60 * 1000;\r\n    let renderedFromCache = false;\r\n\r\n    if (cached && Array.isArray(cached.data) && cached.data.length) {\r\n      allProductsData = cached.data;\r\n      drawAll();\r\n      renderedFromCache = true;\r\n\r\n      if (Date.now() - cached.t < maxAge) return;\r\n    }\r\n\r\n    try {\r\n      const data = await fetchProducts();\r\n\r\n      if (data.length === 0) {\r\n        if (!renderedFromCache) renderError('Nenhum produto encontrado na loja.');\r\n        return;\r\n      }\r\n\r\n      const products = data.map(normalizeProduct);\r\n\r\n      lsSet(PRODUCTS_CACHE_KEY, {\r\n        t: Date.now(),\r\n        data: products\r\n      });\r\n\r\n      if (!renderedFromCache || JSON.stringify(products) !== JSON.stringify(cached.data)) {\r\n        allProductsData = products;\r\n        drawAll();\r\n      }\r\n    } catch (err) {\r\n      console.error('[Vitrine Brutus Caps]', err);\r\n\r\n      if (!renderedFromCache) {\r\n        renderError('N\u00e3o foi poss\u00edvel carregar os produtos. Verifique sua conex\u00e3o ou a URL da loja.');\r\n      }\r\n    }\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', init);\r\n  } else {\r\n    init();\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a9f4bae e-con-full e-flex e-con e-parent\" data-id=\"a9f4bae\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-02fdd6a elementor-widget elementor-widget-html\" data-id=\"02fdd6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  \/* ==========================================================================\r\n     ESPECIFICA\u00c7\u00d5ES DO PRODUTO BRUTUS CAPS - UNIQUE SCOPED CSS\r\n     ========================================================================== *\/\r\n\r\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Figtree:wght@700;800&family=DM+Sans:wght@400;500;700&display=swap');\r\n\r\n  .ifb-spec-section {\r\n    --ifb-spec-primary: #CF2236 !important;\r\n    --ifb-spec-primary-dark: #A9182A !important;\r\n    --ifb-spec-dark: #07080A !important;\r\n    --ifb-spec-ink: #111318 !important;\r\n    --ifb-spec-muted: #2A2F38 !important;\r\n    --ifb-spec-soft-muted: #3F4652 !important;\r\n    --ifb-spec-bg: #ffffff !important;\r\n    --ifb-spec-cardbg: #ffffff !important;\r\n    --ifb-spec-soft-bg: #F4F6F8 !important;\r\n    --ifb-spec-line: #D7DCE3 !important;\r\n    --ifb-spec-line-strong: #B9C0CA !important;\r\n\r\n    width: 100% !important;\r\n    box-sizing: border-box !important;\r\n    background-color: var(--ifb-spec-bg) !important;\r\n    color: var(--ifb-spec-dark) !important;\r\n    font-family: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;\r\n    padding: 48px 20px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: center !important;\r\n  }\r\n\r\n  .ifb-spec-section * {\r\n    box-sizing: border-box !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  .ifb-spec-container {\r\n    width: 100% !important;\r\n    max-width: 1180px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 20px !important;\r\n  }\r\n\r\n  .ifb-spec-box {\r\n    background-color: var(--ifb-spec-cardbg) !important;\r\n    border: 1px solid var(--ifb-spec-line) !important;\r\n    border-radius: 12px !important;\r\n    padding: 34px 36px !important;\r\n    box-shadow: 0 8px 18px rgba(21, 24, 30, 0.035) !important;\r\n  }\r\n\r\n  .ifb-spec-title {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: 24px !important;\r\n    font-weight: 800 !important;\r\n    line-height: 1.2 !important;\r\n    color: var(--ifb-spec-ink) !important;\r\n    margin-bottom: 26px !important;\r\n    text-wrap: balance !important;\r\n  }\r\n\r\n  .ifb-spec-grid {\r\n    display: grid !important;\r\n    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\r\n    border: 1px solid var(--ifb-spec-line) !important;\r\n    border-radius: 12px !important;\r\n    overflow: hidden !important;\r\n    background-color: var(--ifb-spec-cardbg) !important;\r\n  }\r\n\r\n  .ifb-spec-item {\r\n    min-height: 104px !important;\r\n    padding: 22px 20px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: flex-start !important;\r\n    justify-content: center !important;\r\n    gap: 8px !important;\r\n    border-right: 1px solid var(--ifb-spec-line) !important;\r\n    background-color: #ffffff !important;\r\n  }\r\n\r\n  .ifb-spec-item:last-child {\r\n    border-right: none !important;\r\n  }\r\n\r\n  .ifb-spec-label {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: 12px !important;\r\n    font-weight: 800 !important;\r\n    line-height: 1.2 !important;\r\n    letter-spacing: 0.06em !important;\r\n    text-transform: uppercase !important;\r\n    color: var(--ifb-spec-soft-muted) !important;\r\n  }\r\n\r\n  .ifb-spec-value {\r\n    font-size: 17px !important;\r\n    font-weight: 800 !important;\r\n    line-height: 1.35 !important;\r\n    color: var(--ifb-spec-dark) !important;\r\n    text-wrap: pretty !important;\r\n  }\r\n\r\n  .ifb-spec-tip-box {\r\n    background-color: rgba(207, 34, 54, 0.055) !important;\r\n    border: 1px solid rgba(207, 34, 54, 0.28) !important;\r\n    border-radius: 12px !important;\r\n    padding: 26px 30px !important;\r\n    display: flex !important;\r\n    align-items: flex-start !important;\r\n    gap: 16px !important;\r\n    box-shadow: 0 8px 18px rgba(207, 34, 54, 0.045) !important;\r\n  }\r\n\r\n  .ifb-spec-tip-icon {\r\n    width: 44px !important;\r\n    height: 44px !important;\r\n    min-width: 44px !important;\r\n    border-radius: 10px !important;\r\n    background-color: #ffffff !important;\r\n    border: 1px solid rgba(207, 34, 54, 0.25) !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n  }\r\n\r\n  .ifb-spec-tip-icon svg {\r\n    width: 22px !important;\r\n    height: 22px !important;\r\n    fill: none !important;\r\n    stroke: var(--ifb-spec-primary) !important;\r\n    stroke-width: 2 !important;\r\n    stroke-linecap: round !important;\r\n    stroke-linejoin: round !important;\r\n  }\r\n\r\n  .ifb-spec-tip-content {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 8px !important;\r\n  }\r\n\r\n  .ifb-spec-tip-title {\r\n    font-family: 'Figtree', sans-serif !important;\r\n    font-size: 19px !important;\r\n    font-weight: 800 !important;\r\n    line-height: 1.25 !important;\r\n    color: var(--ifb-spec-primary-dark) !important;\r\n    text-wrap: balance !important;\r\n  }\r\n\r\n  .ifb-spec-tip-text {\r\n    font-size: 15.5px !important;\r\n    font-weight: 400 !important;\r\n    line-height: 1.65 !important;\r\n    color: var(--ifb-spec-muted) !important;\r\n    text-wrap: pretty !important;\r\n  }\r\n\r\n  .ifb-spec-tip-text strong {\r\n    color: var(--ifb-spec-dark) !important;\r\n    font-weight: 800 !important;\r\n  }\r\n\r\n  @media (max-width: 900px) {\r\n    .ifb-spec-section {\r\n      padding: 42px 20px !important;\r\n    }\r\n\r\n    .ifb-spec-box {\r\n      padding: 30px 24px !important;\r\n    }\r\n\r\n    .ifb-spec-grid {\r\n      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\r\n    }\r\n\r\n    .ifb-spec-item:nth-child(2) {\r\n      border-right: none !important;\r\n    }\r\n\r\n    .ifb-spec-item:nth-child(1),\r\n    .ifb-spec-item:nth-child(2) {\r\n      border-bottom: 1px solid var(--ifb-spec-line) !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 650px) {\r\n    .ifb-spec-container {\r\n      gap: 16px !important;\r\n    }\r\n\r\n    .ifb-spec-box {\r\n      padding: 28px 22px !important;\r\n    }\r\n\r\n    .ifb-spec-title {\r\n      font-size: 22px !important;\r\n      margin-bottom: 22px !important;\r\n    }\r\n\r\n    .ifb-spec-grid {\r\n      grid-template-columns: 1fr !important;\r\n    }\r\n\r\n    .ifb-spec-item {\r\n      min-height: auto !important;\r\n      padding: 20px !important;\r\n      border-right: none !important;\r\n      border-bottom: 1px solid var(--ifb-spec-line) !important;\r\n    }\r\n\r\n    .ifb-spec-item:last-child {\r\n      border-bottom: none !important;\r\n    }\r\n\r\n    .ifb-spec-value {\r\n      font-size: 16px !important;\r\n    }\r\n\r\n    .ifb-spec-tip-box {\r\n      padding: 24px 22px !important;\r\n      flex-direction: column !important;\r\n      gap: 14px !important;\r\n    }\r\n\r\n    .ifb-spec-tip-title {\r\n      font-size: 18px !important;\r\n    }\r\n\r\n    .ifb-spec-tip-text {\r\n      font-size: 15px !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"ifb-spec-section\">\r\n\r\n  <div class=\"ifb-spec-container\">\r\n\r\n    <div class=\"ifb-spec-box\">\r\n      <h3 class=\"ifb-spec-title\">Especifica\u00e7\u00f5es do Modelo<\/h3>\r\n\r\n      <div class=\"ifb-spec-grid\">\r\n\r\n        <div class=\"ifb-spec-item\">\r\n          <span class=\"ifb-spec-label\">Tipo<\/span>\r\n          <span class=\"ifb-spec-value\">Bon\u00e9 personalizado<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"ifb-spec-item\">\r\n          <span class=\"ifb-spec-label\">Material<\/span>\r\n          <span class=\"ifb-spec-value\">Super Cap 100% poli\u00e9ster<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"ifb-spec-item\">\r\n          <span class=\"ifb-spec-label\">Ajuste<\/span>\r\n          <span class=\"ifb-spec-value\">Trava pl\u00e1stica<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"ifb-spec-item\">\r\n          <span class=\"ifb-spec-label\">Tamanho<\/span>\r\n          <span class=\"ifb-spec-value\">\u00danico ajust\u00e1vel<\/span>\r\n        <\/div>\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ifb-spec-tip-box\">\r\n\r\n      <div class=\"ifb-spec-tip-icon\">\r\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n          <path d=\"M9 18h6\"><\/path>\r\n          <path d=\"M10 22h4\"><\/path>\r\n          <path d=\"M12 2v1\"><\/path>\r\n          <path d=\"M12 14c1.66 0 3-1.34 3-3 0-1.28-.84-2.4-2-2.82V5h-2v3.18C9.84 8.6 9 9.72 9 11c0 1.66 1.34 3 3 3z\"><\/path>\r\n          <path d=\"M4.93 4.93l.71.71\"><\/path>\r\n          <path d=\"M18.36 18.36l.71.71\"><\/path>\r\n          <path d=\"M2 12h1\"><\/path>\r\n          <path d=\"M21 12h1\"><\/path>\r\n          <path d=\"M18.36 5.64l-.71.71\"><\/path>\r\n          <path d=\"M4.93 19.07l-.71-.71\"><\/path>\r\n        <\/svg>\r\n      <\/div>\r\n\r\n      <div class=\"ifb-spec-tip-content\">\r\n        <h4 class=\"ifb-spec-tip-title\">Dica de Personaliza\u00e7\u00e3o<\/h4>\r\n\r\n        <p class=\"ifb-spec-tip-text\">\r\n          <strong>Logos escuras<\/strong> funcionam melhor em bon\u00e9s claros, como branco e cinza claro. J\u00e1 <strong>logos claras<\/strong> destacam melhor em bon\u00e9s escuros, como preto e marinho. Nossa equipe pode ajudar voc\u00ea a escolher a melhor combina\u00e7\u00e3o.\r\n        <\/p>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e7c759 e-flex e-con-boxed e-con e-parent\" data-id=\"2e7c759\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c5c550 elementor-widget elementor-widget-html\" data-id=\"5c5c550\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t    <style>\n        \/* Container que agrupa o bon\u00e9 e os olhos *\/\n        .character-container {\n            display: flex;\n            flex-direction: column;\n            align-items: center; \/* Centraliza o bon\u00e9 e os olhos horizontalmente *\/\n        }\n\n        .eyes-container {\n            display: flex;\n            gap: 15px; \/* Espa\u00e7o entre os olhos *\/\n            margin-top: -25px; \/* Puxa os olhos para cima, colando no bon\u00e9 (ajuste se necess\u00e1rio) *\/\n            z-index: 1;\n        }\n\n        .eye {\n            width: 60px;\n            height: 60px;\n            background: #fff;\n            border-radius: 50%;\n            border: 4px solid #1a1a1a;\n            position: relative;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            overflow: hidden; \n            box-shadow: 0 5px 15px rgba(0,0,0,0.1);\n        }\n\n        .pupil {\n            width: 25px;\n            height: 25px;\n            background: #1a1a1a;\n            border-radius: 50%;\n            transition: transform 0.05s ease-out;\n            position: relative;\n        }\n        \n        .pupil::after {\n            content: '';\n            position: absolute;\n            top: 5px;\n            left: 5px;\n            width: 8px;\n            height: 8px;\n            background: rgba(255,255,255,0.8);\n            border-radius: 50%;\n        }\n\n        \/* Anima\u00e7\u00e3o de piscar *\/\n        .eye::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background-color: #f0f2f5; \/* Deve ser a mesma cor do fundo atr\u00e1s do personagem *\/\n            border-radius: 50%;\n            transform: scaleY(0);\n            transform-origin: top;\n            z-index: 10;\n            animation: blink 6s infinite;\n        }\n\n        @keyframes blink {\n            0%, 95%, 100% { transform: scaleY(0); }\n            97% { transform: scaleY(1); }\n        }\n    <\/style>\n\n    <div class=\"character-container\">\n         <div class=\"eyes-container\">\n            <div class=\"eye\">\n                <div class=\"pupil\"><\/div>\n            <\/div>\n            <div class=\"eye\">\n                <div class=\"pupil\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        const eyes = document.querySelectorAll('.eye');\n\n        document.addEventListener('mousemove', (e) => {\n            eyes.forEach(eye => {\n                const pupil = eye.querySelector('.pupil');\n\n                const rect = eye.getBoundingClientRect();\n                const eyeCenterX = rect.left + rect.width \/ 2;\n                const eyeCenterY = rect.top + rect.height \/ 2;\n\n                const angle = Math.atan2(e.clientY - eyeCenterY, e.clientX - eyeCenterX);\n\n                \/\/ Ajustei a dist\u00e2ncia m\u00e1xima baseada no novo tamanho do olho (60px) e pupila (25px)\n                \/\/ Raio do olho (30) - Raio da pupila (12.5) = 17.5. Usei 14 para ter uma margem de seguran\u00e7a.\n                const maxDistance = 14; \n\n                const moveX = Math.cos(angle) * maxDistance;\n                const moveY = Math.sin(angle) * maxDistance;\n\n                pupil.style.transform = `translate(${moveX}px, ${moveY}px)`;\n            });\n        });\n    <\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a569f9 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"1a569f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Pronto para come\u00e7ar?<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59213f3 elementor-widget elementor-widget-text-editor\" data-id=\"59213f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Junte-se a mais de 2.500+ empresas que confiam na Brutus Caps<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-07724dc elementor-invisible elementor-widget elementor-widget-html\" data-id=\"07724dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"btn-wrapper\">\n    \n    <img decoding=\"async\" src=\"https:\/\/sitexis.com.br\/brutuscaps\/wp-content\/uploads\/2026\/07\/cap-bottom.svg\" class=\"cap-icon\" alt=\"\" aria-hidden=\"true\">\n    <button class=\"btn-shine\" onclick=\"window.location.href='\/brutuscaps\/modelos'\">\n        <span>Criar Meu Bon\u00e9 Agora<\/span>\n    <\/button>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Modelos &#038; Cores Confira as op\u00e7\u00f5es de bon\u00e9s dispon\u00edveis para personalizar com a sua marca. Carregando categorias&#8230; Especifica\u00e7\u00f5es do Modelo Tipo Bon\u00e9 personalizado Material Super Cap 100% poli\u00e9ster Ajuste Trava pl\u00e1stica Tamanho \u00danico ajust\u00e1vel Dica de Personaliza\u00e7\u00e3o Logos escuras funcionam melhor em bon\u00e9s claros, como branco e cinza claro. J\u00e1 logos claras destacam melhor em [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-613","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/pages\/613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/comments?post=613"}],"version-history":[{"count":13,"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/pages\/613\/revisions"}],"predecessor-version":[{"id":1585,"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/pages\/613\/revisions\/1585"}],"wp:attachment":[{"href":"https:\/\/sitexis.com.br\/brutuscaps\/wp-json\/wp\/v2\/media?parent=613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}