@layer components {
/* ─── Calculator section ──────────────────── */
.tm-section-calc{
  position:relative;
  z-index:0;
  padding:var(--space-8) 0;
  margin:var(--space-6) 0;
}
.tm-section-calc::before{
  content:'';
  position:absolute;
  top:0; bottom:0;
  left:calc(-50vw + 50%);
  width:100vw;
  background:var(--color-surface);
  z-index:-1;
}
.tm-section-calc__title{
  font-size:var(--text-h1);
  font-weight:700;
  margin-bottom:var(--space-4);
  max-width:var(--content-width);
}
.tm-section-calc__subtitle{
  font-size:var(--text-body);
  line-height:1.7;
  color:var(--color-ink-secondary);
  margin-bottom:var(--space-6);
  max-width:var(--content-width);
}
.tm-calc-form{
  max-width:700px;
}
.tm-calc-form__body{
  background:var(--color-surface-alt);
  border-radius:var(--radius-md);
  padding:var(--space-6);
  box-shadow:0 2px 8px rgba(26,26,26,.06);
}
.tm-calc-form__row{
  margin-bottom:var(--space-5);
}
.tm-calc-form__label{
  display:block;
  font-weight:600;
  font-size:var(--text-body-sm);
  color:var(--color-ink-secondary);
  margin-bottom:var(--space-2);
}
.tm-calc-form__input{
  width:100%;
  height:48px;
  padding:0 var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-size:var(--text-body);
  background:var(--color-surface-alt);
  transition:border-color .18s, box-shadow .18s;
  -webkit-appearance:none;
  appearance:none;
}
.tm-calc-form__input:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(21,167,93,.15);
  outline:none;
}
select.tm-calc-form__input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235C636B' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:40px;
}
.tm-calc-form__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
  margin-bottom:var(--space-5);
}
.tm-calc-form__col{
  display:flex;
  flex-direction:column;
}
.tm-calc-form__row--checkbox{
  margin-bottom:var(--space-6);
}
.tm-calc-form__check{
  display:inline-flex;
  align-items:center;
  gap:var(--space-3);
  cursor:pointer;
  font-size:var(--text-body);
  font-weight:400;
  color:var(--color-ink);
  -webkit-user-select:none;
  user-select:none;
}
.tm-calc-form__check input{
  position:absolute;
  opacity:0;
  width:0;
  height:0;
}
.tm-calc-form__check-mark{
  width:22px;
  height:22px;
  flex-shrink:0;
  border:2px solid var(--color-border);
  border-radius:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .18s, border-color .18s;
}
.tm-calc-form__check input:checked + .tm-calc-form__check-mark{
  background:var(--color-primary);
  border-color:var(--color-primary);
}
.tm-calc-form__check input:checked + .tm-calc-form__check-mark::after{
  content:'';
  width:6px;
  height:10px;
  border:solid var(--color-surface-alt);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
  margin-top:-2px;
}
.tm-calc-form__check input:focus-visible + .tm-calc-form__check-mark{
  outline:2px solid var(--color-primary);
  outline-offset:2px;
}
.tm-calc-form__btn{
  width:100%;
  height:56px;
  font-size:var(--text-body-lg);
}
.tm-calc-form__result{
  margin-top:var(--space-5);
  padding:var(--space-5);
  border-radius:var(--radius-sm);
  background:var(--color-surface-alt);
  border:1px solid var(--color-border);
}
.tm-calc-form__result-title{
  font-weight:700;
  font-size:var(--text-body);
  margin-bottom:var(--space-4);
  color:var(--color-ink);
}
.tm-calc-form__result-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:var(--space-2) 0;
  font-size:var(--text-body);
  color:var(--color-ink-secondary);
}
.tm-calc-form__result-item + .tm-calc-form__result-item{
  border-top:1px solid var(--color-border);
}
.tm-calc-form__result-total{
  font-size:var(--text-body-lg);
  font-weight:700;
  color:var(--color-ink);
  padding:var(--space-3) 0;
}
.tm-calc-form__result-total strong{
  color:var(--color-primary);
}
.tm-calc-form__order-btn{
  width:100%;
  margin-top:var(--space-4);
  height:52px;
  font-size:var(--text-body);
}
@media (max-width:767px){
  .tm-calc-form__grid{
    grid-template-columns:1fr;
  }
  .tm-calc-form__body{
    padding:var(--space-4);
  }
  .tm-section-calc__title{
    font-size:1.375rem;
  }
}
}
