.cdc-page:has(.cm-workshops) {
  max-width: 1240px;
  padding-top: 0;
}
.cdc-page:has(.cm-workshops) > h1 { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cm-workshops { --cm-green:#123f35; --cm-green-2:#0d715a; --cm-orange:#f1763f; --cm-cream:#f7f2e8; color:#17231f; }
.cm-workshops__hero {
  margin: 0 -1rem 1.5rem;
  padding: 1.25rem clamp(1.1rem,3vw,2rem);
  color:#fff;
  background:
    radial-gradient(circle at 85% 25%,rgba(241,118,63,.42),transparent 28%),
    linear-gradient(125deg,#092e28,#174d3f 62%,#213c2e);
  border-radius: 0 0 16px 16px;
}
.cm-workshops__eyebrow { color:#ffad78; font-weight:800; letter-spacing:.09em; text-transform:uppercase; font-size:.78rem; }
.cm-workshops__hero h2 { max-width:none; margin:.3rem 0 .3rem; font-size:clamp(1.45rem,2.4vw,2rem); line-height:1.15; color:#fff; letter-spacing:-.025em; }
.cm-workshops__hero p { max-width:900px; margin:0; color:rgba(255,255,255,.82); font-size:.92rem; line-height:1.45; }
.cm-workshops__filters { display:grid; grid-template-columns:minmax(190px,1fr) minmax(135px,.6fr) minmax(130px,.5fr) auto auto; gap:.75rem; align-items:end; padding:1rem; margin:0 0 1rem; background:#fff; border:1px solid #dfe7e2; border-radius:16px; box-shadow:0 12px 34px rgba(18,63,53,.08); }
.cm-workshops__filters label { min-width:0; }
.cm-workshops__help { color:#52675e; font-size:.84rem; line-height:1.5; }
.cm-workshops__error { padding:1rem; border-left:4px solid #b03e19; background:#fff0e9; color:#7b2b12; }
.cm-workshop-card__distance { color:var(--cm-green); font-size:1.15rem; font-weight:800; margin:.6rem 0; }
.cm-workshop-card__distance small { display:block; font-size:.75rem; font-weight:400; color:#52675e; }
.cm-workshops__expand,.cm-workshops__pagination { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin:1rem 0; }
.cm-workshops__expand a,.cm-workshops__pagination .page-numbers { border:1px solid #bfcfc8; padding:.6rem .8rem; border-radius:8px; text-decoration:none; color:var(--cm-green); background:#fff; }
.cm-workshops__pagination .current { background:var(--cm-green); color:white; }
@media (min-width:761px) and (max-width:1050px) { .cm-workshops__filters { grid-template-columns:1fr 1fr 1fr; } }
.cm-workshops__filters label span { display:block; margin:0 0 .35rem; font-size:.78rem; font-weight:800; color:#34524a; }
.cm-workshops__filters select,.cm-workshops__filters input { width:100%; min-height:46px; padding:.65rem .8rem; border:1px solid #bfcfc8; border-radius:9px; background:#fff; font:inherit; }
.cm-workshops__filters button,.cm-workshops__clear { min-height:46px; display:inline-flex; align-items:center; justify-content:center; padding:.65rem 1rem; border:0; border-radius:9px; font-weight:800; text-decoration:none; cursor:pointer; }
.cm-workshops__filters button { color:#fff; background:var(--cm-orange); }
.cm-workshops__clear { color:var(--cm-green); background:#edf4f1; }
.cm-workshops__count { margin:1rem 0; color:#5d6d66; font-size:.9rem; }
.cm-workshops__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:1.25rem; padding-bottom:3rem; }
.cm-workshop-card { position:relative; overflow:hidden; max-width:100%; background:#fff; border:1px solid #dfe7e2; border-radius:18px; box-shadow:0 10px 28px rgba(20,48,40,.08); transition:box-shadow .18s, transform .18s; cursor:pointer; }
.cm-workshop-card:hover { box-shadow:0 16px 36px rgba(20,48,40,.14); transform:translateY(-2px); }
.cm-workshop-card__banner { height:158px; background:linear-gradient(135deg,#123f35,#29705d); overflow:hidden; }
.cm-workshop-card__banner img { width:100%; height:100%; object-fit:cover; display:block; max-width:100%; }
.cm-workshop-card__body { padding:1.15rem; min-width:0; overflow-wrap:anywhere; }
.cm-workshop-card__heading { display:flex; gap:.85rem; align-items:center; margin-bottom:.8rem; }
.cm-workshop-card__logo { width:64px; height:64px; object-fit:contain; padding:5px; background:#fff; border:1px solid #dfe7e2; border-radius:12px; flex:0 0 auto; }
.cm-workshop-card h3 { margin:0; color:var(--cm-green); font-size:1.2rem; line-height:1.2; }
.cm-workshop-card__location { margin:.2rem 0 0; color:#60736b; font-size:.86rem; }
.cm-workshop-card__services { display:flex; flex-wrap:wrap; gap:.4rem; margin:.7rem 0; max-width:100%; }
.cm-workshop-card__services span { padding:.28rem .55rem; border-radius:999px; color:#1d5e4d; background:#eaf4f0; font-size:.72rem; font-weight:700; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cm-workshop-card__vehicles,.cm-workshop-card__hours { margin:.65rem 0; color:#53665e; font-size:.84rem; }
.cm-workshop-card__text { color:#485b53; line-height:1.55; }
.cm-workshop-card__specialties { margin:.65rem 0; padding:.7rem .8rem; color:#354b42; background:#f7f2e8; border-radius:9px; font-size:.84rem; line-height:1.45; }
.cm-workshop-card__features { display:flex; flex-wrap:wrap; gap:.35rem .7rem; margin:.7rem 0; color:#1d5e4d; font-size:.76rem; font-weight:700; }
.cm-workshop-card__actions { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1rem; align-items:center; max-width:100%; }
.cm-workshop-card__actions a,button.cm-workshop-card__cta { display:inline-flex; align-items:center; justify-content:center; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:.45rem .6rem; color:#fff; background:var(--cm-green-2); border:0; border-radius:8px; font-size:.75rem; font-weight:800; text-decoration:none; cursor:pointer; font-family:inherit; }
.cm-workshop-card__cta { background:var(--cm-orange); }
.cm-workshop-card__actions a:last-child { background:var(--cm-orange); }
.cm-workshop-card__catalog { background:var(--cm-green) !important; }
.cm-workshops__empty { grid-column:1/-1; padding:2.5rem; text-align:center; background:var(--cm-cream); border-radius:18px; }
.cm-workshops__empty h3 { margin:0 0 .4rem; color:var(--cm-green); }
.cm-workshops__empty p { margin:0; }

/* Modal ficha taller */
.cm-workshop-modal {
  --cm-green:#123f35; --cm-green-2:#0d715a; --cm-orange:#f1763f; --cm-cream:#f7f2e8;
  max-width:720px; width:min(92vw,720px); max-height:88vh;
  color:#17231f;
}
.cm-workshop-modal .cdc-modal__body { overflow-y:auto; max-height:calc(88vh - 64px); }
.cm-workshop-modal__body { padding-bottom:1.5rem; }
.cm-workshop-modal__banner { margin:0 -1.25rem 1rem; overflow:hidden; background:linear-gradient(135deg,#123f35,#29705d); }
.cm-workshop-modal__banner img { width:100%; max-height:160px; object-fit:cover; display:block; }
.cm-workshop-modal__heading { display:flex; gap:.9rem; align-items:center; margin-bottom:.75rem; }
.cm-workshop-modal__logo { width:72px; height:72px; object-fit:contain; padding:6px; background:#fff; border:1px solid #dfe7e2; border-radius:12px; flex:0 0 auto; }
.cm-workshop-modal__title { margin:0; color:var(--cm-green); font-size:1.3rem; font-weight:800; line-height:1.2; }
.cm-workshop-modal__location { margin:.2rem 0 0; color:#60736b; font-size:.9rem; }
.cm-workshop-modal__distance { margin:.35rem 0 0; color:var(--cm-green); font-weight:800; font-size:1.05rem; }
.cm-workshop-modal__services { display:flex; flex-wrap:wrap; gap:.4rem; margin:.75rem 0; }
.cm-workshop-modal__services span { padding:.3rem .6rem; border-radius:999px; color:#1d5e4d; background:#eaf4f0; font-size:.75rem; font-weight:700; }
.cm-workshop-modal__text { margin:.5rem 0; color:#485b53; line-height:1.55; font-size:.95rem; }
.cm-workshop-modal__desc { color:#354b42; font-size:.9rem; line-height:1.55; }
.cm-workshop-modal__desc:empty { display:none; }
.cm-workshop-modal__desc p { margin:.5rem 0; }
.cm-workshop-modal__grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; margin-top:1rem; }
.cm-workshop-modal__grid section { padding:.8rem .9rem; background:#f7f8f7; border:1px solid #e2ebe6; border-radius:12px; }
.cm-workshop-modal__grid h4 { margin:0 0 .45rem; color:var(--cm-green); font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; }
.cm-workshop-modal__grid p { margin:0; color:#485b53; font-size:.88rem; line-height:1.45; white-space:pre-line; }
.cm-workshop-modal__grid [data-field="vehicles"],.cm-workshop-modal__grid [data-field="features"] { display:flex; flex-wrap:wrap; gap:.35rem; }
.cm-workshop-modal__grid [data-field="vehicles"] span,.cm-workshop-modal__grid [data-field="features"] span { padding:.28rem .55rem; border-radius:999px; background:#eaf4f0; color:#1d5e4d; font-size:.74rem; font-weight:700; }
.cm-workshop-modal__contact { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.cm-workshop-modal__contact a {
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 1 auto; white-space:nowrap;
  padding:.5rem .65rem; background:#0d715a; color:#fff !important;
  border-radius:8px; font-size:.78rem; font-weight:800; text-decoration:none !important;
  border:1px solid #0a5a48;
}
.cm-workshop-modal__contact a:hover { background:#0b5f4c; color:#fff !important; }
.cm-workshop-modal__contact a:last-child { background:#f1763f; border-color:#d96532; }
.cm-workshop-modal__contact a:last-child:hover { background:#e06834; color:#fff !important; }
.cm-workshop-modal__catalog { margin-top:1rem; padding:.9rem 1rem; background:#fff4ec; border:1px solid #f0c4a8; border-radius:12px; }
.cm-workshop-modal__catalog-btn { display:inline-flex; align-items:center; justify-content:center; padding:.65rem 1rem; background:#f1763f; color:#fff !important; border:1px solid #d96532; border-radius:9px; font-weight:800; font-size:.9rem; text-decoration:none !important; }
.cm-workshop-modal__catalog-btn:hover { background:#e06834; color:#fff !important; }
.cm-workshop-modal__catalog p { margin:.55rem 0 0; color:#7b4a2e; font-size:.8rem; line-height:1.4; }
@media (max-width:700px) {
  .cm-workshop-modal__grid { grid-template-columns:1fr; }
  .cm-workshop-modal { width:96vw; max-height:94vh; }
  .cm-workshop-modal .cdc-modal__body { max-height:calc(94vh - 60px); }
  .cm-workshop-card__actions { flex-direction:column; align-items:stretch; }
  .cm-workshop-card__actions a,button.cm-workshop-card__cta { width:100%; white-space:normal; text-align:center; }
  .cm-workshop-modal__contact { flex-direction:column; align-items:stretch; }
  .cm-workshop-modal__contact a { width:100%; }
}
@media (max-width:760px) {
  .cm-workshops__filters { grid-template-columns:1fr; }
  .cm-workshops__filters button,.cm-workshops__clear { width:100%; }
  .cm-workshops__hero { padding:1rem; border-radius:0 0 12px 12px; }
  .cm-workshops__hero h2 { font-size:1.35rem; }
  .cm-workshops__hero p { font-size:.85rem; }
}
/* Compact directory and structured detail sheet, September 2026. */
.cm-workshops__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; }
.cm-workshop-card { display:flex; flex-direction:column; border-radius:12px; box-shadow:0 3px 12px #123f3508; }
.cm-workshop-card__banner { height:88px; flex-shrink:0; }
.cm-workshop-card__body { display:flex; flex-direction:column; flex:1; padding:16px; gap:10px; }
.cm-workshop-card__heading { margin:0; gap:12px; align-items:flex-start; }
.cm-workshop-card__heading > div { min-width:0; }
.cm-workshop-card__logo { width:48px; height:48px; border-radius:8px; padding:4px; }
.cm-workshop-card h3 { font-size:1rem; line-height:1.35; }
.cm-workshop-card__location { font-size:.8rem; line-height:1.4; margin:4px 0 0; }
.cm-workshop-card__services { margin:0; gap:5px; }
.cm-workshop-card__services span { white-space:normal; line-height:1.4; font-size:.7rem; }
.cm-workshop-card__vehicles { margin:0; font-size:.75rem; line-height:1.5; }
.cm-workshop-card__distance { margin:0; font-size:.9rem; }
.cm-workshop-card__distance small { display:inline; font-size:.7rem; }
.cm-workshop-card__actions { margin-top:auto; padding-top:4px; display:block; }
button.cm-workshop-card__cta { display:flex; justify-content:space-between; width:100%; min-height:44px; padding:10px 12px; color:#123f35; background:#edf4f1; border:1px solid #dfe7e2; font-size:.82rem; }
button.cm-workshop-card__cta:hover { background:#123f35; color:#fff; }
button.cm-workshop-card__cta:focus-visible { outline:3px solid #f1763f; outline-offset:3px; }
.cm-workshop-modal { width:min(94vw,960px); max-width:960px; max-height:92vh; max-height:92dvh; padding:0; border:0; border-radius:18px; }
.cm-workshop-modal [hidden] { display:none !important; }
.cm-workshop-modal .cdc-modal__head { padding:14px 22px; border-bottom:1px solid #e2ebe6; }
.cm-workshop-modal .cdc-modal__head h3 { font-size:.85rem; color:#52675e; font-weight:600; margin:0; }
.cm-workshop-modal .cdc-modal__close { width:44px; height:44px; flex-shrink:0; }
.cm-workshop-modal .cdc-modal__body { padding:24px; max-height:calc(92vh - 73px); max-height:calc(92dvh - 73px); overflow-y:auto; overscroll-behavior:contain; }
.cm-workshop-modal__banner { margin:-24px -24px 22px; }
.cm-workshop-modal__banner img { height:140px; object-fit:cover; }
.cm-workshop-modal__heading { padding-bottom:22px; margin:0 0 22px; border-bottom:1px solid #e2ebe6; align-items:flex-start; }
.cm-workshop-modal__heading > div { min-width:0; }
.cm-workshop-modal__title { font-size:clamp(1.2rem,2.4vw,1.6rem); line-height:1.25; overflow-wrap:anywhere; }
.cm-workshop-modal__logo { width:76px; height:76px; }
.cm-workshop-modal__layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.65fr); gap:28px; }
.cm-workshop-modal__layout section { margin-bottom:22px; min-width:0; }
.cm-workshop-modal__layout h4 { margin:0 0 10px; font-size:.92rem; color:#123f35; font-weight:800; }
.cm-workshop-modal__layout p { margin:0; font-size:.9rem; line-height:1.65; white-space:pre-line; overflow-wrap:anywhere; }
.cm-workshop-modal__desc { overflow-wrap:anywhere; }
.cm-workshop-modal__desc p { margin:0 0 12px; }
.cm-workshop-modal__desc img { max-width:100%; height:auto; }
.cm-workshop-modal__desc table { display:block; max-width:100%; overflow-x:auto; }
.cm-workshop-modal__sidebar { align-self:start; min-width:0; padding:18px; background:#f5f7f5; border:1px solid #e2ebe6; border-radius:12px; }
.cm-workshop-modal__sidebar section:last-child { margin-bottom:0; }
.cm-workshop-modal__services,.cm-workshop-modal__tags { display:flex; flex-wrap:wrap; gap:7px; margin:0; }
.cm-workshop-modal__tags span { padding:6px 10px; background:#edf4f1; color:#1d5e4d; border-radius:8px; font-size:.8rem; }
.cm-workshop-modal__services span { border-radius:8px; font-size:.8rem; line-height:1.5; }
.cm-workshop-modal__contact { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
.cm-workshop-modal__contact a { white-space:normal; overflow-wrap:anywhere; width:100%; box-sizing:border-box; min-height:44px; line-height:1.4; padding:10px; }
@media(min-width:701px) and (max-width:1000px) { .cm-workshops__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
 .cm-workshops__grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .cm-workshop-card__body { padding:14px; gap:8px; }
 .cm-workshop-card__banner { height:72px; }
 .cm-workshop-modal { width:calc(100vw - 16px); max-width:none; max-height:calc(100dvh - 16px); border-radius:14px; }
 .cm-workshop-modal .cdc-modal__head { padding:8px 14px; }
 .cm-workshop-modal .cdc-modal__body { padding:16px; max-height:calc(100dvh - 78px); }
 .cm-workshop-modal__banner { margin:-16px -16px 16px; }
 .cm-workshop-modal__banner img { height:100px; }
 .cm-workshop-modal__heading { gap:12px; margin-bottom:16px; padding-bottom:16px; }
 .cm-workshop-modal__logo { width:56px; height:56px; }
 .cm-workshop-modal__layout { grid-template-columns:minmax(0,1fr); gap:18px; }
 .cm-workshop-modal__sidebar { grid-row:1; padding:14px; }
 .cm-workshop-modal__layout section { margin-bottom:18px; }
 .cm-workshop-modal__contact { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cm-workshop-modal__contact a[href^="mailto:"] { grid-column:1/-1; }
 .cm-workshop-modal__catalog-btn { width:100%; box-sizing:border-box; }
}

/* Catálogo propio: primera acción del taller. */
.cm-workshop-card__actions{display:flex;flex-direction:column;gap:8px}
.cm-workshop-card__actions .cm-workshop-card__catalog{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;background:#ec7836;color:#fff;font-weight:700;min-height:44px;padding:10px 14px;border-radius:8px;text-decoration:none}
.cm-workshop-card__catalog:hover{background:#c9561b}
.cm-workshop-card__catalog:focus-visible{outline:3px solid #173f35;outline-offset:2px}
.cm-workshop-modal__catalog{margin:0 0 22px;padding:16px;background:#fff4e9;border:1px solid #f6d7bc;border-radius:12px}
.cm-workshop-modal__catalog .cm-workshop-modal__catalog-btn{display:block;background:#ec7836;color:white;text-align:center;padding:13px 18px;border-radius:8px;font-weight:700;text-decoration:none;min-height:44px;box-sizing:border-box}
.cm-workshop-modal__catalog p{margin:8px 0 0;font-size:.85rem}
.cm-workshop-card__logo{object-fit:contain!important;padding:3px;box-sizing:border-box}
/* Shared banner frame for every workshop detail sheet. */
.cm-workshop-modal__banner { width:100%; height:220px; margin:0 0 22px; border-radius:10px; overflow:hidden; background:#f2f5f3; }
.cm-workshop-modal__banner img { display:block; width:100%; height:100%; max-height:none; object-fit:cover; object-position:center; }
@media(max-width:600px) {
 .cm-workshop-modal__banner { height:150px; margin:0 0 16px; }
 .cm-workshop-modal__banner img { height:100%; max-height:none; }
}

/* Talleres afiliados (3.67.40): «A» y estrella dorada en la esquina derecha. */
.cm-workshop-card__afiliado,.cm-workshop-modal__afiliado { display:inline-flex; align-items:center; gap:.18rem; padding:.24rem .5rem .24rem .55rem; border:1px solid #e8c547; border-radius:999px; background:#fffdf3; box-shadow:0 3px 10px rgba(20,48,40,.16); color:#8a6400; font-weight:900; font-size:.9rem; line-height:1; letter-spacing:.02em; }
.cm-workshop-card__afiliado svg,.cm-workshop-modal__afiliado svg { width:18px; height:18px; fill:#f5b301; stroke:#c98f00; stroke-width:.8; flex:none; }
.cm-workshop-card__afiliado { position:absolute; top:10px; right:10px; z-index:2; }
.cm-workshop-card.is-afiliado { border-color:#e8c547; }
.cm-workshop-card.is-afiliado .cm-workshop-card__heading { padding-right:3.9rem; }
.cm-workshop-modal__afiliado { margin-left:auto; align-self:flex-start; }
.cm-workshop-modal__afiliado[hidden] { display:none; }
/* Keep the banner and text in separate, non-overlapping layout rows. */
.cm-workshop-modal .cm-workshop-modal__banner { box-sizing:border-box; flex:none; clear:both; margin-left:auto; margin-right:auto; position:relative; }
.cm-workshop-modal .cm-workshop-modal__banner img { position:static; margin:0; padding:0; border:0; transform:none; object-position:50% 50%; }
.cm-workshop-modal .cm-workshop-modal__heading { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; height:auto; min-height:0; clear:both; }
.cm-workshop-modal .cm-workshop-modal__title { font-size:clamp(1.2rem,2.4vw,1.6rem); line-height:1.35; margin:0 0 8px; height:auto; white-space:normal; overflow-wrap:anywhere; }
.cm-workshop-modal .cm-workshop-modal__location { line-height:1.55; margin:0; height:auto; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:600px){.cm-workshop-modal .cm-workshop-modal__heading{gap:10px;}}

/* Preserve the complete lettering in Balat’s banner inside the standard frame. */
.cm-workshop-modal .cm-workshop-modal__banner img[src*="balat-camper-sin-logo"], .cm-workshop-card__banner img[src*="balat-camper-sin-logo"] { object-fit:contain; background:#103e2c; }
