/* ════════════════════════════════════════════════════════════════
   KEISOVE — Custom Designer
   Brand-consistent: dark ink + ember + cream. Flat. Mobile-first.
   ═══════════════════════════════════════════════════════════════ */

.kd-app{
  display:block;
  max-width:1280px;
  margin:0 auto;
  padding:0 32px 100px;
  color:#fff;
  font-family:var(--font-body);
}
@media (max-width:560px){.kd-app{padding:0 18px 80px}}

/* ── HERO ── */
.kd-hero{padding:48px 0 36px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.kd-hero__crumbs{
  font-family:var(--font-mono);font-size:11px;color:var(--ash);
  letter-spacing:0.18em;text-transform:uppercase;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px;
}
.kd-hero__crumbs a{color:var(--ash);text-decoration:none;transition:color .15s}
.kd-hero__crumbs a:hover{color:var(--ember)}
.kd-hero__crumbs span{color:var(--ember)}
.kd-hero__current{color:#fff !important}
.kd-hero__title{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(36px,4.6vw,60px);line-height:0.95;
  letter-spacing:0.01em;text-transform:uppercase;
  margin:0 0 14px;color:#fff;
}
.kd-hero__title .ember{color:var(--ember)}
.kd-hero__sub{
  margin:0;color:#C9C9CE;font-size:14px;line-height:1.6;max-width:580px;
}
@media (max-width:560px){
  .kd-hero{padding:24px 0 18px;margin-bottom:20px}
  .kd-hero__title{font-size:clamp(28px,8vw,42px)}
}

/* ── GRID ── */
.kd-grid{
  display:grid;
  grid-template-columns:380px minmax(0, 1fr);
  gap:32px;align-items:start;
}
@media (max-width:980px){
  .kd-grid{grid-template-columns:1fr;gap:20px}
}

/* ── LEFT PANEL ── */
.kd-panel{
  background:#16161A;
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
  display:flex;flex-direction:column;gap:12px;
}
@media (max-width:980px){
  .kd-panel{order:2}
}

/* Steps as accordion */
.kd-step{
  background:#1F1F23;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}
.kd-step > summary{
  list-style:none;cursor:pointer;
  padding:14px 16px;
  display:flex;align-items:center;gap:14px;
  user-select:none;
}
.kd-step > summary::-webkit-details-marker{display:none}
.kd-step > summary::marker{display:none}
.kd-step__n{
  font-family:var(--font-display);font-weight:700;font-size:13px;
  color:var(--ember);
  width:30px;height:30px;border:1.5px solid var(--ember);border-radius:8px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  letter-spacing:0.02em;
}
.kd-step__t{
  font-family:var(--font-display);font-weight:700;font-size:14px;
  color:#fff;letter-spacing:0.06em;text-transform:uppercase;
  flex:1;
}
.kd-step[open] > summary{border-bottom:1px solid var(--line)}
.kd-step[open] > summary .kd-step__n{background:var(--ember);color:#fff}
.kd-step__body{padding:18px 16px}

/* Fields */
.kd-field{margin:0 0 14px;display:flex;flex-direction:column;gap:8px}
.kd-field:last-child{margin-bottom:0}
.kd-label{
  font-family:var(--font-body);font-size:10px;font-weight:700;
  color:var(--ash);letter-spacing:0.18em;text-transform:uppercase;
  margin:0;display:flex;justify-content:space-between;align-items:baseline;
}
.kd-label span{color:#fff;font-weight:600;letter-spacing:0.02em;text-transform:none}

/* Select */
.kd-select{position:relative;display:block}
.kd-select select{
  -webkit-appearance:none;appearance:none;
  width:100%;height:48px;padding:0 42px 0 16px;
  background:#0E0E10;border:1.5px solid var(--line);border-radius:10px;
  color:#fff;font-family:var(--font-body);font-size:14px;font-weight:500;
  outline:none;cursor:pointer;
  transition:border-color .15s;
}
.kd-select select:hover{border-color:var(--line-strong)}
.kd-select select:focus{border-color:var(--ember)}
.kd-select__chev{
  position:absolute;right:16px;top:50%;
  width:8px;height:8px;
  border-right:2px solid var(--ember);border-bottom:2px solid var(--ember);
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}

/* Drop / upload */
.kd-drop{
  display:block;cursor:pointer;
  border:2px dashed rgba(255,90,31,0.45);
  border-radius:12px;
  padding:24px 16px;text-align:center;
  background:rgba(255,90,31,0.04);
  transition:border-color .15s, background .15s;
}
.kd-drop:hover{border-color:var(--ember);background:rgba(255,90,31,0.08)}
.kd-drop.is-drag{border-color:var(--ember);background:rgba(255,90,31,0.12)}
.kd-drop__inner{display:flex;flex-direction:column;align-items:center;gap:6px}
.kd-drop__icon{
  width:44px;height:44px;border-radius:50%;
  background:var(--ember);color:#fff;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:6px;
}
.kd-drop__inner b{
  font-family:var(--font-display);font-size:14px;font-weight:700;
  color:#fff;letter-spacing:0.06em;text-transform:uppercase;
}
.kd-drop__inner small{font-size:11px;color:var(--ash)}

.kd-uploaded{
  display:flex;align-items:center;gap:12px;
  padding:10px;background:#0E0E10;border:1px solid var(--line);border-radius:10px;
}
.kd-uploaded img{width:54px;height:54px;border-radius:8px;object-fit:cover;flex-shrink:0}
.kd-link{
  background:transparent;border:0;color:var(--ember);
  font-family:var(--font-body);font-size:12px;font-weight:700;
  letter-spacing:0.06em;text-transform:uppercase;cursor:pointer;
  padding:0;text-decoration:underline;text-underline-offset:3px;
}

/* Chips */
.kd-chips{display:flex;flex-wrap:wrap;gap:6px}
.kd-chip{
  background:#0E0E10;border:1.5px solid var(--line);
  padding:9px 14px;border-radius:8px;
  color:#D7D7DA;cursor:pointer;
  font-family:var(--font-body);font-size:12px;font-weight:600;
  letter-spacing:0.02em;
  transition:all .15s;
}
.kd-chip:hover{border-color:var(--line-strong);color:#fff}
.kd-chip.is-active{
  background:var(--ember);border-color:var(--ember);color:#fff;
}

/* Range */
.kd-field input[type="range"]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:6px;background:var(--line);border-radius:3px;outline:none;
  margin:6px 0;
}
.kd-field input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:var(--ember);cursor:pointer;border:2px solid #fff;
}
.kd-field input[type="range"]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;
  background:var(--ember);cursor:pointer;border:2px solid #fff;
}

/* Text input */
.kd-field input[type="text"]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:48px;padding:0 16px;
  background:#0E0E10;border:1.5px solid var(--line);border-radius:10px;
  color:#fff;font-family:var(--font-body);font-size:14px;font-weight:500;
  outline:none;
}
.kd-field input[type="text"]:focus{border-color:var(--ember)}
.kd-field input[type="text"]::placeholder{color:rgba(255,255,255,0.3)}

/* Addons */
.kd-addons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.kd-addon{
  background:#0E0E10;border:1.5px solid var(--line);border-radius:11px;
  transition:border-color .15s, background .15s;
}
.kd-addon:hover{border-color:var(--line-strong)}
.kd-addon label{
  display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;
  align-items:center;padding:12px 14px;cursor:pointer;
}
.kd-addon input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  width:18px;height:18px;border-radius:5px;
  border:1.5px solid var(--line-strong);background:transparent;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.kd-addon input[type="checkbox"]:checked{
  background:var(--ember);border-color:var(--ember);
}
.kd-addon input[type="checkbox"]:checked::after{
  content:"✓";color:#fff;font-size:13px;line-height:1;
}
.kd-addon__icon{
  width:24px;height:24px;border-radius:6px;
  background:rgba(255,90,31,0.12);color:var(--ember);
  display:flex;align-items:center;justify-content:center;
}
.kd-addon__label{
  font-family:var(--font-body);font-size:13px;font-weight:600;color:#fff;
  letter-spacing:0.02em;
}
.kd-addon__price{
  font-family:var(--font-display);font-size:13px;font-weight:700;
  color:var(--ember);letter-spacing:0.04em;
}
.kd-addon.is-active{border-color:var(--ember);background:rgba(255,90,31,0.06)}

.kd-text-block{
  margin-top:12px;padding:12px;
  background:rgba(0,0,0,0.25);border:1px dashed var(--line);border-radius:10px;
}
.kd-text-block .kd-field:last-child{margin-bottom:0}

/* Footer (price + CTA) */
.kd-foot{
  margin-top:6px;padding:14px;
  background:#0E0E10;border:1px solid var(--line);border-radius:12px;
  display:flex;flex-direction:column;gap:12px;
}
.kd-price{
  display:flex;align-items:baseline;justify-content:space-between;
  padding-bottom:10px;border-bottom:1px solid var(--line);
}
.kd-price__label{
  font-family:var(--font-mono);font-size:11px;color:var(--ash);
  letter-spacing:0.16em;text-transform:uppercase;font-weight:700;
}
.kd-price__total{
  font-family:var(--font-display);font-size:28px;font-weight:700;
  color:var(--ember);letter-spacing:0.02em;
}
.kd-cta{
  position:relative;width:100%;min-height:56px;border-radius:12px;
  background:var(--ember);color:#fff;border:0;
  font-family:var(--font-display);font-weight:700;font-size:15px;
  letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;
  transition:background .15s, transform .15s;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.kd-cta:hover{background:#FF6F38;transform:translateY(-1px)}
.kd-cta:disabled{opacity:.6;cursor:not-allowed}
.kd-cta__idle,
.kd-cta__loading{display:inline-flex;align-items:center;gap:10px}
.kd-cta__loading{display:none}
.kd-cta.is-loading .kd-cta__idle{display:none}
.kd-cta.is-loading .kd-cta__loading{display:inline-flex}
.kd-spin{
  width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(255,255,255,0.35);border-top-color:#fff;
  animation:kd-spin .7s linear infinite;
}
@keyframes kd-spin{to{transform:rotate(360deg)}}
.kd-foot__error{
  margin:0;padding:10px 12px;border-radius:8px;
  background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);
  color:#fecaca;font-size:12px;font-weight:600;
}

/* ── RIGHT: Preview ── */
.kd-preview{
  background:#F4EFE7;
  border:1px solid var(--cream-line, #D7CFBE);
  border-radius:18px;
  padding:24px;
  position:sticky;top:24px;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  min-height:560px;
}
@media (max-width:980px){
  .kd-preview{
    position:sticky;top:0;z-index:5;
    padding:18px;min-height:auto;order:1;
    border-radius:0 0 18px 18px;
  }
}
.kd-preview__inner{
  position:relative;width:100%;
  display:flex;align-items:center;justify-content:center;
  min-height:400px;
}
.kd-canvas{
  display:block;max-width:100%;height:auto;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 30px rgba(14,14,16,0.12);
}
.kd-preview__hint{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;gap:8px;
  color:#6E6258;font-family:var(--font-mono);font-size:12px;
  letter-spacing:0.12em;text-transform:uppercase;
  background:rgba(244,239,231,0.85);border-radius:18px;
  pointer-events:none;
}
.kd-preview__hint svg{color:var(--ember)}
.kd-preview__hint.is-hidden{display:none}
.kd-preview__caption{
  font-family:var(--font-mono);font-size:10px;color:#6E6258;
  letter-spacing:0.16em;text-transform:uppercase;text-align:center;
}

/* ── Mobile-only tweaks ── */
@media (max-width:560px){
  .kd-step > summary{padding:12px 14px}
  .kd-step__t{font-size:13px}
  .kd-step__n{width:26px;height:26px;font-size:12px}
  .kd-step__body{padding:14px}
  .kd-preview{padding:14px}
}

/* ════════════════════════════════════════════════════════════════
   DESIGNER v2 — extra controls
   ═══════════════════════════════════════════════════════════════ */

/* Two-column row */
.kd-row2{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px;
}
.kd-row2 .kd-field{margin:0}
@media (max-width:480px){.kd-row2{grid-template-columns:1fr}}

/* Section divider with title */
.kd-divider{
  display:flex;align-items:center;gap:10px;
  margin:18px 0 12px;
  font-family:var(--font-mono);font-size:10px;font-weight:700;
  letter-spacing:0.2em;text-transform:uppercase;color:var(--ash);
}
.kd-divider::before,
.kd-divider::after{
  content:"";flex:1;height:1px;background:var(--line);
}
.kd-divider span{padding:0 6px}

/* Color input + palette */
.kd-color{
  display:flex;align-items:center;gap:8px;
}
.kd-color input[type="color"]{
  -webkit-appearance:none;appearance:none;
  width:44px;height:44px;padding:0;border:1.5px solid var(--line);border-radius:8px;
  background:transparent;cursor:pointer;
  overflow:hidden;flex-shrink:0;
}
.kd-color input[type="color"]::-webkit-color-swatch-wrapper{padding:2px;border-radius:6px}
.kd-color input[type="color"]::-webkit-color-swatch{border:0;border-radius:5px}
.kd-color input[type="color"]::-moz-color-swatch{border:0;border-radius:5px}

.kd-color input[type="range"]{flex:1;min-width:0}

.kd-palette{display:flex;flex-wrap:wrap;gap:5px;flex:1}
.kd-swatch{
  width:22px;height:22px;border-radius:5px;
  border:1.5px solid rgba(255,255,255,0.15);cursor:pointer;
  padding:0;transition:transform .12s;
  box-shadow:0 1px 0 rgba(0,0,0,0.4);
}
.kd-swatch:hover{transform:scale(1.15);border-color:var(--ember)}

/* Toggles (bold / italic / upper) */
.kd-toggles{display:flex;gap:8px;flex-wrap:wrap}
.kd-toggle{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 12px;border-radius:8px;
  background:#0E0E10;border:1.5px solid var(--line);
  cursor:pointer;
  font-family:var(--font-body);font-size:11px;color:#D7D7DA;
  letter-spacing:0.04em;text-transform:uppercase;font-weight:600;
}
.kd-toggle input{
  appearance:none;-webkit-appearance:none;
  width:0;height:0;margin:0;padding:0;border:0;display:none;
}
.kd-toggle:has(input:checked){
  background:var(--ember);border-color:var(--ember);color:#fff;
}
.kd-toggle b, .kd-toggle i{font-size:13px;font-family:Georgia,serif}


/* ════════════════════════════════════════════════════════════════
   DESIGNER v3 — robust sticky preview + visible feedback
   ═══════════════════════════════════════════════════════════════ */

/* Ensure no ancestor overflow kills sticky */
.kd-app,
.site-main:has(.kd-app){overflow:visible !important}

/* Sticky preview — strong rules */
.kd-grid{align-items:flex-start !important}
.kd-preview{
  position:sticky !important;
  top:24px !important;
  align-self:flex-start !important;
}

/* Panel: open all steps + keep it tall enough to allow scroll past preview */
.kd-step{open:open}
@media (min-width:981px){
  .kd-panel{min-height:calc(100vh - 100px)}
}

/* ════════════════════════════════════════════════════════════════
   DESIGNER v3.3 — FIXED preview on desktop, STICKY-top on mobile
   The case must be visible at all times during editing.
   ═══════════════════════════════════════════════════════════════ */

/* ── DESKTOP (≥1024px) ── */
@media (min-width:1024px){
  .kd-app{max-width:none;padding:0 0 100px}
  .kd-hero{padding:48px 32px 36px;max-width:1280px;margin:0 auto 28px}
  .kd-grid{
    display:block !important; /* break the grid — handle layout manually */
    max-width:1280px;margin:0 auto;padding:0 32px;position:relative;
  }
  /* Left panel — single column, leave room for fixed preview on the right */
  .kd-panel{
    width:calc(100% - 520px) !important; /* preview width + gap */
    max-width:700px;
    margin:0 !important;
    min-height:auto !important;
  }
  /* Right preview — FIXED, always visible */
  .kd-preview{
    position:fixed !important;
    top:96px !important;       /* below the WP admin bar + nav */
    right:max(32px, calc((100vw - 1280px) / 2 + 32px)) !important;
    width:480px !important;
    max-height:calc(100vh - 130px) !important;
    margin:0 !important;
    z-index:50;
    padding:20px !important;
    display:flex !important;flex-direction:column !important;align-items:center;
  }
  body.admin-bar .kd-preview{top:128px !important;max-height:calc(100vh - 160px) !important}
  .kd-preview__inner{
    flex:1;min-height:0;display:flex;align-items:center;justify-content:center;width:100%;
  }
  .kd-canvas{
    max-width:100% !important;
    max-height:calc(100vh - 230px) !important;
    width:auto !important;height:auto !important;
    object-fit:contain;
  }
}

/* ── MOBILE / TABLET (<1024px) — preview stays at top while scrolling ── */
@media (max-width:1023px){
  .kd-app{padding:0 16px 100px}
  .kd-hero{padding:24px 0 18px;margin-bottom:16px}
  .kd-grid{
    display:flex !important;flex-direction:column !important;gap:14px !important;
    max-width:none;padding:0;
  }
  .kd-preview{
    position:sticky !important;
    top:0 !important;
    z-index:40;
    margin:0 0 8px !important;
    padding:14px !important;
    border-radius:14px !important;
    background:rgba(244,239,231,0.96);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    box-shadow:0 6px 24px rgba(14,14,16,0.35);
    order:1 !important;
    /* Compact mobile preview — leave room for controls */
    max-height:48vh;display:flex;flex-direction:column;align-items:center;
  }
  .kd-preview__inner{
    flex:1;min-height:0;display:flex;align-items:center;justify-content:center;width:100%;
  }
  .kd-canvas{
    max-width:100% !important;
    max-height:calc(48vh - 60px) !important;
    width:auto !important;height:auto !important;
    object-fit:contain;
  }
  .kd-panel{order:2 !important;min-height:auto !important;width:100% !important}
}

