/* =====================================================================
   Incanto Bespoke — Configurador v1.8.0
   Sistema: Cloud Dancer / Azul Petróleo / Oro Arena · minimalismo táctil
   Mejoras: responsive móvil, barra fija, carruseles táctiles, sticky
   ===================================================================== */
.ic-wrap{
  --bg:#F0F0F0; --surface:#FFFFFF; --primary:#1B3039; --accent:#C2A376;
  --text:#1B3039; --text-sec:#5A6E74; --line:#D8D8D5;
  --head:'Cormorant Garamond',Georgia,serif; --body:'Montserrat',sans-serif;
  /* Tamaños de la vista previa (base editable desde wp-admin) */
  --scarf-w: var(--scarf-w-base, 190px);   /* ancho del pañuelo */
  --scarf-h: var(--scarf-h-base, 560px);   /* alto del pañuelo (control propio) */
  --tassel-size: var(--tassel-base, 110px);/* diámetro de la borla */
  max-width:1320px;margin:0 auto;padding:64px 40px 96px;
  font-family:var(--body);font-weight:300;color:var(--text);line-height:1.6;
}
.ic-wrap *{box-sizing:border-box}
.ic-wrap [x-cloak]{display:none!important}

/* --- CABECERA --- */
.ic-head{text-align:center;margin-bottom:56px}
.ic-kicker{font-size:12px;letter-spacing:.28em;color:var(--accent);text-transform:uppercase;margin-bottom:18px}
.ic-title{font-family:var(--head);font-weight:300;font-size:58px;letter-spacing:.02em;line-height:1.06;color:var(--primary);margin:0}
.ic-sub{font-size:16px;color:var(--text-sec);max-width:560px;margin:20px auto 0;line-height:1.7}

/* --- GRID 3 COLUMNAS (desktop) --- */
.ic-studio{display:grid;grid-template-columns:130px 1fr 130px;gap:40px;align-items:stretch}
.ic-rail--panuelo{grid-column:1;grid-row:1}
.ic-stage{grid-column:2;grid-row:1}
.ic-rail--borla{grid-column:3;grid-row:1}

/* --- CARRUSELES (desktop: vertical) --- */
.ic-rail{display:flex;flex-direction:column;align-items:center}
.ic-rail-head{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.ic-rail-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;text-align:center}
.ic-rail-nav{display:flex;flex-direction:column;gap:6px}
.ic-rail-btn{
  width:28px;height:28px;border:1px solid var(--line);
  background:var(--surface);color:var(--primary);
  font-size:12px;line-height:1;cursor:pointer;
  padding:0;transition:all .2s ease;
}
.ic-rail-btn:hover{border-color:var(--accent);color:var(--accent)}
.ic-track{display:flex;flex-direction:column;gap:14px;overflow-y:auto;max-height:560px;padding:4px;scroll-snap-type:y proximity;width:100%;scrollbar-width:none}
.ic-track::-webkit-scrollbar{width:0}
.ic-swatch-wrap{display:flex;flex-direction:column;align-items:center;scroll-snap-align:center}
.ic-swatch{flex:0 0 auto;width:84px;height:84px;border:1px solid transparent;cursor:pointer;position:relative;transition:border-color .3s ease,transform .3s ease;background-size:cover;background-position:center;margin:0 auto;outline:none}
.ic-swatch:hover{transform:translateY(-2px)}
.ic-swatch:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.ic-swatch.is-active{border-color:var(--accent)}
.ic-swatch.is-active::after{content:'';position:absolute;inset:-6px;border:1px solid var(--accent);opacity:.4}
/* Borlas: mostrar la imagen completa (formas no cuadradas como cilindros/barriles no se recortan) */
.ic-rail--borla .ic-swatch{background-size:contain;background-repeat:no-repeat}

/* === Segunda borla (toggle + picker) === */
.ic-second-tassel{margin-top:16px;width:100%}
.ic-second-toggle{
  width:100%;
  background:transparent;
  border:1px dashed var(--line);
  color:var(--text-sec);
  font-family:var(--body);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;
  padding:10px 8px;cursor:pointer;
  transition:all .2s ease;
}
.ic-second-toggle:hover{border-color:var(--accent);color:var(--accent)}
.ic-second-picker{margin-top:12px}
.ic-second-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);text-align:center;margin-bottom:8px}
.ic-second-track{
  display:flex;flex-direction:column;gap:10px;
  max-height:240px;overflow-y:auto;
  padding:4px;scrollbar-width:none;
}
.ic-second-track::-webkit-scrollbar{width:0}
.ic-swatch--small{width:54px!important;height:54px!important}

/* === Segunda borla en la vista previa === */
.ic-tassel-img--2,
.ic-tassel--2{
  position:absolute;
  left:50%;top:50%;
  pointer-events:none;
  z-index:2;
}
.ic-tassel-img--2{
  width:var(--tassel-size) !important;
  height:var(--tassel-size) !important;
  max-width:none !important;
  object-fit:contain;
}
/* Con dos borlas, la primera sube un 5% */
.ic-tassel-slot.has-two .ic-tassel-img,
.ic-tassel-slot.has-two .ic-tassel{
  top:52%;
}
.ic-tassel-slot.has-two .ic-tassel-img--2,
.ic-tassel-slot.has-two .ic-tassel--2{
  top:52%;
  /* posición inicial pegada justo debajo de la primera (antes de que el JS aplique transforms dinámicos) */
  transform:translate(-50%, calc(-50% + var(--tassel-size)));
}
.ic-swatch-name{font-size:10px;letter-spacing:.04em;text-align:center;color:var(--text-sec);margin-top:7px;line-height:1.3;min-height:26px}

/* --- VISTA PREVIA --- */
.ic-stage{background:var(--surface);position:relative;overflow:hidden;box-shadow:0 1px 0 var(--line);
  /* Alto del lienzo se adapta al pañuelo: espacio arriba para la parte superior + espacio abajo mínimo */
  height:calc(var(--scarf-h) + 20px);
}
.ic-stage-inner{position:absolute;inset:0}
.ic-stage-inner.is-swapping{animation:ic-crossfade .45s ease-out}
@keyframes ic-crossfade{
  0%{opacity:1;filter:blur(0)}
  35%{opacity:.15;filter:blur(3px)}
  100%{opacity:1;filter:blur(0)}
}
.ic-stage-tag{position:absolute;top:18px;left:18px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-sec);background:rgba(240,240,240,.7);padding:5px 10px;z-index:3}

.ic-scarf-assembly{
  position:absolute;inset:0;
  width:min(100%,620px);
  margin:0 auto;
}
.ic-tassel-slot{
  position:absolute;
  top:10px;            /* mismo origen que el pañuelo */
  left:0;
  width:100%;
  height:var(--scarf-h); /* misma altura que el pañuelo */
  z-index:2;
  pointer-events:none; /* no bloquea clicks al pañuelo */
}

/* ── PAÑUELO: UNA SOLA FORMA (embudo → cuello → hoja → punta) ──
   Tamaño en px explícito (img y div idénticos). El cuello (57% del
   propio alto) se ancla al centro del stage, donde está la borla. */
.ic-scarf-body,
.ic-scarf-body-img{
  position:absolute;
  left:50%;
  top:10px;                      /* alineado arriba del lienzo, margen mínimo */
  width:var(--scarf-w);
  height:var(--scarf-h);
  transform:translateX(-50%);
  z-index:1;
}

/* Silueta única — el cuello (≈57%) queda oculto bajo la borla.
   Forzamos tamaño con !important para anular el "img{height:auto;max-width:100%}"
   que inyectan WordPress/Elementor y que encogía solo la versión con foto. */
.ic-scarf-body-img{
  width:var(--scarf-w) !important;
  height:var(--scarf-h) !important;
  max-width:none !important;
  object-fit:fill;
  transform:translateX(-50%) scale(1.08); /* 8% extra oculto bajo clip-path → margen para parallax */
  transition:transform .15s ease-out;
  clip-path:polygon(17% 0,83% 0,80% 16%,72% 34%,60% 49%,51% 57%,58% 73%,56% 86%,50% 100%,44% 86%,42% 73%,49% 57%,40% 49%,28% 34%,20% 16%);
}

/* ── BORLA IMAGEN ── */
.ic-tassel-img{
  position:absolute;left:50%;top:57%;pointer-events:auto;
  transform:translate(-50%,-50%);
  width:var(--tassel-size) !important;
  height:var(--tassel-size) !important;
  max-width:none !important;
  object-fit:contain;
  object-position:center center;
  z-index:2;
  transform-origin:top center;
  animation:ic-sway 5.5s ease-in-out infinite
}

/* ── RESPALDO CSS (sin foto) ── */
.ic-scarf-body{
  clip-path:polygon(17% 0,83% 0,80% 16%,72% 34%,60% 49%,51% 57%,58% 73%,56% 86%,50% 100%,44% 86%,42% 73%,49% 57%,40% 49%,28% 34%,20% 16%);
}
.ic-scarf-body::before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,0) 28%,rgba(255,255,255,.12) 52%,rgba(0,0,0,.10) 78%,rgba(0,0,0,.22) 100%)}
.ic-tassel{
  position:absolute;top:57%;left:50%;pointer-events:auto;
  transform:translate(-50%,-50%);
  transform-origin:top center;
  animation:ic-sway 5.5s ease-in-out infinite;
  z-index:2
}
.ic-cord{width:2px;height:46px;margin:0 auto;background:linear-gradient(180deg,var(--accent),#9d8255)}
.ic-ball{
  width:var(--tassel-size);
  height:var(--tassel-size);
  border-radius:50%;
  position:relative;
  margin-top:-2px
}
.ic-ball::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.55),rgba(255,255,255,0) 42%)}
.ic-ball::after{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 68% 78%,rgba(0,0,0,.28),rgba(0,0,0,0) 50%)}
.ic-skirt{width:74px;height:54px;margin:-6px auto 0;border-radius:0 0 40% 40%/0 0 90% 90%;position:relative;overflow:hidden}
.ic-skirt::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 4px,rgba(0,0,0,.10) 5px,transparent 6px)}
.ic-skirt::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(0,0,0,.18))}
@keyframes ic-sway{0%,100%{transform:translate(-50%,-50%) rotate(-2.4deg)}50%{transform:translate(-50%,-50%) rotate(2.4deg)}}

/* --- READOUT + CTA (desktop) --- */
.ic-readout{margin-top:10px;text-align:center}
.ic-combo{font-family:var(--head);font-size:30px;font-weight:400;letter-spacing:.02em;color:var(--primary);line-height:1.2}
.ic-combo small{display:block;font-family:var(--body);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.ic-avail{font-size:13px;color:var(--text-sec);margin-top:14px;letter-spacing:.04em}
.ic-avail .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;vertical-align:middle}
.dot-alta{background:#5B8A6E}.dot-media{background:var(--accent)}.dot-baja{background:#B07A4A}

.ic-cta{display:inline-block;margin-top:30px;font-family:var(--body);font-size:13px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);background:transparent;border:1px solid var(--primary);padding:18px 44px;cursor:pointer;transition:all .35s ease}
.ic-cta:hover:not(:disabled){background:var(--primary);color:var(--surface)}
.ic-cta:disabled{opacity:.5;cursor:wait}
.ic-note{font-size:11px;color:var(--text-sec);margin-top:16px;letter-spacing:.04em}
.ic-error{color:#B07A4A;font-size:13px;margin-top:14px}

/* --- BARRA FIJA INFERIOR (solo móvil) --- */
.ic-bottombar{display:none}

/* =====================================================================
   TABLET (max-width 900px)
   Grid → 1 columna. Carruseles horizontales. Vista previa sticky.
   ===================================================================== */
@media(max-width:900px){
  .ic-wrap{padding:40px 20px 72px;
    --scarf-w:calc(var(--scarf-w-base,190px) * .9);
    --scarf-h:calc(var(--scarf-h-base,560px) * .9);
    --tassel-size:calc(var(--tassel-base,110px) * .9);
  }
  .ic-title{font-size:42px}
  .ic-head{margin-bottom:36px}

  /* Grid: 1 columna, orden explícito */
  .ic-studio{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    gap:24px;
  }
  .ic-rail--panuelo{grid-column:1;grid-row:1;order:1}
  .ic-stage{grid-column:1;grid-row:2;order:2;
    position:sticky;top:12px;z-index:10;
    max-width:380px;margin:0 auto;width:100%;
  }
  .ic-rail--borla{grid-column:1;grid-row:3;order:3}
  .ic-rail-head{margin-bottom:12px}
  .ic-rail-nav{display:none}

  /* Carruseles: horizontales con swipe */
  .ic-track{
    flex-direction:row;
    max-height:none;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:16px;
    padding:8px 4px 14px;
    width:100%;
  }
  .ic-swatch-wrap{flex:0 0 auto;scroll-snap-align:center}
  .ic-swatch{width:68px;height:68px}
  .ic-swatch:hover{transform:none}
  .ic-swatch-name{font-size:9px;margin-top:6px;min-height:22px}
  .ic-rail-label{margin-bottom:12px}

  /* Borla más pequeña en la vista previa */
  .ic-cord{height:36px}
  .ic-skirt{width:60px;height:44px}

  /* Readout más compacto */
  .ic-readout{margin-top:28px}
  .ic-combo{font-size:24px}
}

/* =====================================================================
   MOVIL (max-width 600px)
   Barra fija inferior con CTA. Readout principal se oculta.
   ===================================================================== */
@media(max-width:600px){
  .ic-wrap{padding:28px 14px 120px; /* espacio para la barra fija */
    --scarf-w:calc(var(--scarf-w-base,190px) * .8);
    --scarf-h:calc(var(--scarf-h-base,560px) * .8);
    --tassel-size:calc(var(--tassel-base,110px) * .8);
  }
  .ic-title{font-size:34px}
  .ic-sub{font-size:14px;margin-top:14px}
  .ic-head{margin-bottom:24px}

  .ic-studio{gap:18px}

  /* Swatches en filas para evitar un único carrusel horizontal */
  .ic-track{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px 10px;
    overflow:visible;
    max-height:none;
    padding:6px 0 0;
    scroll-snap-type:none;
    justify-items:center;
  }
  .ic-swatch-wrap{
    width:100%;
    align-items:center;
    justify-self:center;
  }
  .ic-swatch{width:64px;height:64px}
  .ic-rail-label{margin-bottom:10px}

  /* Vista previa estable dentro del flujo, no "pegada" al scroll */
  .ic-stage{position:relative;top:auto;max-width:300px;margin:0 auto;border-radius:0;z-index:1}
  .ic-stage-tag{font-size:9px;top:10px;left:10px;padding:3px 8px}

  .ic-cord{height:28px}
  .ic-skirt{width:50px;height:36px}

  /* Ocultar readout principal (la barra fija lo sustituye) */
  .ic-readout{display:none}

  /* Barra fija inferior: siempre visible */
  .ic-bottombar{
    display:flex;
    position:fixed;bottom:0;left:0;right:0;z-index:999;
    flex-direction:column;align-items:center;
    background:var(--surface);
    border-top:1px solid var(--line);
    padding:14px 20px;
    gap:8px;
    box-shadow:0 -2px 12px rgba(0,0,0,.06);
  }
  .ic-bottombar-combo{
    font-family:var(--head);font-size:17px;font-weight:400;
    color:var(--primary);letter-spacing:.02em;line-height:1.2;
    text-align:center;
  }
  .ic-bottombar-avail{
    font-size:11px;color:var(--text-sec);letter-spacing:.04em;
  }
  .ic-bottombar-avail .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}
  .ic-bottombar .ic-cta{
    width:100%;margin-top:4px;padding:14px 20px;font-size:12px;
    letter-spacing:.14em;text-align:center;
  }
}

/* =====================================================================
   MOVIL PEQUEÑO (max-width 380px)
   Ajustes finos para pantallas muy estrechas
   ===================================================================== */
@media(max-width:380px){
  .ic-wrap{padding:20px 10px 110px;
    --scarf-w:calc(var(--scarf-w-base,190px) * .68);
    --scarf-h:calc(var(--scarf-h-base,560px) * .68);
    --tassel-size:calc(var(--tassel-base,110px) * .68);
  }
  .ic-title{font-size:28px}
  .ic-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px}
  .ic-swatch{width:56px;height:56px}
  .ic-stage{max-width:260px;margin:0 auto}
  .ic-cord{height:22px}
  .ic-skirt{width:42px;height:30px}
  .ic-bottombar{padding:10px 14px}
  .ic-bottombar-combo{font-size:15px}
  .ic-bottombar .ic-cta{padding:12px 14px;font-size:11px}
}

/* =====================================================================
   PANEL-OVERLAY DE SOLICITUD (v1.3.0)
   ===================================================================== */
.ic-overlay{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.ic-overlay-bg{
  position:absolute;inset:0;
  background:rgba(27,48,57,.55);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
}
.ic-panel{
  position:relative;z-index:1;
  background:var(--surface);
  width:100%;max-width:480px;
  max-height:90vh;overflow-y:auto;
  padding:44px 40px 36px;
  box-shadow:0 8px 40px rgba(0,0,0,.12);
}
.ic-panel-close{
  position:absolute;top:16px;right:18px;
  background:none;border:none;font-size:28px;line-height:1;
  color:var(--text-sec);cursor:pointer;padding:4px 8px;
  transition:color .2s;
}
.ic-panel-close:hover{color:var(--primary)}

.ic-panel-head{text-align:center;margin-bottom:28px}
.ic-panel-combo{
  font-family:var(--head);font-size:24px;font-weight:400;
  color:var(--primary);margin-top:12px;line-height:1.2;
}
.ic-panel-avail{
  font-size:12px;color:var(--text-sec);margin-top:10px;letter-spacing:.04em;
}

/* Campos */
.ic-panel-body{display:flex;flex-direction:column;gap:18px}
.ic-field label{
  display:block;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-sec);margin-bottom:8px;
}
.ic-optional{text-transform:none;letter-spacing:0;font-weight:300;color:var(--line)}
.ic-field input,.ic-field textarea{
  width:100%;border:0;border-bottom:1px solid var(--line);
  background:transparent;padding:10px 2px;
  font-family:var(--body);font-weight:300;font-size:15px;
  color:var(--primary);outline:none;transition:border-color .3s;
  letter-spacing:.02em;
}
.ic-field input:focus,.ic-field textarea:focus{border-color:var(--accent)}
.ic-field textarea{resize:vertical;min-height:48px}
.ic-field.has-error input{border-color:#B07A4A}
.ic-field-err{display:block;font-size:11px;color:#B07A4A;margin-top:6px}
.ic-field-hint{display:block;font-size:11px;margin-top:6px;letter-spacing:.03em}
.ic-field-hint.ok{color:#5B8A6E}.ic-field-hint.err{color:#B07A4A}

.ic-panel-foot{margin-top:28px;text-align:center}
.ic-cta--full{width:100%;text-align:center}
.ic-panel-foot .ic-note{margin-top:14px}
.ic-panel-foot .ic-error{margin-bottom:14px}

/* Confirmación */
.ic-panel--confirm{text-align:center;padding:56px 40px 44px}
.ic-confirm-icon{
  width:56px;height:56px;border-radius:50%;
  background:var(--primary);color:var(--surface);
  font-size:28px;line-height:56px;
  margin:0 auto 24px;
}
.ic-confirm-title{
  font-family:var(--head);font-weight:300;font-size:30px;
  color:var(--primary);margin-top:12px;line-height:1.15;
}
.ic-confirm-body{
  margin:24px 0 30px;font-size:15px;color:var(--text-sec);line-height:1.7;
}
.ic-confirm-body strong{color:var(--primary);font-weight:400}
.ic-confirm-body p{margin:12px 0}
.ic-confirm-email{font-size:13px;color:var(--accent);margin-top:20px}

/* Panel en móvil: bottom sheet */
@media(max-width:600px){
  .ic-overlay{align-items:flex-end;padding:0}
  .ic-panel{
    max-width:100%;max-height:92vh;
    border-radius:16px 16px 0 0;
    padding:32px 24px 28px;
  }
  .ic-panel--confirm{padding:44px 24px 36px}
  .ic-confirm-title{font-size:24px}
  .ic-panel-combo{font-size:20px}
  /* Ocultar barra fija cuando el panel está abierto */
  .ic-bottombar{transition:transform .25s ease}
}

/* =====================================================================
   EFECTOS PREMIUM
   ===================================================================== */

/* Scroll sway — borla se mece al hacer scroll */
.ic-tassel,.ic-tassel-img{--scroll-rot:0deg}

/* Ripple — ondulación al tocar (móvil) */
.ic-ripple{
  position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;
  border-radius:50%;pointer-events:none;z-index:4;
  background:radial-gradient(circle,rgba(255,255,255,.35) 0%,rgba(255,255,255,0) 70%);
  animation:ic-ripple-out .6s ease-out forwards;
}
@keyframes ic-ripple-out{0%{transform:scale(0);opacity:1}100%{transform:scale(3);opacity:0}}

/* Animación de entrada del configurador */
.ic-wrap .ic-scarf-body,
.ic-wrap .ic-scarf-body-img,
.ic-wrap .ic-rail--panuelo,
.ic-wrap .ic-rail--borla{opacity:0}
/* Borla: entrada por transición (no animation, porque el JS controla su transform) */
.ic-tassel-img,.ic-tassel{opacity:0;transition:opacity .4s ease-out .25s}
.ic-wrap.is-entered .ic-tassel-img,
.ic-wrap.is-entered .ic-tassel{opacity:1}

.ic-wrap.is-entered .ic-scarf-body,
.ic-wrap.is-entered .ic-scarf-body-img{
  animation:ic-enter-scarf .5s ease-out both;
}
/* Borla: entrada gestionada por transición arriba, no por animation (conflicto con JS transform) */
.ic-wrap.is-entered .ic-rail--panuelo{
  animation:ic-enter-left .4s ease-out .1s both;
}
.ic-wrap.is-entered .ic-rail--borla{
  animation:ic-enter-right .4s ease-out .1s both;
}
@keyframes ic-enter-scarf{
  0%{opacity:0;transform:translateX(-50%) translateY(-40px)}
  100%{opacity:1;transform:translateX(-50%) translateY(0)}
}
@keyframes ic-enter-tassel{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  60%{transform:translate(-50%,-50%) scale(1.08)}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes ic-enter-left{
  0%{opacity:0;transform:translateX(-30px)}
  100%{opacity:1;transform:translateX(0)}
}
@keyframes ic-enter-right{
  0%{opacity:0;transform:translateX(30px)}
  100%{opacity:1;transform:translateX(0)}
}

/* Barra de progreso del formulario (3 pasos) */
.ic-steps{display:flex;align-items:center;justify-content:center;margin-bottom:28px}
.ic-step{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--line);transition:color .3s;display:flex;align-items:center;gap:6px}
.ic-step.is-active{color:var(--primary)}
.ic-step-num{display:inline-flex;width:24px;height:24px;border-radius:50%;border:1px solid currentColor;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.ic-step.is-active .ic-step-num{background:var(--primary);color:var(--surface);border-color:var(--primary)}
.ic-step-line{width:32px;height:1px;background:var(--line);margin:0 10px;transition:background .3s}
.ic-step-line.is-done{background:var(--primary)}

/* Paso 2 — resumen de revisión */
.ic-review{text-align:center;padding:8px 0 16px}
.ic-review-combo{font-family:var(--head);font-size:22px;color:var(--primary);margin:12px 0}
.ic-review-data{font-size:14px;color:var(--text-sec);line-height:1.8}
.ic-review-data strong{color:var(--primary);font-weight:400}
.ic-review-edit{font-size:12px;color:var(--accent);cursor:pointer;margin-top:12px;letter-spacing:.08em;text-transform:uppercase;background:none;border:none;font-family:var(--body)}
.ic-review-edit:hover{color:var(--primary)}

/* =====================================================================
   FÍSICA — vista previa interactiva (v1.5.10)
   ===================================================================== */
/* Desactivar animación CSS cuando la física controla */
.ic-stage.is-physics .ic-tassel,
.ic-stage.is-physics .ic-tassel-img{
  animation:none!important;
  will-change:transform;
}

/* === Modo "scarf" (solo el pañuelo arrastra) ===
   FIX BUG: la borla NO captura eventos → el click pasa al pañuelo */
.ic-stage.drag-scarf .ic-tassel,
.ic-stage.drag-scarf .ic-tassel-img{
  pointer-events:none;
  cursor:default;
}
.ic-stage.drag-scarf .ic-scarf-body,
.ic-stage.drag-scarf .ic-scarf-body-img{
  cursor:grab;
  will-change:transform;
  touch-action:none;
}
.ic-stage.drag-scarf.is-dragging .ic-scarf-body,
.ic-stage.drag-scarf.is-dragging .ic-scarf-body-img{
  cursor:grabbing;
}

/* === Modo "tassel" (solo la borla arrastra) === */
.ic-stage.drag-tassel .ic-tassel,
.ic-stage.drag-tassel .ic-tassel-img{
  pointer-events:auto;
  cursor:grab;
  touch-action:none;
}
.ic-stage.drag-tassel .ic-scarf-body,
.ic-stage.drag-tassel .ic-scarf-body-img{
  cursor:default;
  touch-action:auto;
}
.ic-stage.drag-tassel.is-dragging .ic-tassel,
.ic-stage.drag-tassel.is-dragging .ic-tassel-img{
  cursor:grabbing;
}

/* === Modo "both" (ambos arrastran) === */
.ic-stage.drag-both .ic-tassel,
.ic-stage.drag-both .ic-tassel-img,
.ic-stage.drag-both .ic-scarf-body,
.ic-stage.drag-both .ic-scarf-body-img{
  cursor:grab;
  touch-action:none;
}
.ic-stage.drag-both .ic-tassel,
.ic-stage.drag-both .ic-tassel-img{
  pointer-events:auto;
}
.ic-stage.drag-both.is-dragging .ic-tassel,
.ic-stage.drag-both.is-dragging .ic-tassel-img,
.ic-stage.drag-both.is-dragging .ic-scarf-body,
.ic-stage.drag-both.is-dragging .ic-scarf-body-img{
  cursor:grabbing;
}

/* === Modo "off" === No física, la borla no captura clics tampoco */
.ic-stage.drag-off .ic-tassel,
.ic-stage.drag-off .ic-tassel-img{
  pointer-events:none;
}
.ic-stage.is-dragging .ic-ball{
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  transition:box-shadow .15s ease;
}
/* La regla pointer-events:auto antigua de .ic-tassel-img base se anula por
   los selectores .drag-X arriba (cascada). En modo scarf/off → none. */
/* Cordón: transición suave del skew */
.ic-stage.is-physics .ic-cord{
  transition:none;
  will-change:transform;
  transform-origin:top center;
}
/* Pañuelo: transición suave de la deformación */
.ic-stage.is-physics .ic-scarf-body,
.ic-stage.is-physics .ic-scarf-body-img{
  transition:transform .12s ease-out;
  will-change:transform;
}
/* Falda: rotación por inercia */
.ic-stage.is-physics .ic-skirt{
  transition:none;
  will-change:transform;
  transform-origin:top center;
}

/* Indicador visual: brillo sutil al pasar sobre la borla */
.ic-stage.is-physics .ic-tassel:hover .ic-ball,
.ic-stage.is-physics .ic-tassel-img:hover{
  filter:brightness(1.06);
  transition:filter .2s ease;
}
