:root {
  --dtf_calc-orange: #3b7ad9;
  --dtf_calc-green: #3b7ad9;
  --dtf_calc-bg:rgb(255, 255, 255);
  --dtf_calc-card: #ffffff;
  --dtf_calc-text: #1f2933;
  --dtf_calc-muted: #5f6b7a;
  --dtf_calc-border: #e6e8ef;
  --dtf_calc-focus: #7ec8a5;
  --dtf_calc-radius: 14px;
  --dtf_calc-shadow: 0 6px 18px rgba(17,17,26,.06);
}
.dtf_calc-dtf { color: var(--dtf_calc-text); background: var(--dtf_calc-bg); font-family: "SF Pro Display", Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; font-size: 15px; line-height: 1.6; overflow-x: hidden; }
.dtf_calc-dtf * { box-sizing: border-box; }
.dtf_calc-dtf img, .dtf_calc-dtf video, .dtf_calc-dtf iframe { max-width: 100%; height: auto; }
.dtf_calc-container { width: min(1120px, 100%); margin: 0 auto; padding: 0 20px; }
/* Улучшение для touch-устройств */
@media (hover: none) and (pointer: coarse) {
  .dtf_calc-btn, .dtf_calc-option, .dtf_calc-messengers__item { min-height: 44px; }
  .dtf_calc-input, .dtf_calc-select { min-height: 44px; }
  .dtf_calc-messengers__close { min-width: 44px; min-height: 44px; }
}
.dtf_calc-card { background: #fff; border: 1px solid var(--dtf_calc-border); border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,0.05); }
.dtf_calc-section { padding: 26px 0; }
.dtf_calc-section__head { display:flex; align-items:end; justify-content:space-between; margin-bottom: 14px; flex-wrap: wrap; gap: 8px; }
.dtf_calc-h2 { margin:0; font-size: clamp(21px, 3.6vw, 30px); font-weight: 700; word-wrap: break-word; overflow-wrap: break-word; }
.dtf_calc-muted { color: var(--dtf_calc-muted); word-wrap: break-word; overflow-wrap: break-word; }

/* Калькулятор */
.dtf_calc-calc { padding: 16px; display:grid; grid-template-columns: 1fr; gap: 16px; }
.dtf_calc-calc__grid { display:grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.dtf_calc-field { display:grid; gap: 6px; }
.dtf_calc-field label { font-size: 14px; color: var(--dtf_calc-muted); font-weight: 600; }
.dtf_calc-input, .dtf_calc-select { width: 100%; padding: 14px 14px; border-radius: 10px; border: 1px solid var(--dtf_calc-border); background:#fff; color: var(--dtf_calc-text); outline:none; font-size:16px; }
.dtf_calc-input:focus, .dtf_calc-select:focus { border-color: var(--dtf_calc-focus); box-shadow: 0 0 0 3px rgba(126,200,165,.15); }
.dtf_calc-options { display:grid; grid-template-columns: repeat(2, 1fr); gap:10px; }
.dtf_calc-option { display:grid; gap:6px; padding:12px; border:1px solid var(--dtf_calc-border); border-radius:12px; background:#fff; text-align:left; cursor:pointer; }
.dtf_calc-option:is(:hover,:focus-visible) { border-color: color-mix(in oklab, var(--dtf_calc-orange), white 30%); outline:none; }
.dtf_calc-option.is-active { border-color: var(--dtf_calc-orange); box-shadow: 0 0 0 3px rgba(126,200,165,.15); }
.dtf_calc-option__title { font-weight:800; font-size:16px; word-wrap: break-word; overflow-wrap: break-word; }
.dtf_calc-option__desc { font-size:13px; color: var(--dtf_calc-muted); word-wrap: break-word; overflow-wrap: break-word; line-height: 1.5; }
.dtf_calc-field--full { grid-column: 1 / -1; }

.dtf_calc-total { display:grid; grid-template-columns: 1.2fr .8fr; gap: 12px; }
.dtf_calc-total__box { padding: 16px; }
.dtf_calc-total__sum { font-weight: 900; font-size: clamp(24px, 3.5vw, 32px); }
.dtf_calc-total__row { display:flex; align-items:center; justify-content:space-between; padding: 10px 0; border-bottom: 1px dashed var(--dtf_calc-border); font-size:14px; }
.dtf_calc-note { font-size: 13px; color: var(--dtf_calc-muted); }

.dtf_calc-cta-row { display:flex; align-items:center; flex-wrap:nowrap; gap: 10px; }
.dtf_calc-btn-fixed { white-space: nowrap; min-width: 180px; }
.dtf_calc-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding: 11px 16px; border-radius: 10px; border: 1px solid var(--dtf_calc-orange); background: var(--dtf_calc-orange); color:#fff; font-weight:700; text-decoration:none; cursor:pointer; box-shadow: 0 6px 18px rgba(59,122,217,0.20); transition: transform .15s ease, box-shadow .15s ease; white-space: nowrap; font-size:14px; word-wrap: break-word; overflow-wrap: break-word; }
.dtf_calc-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(59,122,217,0.25); }
.dtf_calc-btn--ghost { background: transparent; color: var(--dtf_calc-text); border: 1px solid var(--dtf_calc-border); box-shadow:none; }
.dtf_calc-btn--ghost:hover { border-color: var(--dtf_calc-orange); }
.dtf_calc-btn--sm { padding: 9px 12px; border-radius: 10px; font-weight: 600; font-size:14px; }

.dtf_calc-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--dtf_calc-border);background:#f0f3f7;border-radius:12px;color:var(--dtf_calc-text);}
.dtf_calc-alert__icon{font-size:18px;line-height:1;margin-top:2px}

/* Диалог выбора мессенджера */
.dtf_calc-messengers{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);z-index:1001;display:none;align-items:center;justify-content:center;padding:0;border:none;outline:none;background:none;overflow:visible;opacity:0;transition:opacity 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);margin:0;box-sizing:border-box;}
.dtf_calc-messengers__backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;opacity:0;display:none;z-index:998;transition:opacity 0.3s ease;}
.dtf_calc-messengers__backdrop.is-open{opacity:0.5;display:block;}
.dtf_calc-messengers.is-open{display:flex !important;opacity:1;}
/* Убеждаемся, что затемнение покрывает всю страницу */
body.dialog-open{overflow:hidden !important;position:static !important;}
html.dialog-open{overflow:hidden !important;height:100% !important;position:relative !important;}
.dtf_calc-messengers__content{background:var(--dtf_calc-card);border-radius:var(--dtf_calc-radius);box-shadow:var(--dtf_calc-shadow);padding:24px;width:500px;max-width:90vw;position:relative;border:none;outline:none;margin:0;transform:scale(0.95) translateY(-10px);opacity:0;transition:transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);max-height:90vh;overflow-y:auto;flex-shrink:0;-webkit-overflow-scrolling:touch;}
.dtf_calc-messengers.is-open .dtf_calc-messengers__content{transform:scale(1) translateY(0);opacity:1;}
.dtf_calc-messengers__title{font-size:20px;font-weight:700;margin:0 0 16px 0;color:var(--dtf_calc-text);}
.dtf_calc-messengers__list{display:grid;gap:12px;margin-bottom:16px;}
.dtf_calc-messengers__item{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--dtf_calc-border);border-radius:10px;text-decoration:none;color:var(--dtf_calc-text);transition:all 0.15s ease;background:#fff;}
.dtf_calc-messengers__item:hover{border-color:var(--dtf_calc-orange);box-shadow:0 2px 8px rgba(59,122,217,0.1);transform:translateY(-1px);}
.dtf_calc-messengers__icon{font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;width:24px;height:24px;}
.dtf_calc-messengers__icon img{width:100%;height:100%;object-fit:contain;}
.dtf_calc-messengers__text{flex:1;font-weight:600;font-size:15px;}
.dtf_calc-messengers__close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:transparent;cursor:pointer;font-size:20px;color:var(--dtf_calc-muted);display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all 0.15s ease;}
.dtf_calc-messengers__close:hover{background:var(--dtf_calc-border);color:var(--dtf_calc-text);}

/* Адаптивные стили */
@media (max-width: 1200px) {
  .dtf_calc-container { padding: 0 16px; }
  .dtf_calc-calc { padding: 14px; }
}

@media (max-width: 960px) {
  .dtf_calc-container { padding: 0 16px; }
  .dtf_calc-calc { padding: 14px; gap: 14px; }
  .dtf_calc-calc__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .dtf_calc-total { grid-template-columns: 1fr; gap: 12px; }
  .dtf_calc-section { padding: 20px 0; }
  .dtf_calc-section__head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .dtf_calc-h2 { font-size: clamp(20px, 4vw, 28px); }
  .dtf_calc-cta-row { flex-wrap: wrap; }
  .dtf_calc-btn-fixed { min-width: 100%; width: 100%; }
  .dtf_calc-messengers__content { width: 90vw; max-width: 500px; padding: 20px; }
}

@media (max-width: 768px) {
  .dtf_calc-container { padding: 0 12px; }
  .dtf_calc-calc { padding: 12px; gap: 12px; }
  .dtf_calc-section { padding: 16px 0; }
  .dtf_calc-section__head { margin-bottom: 12px; }
  .dtf_calc-h2 { font-size: clamp(18px, 5vw, 24px); }
  .dtf_calc-field label { font-size: 13px; }
  .dtf_calc-input, .dtf_calc-select { padding: 12px; font-size: 16px; }
  .dtf_calc-total__box { padding: 14px; }
  .dtf_calc-total__sum { font-size: clamp(22px, 4vw, 28px); }
  .dtf_calc-total__row { padding: 8px 0; font-size: 13px; }
  .dtf_calc-note { font-size: 12px; }
  .dtf_calc-btn { padding: 12px 14px; font-size: 14px; }
  .dtf_calc-option { padding: 10px; }
  .dtf_calc-option__title { font-size: 15px; }
  .dtf_calc-option__desc { font-size: 12px; }
  .dtf_calc-messengers__content { width: 95vw; padding: 18px; }
  .dtf_calc-messengers__title { font-size: 18px; margin-bottom: 14px; }
  .dtf_calc-messengers__item { padding: 12px; }
  .dtf_calc-messengers__text { font-size: 14px; }
}

@media (max-width: 560px) {
  .dtf_calc-container { padding: 0 10px; }
  .dtf_calc-calc { padding: 10px; gap: 10px; }
  .dtf_calc-calc__grid { grid-template-columns: 1fr; gap: 10px; }
  .dtf_calc-options { grid-template-columns: 1fr; gap: 8px; }
  .dtf_calc-section { padding: 12px 0; }
  .dtf_calc-section__head { margin-bottom: 10px; }
  .dtf_calc-h2 { font-size: clamp(18px, 6vw, 22px); }
  .dtf_calc-field { gap: 5px; }
  .dtf_calc-field label { font-size: 12px; }
  .dtf_calc-input, .dtf_calc-select { padding: 11px; font-size: 16px; border-radius: 8px; }
  .dtf_calc-total__box { padding: 12px; }
  .dtf_calc-total__sum { font-size: clamp(20px, 5vw, 24px); }
  .dtf_calc-total__row { padding: 7px 0; font-size: 12px; }
  .dtf_calc-note { font-size: 11px; line-height: 1.5; }
  .dtf_calc-btn { padding: 11px 12px; font-size: 13px; border-radius: 8px; }
  .dtf_calc-btn--sm { padding: 8px 10px; font-size: 13px; }
  .dtf_calc-option { padding: 10px; border-radius: 10px; }
  .dtf_calc-option__title { font-size: 14px; }
  .dtf_calc-option__desc { font-size: 11px; }
  .dtf_calc-cta-row { gap: 8px; }
  .dtf_calc-btn-fixed { min-width: 100%; }
  .dtf_calc-alert { padding: 8px 10px; font-size: 12px; }
  .dtf_calc-alert__icon { font-size: 16px; }
  .dtf_calc-messengers__content { width: 95vw; padding: 16px; border-radius: 12px; }
  .dtf_calc-messengers__title { font-size: 17px; margin-bottom: 12px; }
  .dtf_calc-messengers__list { gap: 10px; margin-bottom: 12px; }
  .dtf_calc-messengers__item { padding: 11px; border-radius: 8px; }
  .dtf_calc-messengers__icon { font-size: 20px; width: 20px; height: 20px; }
  .dtf_calc-messengers__text { font-size: 13px; }
  .dtf_calc-messengers__close { width: 28px; height: 28px; top: 10px; right: 10px; font-size: 18px; }
}

@media (max-width: 360px) {
  .dtf_calc-container { padding: 0 8px; }
  .dtf_calc-calc { padding: 8px; }
  .dtf_calc-h2 { font-size: 18px; }
  .dtf_calc-input, .dtf_calc-select { padding: 10px; font-size: 16px; }
  .dtf_calc-total__box { padding: 10px; }
  .dtf_calc-total__sum { font-size: 20px; }
  .dtf_calc-btn { padding: 10px; font-size: 12px; }
  .dtf_calc-messengers__content { padding: 14px; }
}

/* Оптимизация для landscape ориентации на мобильных */
@media (max-width: 960px) and (orientation: landscape) {
  .dtf_calc-calc__grid { grid-template-columns: repeat(3, 1fr); }
  .dtf_calc-total { grid-template-columns: repeat(2, 1fr); }
  .dtf_calc-cta-row { flex-wrap: nowrap; }
  .dtf_calc-btn-fixed { min-width: auto; width: auto; }
}

@media (max-width: 768px) and (orientation: landscape) {
  .dtf_calc-calc__grid { grid-template-columns: repeat(3, 1fr); }
  .dtf_calc-total { grid-template-columns: repeat(2, 1fr); }
}

/* Оптимизация для очень широких экранов */
@media (min-width: 1400px) {
  .dtf_calc-container { max-width: 1200px; }
}
