/* ============================================================
   КАЛЬКУЛЯТОР КОРОБОК — СТИЛИ
   /wp-content/box/assets/css/calculator.css
   ============================================================ */

/* Плашка согласия */
.bm-consent-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;backdrop-filter:blur(8px);animation:bmFadeIn .3s ease}
@keyframes bmFadeIn{from{opacity:0}to{opacity:1}}
.bm-consent-modal{background:#fff;border-radius:20px;max-width:560px;width:100%;padding:40px 32px;box-shadow:0 30px 80px rgba(0,0,0,.4);animation:bmModalIn .4s ease;max-height:90vh;overflow-y:auto;text-align:center}
@keyframes bmModalIn{from{opacity:0;transform:scale(0.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
.bm-consent-modal-icon{width:64px;height:64px;margin:0 auto 20px;background:#000;border-radius:50%;display:flex;align-items:center;justify-content:center}
.bm-consent-modal-icon svg{width:32px;height:32px;color:#fff}
.bm-consent-modal h3{font-size:22px;font-weight:900;margin-bottom:10px;color:#000;letter-spacing:-.3px}
.bm-consent-modal .bm-consent-subtitle{font-size:14px;color:#666;margin-bottom:24px;line-height:1.5}
.bm-consent-modal .bm-consent-box{background:#f9f9f9;border:2px solid #000;border-radius:14px;padding:20px;margin-bottom:24px;text-align:left}
.bm-consent-modal .bm-consent-box-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#000;margin-bottom:12px}
.bm-consent-modal .bm-consent-list{list-style:none;padding:0;margin:0}
.bm-consent-modal .bm-consent-list li{padding:8px 0;font-size:13px;color:#333;line-height:1.5;border-bottom:1px solid #e5e5e5}
.bm-consent-modal .bm-consent-list li:last-child{border-bottom:none}
.bm-consent-modal .bm-consent-list li a{color:#000;text-decoration:underline;font-weight:600}
.bm-consent-modal .bm-consent-list li a:hover{opacity:.7}
.bm-consent-modal .bm-consent-checkbox-wrap{display:flex;align-items:flex-start;gap:12px;cursor:pointer;user-select:none;margin-bottom:20px;text-align:left}
.bm-consent-modal .bm-consent-checkbox-wrap input[type="checkbox"]{flex-shrink:0;width:22px;height:22px;cursor:pointer;accent-color:#000;margin-top:2px}
.bm-consent-modal .bm-consent-checkbox-wrap span{font-size:14px;line-height:1.5;color:#000;font-weight:500}
.bm-consent-modal .bm-consent-checkbox-wrap.error{animation:bmShake .4s}
.bm-consent-modal .bm-consent-checkbox-wrap.error span{color:#d32f2f}
.bm-consent-modal .bm-consent-accept-btn{width:100%;padding:16px;background:#000;color:#fff;border:2px solid #000;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px}
.bm-consent-modal .bm-consent-accept-btn:hover{background:#fff;color:#000}
.bm-consent-modal .bm-consent-accept-btn:disabled{opacity:.5;cursor:not-allowed}
.bm-consent-modal .bm-consent-note{font-size:11px;color:#999;margin-top:12px;line-height:1.4}

/* Основная секция */
.bm-section,.bm-section *{margin:0;padding:0;box-sizing:border-box}
.bm-section{font-family:'Roboto',Arial,sans-serif;background:#fff;padding:60px 20px}
.bm-container{max-width:1500px;margin:0 auto}
.bm-header{text-align:center;margin-bottom:50px}
.bm-header h2{font-size:36px;font-weight:300;color:#000;margin-bottom:14px;letter-spacing:-.5px;line-height:1.2}
.bm-header p{font-size:20px;font-weight:300;color:#000;max-width:700px;margin:0 auto;line-height:1.5}
.bm-header .bm-accent{color:#000;font-weight:700}

/* Табы типов коробок */
.bm-tabs-wrapper{position:relative;width:100%;overflow-x:hidden;max-width:100%}
.bm-tabs{display:flex;justify-content:center;align-items:flex-end;padding:30px 0 50px;perspective:1200px;position:relative;overflow:hidden;max-width:100%;width:100%;box-sizing:border-box}
.bm-tab{width:450px;height:600px;margin-left:-200px;position:relative;cursor:pointer;transition:all .5s cubic-bezier(.25,.46,.45,.94);transform-origin:bottom center;border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.15);background:#fff;border:2px solid #000;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.bm-tab:first-child{margin-left:0}
@media (hover:hover){.bm-tab:hover{transform:translateY(-40px) scale(1.05);z-index:100;box-shadow:0 24px 60px rgba(0,0,0,.35);border-color:#000}}
.bm-tab.active{transform:translateY(-40px) scale(1.05);z-index:100;box-shadow:0 24px 60px rgba(0,0,0,.35);border-color:#000;border-width:3px}
.bm-tab-preview{width:100%;height:calc(100% - 60px);overflow:hidden;background:#fff;position:relative}
.bm-tab-iframe{width:100%;height:100%;border:none;pointer-events:none;display:block}
.bm-tab-label{position:absolute;bottom:0;left:0;right:0;height:60px;padding:0 20px;font-size:16px;font-weight:500;color:#000;text-align:center;background:#fff;border-top:1px solid #000;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;transition:all .3s}
.bm-tab.active .bm-tab-label{background:#000;color:#fff;font-weight:700}
.bm-dots{display:none;justify-content:center;gap:8px;padding:16px 0}
.bm-dot{width:8px;height:8px;border-radius:50%;background:#fff;border:1px solid #000;transition:all .3s;cursor:pointer}
.bm-dot.active{background:#000;width:24px;border-radius:4px}
.bm-swipe-hint{display:none;text-align:center;padding:8px 0 16px;font-size:13px;color:#000;opacity:0;animation:bmFadeInOut 4s ease forwards}
@keyframes bmFadeInOut{0%,100%{opacity:0}20%,80%{opacity:1}}

/* Форма */
.bm-form-wrapper{max-height:0;overflow:hidden;transition:max-height .6s ease,opacity .4s ease;opacity:0}
.bm-form-wrapper.visible{max-height:8000px;opacity:1}
.bm-form{background:#fff;border:2px solid #000;border-radius:20px;padding:48px;margin-top:30px;box-shadow:0 12px 40px rgba(0,0,0,.1)}
.bm-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.bm-form-viewer{aspect-ratio:1/1;background:#fff;border-radius:16px;overflow:hidden;border:1px solid #000;position:sticky;top:20px}
.bm-form-viewer iframe{width:100%;height:100%;border:none;display:block}
.bm-form-fields{display:flex;flex-direction:column}
.bm-form-fields h3{font-size:22px;font-weight:400;margin-bottom:20px;color:#000;letter-spacing:-.3px}
.bm-field{margin-bottom:18px}
.bm-field label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#000;margin-bottom:6px}
.bm-field input{width:100%;padding:13px 15px;border:2px solid #000;border-radius:10px;font-size:16px;font-family:inherit;transition:border-color .2s;background:#fff;color:#000}
.bm-field input:focus{outline:none;border-color:#000;box-shadow:0 0 0 1px #000}
.bm-fields-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

/* Кнопка расчёта */
.bm-calc-btn{width:100%;padding:17px;margin-top:18px;background:#000;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px;touch-action:manipulation;display:none}
.bm-calc-btn.show{display:block}
.bm-calc-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.bm-calc-btn:disabled{opacity:.6;cursor:wait;transform:none;box-shadow:none}

/* Шаги */
.bm-step{max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .4s ease,margin-top .3s ease}
.bm-step.visible{max-height:5000px;opacity:1;margin-top:24px}
.bm-step-title{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:14px;font-weight:700;color:#000;text-transform:uppercase;letter-spacing:.5px}
.bm-step-number{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#000;color:#fff;border-radius:50%;font-size:13px;font-weight:900;flex-shrink:0}

/* Тарифы */
.bm-quote-section{padding-top:24px;border-top:2px solid #000;width:100%}
.bm-layout-simple{display:none;font-size:14px;color:#000;margin-bottom:14px;line-height:1.4;font-weight:700}
.bm-layout-simple.show{display:block}
.bm-layout-simple strong{font-weight:900;color:#000}
.bm-quote-sub{font-size:14px;color:#000;margin-bottom:14px;line-height:1.4;font-weight:700}
.bm-quote-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.bm-quote-cards.hidden{display:none}
.bm-quote-sub.hidden{display:none}
.bm-quote-loading{grid-column:1/-1;text-align:center;padding:40px 20px;color:#000;font-size:14px;font-weight:500}
.bm-quote-error{grid-column:1/-1;text-align:center;padding:20px;border:2px solid #000;border-radius:10px;color:#000;font-size:13px;line-height:1.6}
.bm-quote-card{padding:18px 12px;border:2px solid #000;border-radius:14px;cursor:pointer;transition:all .25s;background:#fff;position:relative;user-select:none;text-align:center;display:flex;flex-direction:column;justify-content:space-between;min-height:160px}
.bm-quote-card:hover{background:#fff;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.bm-quote-card.selected{border-width:4px;padding:16px 10px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.bm-quote-card.best{background:#fff;border-color:#000;border-width:3px}
.bm-quote-card.best.selected{background:#fff;border-color:#000;border-width:4px}
.bm-quote-card .q-qty{font-size:13px;color:#000;margin-bottom:6px;letter-spacing:.3px;font-weight:500}
.bm-quote-card .q-price{font-size:24px;font-weight:900;color:#000;line-height:1.1;margin-bottom:4px;letter-spacing:-.5px}
.bm-quote-card .q-price-unit{font-size:11px;color:#000;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.bm-quote-card.best .q-price{font-size:28px;color:#000}
.bm-quote-card .q-total{font-size:13px;color:#000;padding-top:10px;border-top:1px dashed #000;font-weight:500}
.bm-quote-card .q-total b{color:#000;font-weight:900}
.bm-quote-card .q-badge{display:inline-block;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;background:#000;color:#fff;border-radius:4px;margin-bottom:8px}
.bm-quote-card .q-badge.best{background:#000;color:#fff}
.bm-quote-card .q-badge.discount{background:#000;color:#fff}

/* Тестовая коробка */
.bm-test-box{border:2px solid #000;border-radius:14px;background:#fff;margin-top:18px;overflow:hidden;transition:all .25s}
.bm-test-box.selected{background:#000;border-color:#000}
.bm-test-box-default{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px}
.bm-test-box-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.bm-test-box-title{font-size:15px;font-weight:700;color:#000;line-height:1.3}
.bm-test-box-sub{font-size:13px;color:#000;line-height:1.4;font-weight:400}
.bm-test-box-sub b{font-weight:700;color:#000}
.bm-test-box-btn{flex-shrink:0;padding:12px 20px;background:#000;color:#fff;border:2px solid #000;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;font-family:inherit;letter-spacing:.3px}
.bm-test-box-btn:hover{background:#fff;color:#000;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.bm-test-box-btn:disabled{opacity:.5;cursor:not-allowed}
.bm-test-box-selected{display:none;flex-direction:column;gap:14px;padding:20px}
.bm-test-box.selected .bm-test-box-selected{display:flex}
.bm-test-box.selected .bm-test-box-default{display:none}
.bm-test-box.selected .bm-test-box-title{color:#fff;font-size:16px}
.bm-test-box.selected .bm-test-box-sub{color:#fff;font-size:14px}
.bm-test-box.selected .bm-test-box-sub b{color:#fff}
.bm-test-box-back{align-self:flex-start;padding:10px 18px;background:#fff;color:#000;border:2px solid #fff;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px}
.bm-test-box-back:hover{background:#000;color:#fff;border-color:#fff}

/* Помощь менеджера */
.bm-manager-help{padding:24px;background:#000;color:#fff;border:2px solid #000;border-radius:14px;text-align:center;display:none;margin-bottom:18px}
.bm-manager-help.show{display:block}
.bm-manager-help-title{font-size:18px;font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:-.2px}
.bm-manager-help-sub{font-size:13px;color:#fff;line-height:1.5;margin-bottom:18px;font-weight:400}
.bm-manager-help-suggest{font-size:14px;color:#fff;line-height:1.5;margin-bottom:18px;font-weight:700;display:none}
.bm-manager-help-suggest.show{display:block}
.bm-manager-help-messengers{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px}
.bm-manager-ms{display:flex;align-items:center;justify-content:center;padding:14px 12px;background:#fff;color:#000;border:2px solid #fff;border-radius:10px;text-decoration:none;font-size:14px;font-weight:700;transition:all .2s;white-space:nowrap}
.bm-manager-ms:hover{background:#000;color:#fff;border-color:#fff;transform:translateY(-2px)}
.bm-manager-ms-name{font-weight:700;letter-spacing:.3px}
.bm-copy-block{margin-top:18px;padding:16px;background:#fff;border:2px solid #fff;border-radius:10px;text-align:left}
.bm-copy-block-title{font-size:12px;font-weight:700;color:#000;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.bm-copy-block-text{font-size:13px;color:#000;line-height:1.5;margin-bottom:12px;padding:10px;background:#f5f5f5;border-radius:6px;font-family:'Roboto',monospace;word-break:break-word}
.bm-copy-btn{display:inline-block;padding:10px 20px;background:#000;color:#fff;border:2px solid #000;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px}
.bm-copy-btn:hover{background:#fff;color:#000}
.bm-copy-btn.copied{background:#fff;color:#000}

/* Мессенджеры */
.bm-messengers{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:0 0 24px}
.bm-messenger{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border:2px solid #000;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;user-select:none;background:#fff;color:#000;touch-action:manipulation}
.bm-messenger input{display:none}
.bm-messenger:hover{background:#fff;border-color:#000;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.bm-messenger.selected{background:#000;color:#fff;border-color:#000}
.bm-field-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#000;margin-bottom:8px}

/* Доставка */
.bm-dp-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.bm-dp-tab{padding:14px 12px;border:2px solid #000;border-radius:10px;cursor:pointer;text-align:center;transition:all .2s;background:#fff;color:#000;user-select:none}
.bm-dp-tab:hover{background:#f5f5f5}
.bm-dp-tab.active{background:#000;color:#fff}
.bm-dp-tab-title{font-size:14px;font-weight:700;margin-bottom:2px}
.bm-dp-tab-sub{font-size:11px;color:#666;line-height:1.3}
.bm-dp-tab.active .bm-dp-tab-sub{color:#ccc}
.bm-dp-info{padding:14px 16px;border:1px solid #000;border-radius:10px;font-size:13px;line-height:1.7;margin-bottom:14px;background:#fff}
.bm-dp-info-row{display:flex;gap:8px}
.bm-dp-info-row .lbl{color:#666;flex-shrink:0;font-weight:500}
.bm-dp-info-row .val{color:#000;font-weight:700}
.bm-dp-info-input{width:100%;padding:11px 13px;border:2px solid #000;border-radius:8px;font-size:14px;font-family:inherit;margin-top:6px;background:#fff;color:#000}
.bm-dp-info-input:focus{outline:none;box-shadow:0 0 0 1px #000}
.bm-dp-info-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;color:#000}
.bm-dp-info-text{font-size:12px;color:#666;line-height:1.5;margin-top:8px}
.bm-dp-info-text b{color:#000;font-weight:700}
.bm-other-action{margin-top:16px;display:none}
.bm-other-action.show{display:block}
.bm-other-pay-btn{width:100%;padding:16px 20px;background:#000;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;gap:10px}
.bm-other-pay-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.bm-other-pay-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.bm-other-pay-note{margin-top:8px;font-size:11px;color:#888;text-align:center;line-height:1.4}

/* Карта СДЭК */
.bm-map-section{display:none;grid-template-columns:340px 1fr;gap:16px;margin-bottom:14px}
.bm-map-section.show{display:grid}
.bm-map-left-panel{display:flex;flex-direction:column;border:2px solid #000;border-radius:10px;overflow:hidden;background:#fff;max-height:420px}
.bm-pickup-panel{display:none;flex-direction:column;height:100%}
.bm-pickup-panel.show{display:flex}
.bm-pickup-panel-title{padding:12px 14px;font-size:13px;font-weight:700;color:#000;border-bottom:1px solid #e5e5e5}
.bm-pickup-panel-info{padding:16px 14px;flex:1}
.bm-pickup-row{display:flex;gap:8px;margin-bottom:10px;font-size:13px;line-height:1.5}
.bm-pickup-row:last-child{margin-bottom:0}
.bm-pickup-label{color:#666;flex-shrink:0;font-weight:500}
.bm-pickup-confirm{padding:12px 14px;border-top:2px solid #000;display:flex;justify-content:center;flex-shrink:0}
.bm-pickup-confirm-btn{width:100%;padding:12px 16px;background:#000;color:#fff;border:2px solid #000;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px}
.bm-pickup-confirm-btn:hover{background:#fff;color:#000}
.bm-pickup-confirm-btn.confirmed{background:#fff;color:#000;cursor:default}
.bm-pickup-confirm-btn.confirmed:hover{background:#fff;color:#000}
.bm-map-search-panel{display:none;flex-direction:column;height:100%}
.bm-map-search-panel.show{display:flex}
.bm-map-search-title{padding:12px 14px;font-size:13px;font-weight:700;color:#000;border-bottom:1px solid #e5e5e5;flex-shrink:0}
.bm-city-search-wrap{position:relative;padding:10px 12px;flex-shrink:0}
.bm-city-search-input{width:100%;padding:11px 13px;border:2px solid #000;border-radius:8px;font-size:14px;font-family:inherit;background:#fff;color:#000;outline:none}
.bm-city-search-input:focus{box-shadow:0 0 0 1px #000}
.bm-city-search-input::placeholder{color:#999}
.bm-city-dropdown{display:none;position:absolute;top:100%;left:12px;right:12px;max-height:200px;overflow-y:auto;background:#fff;border:2px solid #000;border-top:none;border-radius:0 0 8px 8px;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.bm-city-dropdown.show{display:block}
.bm-city-item{padding:9px 12px;cursor:pointer;transition:background .15s;border-bottom:1px solid #f0f0f0;font-size:13px;color:#000}
.bm-city-item:last-child{border-bottom:none}
.bm-city-item:hover{background:#f5f5f5}
.bm-city-empty{padding:12px;text-align:center;color:#999;font-size:12px}
.bm-pvz-list{flex:1;overflow-y:auto;border-top:1px solid #e5e5e5}
.bm-pvz-list::-webkit-scrollbar{width:4px}
.bm-pvz-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}
.bm-pvz-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background .15s}
.bm-pvz-item:last-child{border-bottom:none}
.bm-pvz-item:hover{background:#f5f5f5}
.bm-pvz-item.selected{background:#000;color:#fff}
.bm-pvz-item-name{font-size:13px;font-weight:700;margin-bottom:2px}
.bm-pvz-item-addr{font-size:12px;color:#666;line-height:1.3}
.bm-pvz-item.selected .bm-pvz-item-addr{color:#ccc}
.bm-pvz-empty{padding:20px 14px;text-align:center;color:#999;font-size:13px;line-height:1.5}
.bm-pvz-loading{padding:20px 14px;text-align:center;color:#666;font-size:13px}
.bm-map-right{display:flex;flex-direction:column;border:2px solid #000;border-radius:10px;overflow:hidden;background:#fff;min-height:380px}
.bm-map-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:2px solid #000;background:#fff;font-size:12px;font-weight:700;flex-wrap:wrap;flex-shrink:0}
.bm-map-title{color:#000}
#bmMap{flex:1;min-height:300px;background:#f5f5f5}
.bm-map-hint{padding:8px 14px;font-size:11px;color:#666;background:#fff;border-top:1px solid #e5e5e5;flex-shrink:0}
.bm-pvz-confirm{display:none;padding:14px;background:#fff;border-top:2px solid #000;flex-direction:column;gap:10px;flex-shrink:0}
.bm-pvz-confirm.show{display:flex}
.bm-pvz-confirm-info{display:flex;flex-direction:column;gap:4px}
.bm-pvz-confirm-name{font-size:14px;font-weight:700;color:#000;margin-bottom:2px}
.bm-pvz-confirm-addr{font-size:13px;color:#555;line-height:1.4;margin-bottom:8px}
.bm-pvz-confirm-btn{width:100%;padding:12px 16px;background:#000;color:#fff;border:2px solid #000;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px}
.bm-pvz-confirm-btn:hover{background:#fff;color:#000}
.bm-pvz-confirm-btn.confirmed{background:#fff;color:#000;cursor:default}
.bm-pvz-confirm-btn.confirmed:hover{background:#fff;color:#000}

/* Оплата */
.bm-payment-block{padding-top:20px;border-top:2px solid #000}
.bm-summary-panel{padding:20px 24px;background:#f5f5f5;border:2px solid #000;border-radius:12px;margin-bottom:16px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.bm-summary-row{display:flex;justify-content:flex-end;gap:12px;font-size:14px;line-height:1.4;width:100%}
.bm-summary-label{color:#666;font-weight:500;flex-shrink:0}
.bm-summary-value{color:#000;font-weight:700;text-align:right;max-width:60%;word-break:break-word}
.bm-summary-total-row{display:flex;justify-content:flex-end;gap:16px;padding-top:12px;margin-top:4px;border-top:2px solid #000;width:100%}
.bm-summary-total-row .bm-summary-label{color:#000;font-size:16px;font-weight:700}
.bm-summary-total-row .bm-summary-value{color:#000;font-size:22px;font-weight:900;letter-spacing:-.5px}
.bm-payment-total-btn{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:18px 20px;background:#000;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px}
.bm-payment-total-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.bm-payment-total-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.bm-payment-total-btn .p-label{font-size:12px;color:#ccc;text-transform:uppercase;letter-spacing:.5px}
.bm-payment-total-btn .p-amount{font-size:20px;font-weight:900;letter-spacing:-.5px}
.bm-payment-total-btn .p-arrow{font-size:16px;font-weight:700}
.bm-payment-secure{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;font-size:14px;color:#555;font-weight:500}

/* Кнопки и статусы */
.bm-btn{width:100%;padding:17px;background:#000;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px;touch-action:manipulation}
.bm-btn:hover{background:#000;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.bm-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.bm-btn.sending{background:#000;opacity:.6}
.bm-status{margin-top:18px;padding:15px;border-radius:10px;font-size:14px;text-align:center;display:none;line-height:1.5;font-weight:500}
.bm-status.show{display:block}
.bm-status.ok{background:#fff;color:#000;border:2px solid #000}
.bm-status.err{background:#000;color:#fff;border:2px solid #000}

/* Согласие */
.bm-consent{margin-top:16px}
.bm-consent-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13px;line-height:1.5;color:#555;user-select:none}
.bm-consent-checkbox{margin-top:3px;flex-shrink:0;width:18px;height:18px;cursor:pointer;accent-color:#000}
.bm-consent-text{flex:1}
.bm-consent-text a{color:#000;text-decoration:underline;transition:opacity .2s}
.bm-consent-text a:hover{opacity:.7}
.bm-consent-label:hover .bm-consent-text{color:#000}
.bm-consent-label.error{color:#d32f2f}
.bm-consent-label.error .bm-consent-text a{color:#d32f2f}
.bm-final-consent{margin:24px auto 0;padding:24px 28px;max-width:640px;background:#f9f9f9;border:2px solid #000;border-radius:14px;text-align:center}
.bm-final-consent-label{display:flex;align-items:center;justify-content:center;gap:14px;cursor:pointer;font-size:15px;line-height:1.5;color:#000;user-select:none;text-align:center}
.bm-final-consent-checkbox{flex-shrink:0;width:24px;height:24px;cursor:pointer;accent-color:#000;margin:0}
.bm-final-consent-text{flex:1;font-weight:500;text-align:left}
.bm-final-consent-text a{color:#000;text-decoration:underline;font-weight:700;transition:opacity .2s}
.bm-final-consent-text a:hover{opacity:.7}
.bm-final-consent-label.error{color:#d32f2f;animation:bmShake .4s}
.bm-final-consent-label.error .bm-final-consent-text a{color:#d32f2f}

/* Модалка успеха */
.bm-success-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px;backdrop-filter:blur(4px)}
.bm-success-modal-backdrop.show{display:flex}
.bm-success-modal{background:#fff;border-radius:20px;max-width:480px;width:100%;padding:36px 30px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:bmModalIn .4s ease;max-height:90vh;overflow-y:auto}
.bm-success-icon{width:72px;height:72px;margin:0 auto 18px;background:#000;border-radius:50%;display:flex;align-items:center;justify-content:center}
.bm-success-icon svg{width:36px;height:36px;color:#fff}
.bm-success-modal h3{font-size:22px;font-weight:700;margin-bottom:10px;color:#000}
.bm-success-modal .bm-success-sub{font-size:14px;color:#666;margin-bottom:22px;line-height:1.5}
.bm-success-order-num{font-family:monospace;font-size:20px;font-weight:900;background:#f5f5f5;padding:12px 20px;border-radius:10px;display:inline-block;margin-bottom:20px;letter-spacing:1px;color:#000;border:2px solid #000}
.bm-success-details{text-align:left;background:#f9f9f9;border-radius:10px;padding:16px;margin-bottom:22px}
.bm-success-detail-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;border-bottom:1px solid #e5e5e5}
.bm-success-detail-row:last-child{border-bottom:none}
.bm-success-detail-row .lbl{color:#666}
.bm-success-detail-row .val{font-weight:700;color:#000;text-align:right}
.bm-success-track-hint{font-size:13px;color:#666;margin-bottom:20px;line-height:1.5}
.bm-success-track-hint b{color:#000}
.bm-timer-wrap{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px}
.bm-timer-circle{position:relative;width:56px;height:56px}
.bm-timer-circle svg{transform:rotate(-90deg);width:56px;height:56px}
.bm-timer-circle circle{fill:none;stroke-width:4}
.bm-timer-circle .bg{stroke:#e5e5e5}
.bm-timer-circle .progress{stroke:#000;stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.bm-timer-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#000}
.bm-timer-text{font-size:13px;color:#666;text-align:left;line-height:1.4}
.bm-success-btn{width:100%;padding:15px;background:#000;color:#fff;border:2px solid #000;border-radius:10px;font-size:15px;font-weight:700;font-family:'Roboto',Arial,sans-serif;cursor:pointer;transition:all .2s;letter-spacing:.3px}
.bm-success-btn:hover{background:#fff;color:#000}
.bm-success-btn.secondary{background:#fff;color:#000;margin-top:10px}
.bm-success-btn.secondary:hover{background:#000;color:#fff}

/* ============================================
   РЕШЕНИЕ: Свайп по 3D-модели переключает табы
   ============================================ */

/* iframe внутри табов пропускает touch-события к родителю */
.bm-tab-preview iframe,
.bm-tab-iframe {
    pointer-events: none !important;
    touch-action: pan-x pan-y !important;
}

/* Прозрачный overlay поверх iframe для гарантии прохождения событий */
.bm-tab-preview {
    position: relative !important;
}

.bm-tab-preview::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    background: transparent;
    pointer-events: none !important;
    touch-action: pan-x pan-y !important;
}

/* Курсор-указатель на табе */
.bm-tab {
    cursor: pointer;
    touch-action: manipulation;
}

/* Визуальный отклик при наведении */
@media (hover: hover) {
    .bm-tab:hover .bm-tab-preview {
        transform: scale(1.03);
        transition: transform 0.2s ease;
    }
}

/* Большая модель в форме — тоже пропускает свайпы */
.bm-form-viewer iframe {
    pointer-events: none !important;
    touch-action: pan-x pan-y !important;
}

/* ============================================
   ЖЁСТКАЯ ЗАЩИТА ОТ ВЫЛЕТАНИЯ ЗА ПРЕДЕЛЫ ЭКРАНА
   (Исправляет проблему "слишком широкий")
   ============================================ */

/* 1. Глобальный запрет горизонтального скролла страницы */
html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* 2. Ограничение самой секции калькулятора */
.bm-section {
    overflow-x: hidden !important;
    max-width: 100% !important;
    position: relative;
    box-sizing: border-box;
}

/* 3. Контейнер и внутренние блоки не могут быть шире экрана */
.bm-container,
.bm-tabs-wrapper,
.bm-tabs,
.bm-form-wrapper,
.bm-form,
.bm-quote-section,
.bm-step {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* 4. Iframe и превью не имеют права растягивать родителя */
.bm-tab-iframe,
.bm-form-viewer iframe,
.bm-tab-preview,
.bm-form-viewer {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* ============================================
   МОБИЛЬНАЯ АДАПТАЦИЯ (ДО 768px)
   ============================================ */
@media (max-width: 768px) {
    /* Уменьшаем отступы секции */
    .bm-section {
        padding: 30px 0 !important;
    }
    
    /* Контейнер на всю ширину */
    .bm-container {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    
    /* Уменьшаем заголовок */
    .bm-header {
        margin-bottom: 24px !important;
        padding: 0 16px !important;
    }
    
    .bm-header h2 {
        font-size: 24px !important;
        line-height: 1.3 !important;
        margin-bottom: 12px !important;
    }
    
    .bm-header p {
        font-size: 15px !important;
        line-height: 1.5 !important;
        max-width: 100% !important;
    }
    
    /* Обёртка табов — делаем горизонтальную карусель */
    .bm-tabs-wrapper {
        width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none;
        padding: 0 16px !important;
    }
    
    .bm-tabs-wrapper::-webkit-scrollbar {
        display: none;
    }
    
    /* Контейнер табов — flex с плавной прокруткой */
    .bm-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        align-items: stretch !important;
        padding: 16px 0 !important;
        gap: 12px !important;
        perspective: none !important;
        overflow: visible !important;
        width: max-content !important;
        scroll-snap-type: x mandatory;
    }
    
    /* Отдельная вкладка — уменьшаем размер */
    .bm-tab {
        width: 280px !important;
        height: 400px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        flex-shrink: 0 !important;
        position: relative !important;
        transform: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
        scroll-snap-align: center;
    }
    
    .bm-tab:first-child {
        margin-left: 0 !important;
    }
    
    /* Активная вкладка на мобильных */
    .bm-tab.active {
        transform: translateY(-6px) !important;
        box-shadow: 0 8px 24px rgba(0,0,0,0.2) !important;
        border-width: 3px !important;
        z-index: 10 !important;
    }
    
    /* Превью внутри вкладки */
    .bm-tab-preview {
        width: 100% !important;
        height: calc(100% - 50px) !important;
    }
    
    .bm-tab-iframe {
        width: 100% !important;
        height: 100% !important;
    }
    
    /* Метка вкладки */
    .bm-tab-label {
        height: 50px !important;
        font-size: 14px !important;
        padding: 0 12px !important;
    }
    
    /* Форма калькулятора */
    .bm-form {
        padding: 20px 16px !important;
        margin-top: 16px !important;
        border-radius: 12px !important;
        margin-left: 16px !important;
        margin-right: 16px !important;
    }
    
    .bm-form-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    .bm-form-viewer {
        position: relative !important;
        top: 0 !important;
        aspect-ratio: 1/1 !important;
        max-width: 100% !important;
    }
    
    .bm-form-fields h3 {
        font-size: 18px !important;
    }
    
    .bm-fields-row {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    /* Кнопка расчёта */
    .bm-calc-btn {
        padding: 14px !important;
        font-size: 15px !important;
    }
    
    /* Тарифы */
    .bm-quote-cards {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    .bm-quote-card {
        min-height: 120px !important;
        padding: 14px 12px !important;
    }
    
    /* Тестовая коробка */
    .bm-test-box-default {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
    }
    
    .bm-test-box-btn {
        width: 100% !important;
    }
    
    /* Мессенджеры */
    .bm-messengers {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    
    /* Доставка */
    .bm-dp-tabs {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    
    /* Карта */
    .bm-map-section {
        grid-template-columns: 1fr !important;
    }
    
    .bm-map-left-panel,
    .bm-map-right {
        max-height: 350px !important;
    }
}

/* ============================================
   ПЛАНШЕТЫ (768px - 1024px)
   ============================================ */
@media (min-width: 769px) and (max-width: 1024px) {
    .bm-header h2 {
        font-size: 30px !important;
    }
    
    .bm-header p {
        font-size: 18px !important;
    }
    
    .bm-tab {
        width: 380px !important;
        height: 520px !important;
        margin-left: -160px !important;
    }
    
    .bm-tabs {
        padding: 30px 40px 50px !important;
    }
    
    .bm-form {
        padding: 32px !important;
    }
}

/* ============================================
   ИЗОЛЯЦИЯ КАЛЬКУЛЯТОРА НА ГЛАВНОЙ
   (поведение как .pp-page на странице товара)
   ============================================ */

.bm-calc-isolated {
    width: 100%;
    max-width: 1170px;
    margin: 0 auto;
    overflow-x: hidden;
    box-sizing: border-box;
    position: relative;
}

.bm-calc-isolated .bm-section {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

/* ============================================
   ФИНАЛЬНАЯ МОБИЛЬНАЯ АДАПТАЦИЯ
   Работает без дополнительных классов в HTML
   ============================================ */

/* Перебиваем базовый overflow-x:hidden на мобильных */
@media (max-width: 768px) {
    .bm-tabs-wrapper {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        max-width: none !important;
        padding: 0 16px !important;
        box-sizing: border-box !important;
    }
    .bm-tabs-wrapper::-webkit-scrollbar {
        display: none !important;
    }

    .bm-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        align-items: stretch !important;
        width: max-content !important;
        max-width: none !important;
        gap: 14px !important;
        padding: 16px 0 32px !important;
        perspective: none !important;
        overflow: visible !important;
        scroll-snap-type: x mandatory;
    }

    .bm-tab {
        width: 280px !important;
        height: 400px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        flex-shrink: 0 !important;
        transform: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
        scroll-snap-align: center;
    }
    .bm-tab:first-child {
        margin-left: 0 !important;
    }
    .bm-tab.active {
        transform: translateY(-8px) !important;
        box-shadow: 0 12px 32px rgba(0,0,0,0.22) !important;
        border-width: 3px !important;
        z-index: 10 !important;
    }

    /* Заголовок */
    .bm-section { padding: 30px 0 !important; }
    .bm-container { max-width: 100% !important; padding: 0 !important; }
    .bm-header { padding: 0 16px !important; margin-bottom: 20px !important; }
    .bm-header h2 { font-size: 22px !important; line-height: 1.3 !important; }
    .bm-header p { font-size: 15px !important; line-height: 1.5 !important; max-width: 100% !important; }

    /* Превью и лейбл */
    .bm-tab-preview { height: calc(100% - 50px) !important; }
    .bm-tab-iframe { width: 100% !important; height: 100% !important; }
    .bm-tab-label { height: 50px !important; font-size: 14px !important; padding: 0 12px !important; }

    /* Форма */
    .bm-form {
        padding: 20px 16px !important;
        margin: 16px 16px 0 !important;
        border-radius: 14px !important;
    }
    .bm-form-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
    .bm-form-viewer { position: relative !important; top: 0 !important; }
    .bm-form-fields h3 { font-size: 18px !important; }
    .bm-fields-row { grid-template-columns: 1fr !important; gap: 12px !important; }
    .bm-calc-btn { padding: 15px !important; font-size: 15px !important; }

    /* Тарифы */
    .bm-quote-cards { grid-template-columns: 1fr !important; gap: 10px !important; }
    .bm-quote-card { min-height: auto !important; padding: 14px 12px !important; }

    /* Тестовая коробка */
    .bm-test-box-default { flex-direction: column !important; align-items: stretch !important; gap: 12px !important; }
    .bm-test-box-btn { width: 100% !important; }

    /* Мессенджеры и доставка */
    .bm-messengers { grid-template-columns: 1fr !important; gap: 8px !important; }
    .bm-dp-tabs { grid-template-columns: 1fr !important; gap: 8px !important; }

    /* Карта */
    .bm-map-section { grid-template-columns: 1fr !important; }
    .bm-map-left-panel, .bm-map-right { max-height: 350px !important; }
}

/* Планшеты */
@media (min-width: 769px) and (max-width: 1024px) {
    .bm-header h2 { font-size: 30px !important; }
    .bm-header p { font-size: 18px !important; }
    .bm-tab { width: 340px !important; height: 480px !important; margin-left: -140px !important; }
    .bm-tabs { padding: 30px 24px 50px !important; }
    .bm-form { padding: 32px !important; }
}

/* ============================================
   ФИНАЛЬНАЯ МОБИЛЬНАЯ АДАПТАЦИЯ (БРОНЕБОЙНАЯ)
   Перебивает inline-стили из front-page.php
   ============================================ */

/* 1. Снимаем ограничения с глобальных контейнеров на мобильных */
@media (max-width: 768px) {
    body.kd-frontpage,
    #kd-frontpage-wrapper,
    .bm-section, 
    .bm-container, 
    .bm-calc-isolated,
    .kd-unified-container {
        overflow-x: visible !important;
        overflow-y: visible !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* 2. Делаем обёртку табов полноценной каруселью на всю ширину экрана */
    .bm-tabs-wrapper {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }
    .bm-tabs-wrapper::-webkit-scrollbar {
        display: none !important;
    }

    /* 3. Снимаем ограничения с flex-контейнера табов */
    .bm-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        flex-direction: row !important;
        justify-content: flex-start !important;
        align-items: stretch !important;
        width: max-content !important;
        max-width: none !important;
        gap: 16px !important;
        padding: 16px 20px 32px !important;
        margin: 0 !important;
        perspective: none !important;
        overflow: visible !important;
        scroll-snap-type: x mandatory !important;
    }

    /* 4. Жёстко фиксируем размер табов (убиваем десктопные 450px и margin-left: -200px) */
    .bm-tab {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
        height: 400px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        flex-shrink: 0 !important;
        transform: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
        scroll-snap-align: center !important;
        aspect-ratio: auto !important;
    }
    
    /* Первая вкладка без отступов */
    .bm-tab:first-child {
        margin-left: 20px !important;
    }
    
    /* Последняя вкладка с отступом справа */
    .bm-tab:last-child {
        margin-right: 20px !important;
    }

    /* 5. Активный таб на мобильных */
    .bm-tab.active {
        transform: translateY(-8px) !important;
        box-shadow: 0 12px 32px rgba(0,0,0,0.22) !important;
        border-width: 3px !important;
        z-index: 10 !important;
    }

    /* 6. Превью и лейбл внутри таба */
    .bm-tab-preview {
        height: calc(100% - 50px) !important;
        overflow: hidden !important;
    }
    .bm-tab-label {
        height: 50px !important;
        font-size: 14px !important;
        padding: 0 12px !important;
    }

    /* 7. Адаптация формы под табами */
    .bm-form {
        padding: 20px 16px !important;
        margin: 16px 16px 0 !important;
        border-radius: 14px !important;
    }
    .bm-form-grid { 
        grid-template-columns: 1fr !important; 
        gap: 20px !important; 
    }
    .bm-form-viewer { 
        position: relative !important; 
        top: 0 !important; 
        height: 250px !important;
    }
    .bm-fields-row { 
        grid-template-columns: 1fr !important; 
        gap: 12px !important; 
    }
    .bm-quote-cards { 
        grid-template-columns: 1fr !important; 
        gap: 10px !important; 
    }
}
/* ===== ПЛАШКА СОГЛАСИЯ: ДВЕ КНОПКИ ===== */
.bm-consent-actions {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.bm-consent-accept-btn {
    flex: 1;
    min-width: 200px;
}

.bm-consent-reject-btn {
    flex: 1;
    min-width: 200px;
    padding: 16px 24px;
    background: #fff;
    color: #000;
    border: 2px solid #000;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: all .2s;
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.bm-consent-reject-btn:hover {
    background: #f5f5f5;
}

.bm-consent-reject-btn:active {
    transform: scale(.98);
}

@media (max-width: 500px) {
    .bm-consent-actions {
        flex-direction: column;
    }
    .bm-consent-accept-btn,
    .bm-consent-reject-btn {
        width: 100%;
        min-width: auto;
    }
}
/* Overlay для табов — ТОЛЬКО для визуального эффекта при hover */
.bm-tab-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    cursor: pointer;
    background: transparent;
    pointer-events: none; /* ← ВАЖНО: пропускаем все события */
    transition: background 0.3s ease;
}

/* При hover на десктопе — лёгкое затемнение */
.bm-tab:hover .bm-tab-overlay {
    background: rgba(0, 0, 0, 0.05);
}

/* Кнопка "Выбрать" на каждой карточке */
.bm-tab-select-btn {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    padding: 10px 24px;
    background: #000;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    pointer-events: auto; /* ← Кнопка кликабельна */
    transition: all 0.2s ease;
    white-space: nowrap;
}

.bm-tab-select-btn:hover {
    background: #333;
    transform: translateX(-50%) translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.bm-tab-select-btn:active {
    transform: translateX(-50%) translateY(0);
}

/* На мобильных — кнопка всегда видна */
@media (max-width: 1000px) {
    .bm-tab-select-btn {
        bottom: 12px;
        padding: 12px 28px;
        font-size: 15px;
    }
}

.bm-tab-preview {
    position: relative;
}

/* ===== МОБИЛЬНЫЕ: убираем белые полосы по бокам ===== */
@media (max-width: 1000px) {
    .bm-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .bm-container {
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Карусель табов — на всю ширину */
    .bm-tabs-wrapper {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .bm-tabs {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    
    /* Форма калькулятора — с отступами только внутри */
    .bm-form-wrapper {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* Десктоп: обычные отступы */
@media (min-width: 1001px) {
    .bm-section {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}
/* ===== КАРТОЧКИ ТАБОВ: position relative для кнопки ===== */
.bm-tab {
    position: relative !important;
}

/* ===== КНОПКА "ВЫБРАТЬ" НА КАЖДОЙ КАРТОЧКЕ ===== */
.bm-tab-select-btn {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    padding: 10px 28px;
    background: #000;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    font-family: 'Roboto', Arial, sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    pointer-events: auto !important;
}

.bm-tab-select-btn:hover {
    background: #333;
    transform: translateX(-50%) translateY(-2px);
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
}

.bm-tab-select-btn:active {
    transform: translateX(-50%) translateY(0) scale(0.97);
}

/* На мобильных кнопка крупнее и всегда видна */
@media (max-width: 1000px) {
    .bm-tab-select-btn {
        bottom: 12px;
        padding: 12px 32px;
        font-size: 15px;
    }
}

/* На десктопе при hover — лёгкое затемнение карточки */
@media (min-width: 1001px) {
    .bm-tab::after {
        content: '';
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0);
        transition: background 0.3s ease;
        pointer-events: none;
        border-radius: inherit;
    }
    .bm-tab:hover::after {
        background: rgba(0,0,0,0.04);
    }
}

/* ========================================
   КНОПКА "ВЫБРАТЬ" НА КАРТОЧКАХ 3D-МОДЕЛЕЙ
   Железобетонные стили с !important
   ======================================== */

/* Сама карточка должна быть relative для позиционирования кнопки */
.bm-tab {
    position: relative !important;
    overflow: visible !important;
}

/* Кнопка "Выбрать" */
.bm-tab-select-btn {
    position: absolute !important;
    bottom: 12px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 9999 !important;
    padding: 10px 28px !important;
    background: #000 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: 'Roboto', Arial, sans-serif !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
    pointer-events: auto !important;
    transition: all 0.2s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    min-width: 120px !important;
    text-align: center !important;
}

.bm-tab-select-btn:hover {
    background: #333 !important;
    transform: translateX(-50%) translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.4) !important;
}

.bm-tab-select-btn:active {
    transform: translateX(-50%) translateY(0) scale(0.97) !important;
}

/* iframe и превью НЕ должны перекрывать кнопку */
.bm-tab-preview,
.bm-tab iframe,
.bm-tab-overlay {
    z-index: 1 !important;
}

/* На мобильных — крупнее */
@media (max-width: 767px) {
    .bm-tab-select-btn {
        padding: 14px 32px !important;
        font-size: 16px !important;
        min-width: 140px !important;
        bottom: 16px !important;
    }
}

.bm-tab-preview {
    pointer-events: none !important;
}
.bm-tab-preview * {
    pointer-events: none !important;
}
.bm-tab-select-btn {
    pointer-events: auto !important;
}
/* ============================================
   КНОПКА "ВЫБРАТЬ" НА КАРТОЧКАХ 3D-МОДЕЛЕЙ
   Принудительное отображение поверх iframe
   ============================================ */

/* Карточка должна быть позиционирована относительно */
.bm-tab {
    position: relative !important;
}

/* iframe и превью НЕ перехватывают клики */
.bm-tab-preview,
.bm-tab-preview *,
.bm-tab iframe,
.bm-tab-iframe {
    pointer-events: none !important;
}

/* Кнопка "Выбрать" — поверх всего */
.bm-tab-select-btn {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 99999 !important;
    
    /* Визуальные стили */
    display: block !important;
    padding: 14px 32px !important;
    background: #000 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    font-family: 'Roboto', Arial, sans-serif !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
    
    /* Кнопка кликабельна */
    pointer-events: auto !important;
    
    /* Убираем возможные скрытия */
    visibility: visible !important;
    opacity: 1 !important;
    
    transition: all 0.2s ease !important;
}

.bm-tab-select-btn:hover {
    background: #333 !important;
    transform: translateX(-50%) translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.5) !important;
}

.bm-tab-select-btn:active {
    transform: translateX(-50%) translateY(0) scale(0.97) !important;
}

/* На мобильных — крупнее */
@media (max-width: 767px) {
    .bm-tab-select-btn {
        padding: 16px 36px !important;
        font-size: 18px !important;
        bottom: 24px !important;
    }
}
/* ===== ПЛАШКА ОЖИДАНИЯ РАСЧЁТА ===== */
.bm-calc-waiting {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 32px 24px;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 16px;
    margin: 24px 0;
    border: 2px solid #e5e5e5;
}

.bm-calc-waiting.show {
    display: flex;
    animation: bmFadeIn 0.3s ease;
}

@keyframes bmFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Спиннер */
.bm-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #e5e5e5;
    border-top-color: #000;
    border-radius: 50%;
    animation: bmSpin 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes bmSpin {
    to { transform: rotate(360deg); }
}

/* Текст плашки */
.bm-calc-waiting-content {
    flex: 1;
}

.bm-calc-waiting-text {
    font-size: 16px;
    font-weight: 700;
    color: #000;
    margin-bottom: 6px;
}

.bm-calc-waiting-sub {
    font-size: 13px;
    color: #666;
    line-height: 1.5;
}

/* Скрытые элементы во время загрузки */
.bm-quote-sub.hidden,
.bm-quote-cards.hidden {
    display: none !important;
}