:root {--e2-green:#12633f;--e2-deep:#0e3e2e;--e2-ink:#18352b;--e2-muted:#5e6e65;--e2-border:#d9e7dd;--e2-soft:#f4f8f5;--e2-shadow:0 10px 28px rgba(14,61,37,.07)}
.es-catalog-v2{font-family:Inter,Arial,Helvetica,sans-serif;color:var(--e2-ink);background:linear-gradient(#fff,#f8fbf9);padding:0 0 64px}
.es-catalog-v2 *, .es-catalog-v2 *::before, .es-catalog-v2 *::after{box-sizing:border-box}
.es-catalog-v2 [hidden]{display:none!important}
.es-catalog-v2 a{text-decoration:none}
.es-catalog-container{width:min(1250px,calc(100% - 36px));margin:auto}
.es-catalog-hero{background:linear-gradient(115deg,#103e2e,#126a43);border-radius:0 0 30px 30px;padding:40px clamp(20px,5vw,60px) 33px;color:#fff}
.es-catalog-overline{font-size:11px;font-weight:800;letter-spacing:.11em;color:#bfe5cf}
.es-catalog-hero h1{font-size:clamp(32px,4.2vw,54px);line-height:1.06;max-width:800px;margin:14px 0;color:#fff;letter-spacing:-.035em}
.es-catalog-hero>p{font-size:clamp(15px,1.6vw,19px);line-height:1.6;color:#e0eee5;max-width:790px;margin:0 0 25px}
.es-catalog-searchbox{background:#fff;color:var(--e2-ink);border-radius:18px;padding:17px 19px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.es-catalog-search-label{display:block;font-weight:800;font-size:13px;margin:0 0 8px}
.es-catalog-searchinput-wrap{display:flex;align-items:center;gap:10px;border:1px solid #c5dbcb;border-radius:12px;padding:0 12px;color:#536b5b;background:#fafcfb}
.es-catalog-searchinput-wrap:focus-within{outline:3px solid rgba(34,149,81,.12);border-color:#3c9c64}
.es-catalog-searchinput-wrap input{min-width:0;flex:1;height:51px;background:transparent;font:inherit;font-size:15px;border:0;outline:none;color:#1c392a}
.es-catalog-searchinput-wrap button{border:0;border-radius:8px;background:#e4f2e8;color:#135c35;font-weight:750;padding:8px 11px;cursor:pointer}
.es-catalog-search-hint{font-size:12px;color:#657569;margin:8px 0 0}
.es-catalog-metrics{display:flex;gap:23px;flex-wrap:wrap;margin-top:16px;font-size:13px;color:#d6e8dc}
.es-catalog-metrics strong{font-size:18px;color:white;margin-right:5px}
.es-catalog-tools{padding:22px 0 5px;display:flex;gap:20px;justify-content:space-between;align-items:center}
.es-catalog-tools-label{font-size:13px;font-weight:800;white-space:nowrap;color:#284734}
.es-catalog-filters{display:flex;flex-wrap:wrap;gap:7px}
.es-catalog-filter{background:#fff;border:1px solid var(--e2-border);padding:9px 12px;border-radius:30px;color:#3b5546;font:inherit;font-size:12px;font-weight:700;line-height:1.25;cursor:pointer}
.es-catalog-filter:hover,.es-catalog-filter:focus-visible{border-color:#609d74}
.es-catalog-filter.is-active{background:var(--e2-green);border-color:var(--e2-green);color:#fff}
.es-catalog-overview{padding:32px 0 34px}
.es-catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}
.es-catalog-kicker{font-size:11px;letter-spacing:.12em;font-weight:850;color:var(--e2-green)}
.es-catalog-heading h2{font-size:clamp(25px,2.7vw,35px);line-height:1.15;letter-spacing:-.025em;margin:5px 0;color:#0f4230}
.es-catalog-heading p{font-size:14px;color:var(--e2-muted);max-width:310px;margin:0}
.es-catalog-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.es-catalog-tile{position:relative;overflow:hidden;min-height:174px;border-radius:16px;background:#d3e3d9;display:flex;align-items:end;box-shadow:var(--e2-shadow);isolation:isolate}
.es-catalog-tile img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .25s}
.es-catalog-tile::after{content:"";position:absolute;inset:35% 0 0;z-index:-1;background:linear-gradient(transparent,rgba(3,28,17,.86))}
.es-catalog-tile:hover img{transform:scale(1.055)}
.es-catalog-tile:focus-visible{outline:3px solid #3fa76c;outline-offset:3px}
.es-catalog-tile-info{padding:18px 12px 12px;display:flex;flex-direction:column;gap:3px;color:white;width:100%;line-height:1.2}
.es-catalog-tile-info strong{font-size:13px;color:#fff}
.es-catalog-tile-info small{font-size:11px;color:#d8f0e0}
.es-catalog-index{padding:8px 0 20px}
.es-catalog-index-head{margin-bottom:15px}
.es-catalog-count{font-size:12px;font-weight:800;color:var(--e2-green);background:#e8f4eb;padding:10px 14px;border-radius:20px;white-space:nowrap}
.es-catalog-empty,.es-catalog-error{background:#fff7e8;padding:20px;border:1px solid #f0cf8e;border-radius:14px;margin-bottom:15px;color:#73531d}
.es-catalog-department{background:#fff;border:1px solid var(--e2-border);border-radius:20px;margin:0 0 18px;overflow:hidden;box-shadow:var(--e2-shadow);scroll-margin-top:20px}
.es-catalog-dept-header{background:#f4f9f5;padding:20px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--e2-border)}
.es-catalog-dept-header>img{width:135px;height:110px;flex:0 0 135px;object-fit:cover;border-radius:13px;background:#d8e8df}
.es-catalog-dept-heading{flex:1;min-width:0}
.es-catalog-overline-light{display:block;font-size:10px;font-weight:850;letter-spacing:.075em;color:#376c4e}
.es-catalog-dept-heading h3{font-size:clamp(19px,2vw,26px);line-height:1.15;margin:6px 0;color:#103e2c}
.es-catalog-dept-heading p{font-size:13px;line-height:1.5;color:#5b7060;margin:0 0 7px}
.es-catalog-dept-link{display:inline-block;font-size:13px;font-weight:800;color:#146d3d!important;text-decoration:underline!important;text-underline-offset:3px}
.es-catalog-dept-count{flex:0 0 auto;font-size:12px;font-weight:800;color:#226b43;background:#e0f1e5;padding:8px 11px;border-radius:40px}
.es-catalog-groupgrid{padding:23px 25px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 40px}
.es-catalog-group h4{font-size:15px;margin:0 0 11px;color:#183b2a;line-height:1.35;font-weight:850}
.es-catalog-folder{color:#478a5f;font-size:17px;margin-right:5px}
.es-catalog-group ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.es-catalog-group li a{display:flex;align-items:flex-start;gap:9px;color:#33473b;font-size:13px;line-height:1.5;padding:2px 0}
.es-catalog-chevron{color:#0c9451;font-size:20px;line-height:1;flex:none}
.es-catalog-group li a:hover{color:#087338;text-decoration:underline}
.es-catalog-group li a:focus-visible{outline:2px solid #31a260;border-radius:3px}
.es-catalog-dept-footer{border-top:1px solid #edf2ee;padding:13px 25px;text-align:right}
.es-catalog-dept-footer a{color:#387552;font-size:12px;font-weight:800}
.es-catalog-cta{background:linear-gradient(115deg,#e6f4ec,#f7fbf8);border:1px solid #cfe6d7;border-radius:20px;padding:30px;display:flex;gap:28px;align-items:center;justify-content:space-between;margin-top:25px}
.es-catalog-cta h2{font-size:clamp(23px,2.5vw,31px);color:#103e2c;margin:7px 0}
.es-catalog-cta p{color:#52685a;font-size:14px;line-height:1.6;max-width:750px;margin:0}
.es-catalog-cta>a{white-space:nowrap;display:inline-block;background:#117441;color:white!important;font-size:13px;font-weight:850;padding:15px 21px;border-radius:14px}
.es-catalog-contact{margin:30px auto 0;max-width:750px;border:1px solid var(--e2-border);border-radius:18px;overflow:hidden;background:white}
@media(max-width:1100px){.es-catalog-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.es-catalog-tile{min-height:165px}}
@media(max-width:800px){.es-catalog-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.es-catalog-tools{align-items:flex-start;flex-direction:column;gap:10px}.es-catalog-dept-header{flex-wrap:wrap}.es-catalog-dept-count{margin-left:auto}.es-catalog-heading{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:620px){.es-catalog-container{width:min(100% - 20px,1250px)}.es-catalog-hero{border-radius:0 0 20px 20px;padding:27px 18px}.es-catalog-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.es-catalog-tile{min-height:155px}.es-catalog-groupgrid{grid-template-columns:1fr;padding:18px;gap:20px}.es-catalog-dept-header{padding:16px;gap:12px}.es-catalog-dept-header>img{width:80px;height:85px;flex-basis:80px}.es-catalog-dept-count{font-size:11px}.es-catalog-dept-footer{padding:12px 18px}.es-catalog-cta{flex-direction:column;align-items:flex-start;padding:22px}.es-catalog-cta>a{white-space:normal;text-align:center}.es-catalog-filters{overflow-x:auto;flex-wrap:nowrap;max-width:100%;padding-bottom:6px}.es-catalog-filter{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.es-catalog-tile img{transition:none}}

/* ================================================================
   CATÁLOGO V2.3 — Duas colunas: índice + formulário original
   Desktop: catálogo à esquerda (cards menores); formulário à direita.
   Mobile: formulário depois das capas e antes da listagem completa.
   Sem alterar o HTML, o envio ou os campos de inc/form-cat.php.
   ================================================================ */
.es-catalog-main-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 318px;
  grid-template-areas:
    "overview sidebar"
    "index sidebar"
    "cta sidebar";
  align-items: start;
  column-gap: 25px;
}
.es-catalog-overview { grid-area: overview; min-width: 0; }
.es-catalog-index { grid-area: index; min-width: 0; }
.es-catalog-cta { grid-area: cta; min-width: 0; }
.es-catalog-sidebar { grid-area: sidebar; min-width: 0; padding-top: 32px; }
/* Conserva o formulário verdadeiro do site, evitando qualquer novo formulário. */
.es-catalog-sidebar .es-catalog-contact {
  width: 100%;
  max-width: none;
  margin: 0;
  border: 1px solid var(--e2-border);
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--e2-shadow);
}
.es-catalog-sidebar .es-catalog-contact > * { max-width: 100%; }
/* Cards de capa um pouco menores; continuam clicáveis. */
.es-catalog-main-layout .es-catalog-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.es-catalog-main-layout .es-catalog-tile { min-height: 158px; }
/* Listas com boa legibilidade mesmo ao lado do formulário. */
.es-catalog-main-layout .es-catalog-groupgrid { column-gap: 22px; padding: 21px; }
.es-catalog-main-layout .es-catalog-dept-header { gap: 12px; padding: 17px; }
.es-catalog-main-layout .es-catalog-dept-header > img { width: 96px; height: 92px; flex-basis: 96px; }
.es-catalog-main-layout .es-catalog-dept-count { font-size: 11px; }
/* Nesta largura, a coluna de produtos usa duas capas e uma lista por linha. */
@media(max-width: 1130px) and (min-width: 901px) {
  .es-catalog-main-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; }
  .es-catalog-main-layout .es-catalog-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .es-catalog-main-layout .es-catalog-groupgrid { grid-template-columns: 1fr; }
  .es-catalog-main-layout .es-catalog-dept-count { display: none; }
}
@media(max-width: 900px) {
  .es-catalog-main-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "overview"
      "sidebar"
      "index"
      "cta";
  }
  .es-catalog-sidebar { padding-top: 0; margin-bottom: 20px; }
  .es-catalog-sidebar .es-catalog-contact { max-width: 600px; margin: 0 auto; }
  .es-catalog-main-layout .es-catalog-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media(max-width: 620px) {
  .es-catalog-main-layout .es-catalog-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .es-catalog-main-layout .es-catalog-tile { min-height: 150px; }
  .es-catalog-main-layout .es-catalog-groupgrid { grid-template-columns: 1fr; padding: 17px; }
}
/* Exibido apenas na prévia HTML: o servidor usa inc/form-cat.php. */
.es-catalog-preview-note { padding: 9px 15px; background: #fff7e4; color: #87581c; font-size: 12px; line-height: 1.45; border-bottom: 1px solid #f1dfb7; }
.es-catalog-preview-form { padding: 20px; display: grid; gap: 15px; font-family: inherit; }
.es-catalog-preview-form h2 { font-size: 22px; margin: 0; text-align: center; color: #173927; }
.es-catalog-preview-form p { font-size: 13px; line-height: 1.6; text-align: center; color: #4c6355; margin: 0; }
.es-catalog-preview-form label { display: grid; gap: 6px; font-size: 13px; font-weight: 700; color: #20392a; }
.es-catalog-preview-form input, .es-catalog-preview-form textarea, .es-catalog-preview-form select { display: block; width: 100%; min-width: 0; padding: 12px 13px; font: inherit; font-size: 13px; color: #68746d; border: 1px solid #d9e3dc; border-radius: 10px; background: #f8faf9; }
.es-catalog-preview-form textarea { min-height: 90px; }
.es-catalog-preview-submit { width: 100%; border: none; border-radius: 11px; padding: 13px; background: #126a43; color: #fff; font: inherit; font-weight: 800; opacity: .68; cursor: not-allowed; }

/* ================================================================
   CATÁLOGO V2.4 — Menu flutuante de navegação e busca
   Escopo exclusivo da página; não altera header, footer ou formulário.
   ================================================================ */
.es-catalog-v2 .es-cat-nav-floating {
  position:fixed; left:22px; bottom:24px; z-index:2147482902;
  display:flex; gap:8px; align-items:center; font-family:inherit;
}
.es-catalog-v2 .es-cat-nav-floating button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:48px; cursor:pointer; font:inherit; font-weight:800;
  box-shadow:0 9px 30px rgba(8,48,27,.26);
  border:1px solid rgba(255,255,255,.45);
}
.es-catalog-v2 .es-cat-nav-toggle { border-radius:999px; padding:0 17px; background:#12633f; color:#fff; font-size:13px; }
.es-catalog-v2 .es-cat-nav-quick { width:48px; padding:0; border-radius:50%; background:#fff; color:#125a39; }
.es-catalog-v2 .es-cat-nav-floating button:hover { filter:brightness(1.06); }
.es-catalog-v2 .es-cat-nav-floating button:focus-visible,
.es-catalog-v2 .es-cat-nav-panel :is(a,button,input):focus-visible { outline:3px solid #39ad70; outline-offset:3px; }
.es-catalog-v2 .es-cat-nav-backdrop {
  position:fixed; inset:0; z-index:2147482903; background:rgba(7,27,17,.43);
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
.es-catalog-v2 .es-cat-nav-panel {
  position:fixed; left:22px; bottom:83px; width:min(405px,calc(100vw - 44px));
  max-height:min(78dvh,700px); display:flex; flex-direction:column;
  z-index:2147482904; background:white; color:#17392a;
  border-radius:19px; border:1px solid #d5e5da;
  box-shadow:0 22px 70px rgba(5,34,17,.32); overflow:hidden;
  font-family:Inter,Arial,Helvetica,sans-serif;
}
.es-catalog-v2 .es-cat-nav-header {
  flex:none; padding:17px 18px 14px; display:flex; justify-content:space-between;
  align-items:start; gap:12px; background:#f0f8f3; border-bottom:1px solid #ddebe1;
}
.es-catalog-v2 .es-cat-nav-header>div>span { color:#2c7650; font-size:10px; font-weight:850; letter-spacing:.08em; }
.es-catalog-v2 .es-cat-nav-header h2 { margin:4px 0 0; color:#103f2b; font-size:21px; line-height:1.2; }
.es-catalog-v2 .es-cat-nav-close {
  border:1px solid #d2e5d8; border-radius:10px; background:#fff; color:#29553a;
  font-size:25px; font-weight:400; cursor:pointer; width:38px; height:38px; line-height:1;
}
.es-catalog-v2 .es-cat-nav-search { padding:15px 17px 11px; flex:none; }
.es-catalog-v2 .es-cat-nav-search label { display:block; margin-bottom:7px; color:#314e3d; font-size:12px; font-weight:800; }
.es-catalog-v2 .es-cat-nav-search-wrap { display:flex; align-items:center; gap:9px; padding:0 12px; border:1px solid #cbded1; border-radius:11px; background:#fcfefd; }
.es-catalog-v2 .es-cat-nav-search-wrap svg { color:#568469; flex:none; }
.es-catalog-v2 .es-cat-nav-search input { width:100%; min-width:0; height:43px; padding:0; border:0; background:transparent; font:inherit; font-size:13px; outline:none; color:#244735; }
.es-catalog-v2 .es-cat-nav-scroll-area { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 16px 15px; }
.es-catalog-v2 .es-cat-nav-subtitle { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:3px 2px 9px; font-weight:850; font-size:12px; color:#52705d; }
.es-catalog-v2 .es-cat-nav-subtitle span { padding:3px 7px; border-radius:20px; background:#e7f2eb; color:#12633f; }
.es-catalog-v2 .es-cat-nav-dept-list,
.es-catalog-v2 .es-cat-nav-result-list { padding:0; margin:0; list-style:none; }
.es-catalog-v2 .es-cat-nav-dept-list li + li,
.es-catalog-v2 .es-cat-nav-result-list li + li { border-top:1px solid #edf3ee; }
.es-catalog-v2 .es-cat-nav-dept-link,
.es-catalog-v2 .es-cat-nav-result-link { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 9px; color:#1d4731; border-radius:8px; font-size:13px; line-height:1.35; }
.es-catalog-v2 .es-cat-nav-dept-link:hover,
.es-catalog-v2 .es-cat-nav-result-link:hover { background:#edf7f1; }
.es-catalog-v2 .es-cat-nav-dept-link small { background:#e7f3e9; color:#217044; padding:4px 7px; border-radius:15px; font-size:11px; font-weight:800; }
.es-catalog-v2 .es-cat-nav-result-link { align-items:start; }
.es-catalog-v2 .es-cat-nav-result-link span { flex:1; }
.es-catalog-v2 .es-cat-nav-result-link small { display:block; margin-top:3px; font-size:11px; color:#718777; }
.es-catalog-v2 .es-cat-nav-see-all { display:block; width:100%; margin-top:12px; border:1px solid #c9e2d0; border-radius:10px; background:#eef8f0; color:#12633f; padding:11px; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.es-catalog-v2 .es-cat-nav-no-results { padding:12px 7px; font-size:12px; color:#6d766e; line-height:1.5; }
.es-catalog-v2 .es-cat-nav-footer { display:flex; justify-content:space-between; gap:8px; padding:12px 17px; border-top:1px solid #dcebe0; flex:none; }
.es-catalog-v2 .es-cat-nav-footer a { font-size:12px; font-weight:800; color:#12633f; padding:7px 2px; }
.es-catalog-v2 .es-cat-nav-footer a:hover { text-decoration:underline; }
body.es-cat-nav-lock { overflow:hidden; }
@media(max-width:620px) {
  .es-catalog-v2 .es-cat-nav-floating { left:12px; bottom:calc(90px + env(safe-area-inset-bottom,0px)); }
  .es-catalog-v2 .es-cat-nav-floating button { height:44px; }
  .es-catalog-v2 .es-cat-nav-toggle { padding:0 14px; font-size:12px; }
  .es-catalog-v2 .es-cat-nav-quick { width:44px; }
  .es-catalog-v2 .es-cat-nav-panel {
    left:10px; right:10px; width:auto;
    bottom:calc(146px + env(safe-area-inset-bottom,0px));
    max-height:min(70dvh,650px); border-radius:16px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .es-catalog-v2 .es-cat-nav-floating button { transition:none; }
}
