/* =========================================================
   Lukscolor - Portal do Revendedor
   ========================================================= */

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

:root{

  /* ===== IDENTIDADE LUKSCOLOR ===== */
  --luks-primary:#00524C;
  --luks-primary-hover:#006b63;
  --luks-gray:#7A7A7A;

  --luks-border:#e6e6e6;
  --luks-border-soft:#eeeeee;

  --luks-bg:#ffffff;
  --luks-bg-soft:#f6f7f8;

  --luks-text:#7A7A7A;
  --luks-text-dark:#2a2a2a;
  --luks-text-soft:#7A7A7A;

  --luks-shadow:0 8px 22px rgba(0,0,0,.08);
  --luks-shadow-soft:0 2px 10px rgba(0,0,0,.05);

  --luks-r-sm:10px;
  --luks-r-md:14px;
  --luks-r-lg:18px;
  --luks-r-pill:999px;

  --luks-gap:14px;

  --luks-btn-border:rgba(0,82,76,0.15);

  --luks-badge-new-bg:#e8f5f4;
  --luks-badge-new-border:#a8d5d2;

  --luks-badge-featured-bg:#f3f3f3;
  --luks-badge-featured-border:#dcdcdc;

  --luks-badge-type-bg:#eef3f3;
  --luks-badge-type-border:#c4d8d7;

  --luks-alert-bg:#fff1f1;
  --luks-alert-border:#ffd1d1;
}

/* =========================================================
   BASE
   ========================================================= */

.luks-wrap{
  font-family:'Poppins', sans-serif;
  color:var(--luks-text);
}

.luks-wrap *{
  font-family:'Poppins', sans-serif;
  box-sizing:border-box;
}

.luks-card,
.luks-area-bar,
.luks-panel{
  background:var(--luks-bg);
}

/* =========================================================
   BOTÕES — seletores específicos para não serem sobrescritos
   ========================================================= */

.luks-wrap .luks-btn,
.luks-login-shell .luks-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px;
  padding:10px 18px !important;
  border-radius:var(--luks-r-md) !important;
  border:1px solid var(--luks-btn-border) !important;
  background:var(--luks-primary) !important;
  color:#fff !important;
  text-decoration:none !important;
  cursor:pointer !important;
  transition:all .15s ease !important;
  font-weight:700 !important;
  font-size:13px !important;
  line-height:1 !important;
  box-shadow:none !important;
}

.luks-wrap .luks-btn:hover,
.luks-login-shell .luks-btn:hover{
  background:var(--luks-primary-hover) !important;
  color:#fff !important;
  transform:translateY(-1px);
}

.luks-wrap .luks-btn--secondary,
.luks-login-shell .luks-btn--secondary{
  background:#fff !important;
  color:var(--luks-primary) !important;
  border:1px solid var(--luks-btn-border) !important;
}

.luks-wrap .luks-btn--secondary:hover,
.luks-login-shell .luks-btn--secondary:hover{
  background:#f0f7f6 !important;
  color:var(--luks-primary) !important;
}

.luks-wrap .luks-btn--full{
  width:100%;
  margin-top:18px !important;
}

/* =========================================================
   LINKS / ALERTAS
   ========================================================= */

.luks-link{
  color:var(--luks-primary);
  text-decoration:underline;
  font-size:14px;
  font-weight:600;
}

.luks-alert{
  padding:12px 14px;
  border-radius:var(--luks-r-md);
  background:var(--luks-alert-bg);
  border:1px solid var(--luks-alert-border);
  margin-bottom:14px;
  font-size:14px;
}

/* =========================================================
   BARRA TOPO (BEM-VINDO + SAIR)
   ========================================================= */

.luks-area-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-lg);
  margin:12px 0 18px 0;
  box-shadow:var(--luks-shadow-soft);
}

.luks-welcome{
  font-size:14px;
}

.luks-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

/* =========================================================
   LOGIN PRO CARD
   ========================================================= */

.luks-login-shell{
  display:flex;
  justify-content:center;
  padding:30px 0;
}

.luks-login-card{
  width:100%;
  max-width:520px;
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-lg);
  background:var(--luks-bg);
  box-shadow:var(--luks-shadow-soft);
  padding:22px 20px;
}

.luks-login-brand{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:12px;
}

.luks-login-mark{
  font-weight:800;
  letter-spacing:.2px;
  font-size:13px;
  color:var(--luks-text-soft);
  text-transform:uppercase;
}

.luks-login-company{
  font-weight:900;
  font-size:18px;
  color:var(--luks-primary);
}

.luks-login-title{
  margin:8px 0 6px;
  font-size:20px;
  font-weight:900;
}

.luks-login-subtitle{
  margin:0 0 16px;
  color:var(--luks-text-soft);
  font-size:14px;
  line-height:1.4;
}

.luks-form label{
  display:block;
  margin:12px 0 6px;
  font-weight:700;
  font-size:14px;
}

.luks-form input{
  width:100%;
  max-width:460px;
  padding:11px 12px;
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-md);
  font-size:14px;
  background:#fff;
}

html body .luks-login-shell .luks-form input,
html body .luks-login-shell .luks-form input[type="text"],
html body .luks-login-shell .luks-form input[type="email"],
html body .luks-login-shell .luks-form input[type="password"],
html body .luks-login-shell .luks-form input[type="tel"]{
  width:100% !important;
  max-width:100% !important;
  padding:11px 12px !important;
  border:1px solid #e6e6e6 !important;
  border-radius:10px !important;
  font-size:14px !important;
  font-family:'Poppins', sans-serif !important;
  background:#fff !important;
  background-color:#fff !important;
  color:#2a2a2a !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  margin:0 !important;
}

html body .luks-login-shell .luks-form input:focus{
  outline:none !important;
  border-color:#00524C !important;
  box-shadow:0 0 0 3px rgba(0,82,76,.08) !important;
}

.luks-login-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:16px;
  flex-wrap:wrap;
}

html body .luks-login-shell .luks-link,
html body .luks-login-shell .luks-login-links a{
  color:#00524C !important;
  text-decoration:underline !important;
  font-size:13px !important;
  font-weight:600 !important;
  opacity:1 !important;
  visibility:visible !important;
}

html body .luks-login-shell .luks-link:hover,
html body .luks-login-shell .luks-login-links a:hover{
  color:#006b63 !important;
}

.luks-sep{
  color:var(--luks-border);
  font-size:13px;
}

.luks-field-hint{
  display:block;
  font-size:11px;
  color:var(--luks-text-soft);
  margin-top:3px;
}

.luks-alert--success{
  background:#eaf7f0;
  border-color:#a3d9bb;
  color:#1a6b3c;
}

.luks-alert--error{
  background:var(--luks-alert-bg);
  border-color:var(--luks-alert-border);
  color:#a00;
}

/* =========================================================
   CADASTRO — card largo + grid de campos
   ========================================================= */

.luks-cadastro-shell{
  align-items:flex-start;
  padding:30px 16px;
}

.luks-cadastro-card{
  max-width:780px !important;
  width:100% !important;
}

.luks-req{
  color:#c0392b;
}

.luks-cad-section{
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.6px;
  color:var(--luks-text-soft);
  margin:22px 0 10px;
  padding-bottom:6px;
  border-bottom:1px solid var(--luks-border-soft);
}

.luks-cad-row{
  display:flex;
  gap:12px;
  margin-bottom:0;
}

.luks-cad-col{
  display:flex;
  flex-direction:column;
  gap:0;
}

.luks-cad-col--half         { flex:1 1 0; min-width:0; }
.luks-cad-col--third        { flex:1 1 0; min-width:0; }
.luks-cad-col--two-thirds   { flex:2 1 0; min-width:0; }
.luks-cad-col--quarter      { flex:1 1 0; min-width:0; }
.luks-cad-col--three-quarters{ flex:3 1 0; min-width:0; }

html body .luks-login-shell .luks-form select{
  height:44px !important;
  padding:0 12px !important;
  border:1px solid #e6e6e6 !important;
  border-radius:10px !important;
  font-size:14px !important;
  font-family:'Poppins', sans-serif !important;
  background:#fff !important;
  background-color:#fff !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A7A7A' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 12px center !important;
  padding-right:32px !important;
  width:100% !important;
  box-sizing:border-box !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  color:#2a2a2a !important;
  box-shadow:none !important;
  cursor:pointer !important;
}

@media(max-width:600px){
  .luks-cad-row{ flex-direction:column; gap:0; }
  .luks-cad-col--quarter,
  .luks-cad-col--three-quarters,
  .luks-cad-col--half,
  .luks-cad-col--third,
  .luks-cad-col--two-thirds{ flex:none; width:100%; }
}

/* =========================================================
   PAINEL / FILTROS
   ========================================================= */

.luks-panel{
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-lg);
  padding:14px;
  margin:12px 0 18px;
  box-shadow:var(--luks-shadow-soft);
}

.luks-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
}

.luks-field{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:180px;
}

.luks-field label{
  font-weight:700;
  font-size:12px;
  color:var(--luks-text-soft);
  text-transform:uppercase;
  letter-spacing:.3px;
}

html body .luks-wrap .luks-input,
html body .luks-wrap .luks-select{
  display:block !important;
  height:44px !important;
  padding:0 12px !important;
  border:1px solid #e6e6e6 !important;
  border-radius:10px !important;
  font-size:14px !important;
  font-family:'Poppins', sans-serif !important;
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  width:100% !important;
  box-sizing:border-box !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  appearance:none !important;
  color:#2a2a2a !important;
  line-height:44px !important;
  box-shadow:none !important;
  outline:none !important;
  margin:0 !important;
  transition:border-color .15s, box-shadow .15s !important;
}

html body .luks-wrap .luks-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A7A7A' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 12px center !important;
  padding-right:36px !important;
  cursor:pointer !important;
}

html body .luks-wrap .luks-input:focus,
html body .luks-wrap .luks-select:focus{
  border-color:#00524C !important;
  box-shadow:0 0 0 3px rgba(0,82,76,.08) !important;
}

.luks-toolbar{
  display:flex;
  gap:8px;
  align-items:flex-end;
  padding-bottom:1px;
}

.luks-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--luks-border-soft);
}

/* =========================================================
   CHIPS
   ========================================================= */

.luks-chip{
  display:inline-block;
  border:1px solid var(--luks-border);
  background:#fff;
  padding:7px 14px;
  border-radius:var(--luks-r-pill);
  cursor:pointer;
  font-size:12px;
  font-weight:600;
  color:var(--luks-gray) !important;
  text-decoration:none !important;
  transition:all .15s;
  line-height:1;
  white-space:nowrap;
}

.luks-chip:hover{
  border-color:var(--luks-primary);
  color:var(--luks-primary) !important;
  background:#f0f7f6;
}

.luks-chip.is-active{
  background:var(--luks-primary) !important;
  border-color:var(--luks-primary) !important;
  color:#fff !important;
}

/* =========================================================
   GRID + CARDS
   ========================================================= */

.luks-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--luks-gap);
}

@media(max-width:900px){
  .luks-grid{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:600px){
  .luks-grid{grid-template-columns:1fr;}
  .luks-field{min-width:100%;}
}

.luks-card{
  border:1px solid var(--luks-border-soft);
  border-radius:var(--luks-r-lg);
  overflow:hidden;
  box-shadow:var(--luks-shadow-soft);
  transition:.18s;
}

.luks-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--luks-shadow);
}

.luks-thumb{
  height:150px;
  background-size:cover;
  background-position:center;
}

.luks-thumb--empty{
  background:var(--luks-bg-soft);
}

.luks-card-body{
  padding:14px;
}

.luks-title{
  font-size:16px;
  font-weight:800;
  margin:8px 0 6px;
}

.luks-desc{
  font-size:13px;
  color:var(--luks-text-soft);
  margin:0 0 8px;
}

.luks-card--clickable{
  cursor:pointer;
}

.luks-no-action{
  font-size:12px;
  color:var(--luks-text-soft);
  font-style:italic;
}

/* =========================================================
   MODAL
   ========================================================= */

.luks-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.luks-modal[hidden]{
  display:none;
}

.luks-modal-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.55);
  cursor:pointer;
}

.luks-modal-box{
  position:relative;
  background:#fff;
  border-radius:var(--luks-r-lg);
  box-shadow:0 20px 60px rgba(0,0,0,.2);
  width:100%;
  max-width:680px;
  max-height:85vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  animation:luks-modal-in .2s ease;
}

@keyframes luks-modal-in{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}

.luks-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 20px;
  border-bottom:1px solid var(--luks-border);
  flex-shrink:0;
}

.luks-modal-title{
  font-size:17px;
  font-weight:800;
  color:var(--luks-text-dark);
  margin:0;
}

html body .luks-wrap .luks-modal-close{
  width:32px !important;
  height:32px !important;
  border:none !important;
  background:#00524C !important;
  background-color:#00524C !important;
  border-radius:50% !important;
  cursor:pointer !important;
  font-size:14px !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-shrink:0 !important;
  transition:background .15s !important;
  box-shadow:none !important;
}

html body .luks-wrap .luks-modal-close:hover{
  background:#006b63 !important;
  background-color:#006b63 !important;
}

.luks-modal-content{
  padding:20px;
  overflow-y:auto;
  font-size:14px;
  line-height:1.7;
  color:var(--luks-text-dark);
}

.luks-modal-content p{
  margin:0 0 12px;
}

.luks-modal-content ul,
.luks-modal-content ol{
  padding-left:20px;
  margin:0 0 12px;
}

@media(max-width:600px){
  .luks-modal-box{max-height:92vh;}
  .luks-modal{padding:12px;}
}

/* =========================================================
   BADGES
   ========================================================= */

.luks-badge{
  font-size:11px;
  padding:4px 9px;
  border-radius:var(--luks-r-pill);
  border:1px solid var(--luks-border);
  font-weight:800;
}

.luks-badge--new{
  background:var(--luks-badge-new-bg);
  border-color:var(--luks-badge-new-border);
}

.luks-badge--featured{
  background:var(--luks-badge-featured-bg);
  border-color:var(--luks-badge-featured-border);
}

.luks-badge--type{
  background:var(--luks-badge-type-bg);
  border-color:var(--luks-badge-type-border);
}

/* =========================================================
   PAGINAÇÃO
   ========================================================= */

.luks-pagination{
  display:flex;
  gap:8px;
  margin:22px 0;
}

.luks-page{
  padding:9px 13px;
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-md);
  text-decoration:none;
  font-size:13px;
  font-weight:800;
  color:var(--luks-text);
  background:#fff;
}

.luks-page:hover{
  border-color:var(--luks-primary);
  color:var(--luks-primary);
}

.luks-page--active{
  background:var(--luks-primary);
  color:#fff;
  border-color:var(--luks-primary);
}

/* =========================================================
   EMPTY STATE
   ========================================================= */

.luks-empty{
  grid-column:1/-1;
  text-align:center;
  padding:40px 20px;
  color:var(--luks-text-soft);
  font-size:14px;
}

/* =========================================================
   POLÍTICAS E REGRAS — documento visual rico
   ========================================================= */

/* Uma sanfona por linha */
.luks-politicas-grid{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin:0 0 24px;
}

@media(max-width:700px){
  .luks-politicas-grid{
    gap:10px;
  }
}

/* Wrapper do documento */
.luks-politica{
  background:var(--luks-bg);
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-lg);
  box-shadow:var(--luks-shadow-soft);
  overflow:hidden;
  margin:0;
}

/* Cabeçalho do documento — clicável */
.luks-politica-header{
  background:var(--luks-primary) !important;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
  user-select:none;
  transition:background .15s;
}

.luks-politica-header:hover{
  background:var(--luks-primary-hover) !important;
}

/* Garante que nenhum elemento filho herde cor estranha do tema */
.luks-politica-header,
.luks-politica-header *{
  color:#fff !important;
}

.luks-politica-header-text{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.luks-politica-header .luks-politica-title,
.luks-politica-header .luks-politica-title *{
  color:#fff !important;
  font-size:15px !important;
  font-weight:800 !important;
  margin:0 !important;
  line-height:1.2 !important;
  text-shadow:none !important;
}

.luks-politica-header .luks-politica-date{
  color:rgba(255,255,255,.75) !important;
  font-size:11px !important;
  font-weight:500 !important;
}

/* Ícone de toggle (seta) */
.luks-politica-arrow{
  width:28px;
  height:28px;
  border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:background .15s;
}

.luks-politica-arrow::after{
  content:'';
  display:block;
  width:7px;
  height:7px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .25s;
}

/* Estado expandido */
.luks-politica.is-open .luks-politica-arrow{
  background:rgba(255,255,255,.25);
}

.luks-politica.is-open .luks-politica-arrow::after{
  transform:rotate(-135deg) translateY(2px);
}

/* Área de conteúdo — recolhida por padrão */
.luks-politica-content{
  padding:0 18px;
  max-height:0;
  overflow:hidden;
  transition:max-height .35s ease, padding .25s ease;
}

.luks-politica.is-open .luks-politica-content{
  max-height:5000px;
  padding:18px;
}

/* Parágrafo introdutório */
.luks-pol-intro{
  font-size:14px;
  line-height:1.65;
  color:var(--luks-text-soft);
  margin:0 0 20px;
  padding:14px 16px;
  background:var(--luks-bg-soft);
  border-left:3px solid var(--luks-primary);
  border-radius:0 var(--luks-r-sm) var(--luks-r-sm) 0;
}

/* Seção (bloco com header + lista) */
.luks-pol-section{
  margin:0 0 20px;
  border:1px solid var(--luks-border);
  border-radius:var(--luks-r-md);
  overflow:hidden;
}

.luks-pol-section-header{
  background:#c9960c;
  color:#fff;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:10px 16px;
}

.luks-pol-section--green .luks-pol-section-header{
  background:var(--luks-primary);
}

.luks-pol-section--red .luks-pol-section-header{
  background:#c0392b;
}

.luks-pol-section-intro{
  font-size:13px;
  color:var(--luks-text-soft);
  padding:12px 16px 4px;
  margin:0;
}

/* Lista de critérios — versão acordeon */
.luks-pol-criterios{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:luks-criterio;
}

.luks-pol-criterios li{
  border-top:1px solid var(--luks-border-soft);
  counter-increment:luks-criterio;
}

.luks-pol-criterios li:first-child{
  border-top:none;
}

/* Item de acordeon (Regras de Utilização) */
.luks-pol-toggle{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 16px;
  background:none;
  border:none;
  cursor:pointer;
  text-align:left;
  font-size:14px;
  color:var(--luks-text);
  transition:background .15s;
}

.luks-pol-toggle:hover{
  background:var(--luks-bg-soft);
}

.luks-pol-toggle::before{
  content:counter(luks-criterio);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--luks-primary);
  color:#fff;
  font-size:11px;
  font-weight:800;
  flex-shrink:0;
}

.luks-pol-toggle-title{
  flex:1;
}

.luks-pol-toggle-icon{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:transform .2s;
}

.luks-pol-toggle-icon::after{
  content:'';
  display:block;
  width:7px;
  height:7px;
  border-right:2px solid var(--luks-gray);
  border-bottom:2px solid var(--luks-gray);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .2s;
}

.luks-pol-toggle[aria-expanded="true"] .luks-pol-toggle-icon::after{
  transform:rotate(-135deg) translateY(-2px);
}

.luks-pol-detalhe{
  padding:4px 16px 14px 52px;
  font-size:13px;
  line-height:1.6;
  color:var(--luks-text-soft);
}

.luks-pol-detalhe p{
  margin:0;
}

/* Lista simples com ícone (stories) */
.luks-pol-criterios--check li,
.luks-pol-criterios--block li{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:10px 16px;
  font-size:13px;
  line-height:1.5;
}

.luks-pol-criterios--check li::before{
  content:counter(luks-criterio);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  border-radius:50%;
  background:var(--luks-primary);
  color:#fff;
  font-size:11px;
  font-weight:800;
  flex-shrink:0;
}

.luks-pol-criterios--block li::before{
  content:counter(luks-criterio);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  border-radius:50%;
  background:#c0392b;
  color:#fff;
  font-size:11px;
  font-weight:800;
  flex-shrink:0;
}

/* Nota importante */
.luks-pol-notice{
  background:#fffbea;
  border:1px solid #f0d060;
  border-radius:var(--luks-r-md);
  padding:14px 16px;
  font-size:13px;
  line-height:1.55;
  margin-top:8px;
}

.luks-pol-notice strong{
  display:block;
  text-transform:uppercase;
  letter-spacing:.4px;
  font-size:11px;
  color:#7a5a00;
  margin-bottom:6px;
}

.luks-pol-notice p{
  margin:0;
  color:var(--luks-text);
}

/* Mobile */
@media(max-width:600px){
  .luks-politica-title{font-size:17px;}
  .luks-politica-content{padding:16px;}
  .luks-pol-toggle{padding:12px 14px;}
  .luks-pol-detalhe{padding-left:42px;}
}

/* =========================================================
   LISTA PÚBLICA DE REVENDEDORES [luks_rev_lista]
   — Visual alinhado com products.css (catálogo de produtos)
   ========================================================= */

/* ── Wrapper ─────────────────────────────────────── */

.luks-lista-wrap{
  width:100%;
  max-width:100% !important;
  font-family:Poppins, sans-serif;
  box-sizing:border-box;
}

/* Override Elementor section/container quando contém a lista */
.elementor-section:has(#luks-lista) > .elementor-container,
.elementor-section:has(#luks-lista) > .elementor-container > .elementor-row,
.e-con:has(#luks-lista),
.elementor-container:has(#luks-lista){
  max-width:100% !important;
  width:100% !important;
}

/* Garante que widget container não adicione padding extra */
.elementor-widget-container:has(#luks-lista){
  width:100% !important;
  max-width:100% !important;
}

.luks-lista-wrap *{
  box-sizing:border-box;
}

/* ── Contador ────────────────────────────────────── */

.luks-lista-count{
  margin-bottom:18px;
  color:#6F6F6F;
  font-size:14px;
  line-height:1.4;
  letter-spacing:0.01em;
}

/* ── Painel de filtros ── */

.luks-lista-filtros{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 32px;
  padding:20px 22px;
  border:1px solid #EAEAEA;
  border-radius:16px;
  background:linear-gradient(180deg, #FCFCFC 0%, #F8F8F8 100%);
  width:100%;
  box-sizing:border-box;
}

/* Linha 1: busca full-width */
.luks-lista-busca-linha{
  position:relative;
  width:100%;
}

.luks-lista-busca-icone{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  color:#8A8A8A;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1;
}

.luks-lista-busca-icone svg{
  width:18px;
  height:18px;
  display:block;
}

/* Linha 2: tipo + estado + região + CEP + buscar + limpar */
.luks-lista-linha--selects{
  display:grid;
  gap:10px;
  width:100%;
  grid-template-columns:1fr 1fr 1fr minmax(130px,auto) auto auto;
  align-items:stretch;
}

/* ── Inputs, selects e botões — idêntico a products.css ── */

.luks-lista-wrap input[type="text"],
.luks-lista-wrap select,
.luks-lista-wrap button{
  height:50px;
  width:100%;
  min-width:0;
  padding:0 14px;
  border-radius:10px;
  font-family:"Poppins", sans-serif;
  font-size:14px;
  line-height:1;
  box-sizing:border-box;
  box-shadow:none !important;
  outline:none !important;
  transition:border-color 0.2s ease, background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.luks-lista-wrap input[type="text"],
.luks-lista-wrap select{
  background:#FFFFFF !important;
  color:#555555 !important;
  border:1px solid #D8D8D8 !important;
  -webkit-appearance:none;
  appearance:none;
}

/* Ícone de busca: padding-left com especificidade alta para não ser sobrescrito */
.luks-lista-wrap .luks-lista-busca-linha input[type="text"]{
  padding-left:42px !important;
}

.luks-lista-wrap input[type="text"]::placeholder{
  color:#9B9B9B;
}

.luks-lista-wrap input[type="text"]:focus,
.luks-lista-wrap select:focus{
  border-color:#00524C !important;
  background:#FFFFFF !important;
  box-shadow:0 0 0 3px rgba(0,82,76,0.08) !important;
}

.luks-lista-wrap select{
  padding-right:42px;
  background-image:url("data:image/svg+xml;utf8,<svg fill='none' stroke='%23666666' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='m6 9 6 6 6-6'></path></svg>") !important;
  background-repeat:no-repeat !important;
  background-position:right 14px center !important;
  background-size:14px !important;
}

.luks-lista-wrap select:hover{
  border-color:#CFCFCF !important;
}

/* Botão Limpar — fundo cinza + borda verde, sempre visível */
html body .luks-lista-wrap .luks-lista-limpar{
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  color:#666666 !important;
  border:1px solid #D8D8D8 !important;
  cursor:pointer !important;
  font-weight:500 !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
}

html body .luks-lista-wrap .luks-lista-limpar:hover{
  background:#00524C !important;
  background-color:#00524C !important;
  border-color:#00524C !important;
  color:#FFFFFF !important;
  transform:translateY(-1px);
}

html body .luks-lista-wrap .luks-lista-limpar:focus{
  box-shadow:0 0 0 3px rgba(0,82,76,0.12) !important;
}

/* Botão Buscar por CEP — destaque verde */
.luks-lista-cep-btn{
  background:#00524C !important;
  color:#fff !important;
  border:1px solid #00524C !important;
  cursor:pointer;
  font-weight:600;
  white-space:nowrap;
  width:auto !important;
  padding:0 18px !important;
}

.luks-lista-cep-btn:hover{
  background:#fff !important;
  color:#00524C !important;
  border-color:#00524C !important;
}

.luks-lista-cep-btn:disabled{
  opacity:.55 !important;
  cursor:not-allowed !important;
}

/* Mensagem de retorno CEP — fora do flex, aparece só quando JS preenche */
.luks-lista-cep-msg{
  display:none;
  font-size:13px;
  line-height:1.4;
  margin:-24px 0 16px;
  color:#6F6F6F;
}

.luks-lista-cep-msg--erro{ color:#c0392b; }
.luks-lista-cep-msg--ok  { color:#00874a; }
.luks-lista-cep-msg--info{ color:#666; }

/* ── Grid de cards ───────────────────────────────── */

.luks-lista-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:24px;
  width:100%;
}

/* ── Card — mesmo padrão de .luks-produto-card ────── */

.luks-lista-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:18px;
  overflow:hidden;
  transition:box-shadow 0.25s ease, transform 0.25s ease, border-color 0.18s ease;
  font-family:Poppins, sans-serif;
}

.luks-lista-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(0,0,0,.06);
}

/* Cabeçalho do card */
.luks-lista-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 16px 14px;
  gap:10px;
}

.luks-lista-card-inicial{
  width:42px;
  height:42px;
  border-radius:10px;
  background:#00524C;
  color:#fff;
  font-size:18px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  text-transform:uppercase;
}

.luks-lista-card-loc{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:12px;
  font-weight:500;
  color:#8A8A8A;
  text-align:right;
}

.luks-lista-card-loc svg{
  width:11px;
  height:13px;
  color:#00524C;
  flex-shrink:0;
}

/* Corpo */
.luks-lista-card-body{
  padding:0 16px 14px;
  flex:1;
  border-top:1px solid #f1f1f1;
}

/* Nome fantasia — destaque principal */
.luks-lista-card-fantasia{
  font-size:16px;
  font-weight:600;
  color:#00524C;
  margin:14px 0 3px;
  line-height:1.3;
}

/* Razão social — discreto abaixo */
.luks-lista-card-razao{
  font-size:12px;
  color:#7A7A7A;
  margin:0 0 6px;
  font-weight:400;
  line-height:1.4;
}

/* Distância + tempo estimado */
.luks-lista-card-dist{
  display:none;
  flex-direction:column;
  gap:4px;
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid #f0f0f0;
}

.luks-dist-linha{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:#555;
  font-weight:400;
}

.luks-dist-linha strong{
  color:#00524C;
  font-weight:600;
}

.luks-dist-linha svg{
  width:14px;
  height:14px;
  flex-shrink:0;
  color:#00524C;
}

/* Ações */
.luks-lista-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:14px 16px 16px;
  border-top:1px solid #f1f1f1;
}

.luks-lista-btn{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  padding:6px 12px !important;
  font-size:13px !important;
  font-weight:500 !important;
  line-height:1 !important;
  border-radius:8px !important;
  text-decoration:none !important;
  cursor:pointer !important;
  transition:all 0.2s ease !important;
  font-family:Poppins, sans-serif !important;
  border:1px solid #e0e0e0 !important;
}

.luks-lista-btn svg{
  width:13px !important;
  height:13px !important;
  flex-shrink:0 !important;
}

/* WhatsApp */
.luks-lista-btn--wa{
  background:#25D366 !important;
  color:#fff !important;
  border-color:#25D366 !important;
}
.luks-lista-btn--wa:hover{
  background:#1ebc5a !important;
  border-color:#1ebc5a !important;
  color:#fff !important;
}

/* Como chegar + Site + Instagram */
.luks-lista-btn--maps,
.luks-lista-btn--icon{
  background:#f5f5f5 !important;
  color:#333 !important;
  border-color:#e0e0e0 !important;
}
.luks-lista-btn--maps:hover,
.luks-lista-btn--icon:hover{
  background:#eee !important;
  border-color:#d5d5d5 !important;
  color:#00524C !important;
}

/* ── Estado vazio ────────────────────────────────── */

.luks-lista-vazio{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px 20px;
  gap:14px;
  text-align:center;
}

.luks-lista-vazio svg{ width:56px; height:56px; opacity:.35; }

.luks-lista-vazio p{
  font-size:14px;
  color:#6B6B6B;
  margin:0;
  line-height:1.6;
}

/* ── Mobile ──────────────────────────────────────── */

@media(max-width:1024px){
  /* Tablet: 3+3 */
  .luks-lista-linha--selects{
    grid-template-columns:1fr 1fr 1fr;
  }
}

@media(max-width:767px){
  .luks-lista-filtros{ padding:16px; border-radius:14px; margin-bottom:24px; }

  .luks-lista-linha--selects{
    grid-template-columns:1fr;
  }

  .luks-lista-cep-btn,
  .luks-lista-limpar{
    width:100% !important;
  }

  .luks-lista-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
}

/* ── Filtros sem resultados ──────────────────────── */

.luks-lista-sem-resultados{
  margin:0 0 24px;
  padding:18px 20px;
  border:1px solid #E8E8E8;
  border-radius:14px;
  background:#FFFFFF;
  color:#6B6B6B;
  font-size:14px;
  line-height:1.6;
}

/* Linha principal: busca + estado + região */
.luks-lista-filter-row{
  display:grid;
  grid-template-columns:1fr 160px 160px;
  gap:14px;
  align-items:flex-end;
}

/* Linha secundária: CEP + botão + limpar */
.luks-lista-filter-row--cep{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:flex-end;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #f0f0f0;
}

.luks-lista-filter-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}

html body .luks-lista-wrap .luks-lista-filter-label{
  display:block !important;
  font-size:13px !important;
  font-weight:600 !important;
  color:#222 !important;
  margin-bottom:0 !important;
  line-height:1.4 !important;
}

/* Inputs e selects — idêntico ao .lukscalc-input */
html body .luks-lista-wrap .luks-lista-input,
html body .luks-lista-wrap .luks-lista-select{
  width:100% !important;
  padding:12px 14px !important;
  font-size:15px !important;
  line-height:1.4 !important;
  color:#222 !important;
  background:#fff !important;
  border:1px solid #d6d6d6 !important;
  border-radius:12px !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  box-shadow:none !important;
  transition:border-color .15s, box-shadow .15s !important;
  font-family:'Poppins', sans-serif !important;
}

html body .luks-lista-wrap .luks-lista-input:focus,
html body .luks-lista-wrap .luks-lista-select:focus{
  outline:none !important;
  border-color:#00524C !important;
  box-shadow:0 0 0 3px rgba(0,82,76,.12) !important;
}

/* Busca com ícone */
.luks-lista-search-wrap{
  position:relative;
}

.luks-lista-search-wrap .luks-lista-input{
  padding-left:44px !important;
}

.luks-lista-search-icon{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  color:#aaa;
  pointer-events:none;
}

/* Linha do CEP */
.luks-lista-cep-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.luks-lista-cep-wrap{
  display:flex;
  gap:8px;
  align-items:stretch;
}

.luks-lista-input--cep{
  width:148px !important;
  flex-shrink:0 !important;
}

/* Botão "Buscar por CEP" — igual ao .lukscalc-submit */
html body .luks-lista-wrap .luks-lista-cep-btn{
  appearance:none !important;
  padding:12px 18px !important;
  font-size:15px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  border-radius:12px !important;
  cursor:pointer !important;
  transition:all .2s ease !important;
  background:#00524C !important;
  color:#fff !important;
  border:1px solid #00524C !important;
  white-space:nowrap !important;
  font-family:'Poppins', sans-serif !important;
}

html body .luks-lista-wrap .luks-lista-cep-btn:hover{
  background:#fff !important;
  color:#00524C !important;
  border-color:#00524C !important;
}

html body .luks-lista-wrap .luks-lista-cep-btn:focus,
html body .luks-lista-wrap .luks-lista-cep-btn:active{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(0,82,76,.12) !important;
}

html body .luks-lista-wrap .luks-lista-cep-btn:disabled{
  opacity:.55 !important;
  cursor:not-allowed !important;
}

/* Botão "Limpar filtros" — igual ao .lukscalc-reset-btn */
html body .luks-lista-wrap .luks-lista-btn-limpar{
  appearance:none !important;
  padding:12px 18px !important;
  font-size:15px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  border-radius:12px !important;
  cursor:pointer !important;
  transition:all .2s ease !important;
  background:#fff !important;
  color:#00524C !important;
  border:1px solid #00524C !important;
  white-space:nowrap !important;
  font-family:'Poppins', sans-serif !important;
  align-self:flex-end !important;
}

html body .luks-lista-wrap .luks-lista-btn-limpar:hover{
  background:#00524C !important;
  color:#fff !important;
  border-color:#00524C !important;
}

html body .luks-lista-wrap .luks-lista-btn-limpar:focus,
html body .luks-lista-wrap .luks-lista-btn-limpar:active{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(0,82,76,.12) !important;
}

/* (regra de cep-msg unificada acima) */

/* ── Contador de resultados ──────────────────────── */

.luks-lista-count{
  font-size:14px;
  color:#666;
  margin-bottom:18px;
  font-weight:500;
  line-height:1.5;
}

/* ── Grid de cards ───────────────────────────────── */

.luks-lista-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap:16px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* ── Card — estilo lukscalc-estimate-card ────────── */

.luks-lista-card{
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:14px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:all .2s ease;
}

.luks-lista-card:hover{
  background:#f9fdfc;
  border-color:#00524C;
}

/* Cabeçalho do card */
.luks-lista-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px 12px;
  gap:10px;
}

.luks-lista-card-inicial{
  width:40px;
  height:40px;
  border-radius:10px;
  background:#00524C;
  color:#fff;
  font-size:18px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  text-transform:uppercase;
}

.luks-lista-card-loc{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:13px;
  font-weight:600;
  color:#666;
  text-align:right;
}

.luks-lista-card-loc svg{
  width:11px;
  height:13px;
  color:#00524C;
  flex-shrink:0;
}

/* Separador interno */
.luks-lista-card-body{
  padding:4px 16px 12px;
  flex:1;
  border-top:1px solid #f0f0f0;
}


/* Endereço */
.luks-lista-card-endereco{
  font-size:12px;
  color:#7A7A7A;
  font-weight:400;
  line-height:1.5;
  margin:4px 0 0;
}

/* Telefone */
.luks-lista-card-fone{
  font-size:12px;
  color:#7A7A7A;
  font-weight:400;
  margin:4px 0 0;
}

/* Distância — aparece após busca por CEP (bloco duplicado removido) */

.luks-lista-card-dist svg{
  width:13px;
  height:13px;
  flex-shrink:0;
}

/* Ações do card */
.luks-lista-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:10px 16px 14px;
  border-top:1px solid #f0f0f0;
}

/* Botões dos cards — seguem padrão lukscalc-product-link */
html body .luks-lista-wrap .luks-lista-btn{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  padding:6px 12px !important;
  font-size:13px !important;
  font-weight:500 !important;
  line-height:1 !important;
  border-radius:8px !important;
  text-decoration:none !important;
  cursor:pointer !important;
  transition:all .2s ease !important;
  font-family:'Poppins', sans-serif !important;
}

html body .luks-lista-wrap .luks-lista-btn svg{
  width:13px !important;
  height:13px !important;
  flex-shrink:0 !important;
}

/* WhatsApp */
html body .luks-lista-wrap .luks-lista-btn--wa{
  background:#00524C !important;
  color:#fff !important;
  border:1px solid #00524C !important;
}
html body .luks-lista-wrap .luks-lista-btn--wa:hover{
  background:#006b63 !important;
  border-color:#006b63 !important;
  color:#fff !important;
}

/* Como chegar */
html body .luks-lista-wrap .luks-lista-btn--maps{
  background:#f5f5f5 !important;
  color:#333 !important;
  border:1px solid #e0e0e0 !important;
}
html body .luks-lista-wrap .luks-lista-btn--maps:hover{
  background:#eee !important;
  border-color:#d5d5d5 !important;
  color:#222 !important;
}

/* Site / Instagram */
html body .luks-lista-wrap .luks-lista-btn--icon{
  background:#f5f5f5 !important;
  color:#333 !important;
  border:1px solid #e0e0e0 !important;
}
html body .luks-lista-wrap .luks-lista-btn--icon:hover{
  background:#eee !important;
  border-color:#d5d5d5 !important;
  color:#222 !important;
}

/* ── Estado vazio ────────────────────────────────── */

.luks-lista-vazio{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px 20px;
  gap:14px;
  text-align:center;
}

.luks-lista-vazio svg{
  width:56px;
  height:56px;
  opacity:.4;
}

.luks-lista-vazio p{
  font-size:14px;
  color:#666;
  margin:0;
  line-height:1.5;
}

/* ── Mobile ──────────────────────────────────────── */

@media(max-width:767px){
  .luks-lista-filters{ padding:16px 16px 18px; border-radius:14px; }

  .luks-lista-filter-row{
    grid-template-columns:1fr;
  }

  .luks-lista-filter-row--cep{
    grid-template-columns:1fr;
  }

  .luks-lista-cep-wrap{ flex-direction:column; }
  .luks-lista-input--cep{ width:100% !important; }

  html body .luks-lista-wrap .luks-lista-cep-btn,
  html body .luks-lista-wrap .luks-lista-btn-limpar{
    width:100% !important;
    justify-content:center !important;
  }

  .luks-lista-grid{ grid-template-columns:1fr; }
}
