/* Калькулятор букета, карточка «витрина» (27.09.2026). Свой вариант 365 по реестру интерфейсов сети:
   крупное фото меняется с оттенком, оттенки — «листики», высота стебля — «линейка»-стебель с заливкой до выбранной. */
.calc-showcase { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:12px; }
.calc-bloom { display:flex; min-width:0; flex-direction:column; overflow:hidden; background:#fff; border:1px solid rgba(74,54,82,.11); border-radius:20px; transition:border-color .18s ease,box-shadow .18s ease; }
.calc-bloom:hover { border-color:rgba(128,87,155,.3); }
.calc-bloom.is-selected { border-color:var(--violet-500); box-shadow:0 12px 30px rgba(95,60,111,.12); }

/* фото и подписи на нём */
.calc-bloom__photo { position:relative; aspect-ratio:1/1; background:#fff; border-bottom:1px solid var(--line); }
.calc-bloom__zoom { display:block; width:100%; height:100%; padding:8px; background:#fff; border:0; border-radius:0; cursor:zoom-in; }
.calc-bloom__zoom img { display:block; width:100%; height:100%; object-fit:contain; transition:opacity .2s ease; }
.calc-bloom__zoom:focus-visible { outline:3px solid var(--violet-500); outline-offset:-3px; }
.calc-bloom__zoom-icon { position:absolute; top:10px; right:10px; display:grid; width:30px; height:30px; place-items:center; color:var(--violet-800); background:rgba(255,255,255,.94); border:1px solid var(--line); border-radius:50%; box-shadow:0 4px 12px rgba(45,26,54,.1); }
.calc-bloom__zoom-icon .ui-icon { width:14px; height:14px; }
.calc-bloom__zoom:hover .calc-bloom__zoom-icon { color:#fff; background:var(--violet-700); }
.calc-bloom__letter { display:grid; height:100%; place-items:center; color:var(--violet-600); background:linear-gradient(145deg,#f4eaf6,#fff); font-size:42px; font-weight:850; }
.calc-bloom__tone { position:absolute; left:10px; bottom:10px; max-width:calc(100% - 20px); overflow:hidden; padding:5px 11px; color:var(--violet-800); background:rgba(255,255,255,.95); border:1px solid var(--violet-150); border-radius:999px; box-shadow:0 4px 14px rgba(45,26,54,.08); font-size:12px; font-weight:750; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; pointer-events:none; }
.calc-bloom__in { position:absolute; top:10px; left:10px; padding:4px 10px; color:#fff; background:var(--berry); border-radius:999px; font-size:12px; font-weight:800; line-height:1.35; pointer-events:none; }

/* название, цена, заметка */
.calc-bloom__head { padding:13px 15px 0; }
.calc-bloom__head h3 { margin:0; font-size:16px; line-height:1.28; letter-spacing:-.01em; }
.calc-bloom__head p { margin:5px 0 0; color:var(--violet-700); font-size:13px; font-weight:800; }
.calc-bloom.needs-price .calc-bloom__head p { color:#a15a70; }
.calc-bloom__head small { display:block; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.35; }

.calc-bloom__controls { display:grid; gap:12px; margin-top:auto; padding:12px 15px 15px; }

/* оттенки — «листики»: форма листа, кольцо у выбранного повторяет форму */
.calc-leaves { display:flex; flex-wrap:wrap; gap:4px; }
.calc-leaf { position:relative; display:grid; width:32px; height:32px; place-items:center; cursor:pointer; }
.calc-leaf input { position:absolute; inset:0; z-index:1; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.calc-leaf__swatch { width:20px; height:20px; background:var(--tone,#d9cfe0); border:1px solid rgba(43,38,48,.2); border-radius:1px 72% 1px 72%; transform:rotate(-8deg); transition:transform .15s ease,box-shadow .15s ease; }
.calc-leaf:hover .calc-leaf__swatch { transform:rotate(-8deg) scale(1.12); }
.calc-leaf input:checked + .calc-leaf__swatch { box-shadow:0 0 0 2px #fff,0 0 0 4px var(--violet-600); transform:rotate(-8deg) scale(1.08); }
.calc-leaf input:focus-visible + .calc-leaf__swatch { outline:2px solid var(--berry); outline-offset:5px; }

/* высота стебля и размер основы — «линейка»: полоса-стебель заливается до выбранной отметки */
.calc-ruler { display:flex; align-items:flex-end; }
.calc-ruler__step { position:relative; display:block; min-width:0; flex:1 1 0; cursor:pointer; }
.calc-ruler__step input { position:absolute; inset:0; z-index:1; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.calc-ruler__step span { display:block; padding:4px 0 11px; color:var(--muted); font-size:12px; font-weight:700; line-height:1.2; text-align:center; white-space:nowrap; }
.calc-ruler__step::after { display:block; height:6px; background:var(--violet-150); border-right:2px solid #fff; content:""; }
.calc-ruler__step:first-of-type::after { border-radius:4px 0 0 4px; }
.calc-ruler__step:last-of-type::after { border-right:0; border-radius:0 4px 4px 0; }
.calc-ruler__step.is-filled::after { background:#7c9a5a; }
.calc-ruler__step input:checked + span { color:var(--violet-800); font-weight:850; }
/* бегунок сидит на полосе (центр полосы 6 px), а не на подписи */
.calc-ruler__step input:checked + span::after { position:absolute; left:50%; bottom:-4px; width:14px; height:14px; background:#fff; border:3px solid #62803f; border-radius:50%; box-shadow:0 1px 4px rgba(45,26,54,.2); transform:translateX(-50%); content:""; }
.calc-ruler__step input:focus-visible + span { color:var(--berry); text-decoration:underline; text-underline-offset:3px; }
.calc-ruler__step:hover span { color:var(--violet-700); }
.calc-ruler__unit { flex:0 0 auto; padding:0 0 9px 7px; color:var(--muted); font-size:11px; font-weight:700; }
.calc-ruler--sizes .calc-ruler__step.is-filled::after { background:var(--violet-500); }
.calc-ruler--sizes .calc-ruler__step input:checked + span::after { border-color:var(--violet-700); }

/* количество */
.calc-bloom__qty { display:grid; grid-template-columns:44px minmax(40px,1fr) 44px; align-items:center; overflow:hidden; background:#f8f4f9; border:1px solid var(--line); border-radius:12px; }
.calc-bloom__qty button { display:grid; width:44px; height:42px; place-items:center; padding:0; color:var(--violet-700); background:transparent; border:0; font-size:20px; cursor:pointer; }
.calc-bloom__qty button:hover { background:#eee4f1; }
.calc-bloom__qty button[data-calc-plus] { color:#fff; background:var(--violet-600); }
.calc-bloom__qty button[data-calc-plus]:hover { background:var(--violet-700); }
.calc-bloom__qty input { width:100%; min-width:0; height:42px; padding:0; color:var(--ink); background:#fff; border:0; border-radius:0; box-shadow:none; font-size:16px; font-weight:800; text-align:center; -moz-appearance:textfield; }
.calc-bloom__qty input::-webkit-inner-spin-button,.calc-bloom__qty input::-webkit-outer-spin-button { margin:0; -webkit-appearance:none; }

/* две колонки, пока восьми отметкам высоты тесно в трёх (планшет и узкий ноутбук) */
@media (max-width:1180px) { .calc-showcase { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* телефон: карточка лёжа — фото слева, выбор под ним во всю ширину */
@media (max-width:620px) {
	.calc-showcase { grid-template-columns:1fr; gap:10px; }
	.calc-bloom { display:grid; grid-template-columns:116px minmax(0,1fr); grid-template-areas:"photo head" "controls controls"; align-items:start; }
	.calc-bloom__photo { grid-area:photo; width:116px; margin:12px 0 0 12px; overflow:hidden; border:1px solid var(--line); border-radius:14px; }
	.calc-bloom__zoom { padding:4px; }
	.calc-bloom__zoom-icon { top:6px; right:6px; width:26px; height:26px; }
	.calc-bloom__tone { left:6px; bottom:6px; max-width:calc(100% - 12px); padding:3px 8px; font-size:11px; }
	.calc-bloom__in { top:6px; left:6px; padding:3px 8px; font-size:11px; }
	.calc-bloom__head { grid-area:head; align-self:center; padding:12px 12px 0 14px; }
	.calc-bloom__controls { grid-area:controls; padding:12px; }
	.calc-leaf { width:34px; height:34px; }
	.calc-ruler__step span { padding:8px 0 13px; }
}

/* Минимальный заказ: итог ниже порога — кнопка неактивна (30.09.2026); вместо строки текста карточка
   «стебель до цели»: бутон растёт по шкале к порогу, подсказка в стеблях и переходы к шагам (02.10.2026) */
.calculator-page.is-below-min .calculator-summary__total { border-bottom:0; padding-bottom:6px; }
.calculator-page.is-below-min .calculator-summary__total>p { display:none; }
.calculator-page.is-below-min .calculator-summary__total strong { color:var(--muted); }
.calc-gap { position:relative; display:grid; gap:12px; margin-bottom:4px; padding:16px 16px 15px; overflow:hidden; background:radial-gradient(circle at 100% 0,rgba(214,92,130,.16),transparent 52%),linear-gradient(160deg,#fdf3f7,var(--violet-075)); border:1px solid rgba(214,92,130,.2); border-radius:18px; animation:calc-gap-in .45s ease-out; }
.calc-gap__head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.calc-gap__head>span { display:grid; gap:2px; color:var(--violet-900); font-size:13px; font-weight:800; line-height:1.25; }
.calc-gap__head>span small { color:var(--muted); font-size:11px; font-weight:600; }
.calc-gap__head strong { display:grid; justify-items:end; flex:0 0 auto; line-height:1; }
.calc-gap__head strong small { margin-bottom:4px; color:var(--berry); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.calc-gap__head strong b { color:var(--berry); font-size:24px; font-weight:850; letter-spacing:-.035em; white-space:nowrap; }
.calc-gap__stem { position:relative; height:8px; margin:12px 14px 0 0; background:repeating-linear-gradient(90deg,rgba(112,128,94,.28) 0 6px,transparent 6px 11px); border-radius:999px; }
.calc-gap__fill { position:absolute; top:0; bottom:0; left:0; width:8%; background:linear-gradient(90deg,#8fa07b,var(--green) 45%,var(--berry)); border-radius:999px; transition:width .6s cubic-bezier(.22,1,.36,1); }
.calc-gap__fill::before,.calc-gap__fill::after { content:""; position:absolute; top:-7px; width:11px; height:7px; background:var(--green); border-radius:11px 0; opacity:.75; }
.calc-gap__fill::before { left:22%; transform:rotate(-18deg); }
.calc-gap__fill::after { left:58%; top:7px; border-radius:0 11px; transform:rotate(-18deg); }
.calc-gap__bud { position:absolute; top:50%; right:-15px; display:grid; width:30px; height:30px; place-items:center; color:#fff; background:var(--berry); border:3px solid #fff; border-radius:50%; box-shadow:0 6px 16px rgba(214,92,130,.38); transform:translateY(-50%); animation:calc-gap-sway 2.8s ease-in-out infinite; }
.calc-gap__bud .ui-icon { width:15px; height:15px; }
.calc-gap__goal { position:absolute; top:50%; right:-14px; display:grid; width:22px; height:22px; place-items:center; color:var(--violet-600); background:#fff; border:1.5px dashed var(--violet-300); border-radius:50%; transform:translateY(-50%); }
.calc-gap__goal .ui-icon { width:12px; height:12px; }
.calc-gap__scale { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:11px; font-weight:650; }
.calc-gap__scale span:last-child { color:var(--violet-800); font-weight:800; }
.calc-gap__tip { margin:0; color:var(--ink); font-size:12px; line-height:1.45; }
.calc-gap__jump { display:flex; flex-wrap:wrap; gap:8px; }
.calc-gap__jump button { display:inline-flex; min-height:36px; align-items:center; gap:6px; padding:0 14px 0 11px; color:var(--violet-800); background:#fff; border:1px solid var(--violet-150); border-radius:999px; font-size:12px; font-weight:800; transition:border-color .2s ease,color .2s ease,transform .2s ease; }
.calc-gap__jump button .ui-icon { width:14px; height:14px; color:var(--berry); }
.calc-gap__jump button:hover { color:var(--berry); border-color:rgba(214,92,130,.45); transform:translateY(-1px); }
@keyframes calc-gap-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@keyframes calc-gap-sway { 0%,100% { transform:translateY(-50%) rotate(-8deg); } 50% { transform:translateY(-50%) rotate(8deg); } }
@media (prefers-reduced-motion:reduce) { .calc-gap,.calc-gap__bud { animation:none; }.calc-gap__fill { transition:none; } }
