.csm-output{
  --csm-columns:var(--csm-columns-desktop,4);
  --csm-logo-height:var(--csm-logo-height-desktop,120px);
  --csm-gap:var(--csm-gap-desktop,28px);
  --csm-logo-bg:transparent;
  --csm-item-bg:transparent;
  --csm-border-color:#dddddd;
  --csm-border-radius:0px;
  width:100%
}
.csm-group{margin:0 0 42px}
.csm-group:last-child{margin-bottom:0}
.csm-group-title{margin:0 0 22px;text-align:var(--csm-title-align,center);font-size:var(--csm-title-size,1.35rem);font-weight:var(--csm-title-weight,700);color:var(--csm-title-color,inherit);line-height:1.25}
.csm-items{display:grid;grid-template-columns:repeat(var(--csm-columns),minmax(0,1fr));gap:var(--csm-gap);align-items:start}
/* Grid centrado: conserva el ancho de columna elegido y centra filas incompletas. */
.csm-layout-grid.csm-center-grid .csm-items{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--csm-gap);align-items:flex-start}
.csm-layout-grid.csm-center-grid .csm-item{flex:0 0 calc((100% - (var(--csm-columns) - 1) * var(--csm-gap)) / var(--csm-columns));max-width:calc((100% - (var(--csm-columns) - 1) * var(--csm-gap)) / var(--csm-columns))}
.csm-item{text-align:center;min-width:0;transition:box-shadow .22s ease,transform .22s ease}
.csm-item-content{min-width:0}
.csm-logo-box{height:var(--csm-logo-height);display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box;background:var(--csm-logo-bg);border-radius:var(--csm-border-radius);position:relative;overflow:visible}
.csm-effect-border .csm-logo-box{border:1px solid var(--csm-border-color)}
.csm-link{display:flex;width:100%;height:100%;align-items:center;justify-content:center;text-decoration:none}
.csm-logo-img{display:block;max-width:100%;width:auto!important;max-height:100%;height:auto!important;object-fit:contain;object-position:center;transition:filter .22s ease,transform .22s ease}
.csm-effect-grayscale .csm-logo-img{filter:grayscale(1)}
.csm-effect-grayscale .csm-logo-box:hover .csm-logo-img,.csm-effect-grayscale .csm-logo-box:focus-within .csm-logo-img{filter:grayscale(0)}
.csm-effect-zoom .csm-logo-box:hover .csm-logo-img,.csm-effect-zoom .csm-logo-box:focus-within .csm-logo-img{transform:scale(1.055)}
.csm-effect-shadow .csm-item:hover,.csm-effect-shadow .csm-item:focus-within{box-shadow:0 12px 30px rgba(0,0,0,.13)}
.csm-logo-text{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:600;font-size:1rem;line-height:1.3}
.csm-name{font-weight:600;margin-top:10px}
.csm-name-link{color:inherit;text-decoration:none}
.csm-name-link:hover,.csm-name-link:focus{text-decoration:underline}
.csm-description{margin-top:8px;font-size:.95rem;line-height:1.5}
.csm-description-collapsible[hidden]{display:none!important}
.csm-details-toggle{margin-top:9px;border:0;background:transparent;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;font-size:.9rem}
.csm-disclaimer{margin:10px auto 0;max-width:760px;font-size:.82rem;line-height:1.45;opacity:.76}
.csm-type-declaration .csm-text-only,.csm-type-text .csm-text-only{text-align:left;padding:18px 0}
.csm-text-title{font-weight:700;margin-bottom:6px}
.csm-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);padding:6px 9px;background:rgba(20,20,20,.92);color:#fff;border-radius:5px;font-size:12px;line-height:1.2;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:15;transition:opacity .16s ease,transform .16s ease}
.csm-tooltip:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(20,20,20,.92)}
.csm-logo-box:hover .csm-tooltip,.csm-logo-box:focus-within .csm-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* LISTA */
.csm-layout-list .csm-items{display:block}
.csm-layout-list .csm-item{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:24px;text-align:left;align-items:center;padding:18px 18px;background:var(--csm-item-bg);border-radius:var(--csm-border-radius);margin-bottom:0}
.csm-layout-list .csm-logo-box{height:var(--csm-logo-height);padding:8px}
.csm-layout-list .csm-name{margin-top:0}
.csm-layout-list .csm-description,.csm-layout-list .csm-disclaimer{margin-top:6px}
.csm-layout-list .csm-no-visible-logo{grid-template-columns:minmax(0,1fr)}
.csm-layout-list .csm-no-visible-logo .csm-item-content{grid-column:1/-1}
.csm-layout-list.csm-list-frame-divider .csm-item{border-bottom:1px solid var(--csm-border-color);border-radius:0}
.csm-layout-list.csm-list-frame-card .csm-item{border:1px solid var(--csm-border-color);margin-bottom:var(--csm-gap)}
.csm-layout-list.csm-list-frame-none .csm-item{border:0}
.csm-layout-list.csm-list-compact .csm-item-content{display:block}
.csm-layout-list.csm-list-columns .csm-item-content{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);column-gap:24px;row-gap:6px;align-items:start}
.csm-layout-list.csm-list-columns .csm-name{grid-column:1}
.csm-layout-list.csm-list-columns .csm-description,
.csm-layout-list.csm-list-columns .csm-details-toggle,
.csm-layout-list.csm-list-columns .csm-disclaimer{grid-column:2;margin-top:0}
.csm-layout-list.csm-list-columns .csm-item.csm-has-name:not(.csm-has-description) .csm-name{grid-column:1/-1}
.csm-layout-list.csm-list-columns .csm-item:not(.csm-has-name) .csm-description,
.csm-layout-list.csm-list-columns .csm-item:not(.csm-has-name) .csm-details-toggle,
.csm-layout-list.csm-list-columns .csm-item:not(.csm-has-name) .csm-disclaimer{grid-column:1/-1}
.csm-layout-list .csm-text-only{padding:0;border:0}

/* CAROUSEL */
.csm-layout-carousel .csm-group{position:relative;padding:0 46px 22px}
.csm-layout-carousel .csm-items{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--csm-gap);padding:10px 2px 14px;scrollbar-width:none;-ms-overflow-style:none}
.csm-layout-carousel .csm-items::-webkit-scrollbar{display:none}
.csm-layout-carousel .csm-item{flex:0 0 calc((100% - (var(--csm-columns) - 1) * var(--csm-gap)) / var(--csm-columns));scroll-snap-align:start}
.csm-carousel-controls{pointer-events:none;position:absolute;left:0;right:0;top:50%;transform:translateY(-58%);display:flex;justify-content:space-between;z-index:10}
.csm-carousel-prev,.csm-carousel-next{pointer-events:auto;width:38px;height:38px;border:1px solid rgba(0,0,0,.18);border-radius:50%;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.08);cursor:pointer;font-size:27px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}
.csm-carousel-prev:hover,.csm-carousel-next:hover{box-shadow:0 5px 18px rgba(0,0,0,.16)}
.csm-carousel-dots{display:flex;justify-content:center;gap:7px;margin-top:6px}
.csm-carousel-dot{width:8px;height:8px;border:0;border-radius:50%;background:rgba(0,0,0,.22);padding:0;cursor:pointer;transition:transform .18s ease,background .18s ease}
.csm-carousel-dot.is-active{background:rgba(0,0,0,.66);transform:scale(1.25)}
.csm-carousel-effect-center .csm-item{transform:scale(.88);opacity:.66;transition:transform .28s ease,opacity .28s ease,box-shadow .22s ease}
.csm-carousel-effect-center .csm-item.is-active{transform:scale(1.06);opacity:1;z-index:2}
.csm-carousel-effect-center .csm-items{padding-top:18px;padding-bottom:18px;scroll-padding-inline:35%}
.csm-carousel-effect-center .csm-item{scroll-snap-align:center}

.csm-empty{padding:18px;border:1px dashed rgba(0,0,0,.22);text-align:center}

@media(max-width:980px){
  .csm-output{--csm-columns:var(--csm-columns-tablet,3);--csm-logo-height:var(--csm-logo-height-tablet,110px);--csm-gap:var(--csm-gap-tablet,22px)}
  .csm-layout-list .csm-item{grid-template-columns:minmax(110px,150px) minmax(0,1fr);gap:20px}
  .csm-layout-list.csm-list-columns .csm-item-content{grid-template-columns:minmax(110px,150px) minmax(0,1fr);column-gap:20px}
}
@media(max-width:640px){
  .csm-output{--csm-columns:var(--csm-columns-mobile,2);--csm-logo-height:var(--csm-logo-height-mobile,90px);--csm-gap:var(--csm-gap-mobile,16px)}
  .csm-layout-list .csm-item{grid-template-columns:100px minmax(0,1fr);gap:14px;padding:14px 10px}
  .csm-layout-list.csm-list-columns .csm-item-content{display:block}
  .csm-layout-list.csm-list-columns .csm-name{margin-bottom:5px}
  .csm-layout-carousel .csm-group{padding:0 36px 20px}
  .csm-carousel-prev,.csm-carousel-next{width:31px;height:31px;font-size:23px}
}
@media(prefers-reduced-motion:reduce){
  .csm-logo-img,.csm-item,.csm-tooltip,.csm-carousel-effect-center .csm-item,.csm-carousel-dot{transition:none}
  .csm-effect-zoom .csm-logo-box:hover .csm-logo-img,.csm-effect-zoom .csm-logo-box:focus-within .csm-logo-img{transform:none}
  .csm-carousel-effect-center .csm-item,.csm-carousel-effect-center .csm-item.is-active{transform:none}
}

/* Keep shortcode layouts readable inside Divi Visual Builder too. */
.et-fb-root-ancestor .csm-output,.et_fb_edit_enabled .csm-output{display:block!important;width:100%!important;max-width:100%!important}
.et-fb-root-ancestor .csm-layout-grid .csm-items,.et_fb_edit_enabled .csm-layout-grid .csm-items{display:grid!important;grid-template-columns:repeat(var(--csm-columns),minmax(0,1fr))!important;gap:var(--csm-gap)!important}
.et-fb-root-ancestor .csm-layout-grid .csm-item,.et_fb_edit_enabled .csm-layout-grid .csm-item{display:block!important;width:auto!important;max-width:none!important;float:none!important}
.et-fb-root-ancestor .csm-logo-box,.et_fb_edit_enabled .csm-logo-box{display:flex!important}
/* In Divi Visual Builder, keep the centered-grid behavior instead of forcing CSS Grid. */
.et-fb-root-ancestor .csm-layout-grid.csm-center-grid .csm-items,.et_fb_edit_enabled .csm-layout-grid.csm-center-grid .csm-items{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:var(--csm-gap)!important}
.et-fb-root-ancestor .csm-layout-grid.csm-center-grid .csm-item,.et_fb_edit_enabled .csm-layout-grid.csm-center-grid .csm-item{display:block!important;flex:0 0 calc((100% - (var(--csm-columns) - 1) * var(--csm-gap)) / var(--csm-columns))!important;max-width:calc((100% - (var(--csm-columns) - 1) * var(--csm-gap)) / var(--csm-columns))!important;width:auto!important}

