/*
Theme Name: BF Ultra
Theme URI: https://bielafrouxa.com.br
Author: Biela Frouxa
Author URI: https://bielafrouxa.com.br
Description: Plataforma de tabelas de torque veicular para mecânicos e entusiastas DIY.
Version: 4.5.53
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
License: Proprietary
Text Domain: bfultra
*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700;800;900&display=swap');

/* ============================================================
   CSS VARIABLES — LIGHT MODE (padrão)
   ============================================================ */
:root {
  --red:        #B40000;
  --black:      #111010;
  --white:      #FAFAF8;

  --bg:         #FAFAF8;
  --bg-2:       #F0EFED;
  --bg-3:       #E4E3E0;
  --bg-card:    #FFFFFF;

  --text:       #111010;
  --text-2:     #4A4A48;
  --text-3:     #7A7A78;

  --border:     rgba(17,16,16,0.10);
  --border-2:   rgba(17,16,16,0.20);

  --header-bg:       #FFFFFF;
  --header-border:   rgba(17,16,16,0.10);
  --header-color:    #111010;
  --header-muted:    rgba(17,16,16,0.45);
  --header-btn-bg:   rgba(17,16,16,0.06);
  --header-btn-br:   rgba(17,16,16,0.15);

  --shadow-sm:  0 1px 3px rgba(0,0,0,0.07);
  --shadow-md:  0 4px 16px rgba(0,0,0,0.09);
  --shadow-lg:  0 8px 32px rgba(0,0,0,0.12);

  --r-sm:  4px;
  --r-md:  8px;
  --r-lg:  12px;
  --r-xl:  20px;
  --r-pill:9999px;

  --font: 'Poppins', sans-serif;
  --mono: 'Courier New', monospace;

  --h: 60px; /* header height */

  --green: #2D8B55;
  --amber: #B47000;
  --blur-lock: blur(5px);
}



/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{font-family:var(--font);font-size:15px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background .25s,color .25s;overflow-x:hidden}
h1,h2,h3,h4,h5,h6{font-family:var(--font);font-weight:800;line-height:1.15;color:var(--text)}
h1{font-size:clamp(28px,5vw,48px);font-weight:900}
h2{font-size:clamp(22px,3vw,34px)}
h3{font-size:clamp(18px,2.5vw,24px)}
a{color:var(--red);text-decoration:none;transition:opacity .15s}
a:hover{opacity:.8}
p{color:var(--text-2);line-height:1.7}
img{max-width:100%;height:auto;display:block}

/* ============================================================
   LAYOUT
   ============================================================ */
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.wrap--narrow{max-width:720px}
.wrap--wide{max-width:1440px}

/* ============================================================
   HEADER
   ============================================================ */
#site-header{
  position:sticky;top:0;z-index:1000;
  height:var(--h);background:var(--header-bg);
  border-bottom:.5px solid var(--header-border);
  box-shadow:var(--shadow-sm);
}
#site-header .wrap{
  display:flex;align-items:center;height:100%;
  flex-wrap:nowrap; /* NUNCA quebrar para segunda linha */
}

/* Logo */
.site-logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0}
.site-logo img{height:36px;width:auto}
.site-logo__text{font-weight:900;font-size:18px;color:var(--header-color);letter-spacing:-.02em}

/* Header search */
.header-search{flex:1;position:relative;min-width:0}
.header-search input{
  width:100%;height:40px;
  background:var(--header-btn-bg);
  border:.5px solid var(--header-btn-br);
  border-radius:var(--r-md);
  color:var(--header-color);
  font-family:var(--font);font-size:13px;
  padding:0 16px;outline:none;
  transition:border-color .15s;
}
.header-search input::placeholder{color:var(--header-muted)}
.header-search input:focus{border-color:var(--red)}
.header-search input{-webkit-appearance:none;appearance:none}
.header-search input[type=search]::-webkit-search-decoration,
.header-search input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
/* .header-search__icon removido — botão separado */
#header-search-results{
  position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--bg-card);border:.5px solid var(--border-2);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  z-index:200;overflow:hidden;max-height:360px;overflow-y:auto;
}

/* User menu */
.user-menu{position:relative}
.user-menu__trigger{
  display:flex;align-items:center;gap:8px;
  height:40px;padding:0 8px;
  background:transparent;border:none;
  color:var(--header-color);font-family:var(--font);
  cursor:pointer;border-radius:var(--r-md);
  transition:background .15s;
}
.user-menu__trigger:hover{background:var(--header-btn-bg)}
.user-menu__avatar{
  width:32px;height:32px;border-radius:50%;
  background:rgba(180,0,0,.12);color:var(--red);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:13px;flex-shrink:0;
}
.user-menu__info{text-align:left;line-height:1.2}
.user-menu__name{font-size:12px;font-weight:600;display:block;color:var(--header-color)}
.user-menu__sub{font-size:10px;color:var(--red);font-weight:600}
.user-menu__caret{flex-shrink:0;color:var(--header-muted)}

.user-menu__dropdown{
  position:absolute;top:calc(100% + 6px);right:0;
  min-width:220px;background:var(--bg-card);
  border:.5px solid var(--border-2);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);padding:4px;
  opacity:0;pointer-events:none;transform:translateY(-8px);
  transition:opacity .15s,transform .15s;z-index:200;
}
.user-menu.open .user-menu__dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}
.user-menu__dropdown a{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:var(--r-md);
  font-size:13px;color:var(--text);transition:background .1s;
}
.user-menu__dropdown a:hover{background:var(--bg-2)}
.user-menu__sep{height:.5px;background:var(--border);margin:4px 0}
.user-menu__head{padding:10px 14px 6px;font-size:11px;color:var(--text-3)}

/* CTA Assinar */
.btn-subscribe{
  height:36px;padding:0 16px;
  background:var(--red);color:#fff;border:none;
  border-radius:var(--r-md);font-family:var(--font);
  font-size:13px;font-weight:700;cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center;
  white-space:nowrap;transition:background .15s,transform .15s;
}
.btn-subscribe:hover{background:#8C0000;color:#fff;transform:translateY(-1px)}

/* ============================================================
   BOTÕES
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:40px;padding:0 20px;border-radius:var(--r-md);
  font-family:var(--font);font-size:13px;font-weight:700;
  cursor:pointer;text-decoration:none;border:none;
  transition:background .15s,transform .15s,opacity .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:#8C0000;color:#fff}
.btn-secondary{background:var(--bg-2);color:var(--text);border:.5px solid var(--border-2)}
.btn-secondary:hover{background:var(--bg-3)}
.btn-ghost{background:transparent;color:var(--text);border:.5px solid var(--border-2)}
.btn-ghost:hover{background:var(--bg-2)}
.btn-sm{height:32px;padding:0 12px;font-size:11px}
.btn-lg{height:48px;padding:0 32px;font-size:15px}

/* ============================================================
   VEHICLE CARDS
   ============================================================ */
.vehicle-card{
  background:var(--bg-card);border:.5px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden;
  transition:border-color .15s,box-shadow .15s;
  display:block;text-decoration:none;
}
.vehicle-card:hover{border-color:var(--red);box-shadow:var(--shadow-md)}
.vehicle-card__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;border-bottom:.5px solid var(--border);
}
.vehicle-card__marca{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.10em;color:var(--text-3);display:block;margin-bottom:2px}
.vehicle-card__modelo{font-size:16px;font-weight:800;color:var(--text);line-height:1.1}
.vehicle-card__motor{font-size:11px;color:var(--text-3);margin-top:2px}
.vehicle-card__foot{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 16px;font-size:11px;
}
.vehicle-card__views{color:var(--text-3)}
.vehicle-card__cta{color:var(--red);font-weight:600}

/* Badges */
.badge{display:inline-flex;align-items:center;font-size:9px;font-weight:700;padding:3px 8px;border-radius:var(--r-pill);letter-spacing:.04em}
.badge-free   {background:rgba(45,139,85,.12);color:var(--green)}
.badge-partial{background:rgba(180,112,0,.12);color:var(--amber)}
.badge-premium{background:rgba(180,0,0,.12);color:var(--red)}

/* ============================================================
   TORQUE TABLE
   ============================================================ */
.torque-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.vehicle-grid{min-width:0}
.vehicle-main{min-width:0;max-width:100%}
.torque-table{width:100%;border-collapse:collapse;font-size:13px}
.torque-table thead th{
  background:var(--black);color:#fff;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:10px 14px;text-align:left;white-space:nowrap;
  border-bottom:2px solid var(--red);
}
.torque-table tbody tr{border-bottom:.5px solid var(--border);transition:background .1s}
.torque-table tbody tr:hover{background:rgba(180,0,0,.03)}
.torque-table tbody td{padding:10px 14px;vertical-align:middle;color:var(--text)}
.torque-table .td-label{font-weight:500;color:var(--text-2)}
.torque-table .td-value{font-family:var(--mono);font-size:11px}
.torque-table .td-torque{font-weight:700;color:var(--red)}
.row-locked td{filter:var(--blur-lock);user-select:none;pointer-events:none}
.row-unlock td{padding:6px 14px;background:rgba(180,0,0,.04)}
.unlock-cta{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--red)}

/* ============================================================
   TABS
   ============================================================ */
.tabs{display:flex;border-bottom:.5px solid var(--border-2);overflow-x:auto;gap:0}
.tab-btn{
  padding:12px 20px;background:none;border:none;
  border-bottom:2px solid transparent;
  font-family:var(--font);font-size:13px;font-weight:500;
  color:var(--text-3);cursor:pointer;white-space:nowrap;
  transition:color .15s,border-color .15s;
}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--red);border-bottom-color:var(--red);font-weight:700}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ============================================================
   SEARCH PAGE
   ============================================================ */
.search-layout{display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:start}
.search-filters{
  background:var(--bg-card);border:.5px solid var(--border);
  border-radius:var(--r-lg);padding:20px;
  position:sticky;top:calc(var(--h) + 20px);
}
.filter-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:6px}
.filter-select{
  width:100%;height:38px;background:var(--bg-2);
  border:.5px solid var(--border-2);border-radius:var(--r-md);
  color:var(--text);font-family:var(--font);font-size:13px;
  padding:0 10px;outline:none;cursor:pointer;
  transition:border-color .15s;
}
.filter-select:focus{border-color:var(--red)}
@media(max-width:900px){
  .filter-select{font-size:12px!important}
  .filter-label{font-size:9px!important}
}
.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}

/* Mobile filter */
.mobile-filter-btn{
  position:fixed;bottom:24px;right:24px;z-index:500;
  width:52px;height:52px;border-radius:var(--r-pill);
  background:var(--red);color:#fff;border:none;
  display:none;align-items:center;justify-content:center;
  font-size:20px;cursor:pointer;box-shadow:0 4px 20px rgba(180,0,0,.30);
}

/* ============================================================
   GESTOR SIDEBAR
   ============================================================ */
.gestor-layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - var(--h))}
.gestor-sidebar{
  background:var(--bg-card);border-right:.5px solid var(--border);
  padding:24px 12px;position:sticky;top:var(--h);
  height:calc(100vh - var(--h));overflow-y:auto;
}
.gestor-nav a{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:var(--r-md);
  font-size:13px;color:var(--text-2);
  transition:background .1s,color .1s;text-decoration:none;
}
.gestor-nav a:hover{background:var(--bg-2);color:var(--text)}
.gestor-nav a.active{background:rgba(180,0,0,.10);color:var(--red);font-weight:600}
.gestor-content{padding:32px}

/* ============================================================
   FORMS
   ============================================================ */
.form-group{margin-bottom:20px}
.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-2);margin-bottom:6px}
.form-input,.form-select,.form-textarea{
  width:100%;background:var(--bg-2);border:.5px solid var(--border-2);
  border-radius:var(--r-md);color:var(--text);font-family:var(--font);
  font-size:15px;padding:10px 14px;outline:none;
  transition:border-color .15s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--red)}
.form-textarea{resize:vertical;min-height:100px;line-height:1.6}
.form-hint{font-size:11px;color:var(--text-3);margin-top:4px}
.form-error{background:rgba(180,0,0,.08);border:.5px solid rgba(180,0,0,.25);border-radius:var(--r-md);padding:10px 14px;font-size:13px;color:var(--red);margin-bottom:16px}
.form-success{background:rgba(45,139,85,.10);border:.5px solid rgba(45,139,85,.25);border-radius:var(--r-md);padding:10px 14px;font-size:13px;color:var(--green);margin-bottom:16px}

/* ============================================================
   LOGIN
   ============================================================ */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-2);padding:24px}
.login-card{width:100%;max-width:420px;background:var(--bg-card);border:.5px solid var(--border);border-radius:var(--r-xl);padding:40px;box-shadow:var(--shadow-md)}
.login-tabs{display:flex;border-bottom:.5px solid var(--border);margin-bottom:28px}
.login-tab{flex:1;padding:10px;background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font);font-size:14px;cursor:pointer;color:var(--text-3);transition:color .15s,border-color .15s}
.login-tab.active{color:var(--red);border-bottom-color:var(--red);font-weight:700}

/* ============================================================
   TOAST
   ============================================================ */
.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px}
.toast{
  display:flex;align-items:center;gap:12px;
  padding:12px 20px;background:var(--bg-card);
  border:.5px solid var(--border-2);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);font-size:13px;font-weight:500;
  min-width:240px;animation:toast-in .25s ease;
}
.toast-success{border-left:3px solid var(--green)}
.toast-error  {border-left:3px solid var(--red)}
.toast-info   {border-left:3px solid #185FA5}
@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================
   FAQ ACORDEÃO
   ============================================================ */
/* Estilos do botão/ícone — o layout do container é gerido pelo page-faq.php */
.faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;padding:16px 20px;background:var(--bg-card);border:none;
  font-family:var(--font);font-size:14px;font-weight:600;color:var(--text);
  cursor:pointer;text-align:left;transition:background .1s;
}
.faq-q:hover{background:var(--bg-2)}
.faq-icon{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:var(--bg-2);border:.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,transform .25s;
}
.faq-item.open .faq-icon{background:var(--red)!important;border-color:var(--red)!important;transform:rotate(180deg)}
.faq-item.open .faq-icon svg{stroke:#fff}
.faq-a{max-height:0;overflow:hidden;transition:max-height .38s ease}
.faq-a__inner{padding:14px 20px;font-size:13px;color:var(--text-2);border-top:.5px solid var(--border);line-height:1.7}

/* ============================================================
   FOOTER
   ============================================================ */
#site-footer{background:var(--black);padding:64px 0 32px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:200px 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-brand p{font-size:13px;color:rgba(250,250,248,.50);line-height:1.7;margin-top:12px}
.footer-col h4{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(250,250,248,.35);margin-bottom:12px}
.footer-col a{display:block;font-size:13px;color:rgba(250,250,248,.60);margin-bottom:8px;transition:color .15s;text-decoration:none}
.footer-col a:hover{color:var(--white)}
.footer-bottom{border-top:.5px solid rgba(250,250,248,.08);padding-top:24px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:rgba(250,250,248,.35)}
.footer-disclaimer{padding:12px 0;border-top:.5px solid rgba(250,250,248,.05);text-align:center;font-size:10px;color:rgba(250,250,248,.25);line-height:1.7}

/* ============================================================
   COOKIE BANNER
   ============================================================ */
.cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:9990;
  background:var(--bg-card);border-top:.5px solid var(--border-2);
  padding:16px 24px;display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;box-shadow:var(--shadow-lg);
}
.cookie-banner.hidden{display:none}

/* ============================================================
   PLAN CHIPS
   ============================================================ */
.chip{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:2px 8px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.06em}
.chip-free   {background:rgba(45,139,85,.15);color:var(--green)}
.chip-premium{background:rgba(180,0,0,.15);color:var(--red)}
.chip-admin  {background:var(--bg-2);color:var(--text-3);border:.5px solid var(--border-2)}

/* ============================================================
   RESPONSIVE — mobile-first completo
   ============================================================ */

/* Tablet largo */
@media(max-width:1100px){
  .wrap{ padding-left:24px; padding-right:24px; }
  #bfu-marcas-track{ max-width:calc(100% - 88px) }
}

/* Tablet */
@media(max-width:900px){
  /* Header */
  .header-search{ max-width:none!important; }

  /* Footer grid */
  #site-footer .wrap > [style*="grid-template-columns:1.4fr"]{
    grid-template-columns:1fr 1fr!important;
    gap:28px!important;
  }

  /* Home — busca */
  .home-search-card{ padding:20px!important; }
  .home-search-selects{ flex-direction:column!important; gap:10px!important; }
  .home-search-selects select{ width:100%!important; }

  /* Gestor sidebar → topo */
  .gestor-layout{ grid-template-columns:1fr!important; }
  .gestor-sidebar{ position:static!important; height:auto!important; }
  .gestor-nav{ display:flex; flex-direction:row; overflow-x:auto; gap:4px; padding:8px; }
  .gestor-nav a{ white-space:nowrap; }
}

/* Mobile */
@media(max-width:768px){
  /* Header compacto */
  #site-header .wrap{ flex-wrap:wrap; gap:8px; padding:10px 16px; }
  .header-search{
    order:3; width:100%!important; margin-left:0!important;
    flex:none!important; margin-right:0!important;
  }
  #site-header .wrap{ flex-wrap:wrap!important; padding:8px 16px!important; height:auto!important; }
  #site-header{ height:auto!important; }
  #btn-favoritos{ padding:4px 6px!important; font-size:12px!important; }

  /* Home hero */
  #bfu-marcas-track{ max-width:calc(100vw - 100px)!important; }

  /* Home cards de torques */
  .home-torques-grid{ grid-template-columns:1fr!important; }

  /* Busca — sidebar como drawer */
  #bfu-search-layout{ grid-template-columns:1fr!important; }
  #bfu-filters-panel{
    position:fixed!important; bottom:0; left:0; right:0; top:auto!important;
    max-height:82vh; overflow-y:auto;
    border-radius:16px 16px 0 0!important;
    transform:translateY(100%); transition:transform .3s; z-index:400;
    box-shadow:0 -8px 40px rgba(0,0,0,.15);
  }
  #bfu-filters-panel.open{ transform:translateY(0); }
  #btn-mobile-filters{ display:flex!important; }
  #results-grid{ grid-template-columns:repeat(2,1fr)!important; }

  /* Single veículo */
  .vehicle-grid{ grid-template-columns:1fr!important; }
  .tab-bar{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

  /* Minha conta */
  .myaccount-grid{ grid-template-columns:1fr!important; }
  .myaccount-nav{ position:static!important; top:auto!important; }

  /* Login */
  /* Login page: card no topo, alinhado com header */
  .login-page{ align-items:flex-start!important; padding:0!important; min-height:auto!important; background:var(--bg-2); }
  .login-card{ padding:28px 20px!important; margin:12px 16px 24px!important; width:calc(100% - 32px)!important; max-width:none!important; }

  /* Footer */
  #site-footer .wrap > [style*="grid-template-columns"]{
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  #site-footer .wrap > div:last-child > div:first-child{
    flex-direction:column!important; text-align:center!important; gap:4px!important;
  }

  /* Gestor */
  .gestor-layout{ grid-template-columns:1fr!important; }
  .gestor-nav{ flex-direction:row!important; overflow-x:auto!important; }

  /* Formulários */
  form [style*="grid-template-columns:1fr 1fr"],
  form [style*="grid-template-columns:1fr 1fr 1fr"],
  form [style*="grid-template-columns:1fr 1fr 120px"],
  form [style*="grid-template-columns:1fr 1fr 1fr 1fr 1fr"]{
    grid-template-columns:1fr!important;
  }
}

/* Mobile pequeno */
@media(max-width:480px){
  /* login-card 480: handled above */
  #results-grid{ grid-template-columns:1fr!important; }

  /* Carrossel montadoras: 3 visíveis no mobile */
  #bfu-marcas-track{ max-width:calc(100vw - 90px)!important; }

  /* Tabela de torques: scroll horizontal */
  .torque-table-wrapper{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .torque-table{ min-width:560px; }
}

/* PRINT */
@media print{
  #site-header,#site-footer,.cookie-banner,#btn-mobile-filters{ display:none!important; }
  body{ background:#fff; color:#000; font-size:11pt; }
  .torque-table thead th{ background:#111!important; color:#fff!important; -webkit-print-color-adjust:exact; }
  .row-locked td{ filter:none!important; }
}

/* ============================================================
   WOOCOMMERCE — Design System BF Ultra
   ============================================================ */

/* ── Notices: reset + ícone posicionado + botão fechar ── */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
  font-family: var(--font) !important;
  font-size: 13px !important;
  border-radius: var(--r-md) !important;
  padding: 11px 40px 11px 42px !important;
  margin: 0 0 12px !important;
  position: relative !important;
  list-style: none !important;
  border-left: none !important;
  line-height: 1.5 !important;
  display: block !important;
}
.woocommerce-notices-wrapper { margin-bottom: 16px; }

.woocommerce-message {
  background: rgba(45,139,85,.09) !important;
  border: .5px solid rgba(45,139,85,.28) !important;
  color: #1a6034 !important;
}
.woocommerce-message::before {
  content: '✓' !important;
  position: absolute !important; left: 13px !important; top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 13px !important; font-weight: 800 !important; color: #2D8B55 !important;
}
.woocommerce-info {
  background: rgba(24,95,165,.07) !important;
  border: .5px solid rgba(24,95,165,.22) !important;
  color: #185FA5 !important;
}
.woocommerce-info::before {
  content: 'ℹ' !important;
  position: absolute !important; left: 13px !important; top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 13px !important; color: #185FA5 !important;
}
.woocommerce-error {
  background: rgba(180,0,0,.07) !important;
  border: .5px solid rgba(180,0,0,.22) !important;
  color: var(--red) !important;
}
.woocommerce-error::before {
  content: '!' !important;
  position: absolute !important; left: 14px !important; top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 14px !important; font-weight: 900 !important; color: var(--red) !important;
}
.woocommerce-error li { list-style: none !important; padding: 0 !important; }
.woocommerce-error li + li { margin-top: 4px; }

/* Botão × fechar notice */
.bfu-notice-close {
  position: absolute !important;
  right: 12px !important; top: 50% !important;
  transform: translateY(-50%) !important;
  width: 18px !important; height: 18px !important;
  background: none !important; border: none !important;
  cursor: pointer !important; padding: 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  opacity: .5 !important; transition: opacity .15s !important;
  font-size: 14px !important; line-height: 1 !important;
  color: inherit !important; font-family: var(--font) !important;
}
.bfu-notice-close:hover { opacity: 1 !important; }

/* Esconder "Ver carrinho" e botões WC nas notices */
.woocommerce-message .wc-forward,
.woocommerce-message a.button,
.woocommerce-notices-wrapper .wc-forward { display: none !important; }

/* ── Checkout: remover bordas/wrappers padrão WC ── */
.woocommerce-checkout .col2-set,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-shipping-fields { all: unset !important; display: block !important; }

/* Notices no checkout */
.woocommerce-checkout .woocommerce-NoticeGroup,
.woocommerce-checkout .woocommerce-notices-wrapper {
  max-width: 1040px !important;
  margin: 0 auto 16px !important;
  padding: 0 !important;
}

/* ── Campos do plugin Brazilian Market on WooCommerce ── */
/* Remover bordas/boxes padrão do plugin */
.woocommerce-checkout #wcbcf_settings_section,
.woocommerce-checkout .wcbcf-settings { all: unset !important; display: block !important; }

/* Label estilo BF Ultra */
.woocommerce-checkout label.checkbox,
.woocommerce-checkout .form-row label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  color: var(--text-3) !important;
  margin-bottom: 5px !important;
  font-family: var(--font) !important;
}

/* Inputs/selects padrão BF Ultra */
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type=text],
.woocommerce-checkout input[type=email],
.woocommerce-checkout input[type=tel],
.woocommerce-checkout input[type=number],
.woocommerce-checkout input[type=password],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  width: 100% !important;
  padding: 9px 12px !important;
  border: .5px solid var(--border-2) !important;
  border-radius: var(--r-md) !important;
  background: var(--bg-2) !important;
  color: var(--text) !important;
  font-size: 13px !important;
  font-family: var(--font) !important;
  outline: none !important;
  transition: border-color .15s !important;
  box-sizing: border-box !important;
  appearance: auto !important;
  box-shadow: none !important;  /* remove borda quadrada nativa */
}
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  border-color: var(--red) !important;
  box-shadow: none !important;
}
/* Remove outline/border nativo dos gateways (Stripe etc.) */
.woocommerce-checkout #payment,
.woocommerce-checkout #payment .payment_box,
.woocommerce-checkout .payment_method_stripe,
.woocommerce-checkout #stripe-payment-data,
.woocommerce-checkout #wc-stripe-payment-data,
.woocommerce-checkout .wc-stripe-elements-field,
.woocommerce-checkout .wc-stripe-iban-element-field,
.woocommerce-checkout #wc-stripe-card-element,
.woocommerce-checkout #wc-stripe-iban-element,
#stripe-card-element, #stripe-exp-element, #stripe-cvc-element,
#wc-stripe-card-element, #wc-stripe-exp-element, #wc-stripe-cvc-element,
.StripeElement,
.wc-stripe-elements-field > div,
.woocommerce-checkout fieldset#wc-stripe-cc-form,
fieldset#wc-stripe-cc-form {
  border-radius: var(--r-md) !important;
  border: .5px solid var(--border-2) !important;
  padding: 10px 12px !important;
  background: var(--bg-2) !important;
  font-family: var(--font) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Fieldset do Stripe — remover borda nativa e legend */
fieldset#wc-stripe-cc-form,
.woocommerce-checkout fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
fieldset#wc-stripe-cc-form legend,
.woocommerce-checkout fieldset legend { display: none !important; }

/* Cada campo individual do Stripe dentro do fieldset */
fieldset#wc-stripe-cc-form .form-row,
fieldset#wc-stripe-cc-form p { margin-bottom: 12px !important; padding: 0 !important; }

.woocommerce-checkout #payment .payment_box::before { display: none !important; }
.woocommerce-checkout #payment .payment_box { border: none !important; background: transparent !important; padding: 12px 0 0 !important; box-shadow: none !important; }

/* Radio buttons pessoa física/jurídica */
.woocommerce-checkout .form-row.wcbcf-company-fields input[type=radio],
.woocommerce-checkout input[type=radio] {
  accent-color: var(--red) !important;
  width: 15px !important; height: 15px !important;
  cursor: pointer !important;
  border: none !important; box-shadow: none !important;
}

/* Lógica PF/PJ: esconder CNPJ e IE quando Pessoa Física selecionada */
/* O plugin usa classes .billing_cnpj_field e .billing_ie_field */
body.pf-selected .billing_cnpj_field,
body.pf-selected .billing_ie_field { display: none !important; }
body.pj-selected .billing_cpf_field { display: none !important; }

/* Erros de validação */
.woocommerce-checkout .woocommerce-invalid input,
.woocommerce-checkout .woocommerce-invalid select {
  border-color: var(--red) !important;
}
.woocommerce-checkout .form-row.validate-required.woocommerce-invalid .chosen-container {
  border-color: var(--red) !important;
}

/* form-row gaps */
.woocommerce-checkout .form-row { margin-bottom: 14px !important; padding: 0 !important; }
.woocommerce-checkout .form-row .required { color: var(--red) !important; }

/* Gateways — remover fundo cinza/box nativo */
.woocommerce-checkout #payment ul.payment_methods {
  padding: 0 !important; margin: 0 !important; border: none !important; background: none !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none !important; border: none !important; background: none !important; padding: 0 !important;
}

/* ============================================================
   QUILL EDITOR — integração BF Ultra
   ============================================================ */
.ql-snow .ql-toolbar { border: none !important; }
.ql-snow.ql-container { border: none !important; }
.ql-editor { font-family: var(--font) !important; color: var(--text) !important; }
.ql-editor h1,.ql-editor h2,.ql-editor h3 { font-family: var(--font) !important; font-weight: 800 !important; color: var(--text) !important; }
.ql-snow .ql-stroke { stroke: var(--text-2) !important; }
.ql-snow .ql-fill { fill: var(--text-2) !important; }
.ql-snow .ql-picker { color: var(--text-2) !important; font-family: var(--font) !important; }
.ql-snow .ql-picker-options { background: var(--bg-card) !important; border: .5px solid var(--border-2) !important; border-radius: var(--r-md) !important; box-shadow: var(--shadow-md) !important; }
.ql-toolbar button:hover .ql-stroke, .ql-toolbar button.ql-active .ql-stroke { stroke: var(--red) !important; }
.ql-toolbar button:hover .ql-fill, .ql-toolbar button.ql-active .ql-fill { fill: var(--red) !important; }

/* ── Gestor: modal de tabelas individuais ── */
label.bfu-grant-v-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:.5px solid var(--border);cursor:pointer;transition:background .1s;box-sizing:border-box}
label.bfu-grant-v-item:last-child{border-bottom:none}
label.bfu-grant-v-item:hover{background:var(--bg-2)}
label.bfu-grant-v-item.bfu-hidden{display:none!important}
label.bfu-grant-v-item.bfu-search-hidden{display:none!important}
label.bfu-granted-row{display:flex!important}



/* ============================================================
   HEADER — desktop vs mobile
   ============================================================ */
.bfu-h-desk { display:flex; align-items:center; height:100%; }
.bfu-h-mob  { display:none; }

@media(max-width:768px){
  .bfu-h-desk { display:none !important; }
  .bfu-h-mob  { display:flex !important; flex-direction:column; width:100%; }
  #site-header { height:auto !important; }

  .bfu-h-mob__row1 {
    display:grid; grid-template-columns:1fr auto 1fr;
    align-items:center; padding:10px 16px;
  }
  .bfu-h-mob__icon {
    background:none; border:none; cursor:pointer;
    color:var(--header-color); text-decoration:none;
    width:40px; height:40px; display:flex; align-items:center;
  }
  .bfu-h-mob__row1 > :first-child { justify-self:start; }
  .bfu-h-mob__logo { display:flex; align-items:center; justify-content:center; }
  .bfu-h-mob__logo img { height:30px; width:auto; max-width:130px; }
  .bfu-h-mob__user { justify-content:flex-end; justify-self:end; }
  .bfu-h-mob__avatar {
    width:34px; height:34px; border-radius:50%;
    background:var(--red); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:14px; font-weight:700;
  }
  .bfu-h-mob__row2 { display:flex; padding:0 16px 10px; }
  .bfu-h-mob__search {
    flex:1; height:40px; padding:0 14px; font-size:16px;
    background:var(--header-btn-bg); border:.5px solid var(--header-btn-br);
    border-right:none; border-radius:var(--r-md) 0 0 var(--r-md);
    color:var(--header-color); font-family:var(--font);
    outline:none; -webkit-appearance:none; appearance:none;
  }
  .bfu-h-mob__search-btn {
    flex-shrink:0; width:44px; height:40px;
    background:var(--red); color:#fff; border:none;
    border-radius:0 var(--r-md) var(--r-md) 0;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
  }
}

/* ── Mega menu lateral mobile ── */
.bfu-mob-overlay {
  display:none; position:fixed; inset:0; z-index:998;
  background:rgba(0,0,0,.5); backdrop-filter:blur(3px);
}
.bfu-mob-overlay.open { display:block; }
.bfu-mob-aside {
  position:fixed; top:0; right:0; bottom:0;
  width:min(300px,85vw); z-index:999; overflow-x:hidden;
  background:var(--bg-card);
  transform:translateX(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column;
  box-shadow:-4px 0 24px rgba(0,0,0,.15); overflow-y:auto;
}
.bfu-mob-aside.open { transform:translateX(0); }
.bfu-mob-aside__head {
  display:flex; align-items:center; gap:12px;
  padding:20px 16px; border-bottom:.5px solid var(--border);
  background:var(--bg-2); position:relative; flex-shrink:0;
}
.bfu-mob-aside__av {
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:var(--red); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:18px; font-weight:700;
}
.bfu-mob-aside__name { font-size:15px; font-weight:700; color:var(--text); }
.bfu-mob-aside__plan { font-size:12px; font-weight:600; margin-top:2px; }
.bfu-mob-aside__tag  { font-size:11px; color:var(--text-3); font-family:monospace; margin-top:2px; }
.bfu-mob-aside__close {
  position:absolute; top:14px; right:14px;
  background:none; border:none; cursor:pointer;
  color:var(--text-3); padding:4px;
  display:flex; align-items:center; justify-content:center;
  border-radius:var(--r-md);
}
.bfu-mob-aside__nav { flex:1; padding:6px 0; }
.bfu-mob-aside__a {
  display:flex; align-items:center; gap:12px;
  padding:13px 20px; font-size:14px; font-weight:500;
  color:var(--text); text-decoration:none; transition:background .1s;
}
.bfu-mob-aside__a:hover { background:var(--bg-2); }
.bfu-mob-aside__a--prem { color:var(--red); font-weight:700; }
.bfu-mob-aside__a--out  { color:var(--text-3); }
.bfu-mob-aside__sep { border:none; border-top:.5px solid var(--border); margin:4px 0; }

/* ============================================================
   REGRA BASE GLOBAL MOBILE — 16px lateral em tudo
   Referência: padding do .bfu-h-mob__row1 = 10px 16px
   ============================================================ */
@media(max-width:768px){
  body { overflow-x:hidden; }

  /* Todos os .wrap com 16px lateral */
  .wrap { padding-left:16px !important; padding-right:16px !important; }

  /* Inputs: 16px font para evitar zoom iOS */
  input[type="text"],input[type="email"],input[type="search"],
  input[type="password"],input[type="number"],input[type="tel"],
  textarea,select { font-size:16px !important; }
}

/* ============================================================
   HOME — busca por veículo (3 linhas mobile)
   ============================================================ */
.home-search-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr auto;
  gap:12px; align-items:end;
}
.home-search-row2 { display:contents; }
.home-search-btn  { height:40px; white-space:nowrap; }

@media(max-width:640px){
  .home-search-grid { grid-template-columns:1fr !important; gap:10px !important; }
  .home-search-row2 { display:grid !important; grid-template-columns:1fr 1fr; gap:10px; }
  .home-search-btn  { width:100% !important; height:46px !important; font-size:15px !important; }
}
@media(min-width:641px) and (max-width:768px){
  .home-search-grid { grid-template-columns:1fr 1fr !important; gap:10px !important; }
  .home-search-row2 { display:contents !important; }
  .home-search-btn  { grid-column:1/-1; width:100% !important; }
}

/* ============================================================
   HOME — montadoras: sem setas mobile, 16px via .wrap
   ============================================================ */
@media(max-width:768px){
  #bfu-marca-prev, #bfu-marca-next { display:none !important; }
  /* .wrap já tem 16px, mas o track deve usar 100% do wrap */
  #bfu-marcas-track { width:100% !important; max-width:100% !important; }
  .bfu-marca-card { width:calc((100vw - 32px - 16px) / 3) !important; min-width:80px !important; max-width:120px !important; height:60px !important; }
  .bfu-marca-card img { height:34px !important; max-width:80px !important; }
}

/* ============================================================
   SINGLE VEHICLE — reordenação mobile (1→2→3→4)
   ============================================================ */
.vehicle-grid { display:grid; grid-template-columns:1fr 300px; gap:32px; align-items:start; }

@media(max-width:900px){
  body { overflow-x:hidden; }
  #main { overflow-x:hidden !important; }

  /* Grid vira coluna única */
  .vehicle-grid { display:flex !important; flex-direction:column !important; gap:0 !important; width:100% !important; }

  /* vehicle-main vira flex coluna para order funcionar nos filhos */
  .vehicle-main { display:flex !important; flex-direction:column !important; width:100% !important; }

  /* Sidebar some — conteúdo mobile vem de .bfu-mobile-actions em vehicle-main */
  .vehicle-sidebar { display:none !important; }

  /* Ordem dos elementos em vehicle-main */
  .vehicle-header { order:1; margin-bottom:16px; }
  .vehicle-tabs   { order:3; margin-bottom:12px !important; }
  .vehicle-aviso  { order:6; margin-bottom:16px !important; }

  /* Tabelas: scroll horizontal dentro do card */
  .vehicle-tabs .torque-table-wrapper,
  .torque-table-wrapper { overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  .vehicle-tabs table,
  .torque-table { min-width:440px !important; font-size:12px !important; }
  .vehicle-tabs th, .vehicle-tabs td,
  .torque-table th, .torque-table td { padding:7px 10px !important; white-space:nowrap; }
}

/* ============================================================
   VEHICLE — coração top (mobile breadcrumb) e ações mobile
   ============================================================ */

/* Coração top: visível só no mobile */
.bfu-fav-top-btn { display:none; }

/* Bloco de ações mobile: sempre oculto fora de mobile */
.bfu-mobile-actions { display:none !important; }

@media(max-width:900px){
  /* Mostrar coração no topo */
  .bfu-fav-top-btn { display:flex !important; }

  /* Sidebar some — mobile usa .bfu-mobile-actions dentro de vehicle-main */
  .vehicle-sidebar { display:none !important; }

  /* Ações mobile aparecem com ordem após aviso técnico */
  .bfu-mobile-actions {
    display:block !important;
    order:7;
    padding:16px 0 28px;
    width:100%;
  }

  /* Linha com 2 botões lado a lado */
  .bfu-mobile-actions-row {
    display:flex;
    gap:10px;
    margin-bottom:10px;
  }
  .bfu-mobile-actions-row .btn,
  .bfu-mobile-actions-row button {
    flex:1;
    min-width:0;
    font-size:13px !important;
    height:44px;
    justify-content:center;
  }
}

/* ============================================================
   BUSCA — drawer de filtros mobile
   ============================================================ */
.search-layout { display:grid; grid-template-columns:260px 1fr; gap:32px; align-items:start; }

.search-filters-overlay {
  display:none; position:fixed; inset:0; z-index:498;
  background:rgba(0,0,0,.5); backdrop-filter:blur(3px);
}
.search-filters-overlay.open { display:block; }

.mobile-filter-btn { display:none; }

@media(max-width:768px){
  .search-layout { display:block !important; }

  /* Filtros: drawer controlado por JS via style.transform */
  .search-filters[data-drawer] {
    position:fixed; left:0; right:0; bottom:0;
    max-height:85vh; overflow-y:auto;
    border-radius:20px 20px 0 0;
    z-index:499;
    padding:44px 16px max(24px,env(safe-area-inset-bottom));
  }
  .search-filters[data-drawer]::before {
    content:''; position:absolute; top:10px; left:50%; transform:translateX(-50%);
    width:40px; height:4px; border-radius:2px; background:var(--border-2);
  }
  .search-filters__apply {
    display:flex !important; width:100%; justify-content:center;
    margin-top:20px; gap:8px;
  }
  .mobile-filter-btn {
    display:flex !important; position:fixed; bottom:24px; right:20px; z-index:497;
    align-items:center; justify-content:center;
    width:56px; height:56px; background:var(--red); color:#fff;
    border:none; border-radius:50%; cursor:pointer;
    box-shadow:0 4px 20px rgba(180,0,0,.4);
    transition:transform .15s;
  }
  .mobile-filter-btn:active { transform:scale(.92); }
  .mobile-filter-btn span { display:none !important; }
  .filter-count { position:absolute; top:-4px; right:-4px; width:20px; height:20px; border-radius:50%; background:#fff; color:var(--red); font-size:11px; font-weight:800; display:none; align-items:center; justify-content:center; border:2px solid var(--red); }
  .filter-count.active { display:flex; }

  /* Cards de resultado: 2 colunas */
  #results-grid { grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
}
@media(max-width:480px){
  #results-grid { grid-template-columns:1fr !important; }
}

/* ============================================================
   LOGIN — card alinhado com header
   ============================================================ */
@media(max-width:768px){
  .login-page {
    align-items:flex-start !important;
    padding:0 !important;
    min-height:auto !important;
  }
  .login-card {
    margin:12px 16px 24px !important;
    width:calc(100% - 32px) !important;
    max-width:none !important;
    padding:28px 20px !important;
  }
}

/* ============================================================
   FOOTER — responsivo
   ============================================================ */
@media(max-width:768px){
  #site-footer [style*="grid-template-columns:1.4fr"],
  #site-footer [style*="grid-template-columns:200px"] {
    grid-template-columns:1fr !important; gap:24px !important;
  }
  .footer-bottom { flex-direction:column !important; text-align:center !important; gap:8px !important; }
}

/* ============================================================
   SAFE AREA — iPhone com notch/island
   ============================================================ */
@supports(padding:max(0px)){
  #site-header { padding-left:max(0px,env(safe-area-inset-left)); padding-right:max(0px,env(safe-area-inset-right)); }
  #site-footer  { padding-bottom:max(32px,env(safe-area-inset-bottom)); }
}

/* ── Single vehicle grid desktop ── */
.vehicle-grid { display:grid; grid-template-columns:1fr 300px; gap:32px; align-items:start; }
@media(max-width:900px){ .vehicle-sidebar { position:static !important; top:auto !important; } }

/* ── WP Admin: Rank Math column ── */
.column-rank_math_seo_details,.manage-column.column-rank_math_seo_details { display:none !important; }

/* ── Animação skeleton ── */
@keyframes bfu-pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* ── Breadcrumb: quebra automática em mobile ── */
@media(max-width:768px){
  .vehicle-header nav {
    flex-wrap:wrap !important;
    row-gap:2px !important;
  }
  .vehicle-header nav span,
  .vehicle-header nav a {
    word-break:break-word;
    min-width:0;
  }
}

/* ── Ficha técnica: padding interno + largura total ── */
@media(max-width:900px){
  .vehicle-ficha {
    /* Largura total do wrap (já tem 16px de cada lado via .wrap) */
    /* Mas o card preto do motor e as linhas de spec devem ter
       padding interno próprio, não margem externa extra */
    margin-left:0 !important;
    margin-right:0 !important;
    width:100% !important;
    max-width:100% !important;
    border-radius:0 !important;
    border-left:none !important;
    border-right:none !important;
    box-sizing:border-box !important;
  }
  /* As linhas de spec internas: padding lateral de 16px */
  .vehicle-ficha table td,
  .vehicle-ficha table th,
  .vehicle-ficha > div > div {
    padding-left:16px !important;
    padding-right:16px !important;
  }
  /* O card preto do motor (primeiro filho) já tem padding próprio */
  .vehicle-ficha > div:first-child {
    padding-left:16px !important;
    padding-right:16px !important;
  }
}

/* ── Ficha técnica: arredondamento apenas em cima ── */
@media(max-width:900px){
  .vehicle-ficha {
    border-radius:var(--r-lg) var(--r-lg) 0 0 !important;
  }
}

/* ── Breadcrumb: forçar quebra no último item ── */
@media(max-width:768px){
  .vehicle-header nav {
    flex-wrap:wrap !important;
    gap:4px !important;
  }
  .vehicle-header nav > span:last-child {
    flex-basis:100%;
    word-break:break-word;
  }
}

/* ── Breadcrumb: quebra linha no item atual ── */
@media(max-width:768px){
  .vehicle-breadcrumb {
    flex-wrap:wrap !important;
    gap:3px 5px !important;
    margin-bottom:12px !important;
  }
  /* Itens fixos (Início, Veículos, Marca) não quebram */
  .vehicle-breadcrumb a,
  .vehicle-breadcrumb span:not(.breadcrumb-current) {
    white-space:nowrap;
    flex-shrink:0;
  }
  /* Item atual quebra para nova linha e ocupa toda a largura */
  .vehicle-breadcrumb .breadcrumb-current {
    flex-basis:100%;
    word-break:break-word;
    margin-top:1px;
  }
}

/* ── Ficha técnica: arredondamento em todos os cantos ── */
@media(max-width:900px){
  .vehicle-ficha {
    border-radius:var(--r-lg) !important;
  }
}

/* ============================================================
   SINGLE VEHICLE — abas viram accordion mobile (todas abertas)
   ============================================================ */
@media(max-width:900px){

  /* 1. Esconder a barra de abas horizontal */
  #bfu-tab-bar { display:none !important; }

  /* 2. O container .vehicle-tabs perde seu fundo/borda unificado */
  .vehicle-tabs {
    background:transparent !important;
    border:none !important;
    padding:0 !important;
    overflow:visible !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  /* 3. Cada painel vira um card independente */
  .bfu-sv-panel {
    display:block !important;          /* todos visíveis */
    background:var(--bg-card) !important;
    border:.5px solid var(--border) !important;
    border-radius:var(--r-lg) !important;
    margin-bottom:12px !important;
    padding:0 !important;
    overflow:hidden !important;
  }

  /* 4. Label da seção via ::before com conteúdo dinâmico por id */
  .bfu-sv-panel::before {
    display:block;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--text-3);
    padding:12px 16px 10px;
    border-bottom:.5px solid var(--border);
  }
  #bfupanel-torques::before       { content:'Torques'; }
  #bfupanel-verificacoes::before  { content:'Verificações'; }
  #bfupanel-pistoes::before       { content:'Pistões'; }
  #bfupanel-aneis::before         { content:'Anéis'; }
  #bfupanel-bloco::before         { content:'Bloco'; }
  #bfupanel-arvore::before        { content:'Árvore de Manivelas'; }
  #bfupanel-bielas::before        { content:'Bielas'; }
  #bfupanel-cabecote::before      { content:'Cabeçote'; }
  #bfupanel-valvulas::before      { content:'Válvulas'; }
  #bfupanel-comando::before       { content:'Comando de Válvulas'; }
  #bfupanel-turbo::before         { content:'Turbocompressor'; }
  #bfupanel-outros_torques::before{ content:'Outros Torques'; }

  /* 5. Conteúdo interno dos painéis com padding lateral */
  .bfu-sv-panel > * { padding-left:16px; padding-right:16px; }
  /* Primeiro filho: padding top */
  .bfu-sv-panel > *:first-child { padding-top:14px; }
  /* Último filho: padding bottom */
  .bfu-sv-panel > *:last-child  { padding-bottom:14px; }

  /* 6. Todos os filhos diretos dos painéis: contidos na largura */
  .bfu-sv-panel > * {
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  /* 7. Cards de componente: remover bordas laterais e externas,
     usar separador interno via border-bottom */
  .bfu-sv-panel > div {
    border-left:none !important;
    border-right:none !important;
    border-top:none !important;
    border-radius:0 !important;
    border-bottom:.5px solid var(--border) !important;
    margin:0 !important;
    padding:14px 16px !important;
    box-sizing:border-box !important;
  }
  .bfu-sv-panel > div:last-child {
    border-bottom:none !important;
  }

  /* 8. Imagens e diagramas dentro dos painéis: responsivos */
  .bfu-sv-panel img,
  .bfu-sv-panel svg {
    max-width:100% !important;
    height:auto !important;
    display:block !important;
  }

  /* 9. Tabelas: scroll horizontal contido no card */
  .bfu-sv-panel .torque-table-wrapper,
  .bfu-sv-panel [style*="overflow"] {
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    max-width:100% !important;
  }
  .bfu-sv-panel table {
    min-width:340px !important;
    font-size:12px !important;
    white-space:nowrap !important;
  }
  .bfu-sv-panel th,
  .bfu-sv-panel td {
    padding:6px 10px !important;
  }
}

/* ── Breadcrumb: ocultar último item em mobile ── */
@media(max-width:768px){
  .vehicle-breadcrumb .breadcrumb-current { display:none !important; }
}

/* ============================================================
   PLANOS — responsivo mobile
   ============================================================ */
@media(max-width:768px){
  /* Cards: 1 coluna em mobile */
  .plans-grid {
    grid-template-columns:1fr !important;
    max-width:100% !important;
    gap:16px !important;
  }

  /* Destacar o card Premium (geralmente o do meio no desktop) */
  .plans-grid > div:nth-child(2) {
    order:-1; /* coloca o Premium primeiro em mobile */
  }

  /* Header da página de planos */
  #main [style*="text-align:center"] h1 {
    font-size:clamp(24px,7vw,36px) !important;
  }

  /* Mini FAQ: largura total */
  .plans-faq {
    max-width:100% !important;
  }
  .plans-faq > div {
    padding:14px 0 !important;
  }
}

@media(min-width:481px) and (max-width:768px){
  /* Tablet vertical: 1 coluna mas maior */
  .plans-grid {
    max-width:420px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* ============================================================
   MODAL DE AUTENTICAÇÃO GLOBAL
   ============================================================ */
.bfu-auth-modal {
  position:fixed; inset:0; z-index:2000;
  display:none; align-items:center; justify-content:center;
  padding:16px;
}
.bfu-auth-modal[style*="flex"] { display:flex !important; }
.bfu-auth-modal__overlay {
  position:absolute; inset:0;
  background:rgba(0,0,0,.55); backdrop-filter:blur(4px);
}
.bfu-auth-modal__box {
  position:relative; z-index:1;
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:var(--r-xl);
  padding:32px 28px 28px;
  width:100%; max-width:420px;
  box-shadow:0 24px 64px rgba(0,0,0,.22);
  max-height:90vh; overflow-y:auto;
}
.bfu-auth-modal__close {
  position:absolute; top:14px; right:14px;
  background:none; border:none; cursor:pointer;
  color:var(--text-3); padding:4px; border-radius:var(--r-md);
  display:flex; align-items:center; justify-content:center;
  transition:background .1s;
}
.bfu-auth-modal__close:hover { background:var(--bg-2); }
.bfu-auth-modal__logo {
  display:flex; justify-content:center; margin-bottom:20px;
}

/* Abas */
.bfu-auth-modal__tabs {
  display:flex; border-bottom:.5px solid var(--border);
  margin-bottom:20px;
}
.bfu-auth-tab {
  flex:1; padding:10px; font-size:14px; font-weight:600;
  background:none; border:none; cursor:pointer;
  color:var(--text-3); font-family:var(--font);
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:color .15s, border-color .15s;
}
.bfu-auth-tab.active { color:var(--red); border-bottom-color:var(--red); }

/* Mensagem */
.bfu-auth-modal__msg {
  padding:10px 14px; border-radius:var(--r-md);
  font-size:13px; margin-bottom:14px; line-height:1.5;
}
.bfu-auth-modal__msg--error   { background:rgba(180,0,0,.08); color:#b40000; border:.5px solid rgba(180,0,0,.2); }
.bfu-auth-modal__msg--success { background:rgba(45,139,85,.08); color:#1a6335; border:.5px solid rgba(45,139,85,.2); }

/* Campos */
.bfu-auth-modal__group { margin-bottom:14px; }
.bfu-auth-modal__label {
  display:block; font-size:12px; font-weight:600;
  color:var(--text-2); margin-bottom:6px;
}
.bfu-auth-modal__input {
  width:100%; height:42px; padding:0 14px;
  background:var(--bg-2); border:.5px solid var(--border-2);
  border-radius:var(--r-md); color:var(--text);
  font-family:var(--font); font-size:14px; outline:none;
  transition:border-color .15s; box-sizing:border-box;
}
.bfu-auth-modal__input:focus { border-color:var(--red); }

/* Campo com botão olho */
.bfu-auth-modal__pw-wrap { position:relative; }
.bfu-auth-modal__pw-wrap .bfu-auth-modal__input { padding-right:42px; }
.bfu-auth-modal__eye {
  position:absolute; right:0; top:0; bottom:0;
  width:42px; background:none; border:none; cursor:pointer;
  color:var(--text-3); display:flex; align-items:center; justify-content:center;
}

/* Linha lembrar + esqueci */
.bfu-auth-modal__row {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:16px; font-size:12px;
}
.bfu-auth-modal__check {
  display:flex; align-items:center; gap:6px;
  color:var(--text-2); cursor:pointer;
}

/* Botão submit */
.bfu-auth-modal__submit {
  width:100%; height:44px; font-size:15px;
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-bottom:14px;
}
.bfu-auth-modal__spinner {
  display:none; align-items:center; justify-content:center;
}

/* Link troca de painel */
.bfu-auth-modal__switch {
  text-align:center; font-size:13px; color:var(--text-3);
}
.bfu-auth-modal__switch-btn {
  background:none; border:none; cursor:pointer;
  color:var(--red); font-size:13px; font-family:var(--font);
  font-weight:600; padding:0;
}

/* Animação spinner */
@keyframes bfu-spin { to { transform:rotate(360deg); } }

/* Mobile */
@media(max-width:480px){
  .bfu-auth-modal__box {
    padding:24px 20px 20px;
    border-radius:var(--r-lg);
    max-height:95vh;
  }
}

/* ============================================================
   CHECKOUT — responsivo mobile
   Ordem: 1=notificações, título, 2=pedido, 3=dados, 4=obs, 5=pagamento
   ============================================================ */
@media(max-width:900px){
  /* Wrap: sem padding extra */
  .bfu-checkout-wrap {
    padding:0 0 60px !important;
    max-width:100% !important;
  }

  /* 1. Notificações: 16px abaixo do header (padding-top:0 no wrap garante isso) */
  .bfu-checkout-notices {
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding:0 !important;
  }
  .bfu-checkout-notices:empty { display:none !important; }

  /* Título: 16px abaixo das notificações, 32px se não houver notificações */
  .bfu-checkout-title {
    margin-top:16px !important;
    margin-bottom:20px !important;
    padding:0 !important;
    font-size:22px !important;
  }

  /* Grid → flex coluna */
  .bfu-checkout-grid {
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
  }

  /* display:contents para reordenar entre colunas */
  .bfu-checkout-col-form,
  .bfu-checkout-col-summary {
    display:contents !important;
  }

  /* Ordens */
  .bfu-checkout-col-summary > div:first-child { order:2; } /* 2. Seu pedido */
  .bfu-checkout-col-summary > p               { order:2; margin-top:6px !important; margin-bottom:17px !important; } /* texto segurança */
  .bfu-checkout-dados                         { order:3; }
  .bfu-checkout-obs                           { order:4; }
  .bfu-checkout-payment                       { order:5; }

  /* Cards: margin lateral + sem sticky */
  .bfu-checkout-section,
  .bfu-checkout-col-summary > div:first-child {
    margin-bottom:12px !important;
    width:100% !important;
    box-sizing:border-box !important;
  }
  .bfu-checkout-col-summary {
    position:static !important;
    top:auto !important;
  }
  .bfu-checkout-col-summary > div:first-child {
    position:static !important;
  }

  /* Grid 2col dos campos de dados → 1 coluna */
  .bfu-checkout-dados [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns:1fr !important;
  }
}

/* ============================================================
   CHECKOUT — espaçamento notificações + Stripe fixes
   ============================================================ */

/* Notificações: 16px abaixo do header (removendo espaço anterior de 64px) */
@media(max-width:900px){
  .bfu-checkout-wrap {
    padding-top:0 !important;
  }
  .bfu-checkout-notices {
    margin-top:16px !important;
  }
  /* Stripe Express Checkout (Link button) — conter no fluxo do layout */
  #wc-stripe-express-checkout-element,
  .wc-stripe-express-checkout-element-container,
  .wc-stripe-express-checkout-wrapper {
    max-width:100% !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  /* O iframe do botão Stripe Link injetado diretamente no body */
  body > iframe[src*="stripe.com/v3/elements-inner-easel"],
  body > iframe[src*="stripe.com"][style*="163px"],
  body > iframe[src*="stripe.com"][style*="position: fixed"] {
    max-width:calc(100vw - 32px) !important;
    right:16px !important;
    left:auto !important;
    border-radius:8px !important;
  }
  /* Stripe UPE form — sem overflow */
  #wc-stripe-upe-form,
  .wc-upe-form,
  .wc-payment-form,
  .StripeElement,
  .wc-stripe-upe-element {
    max-width:100% !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  /* Input oculto do Stripe que tem width:100vw */
  #wc-stripe-hidden-style-input {
    width:1px !important;
    height:1px !important;
    position:absolute !important;
    opacity:0 !important;
    pointer-events:none !important;
  }
}
