/* Euroflorina — estilos aislados al shortcode de catálogo */
.efcat-shop, .efcat-shop * { box-sizing: border-box; }
/* Ocupa el ancho disponible de la ventana incluso dentro de las filas estrechas de Divi.
   Se centra con margen calculado para evitar barras horizontales de desplazamiento. */
.efcat-shop { font-family: inherit; font-size: 15px; color: #191919; width: min(1660px, calc(100vw - 64px)); max-width: none; padding: 44px clamp(16px,2.2vw,34px) 90px; margin-left: calc((100% - min(1660px, calc(100vw - 64px))) / 2); margin-right: 0; background: #fff; }

.efcat-shop a { text-decoration: none; transition: color .2s ease, border-color .2s ease; }
.efcat-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; padding: 0 0 38px; }
.efcat-eyebrow { font: 700 11px/1.5 Arial,sans-serif; color: #737373; letter-spacing: .19em; margin: 0 0 12px; }
.efcat-header h2 { font-family: Georgia,'Times New Roman',serif; font-weight: 400; font-size: clamp(34px,3.3vw,50px); line-height: 1.12; margin: 0 0 14px; color: #111; }
.efcat-lead { margin: 0; font-size: 15px; color: #646464; }
.efcat-summary-number { font: 500 28px/1.2 Arial,sans-serif; white-space: nowrap; color: #111; padding-bottom: 4px; }
.efcat-summary-number span { font-size: 12px; color: #888; text-transform: uppercase; letter-spacing: .06em; }
.efcat-layout { display: grid; grid-template-columns: minmax(215px, 250px) minmax(0,1fr); gap: clamp(26px,2.5vw,44px); border-top: 1px solid #e5e5e5; padding-top: 28px; }
.efcat-sidebar { min-width: 0; align-self: start; position: sticky; top: 115px; }
.efcat-sidebar > summary { display: none; }
.efcat-sidebar-title { font: 700 12px/1.5 Arial,sans-serif; letter-spacing: .13em; margin: 4px 0 19px; }
.efcat-all { display:flex;justify-content:space-between;align-items:center;gap:8px; padding: 12px 9px; border-bottom: 1px solid #ececec; font: 600 14px/1.5 Arial,sans-serif; color:#333; }
.efcat-all.is-active,.efcat-all:hover { color:#080808; background:#f4f4f4; }
.efcat-categories { margin:0!important; padding:0!important; list-style:none!important; }
.efcat-categories li { list-style:none!important; margin:0!important; padding:0!important; }
.efcat-category-item > a { display:flex; justify-content:space-between; align-items:baseline; gap:10px; color:#535353; border-bottom:1px solid #eee; font:400 13px/1.4 Arial,sans-serif; padding:12px 9px; }
.efcat-category-item > a span:first-child {min-width:0;}
.efcat-category-item > a:hover,.efcat-category-item.is-active > a { background:#f5f5f5; color:#101010; font-weight:600; }
.efcat-category-count {color:#aaa; font-size:11px; white-space:nowrap; }
.efcat-level-1 > li > a { padding-left:24px; font-size:12px; }
.efcat-level-2 > li > a { padding-left:34px; font-size:12px; }
.efcat-level-3 > li > a { padding-left:42px; font-size:12px; }
.efcat-clear { display:inline-block; font:600 12px/1.4 Arial,sans-serif; border-bottom:1px solid #171717; color:#171717; padding-bottom:5px; margin-top:24px; }
.efcat-main { min-width:0; }
.efcat-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin-bottom:22px; }
.efcat-search { display:flex; align-items:stretch; min-width:210px; flex: 1 1 300px; max-width:520px; margin:0!important; }
.efcat-search input[type=search] { min-width:0; width:100%; background:#f8f8f8; color:#202020; border:1px solid #dedede; border-right:0; border-radius:0; font:400 13px/1.4 Arial,sans-serif; height:45px; padding:0 13px; box-shadow:none; }
.efcat-search input:focus { outline:1px solid #333; outline-offset:-1px; }
.efcat-search button { margin:0!important; background:#101010!important; color:#fff!important; border:1px solid #101010!important; border-radius:0!important; font:600 11px/1.3 Arial,sans-serif!important; letter-spacing:.045em; text-transform:uppercase; padding:0 18px!important; cursor:pointer; }
.efcat-sort-form { display:flex; align-items:center; gap:8px; margin:0!important; }
.efcat-sort-form label { font:400 12px Arial,sans-serif; color:#777; white-space:nowrap; }
.efcat-sort-form select { width:auto; min-width:148px; height:45px; border:1px solid #dedede; border-radius:0; background-color:#fff; color:#242424; padding:0 9px; font:400 12px Arial,sans-serif; }
.efcat-status {display:flex; justify-content:space-between; align-items:center; gap:12px; font:400 12px/1.4 Arial,sans-serif; color:#858585; padding-bottom:18px; }
.efcat-status span:first-child {color:#333; font-weight:600;}
.efcat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:43px 25px; }
.efcat-product { min-width:0; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
.efcat-product-image { width:100%; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#fafafa; border:1px solid #f0f0f0; }
.efcat-product-image img { width:100%!important; height:100%!important; max-width:none!important; max-height:none!important; object-fit:contain!important; display:block; margin:0!important; padding:4px; box-shadow:none; transition:transform .32s ease; }
.efcat-product-image:hover img {transform:scale(1.035);}
.efcat-product-details { padding:14px 2px 8px; }
.efcat-product-details h3 {font:600 15px/1.5 Arial,sans-serif!important; min-height:45px; margin:0 0 6px!important; letter-spacing:.005em; text-transform:none;}
.efcat-product-details h3 a {color:#171717;}
.efcat-product-details h3 a:hover {color:#737373;}
.efcat-sku {font:400 11px/1.4 Arial,sans-serif!important;color:#8c8c8c; margin:0 0 9px!important;}
.efcat-price {font:600 14px Arial,sans-serif;margin:10px 0; color:#111;}
.efcat-signin {font:400 12px/1.6 Arial,sans-serif; color:#6b6b6b; border-bottom:1px solid #d5d5d5;}
.efcat-signin:hover {color:#080808; border-color:#111;}
.efcat-product-link {display:inline-block; font:600 11px/1.4 Arial,sans-serif;color:#111; padding-bottom:3px;border-bottom:1px solid #111;text-transform:uppercase;letter-spacing:.045em;}
.efcat-empty {padding:70px 28px; text-align:center; background:#f8f8f8;}
.efcat-empty h3 {font:400 28px Georgia,serif; margin:0 0 12px;}
.efcat-empty p {font:400 14px Arial,sans-serif; color:#777; margin-bottom:20px;}
.efcat-empty a {font:600 12px Arial,sans-serif; color:#111; border-bottom:1px solid #111;}
.efcat-pagination {margin:54px 0 0;}
.efcat-pagination ul {display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0!important;padding:0!important;list-style:none!important;}
.efcat-pagination li {list-style:none!important;margin:0!important;padding:0!important;}
.efcat-pagination a,.efcat-pagination span {display:flex;align-items:center;justify-content:center; min-width:38px;height:38px;padding:0 10px;background:#fff;border:1px solid #ddd;color:#191919;font:500 12px Arial,sans-serif;}
.efcat-pagination .current,.efcat-pagination a:hover {background:#111;border-color:#111;color:#fff;}
@media (min-width:768px) and (max-width:1300px) { .efcat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 22px;} }
@media(max-width:1150px) { .efcat-shop{width:calc(100vw - 40px);margin-left:calc((100% - (100vw - 40px)) / 2);} .efcat-layout{grid-template-columns:210px minmax(0,1fr);gap:25px;} .efcat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px;} }
@media(max-width:767px){ .efcat-shop{width:calc(100vw - 24px);margin-left:calc((100% - (100vw - 24px)) / 2);padding:30px 14px 56px;} .efcat-header{padding-bottom:22px;} .efcat-summary-number{font-size:19px;} .efcat-summary-number span{font-size:10px;} .efcat-layout{display:block;padding-top:15px;} .efcat-sidebar{position:static;margin-bottom:22px;border:1px solid #ddd;} .efcat-sidebar > summary{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;font:700 12px Arial,sans-serif;letter-spacing:.07em;cursor:pointer;list-style:none;} .efcat-sidebar > summary::-webkit-details-marker{display:none;} .efcat-sidebar-content{padding:0 14px 15px;max-height:60vh;overflow-y:auto;} .efcat-sidebar-title{display:none;} .efcat-toolbar{gap:10px;} .efcat-search{max-width:none;flex-basis:100%;} .efcat-sort-form{justify-content:flex-end;width:100%;} .efcat-product-image{aspect-ratio:1/1;} }
@media(max-width:480px){ .efcat-header{align-items:flex-start;} .efcat-header h2{font-size:34px;} .efcat-lead{font-size:13px;}.efcat-summary-number{display:none;} .efcat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px;} .efcat-product-details{padding-top:10px;} .efcat-product-details h3{font-size:11px!important;line-height:1.4;min-height:44px;} .efcat-product-image img{padding:4px;} .efcat-signin{font-size:10px;} .efcat-status{font-size:11px;} .efcat-search button{padding:0 13px!important;} }

/* v1.2 — selección múltiple de categorías, estilo Euroflorina */
.efcat-filter-form { margin: 0!important; }
.efcat-filter-help { font: 400 12px/1.5 Arial,sans-serif; color: #777; margin: -8px 0 11px!important; }
.efcat-category-item > .efcat-checkbox-row {
  display: flex; align-items: center; gap: 10px; min-height: 43px;
  padding: 10px 9px; border-bottom: 1px solid #ececec;
  cursor: pointer; color: #454545; font: 400 13px/1.45 Arial,sans-serif;
  transition: background .18s ease, color .18s ease;
}
.efcat-category-item > .efcat-checkbox-row:hover { background: #f7f7f7; color: #101010; }
.efcat-category-item.is-active > .efcat-checkbox-row { background: #f3f3f3; color: #101010; font-weight: 600; }
.efcat-checkbox-row input[type="checkbox"] {
  appearance: auto; -webkit-appearance: checkbox; flex: 0 0 16px;
  width: 16px!important; height: 16px!important; min-width: 16px;
  padding: 0!important; margin: 0!important; accent-color: #171717;
  cursor: pointer; border-radius: 2px; box-shadow: none;
}
.efcat-checkbox-row input:focus-visible { outline: 2px solid #161616; outline-offset: 3px; }
.efcat-term-name { flex: 1; min-width: 0; }
.efcat-checkbox-row .efcat-category-count { margin-left: auto; }
.efcat-level-1 > li > .efcat-checkbox-row { padding-left: 22px; font-size: 12px; }
.efcat-level-2 > li > .efcat-checkbox-row { padding-left: 34px; font-size: 12px; }
.efcat-level-3 > li > .efcat-checkbox-row { padding-left: 42px; font-size: 12px; }
.efcat-filter-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; padding: 20px 0 6px; }
.efcat-apply {
  display: block; min-height: 44px; width: 100%; border: 1px solid #111!important; border-radius: 0!important;
  background: #111!important; color: #fff!important; cursor: pointer;
  font: 700 11px/1.3 Arial,sans-serif!important; letter-spacing: .07em; text-transform: uppercase;
  padding: 13px 14px!important; transition: background .2s ease;
}
.efcat-apply:hover { background: #333!important; }
.efcat-filter-actions .efcat-clear { align-self: flex-start; margin: 0 0 0 2px!important; }
.efcat-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: -5px 0 20px; }
.efcat-filter-chip {
  display: inline-flex; align-items: center; gap: 9px;
  background: #f3f3f3; border: 1px solid #e8e8e8;
  padding: 7px 10px; color: #333; font: 400 12px/1.3 Arial,sans-serif;
}
.efcat-filter-chip:hover { color: #000; background: #e9e9e9; }
.efcat-filter-chip span { font-size: 16px; line-height: 1; }
@media (max-width: 767px) {
  .efcat-filter-actions { position: sticky; bottom: 0; background: #fff; padding-top: 12px; padding-bottom: 12px; }
  .efcat-filter-help { margin-top: 3px!important; }
}
