.s360-po-wrap{margin:24px 0 22px;font-family:inherit;display:flex;flex-direction:column;gap:22px}
.s360-po-group{--s360-accent:#ff3428;position:relative;margin:0;background:#fff}
.s360-po-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.s360-po-group-heading{min-width:0}.s360-po-group-heading h3{margin:0;font-size:17px;line-height:1.2;font-weight:800}.s360-po-group-heading p{margin:4px 0 0;font-size:12px;line-height:1.35;color:#6c7480;font-weight:500}
.s360-po-required{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:5px 8px;background:#f2f3f5;color:#444;white-space:nowrap}
.s360-po-cards{display:grid;gap:7px}
.s360-po-card{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr) auto 18px;gap:11px;align-items:center;padding:8px 11px 8px 8px;border:1.3px solid #d5dae1;border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease;cursor:pointer;min-height:94px;box-sizing:border-box}
.s360-po-card:hover{border-color:#aeb5bf;box-shadow:0 3px 12px rgba(0,0,0,.05)}
.s360-po-card.is-selected{border-color:var(--s360-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--s360-accent) 18%,transparent)}
.s360-po-card.is-disabled{opacity:.52;cursor:not-allowed;background:#fafafa}
.s360-po-card-select{position:absolute;opacity:0;pointer-events:none}
.s360-po-media{width:88px;height:80px;border:1px solid #e6e8eb;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff;box-sizing:border-box}
.s360-po-media img{display:block!important;max-width:none!important;max-height:none!important;width:100%!important;height:100%!important;object-fit:contain!important;margin:0!important;padding:0!important}
.s360-po-main{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}
.s360-po-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.s360-po-name{font-size:12px;line-height:1.25;color:#1f2732;font-weight:800}
.s360-po-badge{font-size:9px;line-height:1;background:var(--s360-accent);color:#fff;border-radius:999px;padding:5px 7px;text-transform:uppercase;font-weight:900;white-space:nowrap}
.s360-po-description{font-size:12px;line-height:1.35;color:#4e5866;font-weight:500;max-width:720px}
.s360-po-variations{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0;padding:0}
/* Chips de variación. Se resetea el <button> para que el tema/Elementor no lo convierta en un botón grande. */
.s360-po-variation-btn{
  all:unset;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:5px 9px!important;
  border:1px solid #cbd1d8!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#34404c!important;
  font-family:inherit!important;
  font-size:10px!important;
  font-style:normal!important;
  font-weight:800!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-align:center!important;
  text-decoration:none!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  box-shadow:none!important;
  cursor:pointer!important;
  transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease!important;
  -webkit-appearance:none!important;
  appearance:none!important;
}
.s360-po-variation-btn:hover{border-color:#9fa8b3!important;background:#f7f8fa!important;color:#222c36!important}
.s360-po-variation-btn.is-active,
.s360-po-variation-btn.is-active:hover{
  border-color:var(--s360-accent)!important;
  background:var(--s360-accent)!important;
  color:#fff!important;
  box-shadow:none!important;
}
/* Blindaje frente a estilos globales de botones del tema/Elementor.
   Los chips deben medir prácticamente lo mismo que la etiqueta GRATIS. */
html body.single-product .s360-po-wrap .s360-po-group .s360-po-card .s360-po-variations > button.s360-po-variation-btn{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:max-content!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  padding:5px 9px!important;
  margin:0!important;
  border:1px solid #cbd1d8!important;
  border-radius:5px!important;
  background:#fff!important;
  background-color:#fff!important;
  color:#34404c!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.1!important;
  text-transform:uppercase!important;
  box-shadow:none!important;
}
html body.single-product .s360-po-wrap .s360-po-group .s360-po-card .s360-po-variations > button.s360-po-variation-btn:hover{
  border-color:#9fa8b3!important;
  background:#f7f8fa!important;
  background-color:#f7f8fa!important;
  color:#222c36!important;
}
html body.single-product .s360-po-wrap .s360-po-group .s360-po-card .s360-po-variations > button.s360-po-variation-btn.is-active,
html body.single-product .s360-po-wrap .s360-po-group .s360-po-card .s360-po-variations > button.s360-po-variation-btn.is-active:hover{
  border-color:var(--s360-accent)!important;
  background:var(--s360-accent)!important;
  background-color:var(--s360-accent)!important;
  color:#fff!important;
}
.s360-po-variation-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--s360-accent) 45%,#fff)!important;outline-offset:2px!important}
.s360-po-variation-btn:active{transform:translateY(1px)!important}
.s360-po-variation-static{font-size:10px;color:#68707b}
.s360-po-extras{display:flex;flex-direction:column;gap:4px;margin-top:0}.s360-po-extra{display:grid;grid-template-columns:13px minmax(0,1fr) auto;align-items:center;gap:5px;width:fit-content;max-width:100%;cursor:pointer;font-size:9px;color:#4c5560;margin:0}
.s360-po-extra input{position:absolute;opacity:0;pointer-events:none}.s360-po-extra-box{width:12px;height:12px;border:1.5px solid #8d969f;border-radius:3px;background:#fff;position:relative;box-sizing:border-box}
.s360-po-extra input:checked + .s360-po-extra-box{background:#57b93f;border-color:#57b93f}.s360-po-extra input:checked + .s360-po-extra-box:after{content:'✓';position:absolute;left:1px;top:-3px;color:#fff;font-size:11px;font-weight:900}
.s360-po-extra-label small{color:#8a9097}.s360-po-extra-price{font-weight:800;color:#4ca536;white-space:nowrap}
.s360-po-price{display:flex;align-items:center;justify-content:flex-end;text-align:right;min-width:74px;font-weight:900;font-size:12px;color:#20262e;white-space:nowrap}.s360-po-price del{display:none}.s360-po-price ins{text-decoration:none}
.s360-po-free{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:var(--s360-accent);color:#fff;font-size:10px;font-weight:900;letter-spacing:.02em}.s360-po-fixed-price{color:var(--s360-accent);font-weight:900}
.s360-po-selector-dot{width:14px;height:14px;border:1.8px solid #bfc5cc;border-radius:50%;display:block;position:relative;box-sizing:border-box}.s360-po-card.is-selected .s360-po-selector-dot{border-color:var(--s360-accent)}.s360-po-card.is-selected .s360-po-selector-dot:after{content:'';position:absolute;inset:2.5px;border-radius:50%;background:var(--s360-accent)}
.s360-po-unavailable{position:absolute;right:10px;bottom:4px;font-size:8px;color:#777}
.s360-po-no-variations{font-size:10px;color:#a00}

/* Personalizaciones: cabecera compacta como bloque. */
.s360-po-layout-cards{border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(20,25,35,.08)}
.s360-po-layout-cards>.s360-po-group-title{padding:8px 10px;background:var(--s360-accent);color:#fff}.s360-po-layout-cards>.s360-po-group-title h3{font-size:11px;text-transform:uppercase;color:#fff}.s360-po-layout-cards>.s360-po-group-title p{color:rgba(255,255,255,.86)}
.s360-po-layout-cards>.s360-po-group-title .s360-po-required{background:#fff;color:var(--s360-accent)}
.s360-po-layout-cards>.s360-po-cards{padding:8px}

/* Carrusel / slider de opciones. */
.s360-po-layout-carousel{border-radius:14px;overflow:hidden;box-shadow:0 3px 14px rgba(20,25,35,.10)}
.s360-po-layout-carousel>.s360-po-group-title{padding:10px 12px;background:var(--s360-accent);color:#fff}.s360-po-layout-carousel>.s360-po-group-title h3{font-size:13px;text-transform:uppercase;color:#fff}.s360-po-layout-carousel>.s360-po-group-title p{color:rgba(255,255,255,.86)}.s360-po-layout-carousel>.s360-po-group-title .s360-po-required{background:#fff;color:var(--s360-accent)}
.s360-po-carousel-shell{position:relative;padding:10px 24px 12px}.s360-po-carousel-track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;padding:2px 0 8px;-webkit-overflow-scrolling:touch}
.s360-po-layout-carousel .s360-po-card{flex:0 0 105px;scroll-snap-align:start;display:flex;flex-direction:column;gap:5px;min-height:145px;padding:4px 3px 8px;border:0;border-radius:10px;box-shadow:none;text-align:center;align-items:center}.s360-po-layout-carousel .s360-po-card:hover{box-shadow:none}.s360-po-layout-carousel .s360-po-card.is-selected{box-shadow:none}
.s360-po-layout-carousel .s360-po-media{width:64px;height:64px;border-radius:50%;border:1.5px solid #e1e4e8;padding:4px}.s360-po-layout-carousel .is-selected .s360-po-media{border:2px solid var(--s360-accent)}
.s360-po-layout-carousel .s360-po-main{align-items:center;gap:4px}.s360-po-layout-carousel .s360-po-name-row{justify-content:center}.s360-po-layout-carousel .s360-po-name{font-size:10px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.s360-po-layout-carousel .s360-po-badge{font-size:7px;padding:3px 5px}.s360-po-layout-carousel .s360-po-price{font-size:10px;min-width:0;justify-content:center}.s360-po-layout-carousel .s360-po-free{padding:3px 6px;font-size:8px}.s360-po-layout-carousel .s360-po-selector-dot{display:none}.s360-po-layout-carousel .s360-po-variations{justify-content:center}.s360-po-layout-carousel .s360-po-variation-btn{font-size:7px!important;padding:2px 5px!important}.s360-po-layout-carousel .s360-po-extras{align-items:center}.s360-po-layout-carousel .s360-po-extra{font-size:8px}.s360-po-layout-carousel .s360-po-unavailable{position:static;font-size:8px}
html body.single-product .s360-po-wrap .s360-po-layout-carousel .s360-po-card .s360-po-variations > button.s360-po-variation-btn{font-size:7px!important;padding:2px 5px!important;border-radius:4px!important}
.s360-po-carousel-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:22px;height:34px;border:0;border-radius:12px;background:rgba(255,255,255,.95);box-shadow:0 2px 8px rgba(0,0,0,.12);font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;color:#59616c;cursor:pointer;padding:0}.s360-po-carousel-prev{left:3px}.s360-po-carousel-next{right:3px}

/* Extras / servicios: bloque independiente, más descriptivo. */
.s360-po-layout-extras{border:1.5px solid var(--s360-accent);border-radius:16px;padding:0 12px 12px;overflow:hidden}.s360-po-layout-extras>.s360-po-group-title{margin:0 -12px 12px;padding:12px 14px;border-bottom:1px solid #dfe3e8;background:#fff}.s360-po-layout-extras>.s360-po-group-title h3{font-size:13px;text-transform:uppercase;color:#46535f}.s360-po-layout-extras>.s360-po-group-title h3:before{content:'✦';color:var(--s360-accent);margin-right:8px}.s360-po-layout-extras>.s360-po-group-title p{font-size:11px}.s360-po-layout-extras>.s360-po-group-title .s360-po-required{background:color-mix(in srgb,var(--s360-accent) 15%,#fff);color:var(--s360-accent)}
.s360-po-layout-extras .s360-po-cards{gap:10px}.s360-po-layout-extras .s360-po-card{grid-template-columns:28px 58px minmax(0,1fr) auto;gap:12px;padding:12px 15px;border-radius:24px;min-height:86px;box-shadow:0 2px 8px rgba(0,0,0,.035)}
.s360-po-layout-extras .s360-po-media{width:58px;height:58px;border:0;background:transparent}.s360-po-layout-extras .s360-po-name{font-size:13px}.s360-po-layout-extras .s360-po-description{font-size:11px}.s360-po-layout-extras .s360-po-selector-dot{grid-column:1;grid-row:1;width:20px;height:20px;border-radius:6px;border-width:1.5px}.s360-po-layout-extras .s360-po-card.is-selected .s360-po-selector-dot:after{inset:3px;border-radius:3px}.s360-po-layout-extras .s360-po-media{grid-column:2}.s360-po-layout-extras .s360-po-main{grid-column:3}.s360-po-layout-extras .s360-po-price{grid-column:4;grid-row:1;min-width:90px;font-size:15px}.s360-po-layout-extras .s360-po-free{font-size:10px}.s360-po-layout-extras .s360-po-badge{order:2}.s360-po-layout-extras .s360-po-extras{margin-top:3px}

@media(max-width:680px){
  .s360-po-wrap{gap:18px;margin-top:18px}
  .s360-po-layout-cards .s360-po-card{grid-template-columns:70px minmax(0,1fr) 16px;gap:8px}.s360-po-layout-cards .s360-po-media{width:70px;height:66px}.s360-po-layout-cards .s360-po-price{grid-column:2;justify-content:flex-start;min-width:0}.s360-po-layout-cards .s360-po-selector-dot{grid-column:3;grid-row:1}.s360-po-layout-cards .s360-po-name{font-size:11px}
  .s360-po-layout-extras .s360-po-card{grid-template-columns:24px 48px minmax(0,1fr);border-radius:18px;padding:11px 12px}.s360-po-layout-extras .s360-po-media{width:48px;height:48px}.s360-po-layout-extras .s360-po-main{grid-column:3}.s360-po-layout-extras .s360-po-price{grid-column:3;grid-row:auto;justify-content:flex-start;font-size:13px;min-width:0}.s360-po-layout-extras .s360-po-selector-dot{grid-column:1;grid-row:1}.s360-po-layout-extras .s360-po-description{font-size:10px}
  .s360-po-carousel-shell{padding-left:19px;padding-right:19px}.s360-po-carousel-arrow{width:19px;height:30px;font-size:20px}
}
.s360-po-none-media{font-size:26px;font-weight:500;color:var(--s360-accent);background:#fff}.s360-po-layout-carousel .s360-po-none-card .s360-po-media{border-color:var(--s360-accent);background:color-mix(in srgb,var(--s360-accent) 5%,#fff)}

/* v0.2.3: los productos variables se seleccionan exclusivamente desde sus variaciones. */
.s360-po-card.s360-po-has-variations{cursor:default}
.s360-po-card.s360-po-has-variations .s360-po-selector-dot{pointer-events:none}
.s360-po-card.s360-po-has-variations .s360-po-variation-btn{cursor:pointer!important}

/* Las opciones relacionadas pertenecen a la personalización y solo se muestran cuando esta está seleccionada. */
.s360-po-card .s360-po-extras{display:none!important}
.s360-po-card.is-selected .s360-po-extras{display:flex!important}

/* v0.2.5 · formularios dentro de servicios y cobro posterior */
.s360-po-pay-later{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:normal;text-align:right}
.s360-po-pay-later>span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf5e8;color:#4d8f43;font-size:8px;font-weight:900;letter-spacing:.03em}
.s360-po-pay-later strong{font-size:12px;line-height:1.15;color:#4d8f43}
.s360-po-pay-later-reference{font-size:8px;color:#7a8188;font-weight:700}
.s360-po-service-fields{display:none;grid-column:1/-1;margin:4px 0 0;padding:16px;border:1px solid #dfe3e8;border-radius:14px;background:#fbfcfd;box-shadow:0 2px 8px rgba(20,25,35,.03)}
.s360-po-card.is-selected .s360-po-service-fields{display:block}
.s360-po-service-fields-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}
.s360-po-service-fields-heading strong{font-size:14px;color:#202936}
.s360-po-service-fields-heading small{font-size:10px;color:#7a828c}
.s360-po-form-field{padding:11px 12px;margin-top:10px;border:1px solid #dfe3e8;border-radius:12px;background:#fff}
.s360-po-form-label{display:block;margin-bottom:5px;font-size:10px;font-weight:800;color:#303946}
.s360-po-form-label span{color:#e3352d}
.s360-po-form-help{margin:-1px 0 7px;font-size:9px;color:#7a828c}
.s360-po-form-control{width:100%!important;min-height:38px!important;padding:8px 10px!important;border:1px solid #cfd5dc!important;border-radius:10px!important;background:#fff!important;color:#27313d!important;font-size:11px!important;box-shadow:none!important}
textarea.s360-po-form-control{min-height:84px!important;resize:vertical}
.s360-po-radio-list{display:flex;flex-wrap:wrap;gap:8px}
.s360-po-radio-option,.s360-po-check-option{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:700;color:#37414d;cursor:pointer}
.s360-po-radio-option input,.s360-po-check-option input{position:absolute;opacity:0;pointer-events:none}
.s360-po-radio-option>span,.s360-po-check-option>span{width:16px;height:16px;border:1.5px solid #b8c0c8;background:#fff;display:inline-block;box-sizing:border-box}
.s360-po-radio-option>span{border-radius:50%}.s360-po-check-option>span{border-radius:4px}
.s360-po-radio-option input:checked+span,.s360-po-check-option input:checked+span{border-color:var(--s360-accent);background:var(--s360-accent);box-shadow:inset 0 0 0 3px #fff}
.s360-po-file-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.s360-po-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.s360-po-file-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border-radius:9px;background:#111c2f;color:#fff!important;font-size:9px;font-weight:900;cursor:pointer;margin:0!important}
.s360-po-file-name{font-size:10px;color:#7a828c;word-break:break-word}
.s360-po-layout-extras .s360-po-service-fields{margin-top:8px}
@media(max-width:680px){
  .s360-po-service-fields{padding:12px;border-radius:12px}
  .s360-po-file-control{align-items:flex-start;flex-direction:column}
  .s360-po-pay-later{align-items:flex-start;text-align:left}
}


/* v0.2.6 · el texto de cobro posterior vive en la zona de contenido, no en la columna de precio. */
.s360-po-later-customer-text{
  display:block;
  max-width:100%;
  margin:0;
  color:#4d8f43;
  font-size:10px;
  font-weight:750;
  line-height:1.35;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.s360-po-layout-extras .s360-po-main{min-width:0}
.s360-po-layout-extras .s360-po-price{align-self:center;max-width:118px;min-width:90px;white-space:normal}
.s360-po-layout-extras .s360-po-pay-later{max-width:118px;min-width:0}
.s360-po-layout-extras .s360-po-pay-later>span{white-space:nowrap}
.s360-po-pay-later-reference{white-space:normal;overflow-wrap:anywhere}
.s360-po-layout-carousel .s360-po-later-customer-text{font-size:8px;line-height:1.2;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:680px){
  .s360-po-layout-extras .s360-po-price{max-width:none;min-width:0}
  .s360-po-layout-extras .s360-po-pay-later{max-width:none;align-items:flex-start;text-align:left}
}
