/* КаПель — конструктор чокеров */
.kc{--kc-hw:#c9a55a;display:grid;gap:28px;align-items:start;margin-top:8px}
@media (min-width:980px){.kc{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px}}

/* Превью */
.kc__stage{position:sticky;top:calc(var(--hdr,64px) + 8px);z-index:5}
.kc__preview{position:relative;background:linear-gradient(180deg,#F6ECE8,#FBF7F4);border:1px solid #EADCD7;border-radius:22px;padding:14px 14px 10px;overflow:hidden}
.kc__svg{display:block;width:100%;height:auto;max-height:62vh;margin:0 auto}
.kc__total{position:absolute;right:14px;top:14px;z-index:2;display:flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:999px;background:#fff;box-shadow:0 10px 24px -18px rgba(58,42,45,.5);font-size:13px;color:#6B5558}
.kc__total strong{font:600 17px/1 Manrope,system-ui,sans-serif;color:#3A2A2D;font-variant-numeric:tabular-nums}
.kc .kc__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;position:absolute;left:14px;top:14px;max-width:calc(100% - 190px);z-index:2}
.kc .kc__chips li{margin:0;padding:6px 10px;border-radius:999px;background:#fff;font-size:11.5px;font-weight:600;letter-spacing:.04em;color:#8B4A56;animation:kcIn .4s cubic-bezier(.2,.7,.2,1)}
.kc__hint{font-size:12px;color:#6B5558;margin:6px 4px 2px;text-align:center}
@media (max-width:979px){
	.kc__stage{top:calc(var(--hdr,64px) + 4px)}
	.kc__preview{padding:10px 10px 6px;border-radius:18px;box-shadow:0 16px 30px -26px rgba(58,42,45,.55)}
	.kc__svg{max-height:34vh;min-height:190px}
	.kc__hint{display:none}
	.kc .kc__chips{top:auto;bottom:8px;left:10px;max-width:calc(100% - 20px)}
	.kc__total{right:10px;top:10px;padding:6px 12px}
}

/* Анимации слоя */
.kc-base,.kc-stone,.kc-pendant__swing{transform-box:fill-box}
.kc-stone{transform-origin:center}
.kc-stone__body{transition:fill .45s cubic-bezier(.2,.7,.2,1)}
.kc-pendant__swing{transform-origin:50% 0}
.kc-pendant path{transition:fill .45s}
.kc-ext{transition:opacity .4s}
.kc-pop{animation:kcPop .55s cubic-bezier(.2,.9,.3,1.3) both}
.kc-fade{animation:kcFade .55s ease both}
.kc-swing{animation:kcSwing 1.1s cubic-bezier(.3,.7,.3,1) both}
.kc-shine{animation:kcShine .7s ease}
.kc-shake{animation:kcShake .4s ease}
@keyframes kcPop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
@keyframes kcFade{from{opacity:0}to{opacity:1}}
@keyframes kcSwing{0%{transform:rotate(14deg) translateY(-6px);opacity:0}35%{transform:rotate(-9deg);opacity:1}65%{transform:rotate(5deg)}85%{transform:rotate(-2deg)}100%{transform:rotate(0)}}
@keyframes kcShine{0%{filter:brightness(1)}40%{filter:brightness(1.18)}100%{filter:brightness(1)}}
@keyframes kcShake{0%,100%{transform:none}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes kcIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Шаги */
.kc__form{display:grid;gap:14px;min-width:0}
.kc-step{margin:0;padding:22px 20px;border:1px solid #EADCD7;border-radius:20px;background:#fff;min-width:0}
.kc-step__head{float:left;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:0;margin:0 0 16px;width:100%}
.kc-step__head+*{clear:both}
.kc-step__num{font:600 12px/1 Manrope,system-ui,sans-serif;letter-spacing:.16em;color:#A35D69}
.kc-step__title{font:500 clamp(26px,2.4vw,32px)/1.1 "Cormorant Garamond",Georgia,serif;color:#3A2A2D}
.kc-step__opt{font:italic 500 18px/1 "Cormorant Garamond",Georgia,serif;color:#6B5558;margin-left:6px}
.kc-step__hint{font-size:13.5px;color:#6B5558;margin:12px 0 0}
.kc .kc-sub{font:600 12px/1.3 Manrope,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6B5558;margin:22px 0 10px}
.kc-counter{font-weight:700;color:#8B4A56;display:inline-block}

.kc-opts{display:grid;gap:10px}
.kc-opt{position:relative;display:block;cursor:pointer;min-width:0}
.kc-opt input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.kc-opt__box{display:flex;flex-direction:column;gap:3px;height:100%;padding:12px;border:1px solid #EADCD7;border-radius:14px;background:#FBF7F4;transition:border-color .25s,box-shadow .25s,background .25s,transform .25s}
.kc-opt:hover .kc-opt__box{border-color:#D9A7A9}
.kc-opt input:checked+.kc-opt__box{border-color:#A35D69;background:#fff;box-shadow:0 0 0 2px rgba(163,93,105,.22),0 14px 26px -22px rgba(58,42,45,.6)}
.kc-opt input:focus-visible+.kc-opt__box{outline:2px solid #A35D69;outline-offset:2px}
.kc-opt__name{font-weight:700;font-size:14.5px;line-height:1.25;color:#3A2A2D}
.kc-opt__desc{font-size:12.5px;line-height:1.35;color:#6B5558}
.kc-opt__price{font-size:12.5px;font-weight:600;color:#8B4A56;font-variant-numeric:tabular-nums}
.kc-opt__photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.kc-opt__photo--round img{width:40px;height:40px;border-radius:50%}

.kc-opts--cards{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:640px){.kc-opts--cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
.kc-baseicon{width:100%;height:40px;margin-bottom:4px}
.kc-baseicon[data-kind="chain"] path{stroke:var(--kc-hw)}

.kc-opts--chips{display:flex;flex-wrap:wrap;gap:8px}
.kc-opt--chip .kc-opt__box{flex-direction:row;align-items:baseline;gap:6px;padding:10px 16px;border-radius:999px}

.kc-opts--palette{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:520px){.kc-opts--palette{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1200px){.kc-opts--palette{grid-template-columns:repeat(6,minmax(0,1fr))}}
.kc-opt--stone .kc-opt__box{align-items:center;text-align:center;padding:12px 6px 10px}
.kc-opt--stone .kc-opt__name{font-size:12.5px;font-weight:600}
.kc-opt--stone .kc-opt__price{font-size:11.5px}
.kc-swatch{position:relative;display:block;width:46px;height:46px;border-radius:50%;margin-bottom:6px;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95) 0,rgba(255,255,255,.15) 38%,rgba(58,42,45,.18) 100%),var(--c);box-shadow:inset 0 0 0 1px rgba(58,42,45,.14),0 6px 12px -8px rgba(58,42,45,.6);transition:transform .3s}
.kc-swatch img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.kc-opt--stone input:checked+.kc-opt__box .kc-swatch{transform:scale(1.08)}
.kc-swatch__order{position:absolute;right:-6px;top:-6px;min-width:20px;height:20px;border-radius:10px;background:#A35D69;color:#fff;font:700 11px/20px Manrope,sans-serif;text-align:center;opacity:0;transform:scale(.5);transition:opacity .25s,transform .25s}
.kc-opt--stone input:checked+.kc-opt__box .kc-swatch__order{opacity:1;transform:none}
.kc-opt--stone.is-main .kc-swatch__order{background:#3A2A2D}
.kc-opts--palette.is-full .kc-opt--stone input:not(:checked)+.kc-opt__box{opacity:.55}

.kc-opts--layouts{grid-template-columns:repeat(3,minmax(0,1fr))}
.kc-layicon{width:100%;height:36px;color:#A35D69;margin-bottom:4px}
.kc-opt--layout .kc-opt__box{text-align:center;align-items:center}
@media (max-width:420px){.kc-opt--layout .kc-opt__desc{display:none}}

.kc-opts--hw{display:flex;flex-wrap:wrap;gap:10px}
.kc-opt--hw .kc-opt__box{flex-direction:row;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:999px}
.kc-metal{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.75) 0,rgba(255,255,255,0) 45%,rgba(0,0,0,.18) 100%),var(--c);box-shadow:inset 0 0 0 1px rgba(58,42,45,.18)}

.kc-opts--pendants{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:640px){.kc-opts--pendants{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1200px){.kc-opts--pendants{grid-template-columns:repeat(7,minmax(0,1fr))}}
.kc-opt--pendant .kc-opt__box{align-items:center;text-align:center;padding:10px 6px}
.kc-opt--pendant .kc-opt__name{font-size:12.5px;font-weight:600}
.kc-opt--pendant .kc-opt__price{font-size:11.5px}
.kc-pendicon{width:40px;height:40px}
.kc-pendnone{display:block;width:40px;height:40px;border-radius:50%;border:1.5px dashed #D9A7A9}

.kc-switch{display:flex;align-items:flex-start;gap:12px;cursor:pointer;margin-top:14px;position:relative}
.kc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.kc-switch__track{flex:none;position:relative;width:46px;height:26px;border-radius:13px;background:#EADCD7;transition:background .25s;margin-top:1px}
.kc-switch__track::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(58,42,45,.25);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.kc-switch input:checked+.kc-switch__track{background:#A35D69}
.kc-switch input:checked+.kc-switch__track::after{transform:translateX(20px)}
.kc-switch input:focus-visible+.kc-switch__track{outline:2px solid #A35D69;outline-offset:2px}
.kc-switch__text{font-weight:600;font-size:15px;line-height:1.4}
.kc-switch__desc{display:block;font-weight:400;font-size:13px;color:#6B5558}
.kc-card-text{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s,opacity .4s,margin .4s;margin-top:0}
.kc-card-text>*{overflow:hidden;min-height:0}
.kc-card-text.is-open{grid-template-rows:auto auto auto;opacity:1;margin-top:12px}
.kc-card-text:not(.is-open){visibility:hidden;height:0}
.kc-card-text label{font:600 12px/1.4 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#6B5558;margin-bottom:6px}
.kc-card-text textarea{width:100%;border:1px solid #EADCD7;border-radius:12px;padding:12px 14px;font:400 16px/1.45 Manrope,system-ui,sans-serif;background:#FBF7F4;resize:vertical;min-height:84px;color:#3A2A2D}
.kc-card-text textarea:focus{outline:none;border-color:#A35D69;box-shadow:0 0 0 3px rgba(163,93,105,.15)}
.kc-card-text__count{font-size:12px;color:#6B5558;justify-self:end;margin-top:4px}

/* Итог */
.kc-summary{padding:26px 22px;border-radius:20px;background:#3A2A2D;color:#F7ECE9}
.kc .kc-summary__title{font:500 34px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 14px;color:#fff}
.kc-summary__title em{color:#E7C3C2}
.kc .kc-summary__lines{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px;font-size:14px}
.kc .kc-summary__lines li{margin:0;display:grid;grid-template-columns:minmax(90px,auto) minmax(0,1fr) auto;gap:10px;align-items:baseline;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12)}
.kc-summary__lines li span:first-child{color:#D9B9B6;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.kc-summary__lines li span:nth-child(2){overflow-wrap:anywhere}
.kc-summary__lines li span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.kc-summary__empty{display:block!important;color:#E7C3C2}
.kc .kc-summary__total{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 6px}
.kc-summary__total span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#D9B9B6}
.kc-summary__total strong{font:500 40px/1 "Cormorant Garamond",Georgia,serif;color:#fff;font-variant-numeric:tabular-nums}
.kc-summary__term{font:italic 500 19px/1.35 "Cormorant Garamond",Georgia,serif;color:#F2DCD8;margin:0 0 6px}
.kc-summary__note{font-size:12px;color:#CDB2AE;margin:0 0 16px}
.kc-summary__err{background:#FCE9EC;color:#8B3647;border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:12px}
.kc-submit{width:100%;font-size:13px!important;padding:18px 24px!important;background:#E7C3C2!important;border-color:#E7C3C2!important;color:#3A2A2D!important}
.kc-submit:hover{background:#fff!important;border-color:#fff!important}
.kc-submit:disabled{opacity:.7;cursor:progress}

@media (max-width:520px){
	.kc-step{padding:18px 14px;border-radius:16px}
	.kc-opts--cards .kc-opt__desc{display:none}
	.kc-summary{padding:22px 16px}
	.kc .kc-summary__lines li{grid-template-columns:minmax(0,1fr) auto}
	.kc .kc-summary__lines li span:first-child{grid-column:1/-1}
}

/* Миниатюра в корзине */
.kc-mini{border-radius:10px;background:#f6ece8}
.woocommerce table.cart .product-thumbnail .kc-mini{width:84px;height:84px}

@media (prefers-reduced-motion:reduce){
	.kc-pop,.kc-fade,.kc-swing,.kc-shine,.kc-shake{animation:none!important}
	.kc-stone__body,.kc-pendant path,.kc-ext,.kc-opt__box,.kc-swatch,.kc-switch__track::after{transition:none!important}
}
