.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(232,234,238,.9);
}
.header-inner { min-height: 82px; display: flex; align-items: center; gap: 26px; }
.logo { flex: 0 0 auto; }
.desktop-nav { display: flex; gap: 27px; margin-left: auto; font-size: .94rem; font-weight: 650; }
.desktop-nav a { color: #202229; }
.header-contact { display: grid; gap: 2px; text-align: right; margin-left: 18px; }
.header-contact strong { font-size: 1.02rem; }
.header-contact span { color: var(--muted); font-size: .82rem; }
.header-btn { min-height: 46px; padding-inline: 20px; }
.burger, .mobile-nav { display: none; }
.hero { padding-top: 82px; background: linear-gradient(90deg, #fff 0%, #fff 52%, #f7f8fa 52%, #f7f8fa 100%); overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 48px; }
.hero-copy h1 { margin: 0; max-width: 720px; font-size: clamp(3rem, 5.8vw, 6.7rem); line-height: .9; letter-spacing: -.075em; }
.hero-text { max-width: 540px; margin: 26px 0 0; color: var(--muted); font-size: 1.14rem; line-height: 1.72; }
.hero-actions { display: flex; gap: 16px; margin-top: 34px; flex-wrap: wrap; }
.hero-visual { position: relative; min-height: 620px; display: grid; place-items: center; }
.hero-visual::before { content: ""; position: absolute; inset: 7% -10% 3% 10%; border: 1px solid #e4e7ec; background: linear-gradient(135deg, rgba(255,159,10,.12), transparent 35%), #fff; clip-path: polygon(14% 0, 100% 0, 88% 100%, 0 100%); }
.hero-visual img { position: relative; width: min(100%, 760px); filter: drop-shadow(0 28px 50px rgba(17,18,23,.14)); }
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 42px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stats-row div { padding: 30px 32px; border-right: 1px solid var(--line); }
.stats-row div:last-child { border-right: 0; }
.stats-row span { display: block; font-size: 1.7rem; font-weight: 850; letter-spacing: -.03em; }
.stats-row small { color: var(--muted); }
.calc-section { padding: 36px 0 88px; }
.calc-panel { border-radius: 0 var(--radius) var(--radius) var(--radius); padding: clamp(24px, 4vw, 44px); position: relative; overflow: hidden; }
.calc-panel::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 44px 44px; opacity: .35; pointer-events: none; }
.calc-panel > * { position: relative; z-index: 1; }
.calc-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; margin-top: 34px; }
.calc-card, .calc-result { background: rgba(255,255,255,.075); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 20px; }
.calc-card { grid-column: span 2; min-height: 180px; }
.calc-card-wide { grid-column: span 4; }
.calc-card > span { color: var(--accent); font-weight: 850; }
.calc-card label { display: block; margin-top: 8px; font-weight: 750; }
.choice-grid, .work-grid { display: grid; gap: 10px; margin-top: 16px; }
.choice-grid { grid-template-columns: 1fr 1fr; }
.choice-grid label, .work-grid label { display: flex; align-items: center; gap: 9px; margin: 0; color: rgba(255,255,255,.82); border-radius: 12px; background: rgba(0,0,0,.22); padding: 12px; }
.calc-card output { display: block; font-size: 3rem; font-weight: 300; letter-spacing: -.06em; margin: 12px 0; }
.calc-card input[type="range"] { width: 100%; accent-color: var(--accent); }
.range-labels { display: flex; justify-content: space-between; color: rgba(255,255,255,.55); }
.field-dark, .calc-card select { width: 100%; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(0,0,0,.26); color: #fff; padding: 14px; margin-top: 15px; }
.field-dark option, .calc-card select option { color: #111; }
.calc-card small { color: rgba(255,255,255,.56); display: block; margin-top: 12px; }
.calc-result { grid-column: span 2; background: rgba(255,255,255,.1); }
.calc-result span { color: rgba(255,255,255,.7); font-weight: 750; text-transform: uppercase; font-size: .78rem; }
.calc-result strong { display: block; color: var(--accent); font-size: clamp(2.2rem, 3.3vw, 4rem); line-height: 1; margin: 18px 0 12px; letter-spacing: -.05em; }
.calc-result p { color: rgba(255,255,255,.66); margin: 18px 0 24px; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 36px; }
.service-grid article { min-height: 270px; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 26px; box-shadow: 0 12px 30px rgba(17,18,23,.04); }
.service-grid span, .process-grid span { color: var(--accent); font-weight: 850; }
.service-grid h3, .process-grid h3 { font-size: 1.34rem; letter-spacing: -.035em; margin: 42px 0 12px; }
.service-grid p, .process-grid p { color: var(--muted); margin: 0; }
.cases-section { background: var(--soft); }
.section-line { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.section-line a { color: var(--accent); font-weight: 800; }
.cases-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 34px; }
.case-card { background: #fff; border: 1px solid var(--line); border-radius: 22px; overflow: hidden; box-shadow: var(--shadow); }
.case-card img { width: 100%; aspect-ratio: 1.55; object-fit: cover; background: #eef0f4; }
.case-body { padding: 22px; }
.case-body h3 { margin: 0 0 4px; font-size: 1.35rem; letter-spacing: -.04em; }
.case-body p { color: var(--muted); margin: 0; }
.case-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.case-tags span { background: #f1f3f6; color: #414650; border-radius: 999px; padding: 7px 10px; font-size: .82rem; }
.case-desc { min-height: 68px; }
.case-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.case-bottom span { font-weight: 850; }
.case-bottom a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 44px; }
.process-grid article { border-top: 1px solid #cfd3da; padding-top: 20px; }
.contact-section { padding: 28px 0 84px; }
.contact-panel { border-radius: var(--radius); padding: clamp(24px, 4vw, 54px); display: grid; grid-template-columns: .85fr 1.15fr; gap: 40px; align-items: start; }
.contact-panel h2 { font-size: clamp(2.4rem, 4vw, 4.8rem); line-height: .93; letter-spacing: -.07em; margin: 0 0 18px; }
.contact-panel p:not(.eyebrow) { color: rgba(255,255,255,.7); max-width: 420px; }
.lead-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.lead-form input, .lead-form select, .lead-form textarea { width: 100%; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.08); color: #fff; border-radius: 12px; padding: 15px; }
.lead-form select option { color: #111; }
.lead-form textarea { grid-column: 1 / -1; min-height: 96px; resize: vertical; }
.lead-form button { grid-column: span 1; }
.lead-form small { color: rgba(255,255,255,.58); align-self: center; }
.site-footer { padding: 38px 0; border-top: 1px solid var(--line); }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 34px; align-items: start; }
.footer-grid p, .footer-contact span { color: var(--muted); }
.footer-grid nav, .footer-contact { display: grid; gap: 12px; }
@media (max-width: 1100px) {
  .desktop-nav, .header-contact, .header-btn { display: none; }
  .burger { display: grid; gap: 5px; margin-left: auto; border: 0; background: transparent; padding: 12px; }
  .burger span { width: 28px; height: 2px; background: #111; }
  .mobile-nav { display: none; padding: 0 24px 20px; border-top: 1px solid var(--line); }
  .mobile-nav.is-open { display: grid; gap: 14px; }
  .hero { background: #fff; padding-top: 54px; }
  .hero-grid, .contact-panel { grid-template-columns: 1fr; }
  .hero-visual { min-height: auto; }
  .stats-row, .service-grid, .process-grid { grid-template-columns: repeat(2, 1fr); }
  .cases-grid { grid-template-columns: 1fr 1fr; }
  .calc-grid { grid-template-columns: 1fr 1fr; }
  .calc-card, .calc-card-wide, .calc-result { grid-column: span 1; }
}
@media (max-width: 720px) {
  .header-inner { min-height: 70px; }
  .logo img { width: 130px; }
  .hero-copy h1 { font-size: clamp(2.8rem, 17vw, 4.4rem); }
  .hero-actions { display: grid; }
  .stats-row, .service-grid, .cases-grid, .process-grid, .calc-grid, .lead-form, .footer-grid { grid-template-columns: 1fr; }
  .stats-row div { border-right: 0; border-bottom: 1px solid var(--line); padding: 22px 0; }
  .section-line { display: block; }
  .calc-panel { border-radius: 18px; padding: 22px; }
  .choice-grid { grid-template-columns: 1fr; }
  .contact-section { padding-bottom: 58px; }
  .lead-form button { grid-column: 1; }
}

/* mobile polish and footer admin button */
.footer-admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid #d7dbe2;
  border-radius: 12px;
  font-weight: 850;
  color: #111217;
  background: #fff;
}
.footer-admin-btn:hover { border-color: var(--accent); color: #111; }

@media (max-width: 1100px) {
  .header-inner { gap: 14px; }
  .mobile-nav {
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(16px);
  }
  .mobile-nav a {
    min-height: 44px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(232,234,238,.8);
    font-weight: 800;
  }
  .calc-card { min-height: 0; }
  .calc-result { align-self: stretch; }
}

@media (max-width: 820px) {
  .hero {
    padding-top: 34px;
    padding-bottom: 0;
  }
  .hero-grid { gap: 26px; }
  .hero-text {
    margin-top: 18px;
    font-size: 1rem;
    line-height: 1.62;
  }
  .hero-actions {
    margin-top: 24px;
    gap: 10px;
  }
  .hero-visual {
    min-height: 360px;
    overflow: hidden;
    border-radius: 22px;
    background: #f6f7f9;
  }
  .hero-visual::before {
    inset: 4% -18% 0 6%;
    clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
  }
  .hero-visual img {
    width: min(112%, 620px);
    margin-inline: auto;
  }
  .stats-row {
    margin-top: 28px;
    grid-template-columns: repeat(2, 1fr);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
  }
  .stats-row div {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 20px;
  }
  .stats-row div:nth-child(2n) { border-right: 0; }
  .stats-row div:nth-last-child(-n+2) { border-bottom: 0; }
  .calc-section { padding: 34px 0 58px; }
  .calc-panel { border-radius: 22px; }
  .calc-grid { gap: 12px; margin-top: 24px; }
  .choice-grid { grid-template-columns: repeat(2, 1fr); }
  .choice-grid label,
  .work-grid label {
    min-height: 48px;
    padding: 11px;
    line-height: 1.25;
  }
  .calc-card output {
    font-size: 2.35rem;
    margin: 10px 0;
  }
  .calc-result strong { font-size: 2.25rem; }
  .service-grid article { min-height: 220px; }
  .cases-grid { gap: 16px; }
  .case-body { padding: 18px; }
  .contact-panel { gap: 24px; }
  .lead-form { grid-template-columns: 1fr; }
  .lead-form textarea,
  .lead-form button { grid-column: 1; }
}

@media (max-width: 560px) {
  body { font-size: 15px; }
  .container { width: min(100% - 24px, var(--container)); }
  .section-pad { padding: 50px 0; }
  .header-inner { min-height: 64px; }
  .mobile-nav { padding-inline: 14px; }
  .hero-copy h1 {
    font-size: clamp(2.45rem, 13.6vw, 3.75rem);
    line-height: .92;
    letter-spacing: -.07em;
  }
  .eyebrow { font-size: .74rem; margin-bottom: 12px; }
  .section-head h2,
  .section-line h2 {
    font-size: clamp(1.9rem, 11vw, 2.85rem);
    line-height: 1;
  }
  .btn { min-height: 50px; padding-inline: 16px; }
  .hero-visual { min-height: 285px; }
  .stats-row { grid-template-columns: 1fr 1fr; }
  .stats-row div { padding: 16px; }
  .stats-row span { font-size: 1.34rem; }
  .calc-panel { padding: 18px; }
  .calc-card,
  .calc-result {
    padding: 16px;
    border-radius: 14px;
  }
  .choice-grid { grid-template-columns: 1fr; }
  .work-grid { gap: 8px; }
  .field-dark,
  .calc-card select,
  .lead-form input,
  .lead-form select,
  .lead-form textarea {
    min-height: 48px;
    padding: 13px;
  }
  .calc-result .btn { width: 100%; }
  .service-grid article { min-height: auto; padding: 20px; }
  .service-grid h3,
  .process-grid h3 { margin-top: 28px; }
  .section-line a { display: inline-flex; margin-top: 16px; }
  .case-card { border-radius: 18px; }
  .case-desc { min-height: 0; }
  .contact-panel { padding: 20px; border-radius: 20px; }
  .contact-panel h2 { font-size: clamp(2rem, 12vw, 3.1rem); }
  .site-footer { padding: 30px 0; }
  .footer-grid { gap: 22px; }
  .footer-grid nav { gap: 10px; }
  .footer-admin-btn { width: 100%; }
}

/* v1.1.0: material-based calculator and stronger mobile adaptation */
.calc-grid-materials {
  grid-template-columns: 1.05fr 2fr 1fr;
  align-items: stretch;
}
.calc-grid-materials .object-card,
.calc-grid-materials .estimate-card,
.calc-grid-materials .calc-result { grid-column: auto; }
.compact-choice-grid { grid-template-columns: 1fr; }
.estimate-card { min-height: 0; }
.estimate-items {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.estimate-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.08);
}
.estimate-info { min-width: 0; }
.estimate-info b {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #fff;
  font-size: .98rem;
}
.estimate-info small {
  margin-top: 3px;
  color: rgba(255,255,255,.58);
}
.qty-control {
  display: grid !important;
  grid-template-columns: 1fr auto;
  gap: 8px !important;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
.qty-control input {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.08);
  color: #fff;
  padding: 10px 12px;
  font-weight: 800;
}
.qty-control span {
  color: rgba(255,255,255,.65);
  min-width: 30px;
}
.calc-note { color: rgba(255,255,255,.58); display: block; margin-top: 14px; }
.footer-admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid #d7dbe2;
  border-radius: 12px;
  font-weight: 850;
  color: #111217;
  background: #fff;
}
.footer-admin-btn:hover { border-color: var(--accent); color: #111; }
@media (max-width: 1100px) {
  .calc-grid-materials { grid-template-columns: 1fr; }
  .calc-grid-materials .object-card,
  .calc-grid-materials .estimate-card,
  .calc-grid-materials .calc-result { grid-column: 1; }
  .compact-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .calc-section { padding: 30px 0 54px; }
  .calc-panel { padding: 22px; border-radius: 22px; }
  .calc-grid-materials { gap: 12px; }
  .estimate-row { grid-template-columns: 1fr 142px; }
  .estimate-info b { white-space: normal; }
  .cases-grid, .service-grid, .process-grid { grid-template-columns: 1fr; }
  .service-grid article { min-height: auto; }
}
@media (max-width: 560px) {
  .calc-panel { padding: 16px; margin-inline: -2px; }
  .compact-choice-grid { grid-template-columns: 1fr; }
  .estimate-row {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 12px;
  }
  .qty-control { grid-template-columns: 1fr auto; }
  .calc-result strong { font-size: clamp(2rem, 11vw, 2.65rem); }
  .footer-admin-btn { width: 100%; }
}

/* v1.3.0: Excel estimate, privacy, footer and scroll animations */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] { -moz-appearance: textfield; appearance: textfield; }

.estimate-card {
  display: flex;
  flex-direction: column;
  max-height: 560px;
  overflow: hidden;
}
.estimate-card > label,
.estimate-card > span,
.estimate-card .calc-note { flex: 0 0 auto; }
.estimate-items {
  overflow-y: auto;
  overscroll-behavior: contain;
  max-height: min(420px, 54vh);
  padding-right: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,159,10,.85) rgba(255,255,255,.08);
}
.estimate-items::-webkit-scrollbar { width: 8px; }
.estimate-items::-webkit-scrollbar-track {
  background: rgba(255,255,255,.07);
  border-radius: 999px;
}
.estimate-items::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--accent), var(--accent-2));
  border-radius: 999px;
  border: 2px solid rgba(16,17,20,.96);
}
.estimate-items::-webkit-scrollbar-thumb:hover { background: var(--accent-2); }
.qty-control input:focus,
.lead-form input:focus,
.lead-form select:focus,
.lead-form textarea:focus {
  outline: none;
  border-color: rgba(255,159,10,.8);
  box-shadow: 0 0 0 3px rgba(255,159,10,.16);
}

.btn-excel {
  position: relative;
  width: 100%;
  margin-top: 10px;
  color: #fff;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.07);
  box-shadow: none;
}
.btn-excel:hover {
  border-color: rgba(255,159,10,.7);
  background: rgba(255,159,10,.11);
}
.btn-loader {
  display: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.35);
  border-top-color: var(--accent);
  animation: smartSpin .7s linear infinite;
}
.btn-excel.is-loading .btn-loader { display: inline-block; }
.btn-excel.is-loading .btn-text { opacity: .72; }
.btn-excel:disabled { cursor: progress; opacity: .76; transform: none; }
.excel-status {
  display: block;
  min-height: 18px;
  margin-top: 8px;
  color: rgba(255,255,255,.62);
}
@keyframes smartSpin { to { transform: rotate(360deg); } }

.lead-form small a {
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.45);
}
.lead-form small a:hover {
  color: var(--accent);
  border-color: var(--accent);
}
.header-contact a:hover,
.footer-contact a:hover { color: var(--accent); }

.footer-admin-btn {
  display: inline !important;
  width: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font-weight: inherit !important;
}
.footer-admin-btn:hover { color: var(--accent) !important; }
.footer-legal {
  display: grid;
  gap: 4px;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .9rem;
}

.privacy-page { background: linear-gradient(180deg, #fff, #f7f8fa); }
.privacy-card {
  max-width: 900px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: clamp(24px, 5vw, 58px);
  box-shadow: var(--shadow);
}
.privacy-card h1 {
  margin: 0 0 18px;
  font-size: clamp(2.3rem, 5.8vw, 5rem);
  line-height: .94;
  letter-spacing: -.07em;
}
.privacy-card h2 {
  margin: 32px 0 10px;
  font-size: 1.35rem;
  letter-spacing: -.035em;
}
.privacy-card p { color: var(--muted); font-size: 1.04rem; line-height: 1.7; }
.privacy-card a:not(.btn) { color: var(--text); border-bottom: 1px solid var(--accent); }
.privacy-lead { max-width: 680px; }
.privacy-back { margin-top: 22px; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .72s ease, transform .72s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: .08s; }
.reveal-delay-2 { transition-delay: .14s; }
.reveal-delay-3 { transition-delay: .2s; }

@media (max-width: 1100px) {
  .estimate-card { max-height: none; }
  .estimate-items { max-height: 430px; }
}
@media (max-width: 820px) {
  .hero-copy h1 { max-width: 96%; }
  .calc-result .btn { width: 100%; }
  .btn-excel { margin-top: 8px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .container { width: min(100% - 20px, var(--container)); }
  .site-header { position: sticky; }
  .mobile-nav.is-open { padding-bottom: 14px; }
  .mobile-nav a { font-size: .98rem; }
  .hero { padding-top: 26px; }
  .hero-text { font-size: .96rem; }
  .stats-row { border-radius: 16px; }
  .stats-row span { font-size: 1.18rem; }
  .calc-section { padding-top: 22px; }
  .calc-panel { border-radius: 18px; padding: 14px; }
  .dark-head p:not(.eyebrow) { font-size: .95rem; }
  .estimate-items { max-height: 360px; padding-right: 4px; }
  .estimate-info small { font-size: .78rem; }
  .qty-control input { min-height: 42px; }
  .excel-status { font-size: .82rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid nav { gap: 12px; }
  .footer-legal { font-size: .84rem; }
  .privacy-card { border-radius: 20px; padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn-loader { animation: none; }
}

/* v1.4.0 conversion blocks, modals and mobile navigation */
.mobile-section-nav {
  display: none;
  position: sticky;
  top: 70px;
  z-index: 9;
  gap: 8px;
  overflow-x: auto;
  padding: 10px 14px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(232,234,238,.88);
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
}
.mobile-section-nav::-webkit-scrollbar { display: none; }
.mobile-section-nav a {
  flex: 0 0 auto;
  scroll-snap-align: center;
  min-height: 36px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #f1f3f6;
  color: #3c424c;
  font-weight: 850;
  font-size: .9rem;
}
.mobile-section-nav a.is-active { background: #111216; color: #fff; box-shadow: 0 12px 28px rgba(17,18,23,.14); }

.estimate-card { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; }
.estimate-items {
  max-height: 430px;
  overflow-y: auto;
  padding-right: 8px;
  margin-top: 14px;
  scrollbar-color: rgba(255,159,10,.75) rgba(255,255,255,.08);
  scrollbar-width: thin;
}
.estimate-items::-webkit-scrollbar { width: 8px; }
.estimate-items::-webkit-scrollbar-track { background: rgba(255,255,255,.08); border-radius: 999px; }
.estimate-items::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--accent), var(--accent-2)); border-radius: 999px; }
.estimate-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.2);
  border: 1px solid rgba(255,255,255,.08);
  margin-bottom: 10px;
}
.estimate-info b { display: block; color: #fff; }
.qty-control { display: grid !important; grid-template-columns: 1fr auto; align-items: center; gap: 8px; margin: 0 !important; }
.qty-control input {
  min-height: 46px;
  width: 100%;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.09);
  color: #fff;
  border-radius: 12px;
  padding: 10px 12px;
}
.qty-control span { color: rgba(255,255,255,.72); font-weight: 800; }
.btn-excel {
  width: 100%;
  margin-top: 12px;
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.14);
}
.btn-excel .btn-loader {
  display: none;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255,255,255,.28);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
.btn-excel.is-loading .btn-loader { display: inline-block; }
.btn-excel.is-loading .btn-text { opacity: .65; }
@keyframes spin { to { transform: rotate(360deg); } }
.excel-status { display: block; margin-top: 10px; color: rgba(255,255,255,.62); }

.case-card { cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.case-card:hover { transform: translateY(-4px); border-color: rgba(255,159,10,.45); box-shadow: 0 24px 70px rgba(17,18,23,.12); }
.case-card img { aspect-ratio: 1.42; }
.case-bottom button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff; font-weight: 900; }

.about-section { background: #fff; }
.about-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 42px; align-items: start; }
.about-grid h2 { margin: 0; font-size: clamp(2rem, 3.2vw, 3.8rem); line-height: .96; letter-spacing: -.06em; }
.about-card {
  padding: clamp(24px, 3vw, 42px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: linear-gradient(135deg, #fff, #f7f8fa);
  box-shadow: var(--shadow);
}
.about-card p { margin: 0 0 22px; color: var(--muted); font-size: 1.08rem; line-height: 1.75; }
.about-card ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.about-card li { position: relative; padding-left: 28px; font-weight: 760; }
.about-card li::before { content: ""; position: absolute; left: 0; top: .5em; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 6px rgba(255,159,10,.13); }

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(10,11,14,.62);
  backdrop-filter: blur(16px);
}
.modal-backdrop[hidden] { display: none; }
.modal-card {
  width: min(980px, 100%);
  max-height: min(90vh, 860px);
  overflow-y: auto;
  border-radius: 28px;
  position: relative;
  box-shadow: 0 34px 100px rgba(0,0,0,.28);
}
.request-modal { display: grid; grid-template-columns: .85fr 1.15fr; gap: 32px; padding: clamp(24px, 4vw, 54px); }
.call-modal { width: min(640px, 100%); padding: clamp(24px, 4vw, 46px); }
.modal-close {
  position: absolute;
  right: 16px;
  top: 16px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-size: 1.7rem;
  line-height: 1;
  z-index: 2;
}
.modal-close.dark { color: #111; border-color: var(--line); background: #fff; }
.request-modal h2, .call-modal h2 { margin: 0 0 16px; font-size: clamp(2rem, 4vw, 4.1rem); line-height: .94; letter-spacing: -.06em; }
.request-modal p:not(.eyebrow), .call-modal p:not(.eyebrow) { color: rgba(255,255,255,.68); }
.modal-lead-form { align-self: start; }
.modal-lead-form small a, .lead-form small a, .cookie-box a { text-decoration: underline; text-underline-offset: 3px; }

.case-modal { background: #fff; display: grid; grid-template-columns: 1.05fr .95fr; width: min(1120px, 100%); overflow: hidden; }
.case-modal-gallery { position: relative; min-height: 520px; background: #eef0f4; }
.case-modal-gallery img { width: 100%; height: 100%; object-fit: cover; }
.gallery-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  box-shadow: 0 12px 30px rgba(0,0,0,.16);
  font-size: 2rem;
}
.gallery-btn.prev { left: 16px; }
.gallery-btn.next { right: 16px; }
.case-modal-content { padding: clamp(24px, 3vw, 42px); overflow-y: auto; }
.case-modal-content h2 { margin: 0 0 8px; font-size: clamp(2rem, 3vw, 3.4rem); letter-spacing: -.06em; line-height: .96; }
.case-modal-content > p { color: var(--muted); }
.case-modal-description { line-height: 1.7; }
.case-estimate { margin-top: 12px; overflow-x: auto; }
.case-estimate table { width: 100%; border-collapse: collapse; min-width: 520px; }
.case-estimate th, .case-estimate td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; }
.case-estimate th { background: #111216; color: #fff; font-size: .78rem; text-transform: uppercase; }

.floating-phone {
  position: fixed;
  right: 22px;
  bottom: 24px;
  z-index: 70;
  width: 64px;
  height: 64px;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #111;
  box-shadow: 0 18px 46px rgba(255,159,10,.36);
  font-size: 1.55rem;
}
.floating-phone::before { content: ""; position: absolute; inset: -8px; border: 1px solid rgba(255,159,10,.35); border-radius: inherit; animation: pulse 1.9s ease-out infinite; }
@keyframes pulse { 0% { transform: scale(.9); opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }

.cookie-box {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 22px;
  z-index: 80;
  width: min(980px, calc(100% - 48px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 24px 70px rgba(17,18,23,.15);
  backdrop-filter: blur(16px);
}
.cookie-box[hidden] { display: none; }
.cookie-box p { margin: 4px 0 0; color: var(--muted); }
.cookie-box .btn { min-height: 44px; }
.footer-admin-btn { padding: 0; min-height: auto; border: 0; background: transparent; border-radius: 0; font-weight: inherit; color: inherit; justify-content: start; }
.footer-admin-btn:hover { color: var(--accent); }

@media (max-width: 1100px) {
  .mobile-section-nav { display: flex; }
  .about-grid, .request-modal, .case-modal { grid-template-columns: 1fr; }
  .case-modal-gallery { min-height: 380px; }
}
@media (max-width: 720px) {
  .mobile-section-nav { top: 70px; }
  .estimate-row { grid-template-columns: 1fr; }
  .qty-control { grid-template-columns: 1fr 44px; }
  .modal-backdrop { padding: 12px; }
  .modal-card { border-radius: 20px; max-height: 92vh; }
  .request-modal, .call-modal { padding: 24px; }
  .case-modal-gallery { min-height: 300px; }
  .case-modal-content { padding: 22px; }
  .cookie-box { grid-template-columns: 1fr; left: 12px; right: 12px; bottom: 12px; width: calc(100% - 24px); }
  .floating-phone { width: 56px; height: 56px; right: 14px; bottom: 14px; }
}
@media (max-width: 420px) {
  .mobile-section-nav a { font-size: .84rem; min-height: 34px; padding: 7px 12px; }
  .case-modal-gallery { min-height: 240px; }
  .gallery-btn { width: 38px; height: 38px; }
}

/* v1.5.0: visual process cards */
.process-grid-visual article {
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  gap: 0;
  min-height: 0;
  padding: 14px 0 0;
}
.process-grid-visual .process-photo {
  margin: 0 0 18px;
  height: 178px;
  display: grid;
  place-items: end center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,159,10,.12), rgba(255,255,255,.85) 42%, #f4f6f8);
  box-shadow: 0 18px 38px rgba(17,18,23,.06);
}
.process-grid-visual .process-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 20px 28px rgba(17,18,23,.12));
}
.process-grid-visual h3 { margin: 18px 0 10px; }
.process-grid-visual p { line-height: 1.58; }
@media (max-width: 1100px) {
  .process-grid-visual { gap: 18px; }
  .process-grid-visual .process-photo { height: 220px; }
}
@media (max-width: 560px) {
  .process-grid-visual .process-photo { height: 190px; border-radius: 18px; }
  .process-grid-visual article { padding-top: 0; }
}

/* v1.6.0: floating section navigation desktop + mobile */
.mobile-section-nav {
  display: flex !important;
  position: fixed !important;
  right: 18px;
  top: 50%;
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
  z-index: 68;
  flex-direction: column;
  align-items: stretch;
  width: 126px;
  max-height: min(78vh, 520px);
  gap: 6px;
  padding: 12px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 28px;
  background: rgba(9, 14, 24, .82);
  box-shadow: 0 24px 70px rgba(2,7,18,.22);
  backdrop-filter: blur(18px);
  opacity: .78;
  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease;
  scrollbar-width: none;
  scroll-snap-type: y proximity;
}
.mobile-section-nav:hover,
.mobile-section-nav:focus-within {
  opacity: .96;
  box-shadow: 0 28px 86px rgba(2,7,18,.30);
}
.mobile-section-nav a {
  width: 100%;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,.48);
  font-size: .82rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
  scroll-snap-align: center;
}
.mobile-section-nav a.is-active {
  background: rgba(255,255,255,.13);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 12px 32px rgba(0,0,0,.18);
}
.mobile-section-nav a:hover { color: #fff; }

/* v1.6.0: slightly larger process previews */
.process-grid-visual .process-photo {
  height: 206px;
  align-items: end;
}
.process-grid-visual .process-photo img {
  transform: scale(1.08);
  transform-origin: center bottom;
}

@media (max-width: 1280px) {
  .mobile-section-nav { right: 10px; width: 112px; padding: 10px; }
  .mobile-section-nav a { font-size: .76rem; min-height: 34px; padding-inline: 8px; }
}
@media (max-width: 920px) {
  body { padding-bottom: 76px; }
  .mobile-section-nav {
    top: auto !important;
    right: 12px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 10px);
    left: 12px;
    transform: none;
    width: auto;
    max-height: none;
    max-width: 520px;
    margin: 0 auto;
    flex-direction: row;
    justify-content: flex-start;
    gap: 6px;
    padding: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(7,13,25,.82), rgba(19,31,52,.74));
    opacity: .84;
    scroll-snap-type: x proximity;
  }
  .mobile-section-nav a {
    flex: 0 0 auto;
    width: auto;
    min-width: 72px;
    min-height: 38px;
    padding: 9px 14px;
    font-size: .78rem;
  }
  .mobile-section-nav a.is-active {
    background: rgba(255,255,255,.15);
  }
}
@media (max-width: 560px) {
  .mobile-section-nav {
    left: 10px;
    right: 10px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    padding: 7px;
    border-radius: 24px;
  }
  .mobile-section-nav a {
    min-width: 66px;
    min-height: 34px;
    padding: 8px 11px;
    font-size: .72rem;
  }
  .process-grid-visual .process-photo { height: 220px; }
  .process-grid-visual .process-photo img { transform: scale(1.12); }
}

/* v1.7.0: section roulette navigation, process backgrounds and case image fallback */
.mobile-section-nav {
  display: block !important;
  position: fixed !important;
  right: 18px !important;
  left: auto !important;
  top: 50% !important;
  bottom: auto !important;
  width: 142px !important;
  height: 176px !important;
  max-height: none !important;
  overflow: hidden !important;
  padding: 14px !important;
  border-radius: 34px !important;
  transform: translateY(-50%) !important;
  background: rgba(9, 14, 24, .58) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 24px 80px rgba(2,7,18,.18) !important;
  backdrop-filter: blur(20px) !important;
  opacity: .72 !important;
  transition: opacity .2s ease, box-shadow .2s ease, background .2s ease !important;
  scrollbar-width: none !important;
}
.mobile-section-nav:hover,
.mobile-section-nav:focus-within {
  opacity: .96 !important;
  background: rgba(9, 14, 24, .76) !important;
  box-shadow: 0 28px 92px rgba(2,7,18,.28) !important;
}
.mobile-section-nav::-webkit-scrollbar { display: none !important; }
.mobile-section-nav a {
  position: absolute !important;
  left: 12px !important;
  right: 12px !important;
  top: 50% !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 10px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.55) !important;
  font-size: .8rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  opacity: 0 !important;
  pointer-events: none !important;
  filter: blur(1px) !important;
  transform: translateY(-50%) scale(.62) !important;
  transition: transform .26s ease, opacity .26s ease, filter .26s ease, background .2s ease, color .2s ease !important;
}
.mobile-section-nav a[data-offset="0"] {
  opacity: 1 !important;
  pointer-events: auto !important;
  filter: none !important;
  transform: translateY(-50%) scale(1) !important;
  color: #fff !important;
  background: rgba(255,255,255,.20) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 12px 30px rgba(0,0,0,.16) !important;
}
.mobile-section-nav a[data-offset="-1"] {
  opacity: .48 !important;
  pointer-events: auto !important;
  filter: blur(.45px) !important;
  transform: translateY(calc(-50% - 48px)) scale(.80) !important;
}
.mobile-section-nav a[data-offset="1"] {
  opacity: .48 !important;
  pointer-events: auto !important;
  filter: blur(.45px) !important;
  transform: translateY(calc(-50% + 48px)) scale(.80) !important;
}
.mobile-section-nav a[data-offset="-2"] {
  opacity: .16 !important;
  transform: translateY(calc(-50% - 86px)) scale(.66) !important;
  filter: blur(1.2px) !important;
}
.mobile-section-nav a[data-offset="2"] {
  opacity: .16 !important;
  transform: translateY(calc(-50% + 86px)) scale(.66) !important;
  filter: blur(1.2px) !important;
}
.mobile-section-nav a:hover { color: #fff !important; }

.process-grid-visual { align-items: stretch; }
.process-grid-visual article {
  position: relative;
  overflow: hidden;
  min-height: 310px;
  padding: 24px 22px 22px;
  border: 1px solid #dfe4eb;
  border-radius: 26px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.88) 44%, rgba(255,255,255,.98) 100%),
    var(--process-bg) right -12px bottom -8px / 92% auto no-repeat,
    linear-gradient(135deg, rgba(255,159,10,.12), #f7f8fb 58%, #fff);
  box-shadow: 0 18px 46px rgba(17,18,23,.06);
}
.process-grid-visual article::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 80% 78%, rgba(255,159,10,.16), transparent 38%);
  pointer-events: none;
}
.process-grid-visual article > * { position: relative; z-index: 1; }
.process-grid-visual .process-photo { display: none !important; }
.process-grid-visual span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #111216;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 14px 30px rgba(255,159,10,.25);
}
.process-grid-visual h3 { margin: 118px 0 10px !important; }
.process-grid-visual p { max-width: 95%; }
.case-card img[src$="case-placeholder.svg"],
.admin-case-card img[src$="case-placeholder.svg"],
.case-cover-preview img[src$="case-placeholder.svg"] {
  object-fit: cover;
  background: #f1f4f8;
}

@media (max-width: 920px) {
  body { padding-bottom: 78px; }
  .mobile-section-nav {
    top: auto !important;
    right: 14px !important;
    left: 14px !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 10px) !important;
    width: min(430px, calc(100% - 28px)) !important;
    height: 58px !important;
    margin: 0 auto !important;
    padding: 8px !important;
    border-radius: 28px !important;
    transform: none !important;
    background: linear-gradient(135deg, rgba(7,13,25,.54), rgba(18,30,52,.48)) !important;
    opacity: .74 !important;
  }
  .mobile-section-nav:hover,
  .mobile-section-nav:focus-within { opacity: .92 !important; }
  .mobile-section-nav a {
    left: 50% !important;
    right: auto !important;
    width: 94px !important;
    min-height: 40px !important;
    font-size: .76rem !important;
    transform: translate(-50%, -50%) scale(.62) !important;
  }
  .mobile-section-nav a[data-offset="0"] {
    transform: translate(-50%, -50%) scale(1) !important;
  }
  .mobile-section-nav a[data-offset="-1"] {
    transform: translate(calc(-50% - 86px), -50%) scale(.78) !important;
    opacity: .42 !important;
  }
  .mobile-section-nav a[data-offset="1"] {
    transform: translate(calc(-50% + 86px), -50%) scale(.78) !important;
    opacity: .42 !important;
  }
  .mobile-section-nav a[data-offset="-2"] {
    transform: translate(calc(-50% - 148px), -50%) scale(.62) !important;
    opacity: .12 !important;
  }
  .mobile-section-nav a[data-offset="2"] {
    transform: translate(calc(-50% + 148px), -50%) scale(.62) !important;
    opacity: .12 !important;
  }
  .floating-phone { bottom: calc(env(safe-area-inset-bottom, 0px) + 86px) !important; }
  .process-grid-visual article {
    min-height: 250px;
    background-size: 72% auto, auto, auto;
    background-position: right -26px bottom -12px, center, center;
  }
  .process-grid-visual h3 { margin-top: 94px !important; }
}
@media (max-width: 560px) {
  .mobile-section-nav {
    right: 10px !important;
    left: 10px !important;
    width: calc(100% - 20px) !important;
    height: 54px !important;
    padding: 7px !important;
  }
  .mobile-section-nav a {
    width: 86px !important;
    min-height: 36px !important;
    font-size: .70rem !important;
  }
  .mobile-section-nav a[data-offset="-1"] { transform: translate(calc(-50% - 76px), -50%) scale(.76) !important; }
  .mobile-section-nav a[data-offset="1"] { transform: translate(calc(-50% + 76px), -50%) scale(.76) !important; }
  .mobile-section-nav a[data-offset="-2"] { transform: translate(calc(-50% - 128px), -50%) scale(.58) !important; }
  .mobile-section-nav a[data-offset="2"] { transform: translate(calc(-50% + 128px), -50%) scale(.58) !important; }
  .process-grid-visual article { min-height: 230px; }
}
.process-grid-visual article {
  background-repeat: no-repeat;
  background-size: auto, 92% auto, auto;
  background-position: center, right -12px bottom -8px, center;
}
@media (max-width: 920px) {
  .process-grid-visual article {
    background-size: auto, 72% auto, auto;
    background-position: center, right -26px bottom -12px, center;
  }
}

/* v1.8.0: text-only section roulette, counters and lead calc switch */
@media (min-width: 921px) {
  .mobile-section-nav {
    right: 22px !important;
    width: 126px !important;
    height: 172px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    opacity: .86 !important;
    pointer-events: none !important;
  }
  .mobile-section-nav:hover,
  .mobile-section-nav:focus-within {
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
  }
  .mobile-section-nav a {
    left: 0 !important;
    right: 0 !important;
    min-height: 30px !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(17,18,23,.32) !important;
    text-shadow: 0 8px 20px rgba(255,255,255,.9) !important;
    pointer-events: none !important;
  }
  .mobile-section-nav a[data-offset="0"] {
    color: #111216 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: translateY(-50%) scale(1) !important;
    font-size: .86rem !important;
  }
  .mobile-section-nav a[data-offset="-1"] {
    opacity: .42 !important;
    filter: blur(.55px) !important;
    transform: translateY(calc(-50% - 38px)) scale(.78) !important;
  }
  .mobile-section-nav a[data-offset="1"] {
    opacity: .42 !important;
    filter: blur(.55px) !important;
    transform: translateY(calc(-50% + 38px)) scale(.78) !important;
  }
  .mobile-section-nav a[data-offset="-2"] {
    opacity: .14 !important;
    transform: translateY(calc(-50% - 68px)) scale(.64) !important;
    filter: blur(1.15px) !important;
  }
  .mobile-section-nav a[data-offset="2"] {
    opacity: .14 !important;
    transform: translateY(calc(-50% + 68px)) scale(.64) !important;
    filter: blur(1.15px) !important;
  }
}
.stats-row span[data-counter] { font-variant-numeric: tabular-nums; }
.calc-attach-toggle {
  display: flex !important;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  background: rgba(255,255,255,.07);
  color: #fff;
  cursor: pointer;
  user-select: none;
}
.contact-panel .calc-attach-toggle,
.request-modal .calc-attach-toggle,
.call-modal .calc-attach-toggle { margin: 0; }
.calc-attach-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.calc-attach-toggle span {
  width: 46px;
  height: 26px;
  flex: 0 0 46px;
  position: relative;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
  transition: background .18s ease;
}
.calc-attach-toggle span::before {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  left: 3px;
  top: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,.18);
  transition: transform .18s ease;
}
.calc-attach-toggle input:checked + span { background: linear-gradient(135deg, var(--accent), var(--accent-2)); }
.calc-attach-toggle input:checked + span::before { transform: translateX(20px); }
.calc-attach-toggle b { font-size: .92rem; }
@media (max-width: 560px) {
  .calc-attach-toggle { min-height: 44px; border-radius: 14px; }
  .calc-attach-toggle b { font-size: .84rem; }
}

/* v1.9.0: clean topbar, modal alignment and overflow fixes */
html, body { max-width: 100%; overflow-x: clip; }
.site-header {
  background: transparent !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  pointer-events: none;
}
.header-inner {
  min-height: 86px;
  gap: 14px;
  pointer-events: none;
}
.logo,
.desktop-nav,
.header-contact,
.header-btn,
.burger,
.mobile-nav { pointer-events: auto; }
.logo img { filter: drop-shadow(0 12px 24px rgba(17,18,23,.08)); }
.desktop-nav {
  gap: 8px !important;
  margin-left: auto;
  min-width: 0;
  flex-wrap: nowrap;
  align-items: center;
}
.desktop-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 15px;
  border: 1px solid rgba(225,228,234,.92);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 30px rgba(17,18,23,.055);
  backdrop-filter: blur(14px);
  white-space: nowrap;
  line-height: 1;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.desktop-nav a:hover {
  transform: translateY(-1px);
  border-color: rgba(255,159,10,.38);
  background: rgba(255,255,255,.96);
}
.header-contact {
  min-height: 48px;
  padding: 0;
  background: transparent;
  white-space: nowrap;
}
.header-btn { white-space: nowrap; flex: 0 0 auto; }
.lead-form,
.modal-lead-form,
.request-modal,
.call-modal,
.contact-panel,
.modal-card { min-width: 0; overflow-x: hidden; }
.lead-form > *,
.lead-form label,
.lead-form input,
.lead-form select,
.lead-form textarea,
.lead-form button,
.calc-attach-toggle,
.calc-attach-toggle b { min-width: 0; max-width: 100%; }
.calc-attach-toggle { grid-column: 1 / -1; }
.calc-attach-toggle b { overflow-wrap: anywhere; }
.lead-form small { overflow-wrap: anywhere; }
.modal-card { width: min(980px, calc(100vw - 32px)); }
.request-modal,
.call-modal { overflow-x: hidden; }
.case-modal {
  width: min(1120px, calc(100vw - 32px));
  max-height: min(90vh, 860px);
  overflow: hidden;
}
.case-modal-gallery { overflow: hidden; }
.case-modal-gallery img { height: 100%; object-position: center; }
.modal-close,
.gallery-btn {
  display: inline-grid !important;
  place-items: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
}
.modal-close { font-size: 1.8rem; }
.gallery-btn { font-size: 2.15rem; z-index: 3; }
.gallery-btn.prev { left: 22px; }
.gallery-btn.next { right: 22px; }
.case-estimate:empty,
.case-estimate[hidden],
[data-case-modal-estimate-title][hidden] { display: none !important; }

@media (max-width: 1240px) and (min-width: 1101px) {
  .desktop-nav a { padding-inline: 12px; font-size: .86rem; }
  .header-inner { gap: 10px; }
  .header-contact strong { font-size: .94rem; }
  .header-btn { padding-inline: 15px; }
}
@media (max-width: 1100px) {
  .site-header {
    background: rgba(255,255,255,.86) !important;
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(232,234,238,.9) !important;
    pointer-events: auto;
  }
  .header-inner { min-height: 72px; pointer-events: auto; }
  .mobile-nav a { white-space: nowrap; }
}
@media (max-width: 720px) {
  .modal-card,
  .case-modal { width: min(100%, calc(100vw - 20px)); }
  .modal-backdrop { padding: 10px; overflow-x: hidden; }
  .lead-form { width: 100%; }
  .lead-form button,
  .btn { white-space: normal; }
  .case-modal-gallery { min-height: 280px; }
  .gallery-btn.prev { left: 12px; }
  .gallery-btn.next { right: 12px; }
  .modal-close { right: 12px; top: 12px; }
}
@media (max-width: 420px) {
  .case-modal-gallery { min-height: 235px; }
  .request-modal h2,
  .call-modal h2 { font-size: clamp(1.7rem, 12vw, 2.4rem); }
}

/* v1.10.0: liquid-glass header and mobile menu rebuild */
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 90 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  pointer-events: none !important;
}
.header-inner {
  min-height: 84px !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) max-content max-content !important;
  align-items: center !important;
  gap: 12px !important;
  pointer-events: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.logo,
.desktop-nav,
.header-contact,
.header-btn,
.mobile-call-btn,
.burger,
.mobile-nav { pointer-events: auto !important; }
.logo img {
  display: block !important;
  width: 156px !important;
  height: auto !important;
  max-height: 60px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 10px 24px rgba(17,18,23,.10)) !important;
}
.desktop-nav {
  justify-self: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  overflow: visible !important;
  flex-wrap: nowrap !important;
}
.desktop-nav a {
  position: relative !important;
  isolation: isolate !important;
  min-height: 44px !important;
  padding: 0 clamp(10px, .82vw, 16px) !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.56) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,255,255,.48) 48%, rgba(255,255,255,.72)),
    rgba(255,255,255,.48) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(255,255,255,.20),
    0 14px 36px rgba(17,18,23,.12) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
  color: #111216 !important;
  font-size: clamp(.78rem, .75vw, .92rem) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.desktop-nav a::before {
  content: "";
  position: absolute;
  inset: 1px 7px auto 7px;
  height: 48%;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,0));
  opacity: .86;
  pointer-events: none;
  z-index: -1;
}
.desktop-nav a:hover,
.desktop-nav a:focus-visible {
  transform: translateY(-1px) !important;
  border-color: rgba(255,159,10,.58) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.56) 48%, rgba(255,255,255,.82)),
    rgba(255,255,255,.58) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 18px 44px rgba(17,18,23,.16),
    0 0 0 3px rgba(255,159,10,.09) !important;
}
.header-contact {
  min-width: max-content !important;
  margin-left: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: right !important;
  white-space: nowrap !important;
  justify-self: end !important;
}
.header-contact strong { font-size: clamp(.9rem, .85vw, 1.02rem) !important; }
.header-contact span { font-size: .78rem !important; }
.header-btn {
  min-width: 188px !important;
  min-height: 48px !important;
  padding-inline: 18px !important;
  white-space: nowrap !important;
  justify-self: end !important;
  box-shadow: 0 16px 36px rgba(255,159,10,.28) !important;
}
.mobile-call-btn { display: none !important; }

@media (max-width: 1320px) and (min-width: 1181px) {
  .header-inner { gap: 9px !important; }
  .logo img { width: 140px !important; }
  .desktop-nav { gap: 6px !important; }
  .desktop-nav a { min-height: 40px !important; padding-inline: 10px !important; font-size: .78rem !important; }
  .header-contact span { display: none !important; }
  .header-btn { min-width: 176px !important; padding-inline: 14px !important; }
}

@media (max-width: 1180px) {
  .site-header {
    padding: 10px 0 0 !important;
    background: transparent !important;
    pointer-events: none !important;
  }
  .header-inner {
    min-height: 58px !important;
    display: flex !important;
    gap: 8px !important;
    padding: 8px 10px !important;
    border: 1px solid rgba(255,255,255,.58) !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.74) !important;
    box-shadow: 0 16px 44px rgba(17,18,23,.10) !important;
    backdrop-filter: blur(18px) saturate(1.15) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.15) !important;
    pointer-events: auto !important;
  }
  .logo img {
    width: 112px !important;
    max-height: 42px !important;
    filter: none !important;
  }
  .desktop-nav,
  .header-contact,
  .header-btn { display: none !important; }
  .mobile-call-btn,
  .burger {
    flex: 0 0 46px !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    display: inline-grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    border-radius: 999px !important;
    background:
      linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.60)),
      rgba(255,255,255,.74) !important;
    color: #111216 !important;
    box-shadow: 0 12px 26px rgba(17,18,23,.10), inset 0 1px 0 rgba(255,255,255,.9) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
  }
  .mobile-call-btn { margin-left: auto !important; font-size: 1.15rem !important; }
  .mobile-call-btn span { transform: translateY(1px); }
  .burger { gap: 5px !important; }
  .burger span {
    width: 18px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: #111216 !important;
  }
  .mobile-nav {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 50% !important;
    width: min(440px, calc(100vw - 24px)) !important;
    transform: translateX(-50%) translateY(-6px) !important;
    display: grid !important;
    gap: 8px !important;
    padding: 10px !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 26px !important;
    background: linear-gradient(145deg, rgba(7,13,25,.92), rgba(20,31,50,.82)) !important;
    box-shadow: 0 26px 80px rgba(2,7,18,.28) !important;
    backdrop-filter: blur(22px) saturate(1.1) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.1) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  }
  .mobile-nav.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }
  .mobile-nav a {
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 16px !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.08) !important;
    color: rgba(255,255,255,.88) !important;
    font-size: .96rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
  }
  .mobile-nav a:hover,
  .mobile-nav a:focus-visible { background: rgba(255,255,255,.14) !important; color: #fff !important; }
  .mobile-nav-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin-top: 2px !important;
    padding-top: 10px !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
  }
  .mobile-nav .mobile-nav-phone {
    color: #111216 !important;
    background: rgba(255,255,255,.92) !important;
    border-color: rgba(255,255,255,.30) !important;
  }
  .mobile-nav-btn {
    width: 100% !important;
    min-height: 48px !important;
    border-radius: 18px !important;
    white-space: nowrap !important;
  }
  .floating-phone { display: none !important; }
}

@media (max-width: 480px) {
  .site-header { padding-top: 8px !important; }
  .header-inner {
    width: calc(100% - 20px) !important;
    min-height: 54px !important;
    padding: 7px 8px !important;
    border-radius: 22px !important;
  }
  .logo img { width: 98px !important; max-height: 38px !important; }
  .mobile-call-btn,
  .burger {
    flex-basis: 42px !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
  .burger span { width: 17px !important; }
  .mobile-nav { width: calc(100vw - 20px) !important; border-radius: 24px !important; }
  .mobile-nav a { min-height: 44px !important; font-size: .92rem !important; }
}

/* v1.11.0: header spacing, desktop action glass and fixed mobile icons */
@media (min-width: 1181px) {
  .site-header {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .header-inner {
    grid-template-columns: auto minmax(480px, 1fr) auto !important;
    gap: 18px !important;
    padding-inline: clamp(18px, 3vw, 38px) !important;
  }
  .logo { margin-right: clamp(10px, 1.4vw, 28px) !important; }
  .desktop-nav {
    justify-self: center !important;
    margin-inline: clamp(18px, 2vw, 34px) !important;
    gap: clamp(8px, .72vw, 12px) !important;
  }
  .desktop-nav a {
    min-width: max-content !important;
    padding-inline: clamp(13px, 1vw, 20px) !important;
  }
  .header-actions-liquid {
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    min-width: max-content !important;
    padding: 7px 8px 7px 18px !important;
    border: 1px solid rgba(255,255,255,.54) !important;
    border-radius: 999px !important;
    background:
      linear-gradient(135deg, rgba(255,255,255,.84), rgba(255,255,255,.48) 52%, rgba(255,255,255,.72)),
      rgba(255,255,255,.46) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.88),
      inset 0 -1px 0 rgba(255,255,255,.18),
      0 16px 42px rgba(17,18,23,.12) !important;
    backdrop-filter: blur(18px) saturate(1.25) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
  }
  .header-actions-liquid .header-contact {
    display: grid !important;
    min-width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.1 !important;
  }
  .header-actions-liquid .header-btn {
    display: inline-flex !important;
    min-width: max-content !important;
    min-height: 46px !important;
    padding-inline: 18px !important;
  }
}

@media (max-width: 1360px) and (min-width: 1181px) {
  .header-inner { grid-template-columns: auto minmax(390px, 1fr) auto !important; gap: 12px !important; }
  .logo img { width: 132px !important; }
  .desktop-nav { margin-inline: 12px !important; gap: 7px !important; }
  .desktop-nav a { min-height: 40px !important; padding-inline: 10px !important; font-size: .77rem !important; }
  .header-actions-liquid { gap: 10px !important; padding-left: 14px !important; }
  .header-actions-liquid .header-contact span { display: none !important; }
  .header-actions-liquid .header-btn { min-height: 42px !important; padding-inline: 14px !important; font-size: .86rem !important; }
}

@media (max-width: 1180px) {
  .header-actions-liquid { display: none !important; }
  .header-inner {
    display: flex !important;
    align-items: center !important;
  }
  .mobile-call-btn,
  .burger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .mobile-call-btn {
    margin-left: auto !important;
  }
  .mobile-call-btn svg {
    width: 19px !important;
    height: 19px !important;
    display: block !important;
    fill: currentColor !important;
  }
  .burger {
    flex-direction: column !important;
    gap: 4px !important;
    overflow: hidden !important;
  }
  .burger span {
    display: block !important;
    flex: 0 0 auto !important;
    width: 18px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: #111216 !important;
    transform: none !important;
    opacity: 1 !important;
  }
  .burger span:nth-child(2) { width: 15px !important; }
  .burger span:nth-child(3) { width: 18px !important; }
}

@media (max-width: 480px) {
  .logo img { width: 92px !important; max-height: 34px !important; }
  .mobile-call-btn,
  .burger {
    flex-basis: 40px !important;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  .mobile-call-btn svg { width: 18px !important; height: 18px !important; }
}

/* v1.12.0: stable desktop header spacing and round glass CTA */
@media (min-width: 1181px) {
  .site-header {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
  }

  .site-header .header-inner {
    width: min(100% - 40px, 1320px) !important;
    margin-inline: auto !important;
    min-height: 84px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: clamp(18px, 2vw, 34px) !important;
    padding-inline: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
  }

  .site-header .logo {
    position: relative !important;
    z-index: 2 !important;
    flex: 0 0 clamp(150px, 12vw, 190px) !important;
    width: clamp(150px, 12vw, 190px) !important;
    max-width: clamp(150px, 12vw, 190px) !important;
    min-width: 150px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    pointer-events: auto !important;
  }

  .site-header .logo img {
    width: clamp(144px, 11vw, 176px) !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 58px !important;
    object-fit: contain !important;
    object-position: left center !important;
    display: block !important;
  }

  .site-header .desktop-nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(8px, .82vw, 14px) !important;
    margin-inline: 0 !important;
    pointer-events: auto !important;
  }

  .site-header .desktop-nav a {
    min-height: 44px !important;
    padding-inline: clamp(14px, 1.05vw, 22px) !important;
    border-radius: 999px !important;
    white-space: nowrap !important;
  }

  .site-header .header-actions-liquid {
    position: relative !important;
    z-index: 2 !important;
    flex: 0 0 auto !important;
    min-width: max-content !important;
    margin: 0 !important;
    pointer-events: auto !important;
  }

  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    border-radius: 999px !important;
    min-height: 48px !important;
    padding-inline: 24px !important;
    white-space: nowrap !important;
    box-shadow: 0 16px 34px rgba(255,159,10,.28), inset 0 1px 0 rgba(255,255,255,.30) !important;
  }
}

@media (max-width: 1360px) and (min-width: 1181px) {
  .site-header .header-inner {
    width: min(100% - 28px, 1260px) !important;
    gap: 14px !important;
  }

  .site-header .logo {
    flex-basis: 136px !important;
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
  }

  .site-header .logo img {
    width: 132px !important;
    max-height: 50px !important;
  }

  .site-header .desktop-nav {
    gap: 7px !important;
  }

  .site-header .desktop-nav a {
    min-height: 40px !important;
    padding-inline: 11px !important;
    font-size: .78rem !important;
  }

  .site-header .header-actions-liquid {
    gap: 9px !important;
    padding: 6px 7px 6px 13px !important;
  }

  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    min-height: 42px !important;
    padding-inline: 16px !important;
    font-size: .86rem !important;
  }
}

@media (max-width: 1240px) and (min-width: 1181px) {
  .site-header .header-inner {
    width: calc(100% - 20px) !important;
    gap: 9px !important;
  }

  .site-header .logo {
    flex-basis: 118px !important;
    width: 118px !important;
    min-width: 118px !important;
    max-width: 118px !important;
  }

  .site-header .logo img {
    width: 116px !important;
    max-height: 44px !important;
  }

  .site-header .desktop-nav a {
    min-height: 38px !important;
    padding-inline: 9px !important;
    font-size: .72rem !important;
  }

  .site-header .header-actions-liquid .header-contact strong {
    font-size: .86rem !important;
  }

  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    min-height: 40px !important;
    padding-inline: 13px !important;
    font-size: .8rem !important;
  }
}

/* v1.13.0: final stable desktop header layout — no overlaps */
@media (min-width: 1181px) {
  .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
    height: auto !important;
    padding: 12px 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
    overflow: visible !important;
  }

  .site-header .container.header-inner,
  .site-header .header-inner {
    width: min(1240px, calc(100vw - 48px)) !important;
    min-height: 58px !important;
    height: 58px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 164px minmax(0, 1fr) max-content !important;
    align-items: center !important;
    justify-content: stretch !important;
    column-gap: 20px !important;
    row-gap: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
  }

  .site-header .logo {
    grid-column: 1 !important;
    position: static !important;
    z-index: 4 !important;
    width: 164px !important;
    min-width: 164px !important;
    max-width: 164px !important;
    height: 58px !important;
    flex: 0 0 164px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  .site-header .logo img {
    width: 164px !important;
    max-width: 164px !important;
    height: auto !important;
    max-height: 58px !important;
    object-fit: contain !important;
    object-position: left center !important;
    display: block !important;
    transform: none !important;
  }

  .site-header .desktop-nav {
    grid-column: 2 !important;
    z-index: 3 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  .site-header .desktop-nav a {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: max-content !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .site-header .header-actions-liquid {
    grid-column: 3 !important;
    position: static !important;
    z-index: 4 !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: 430px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 6px 8px 6px 18px !important;
    border: 1px solid rgba(255,255,255,.58) !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,255,255,.54) 52%, rgba(255,255,255,.78)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 18px 48px rgba(17,18,23,.13) !important;
    backdrop-filter: blur(18px) saturate(1.25) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
    pointer-events: auto !important;
  }

  .site-header .header-actions-liquid .header-contact {
    display: grid !important;
    gap: 2px !important;
    min-width: 130px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  .site-header .header-actions-liquid .header-contact strong {
    display: block !important;
    font-size: 15px !important;
    line-height: 1.08 !important;
    letter-spacing: -.02em !important;
  }

  .site-header .header-actions-liquid .header-contact span {
    display: block !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
  }

  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 214px !important;
    width: 214px !important;
    max-width: 214px !important;
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 20px !important;
    border-radius: 999px !important;
    white-space: nowrap !important;
    font-size: 14px !important;
    line-height: 1 !important;
    flex: 0 0 214px !important;
  }
}

@media (max-width: 1440px) and (min-width: 1181px) {
  .site-header .container.header-inner,
  .site-header .header-inner {
    width: min(1260px, calc(100vw - 36px)) !important;
    grid-template-columns: 150px minmax(0, 1fr) max-content !important;
    column-gap: 14px !important;
  }
  .site-header .logo,
  .site-header .logo img {
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
  }
  .site-header .desktop-nav { gap: 7px !important; }
  .site-header .desktop-nav a {
    min-height: 40px !important;
    height: 40px !important;
    padding-inline: 12px !important;
    font-size: 13px !important;
  }
  .site-header .header-actions-liquid {
    gap: 9px !important;
    padding: 6px 7px 6px 14px !important;
  }
  .site-header .header-actions-liquid .header-contact { min-width: 124px !important; }
  .site-header .header-actions-liquid .header-contact strong { font-size: 14px !important; }
  .site-header .header-actions-liquid .header-contact span { font-size: 11px !important; }
  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    min-width: 202px !important;
    width: 202px !important;
    max-width: 202px !important;
    flex-basis: 202px !important;
    min-height: 44px !important;
    height: 44px !important;
    font-size: 13px !important;
    padding-inline: 16px !important;
  }
}

@media (max-width: 1280px) and (min-width: 1181px) {
  .site-header .container.header-inner,
  .site-header .header-inner {
    width: calc(100vw - 24px) !important;
    grid-template-columns: 124px minmax(0, 1fr) max-content !important;
    column-gap: 9px !important;
  }
  .site-header .logo,
  .site-header .logo img {
    width: 124px !important;
    min-width: 124px !important;
    max-width: 124px !important;
  }
  .site-header .desktop-nav { gap: 5px !important; }
  .site-header .desktop-nav a {
    min-height: 38px !important;
    height: 38px !important;
    padding-inline: 9px !important;
    font-size: 12px !important;
  }
  .site-header .header-actions-liquid { padding-left: 12px !important; }
  .site-header .header-actions-liquid .header-contact span { display: none !important; }
  .site-header .header-actions-liquid .header-contact { min-width: 112px !important; }
  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    min-width: 184px !important;
    width: 184px !important;
    max-width: 184px !important;
    flex-basis: 184px !important;
    font-size: 12.5px !important;
  }
}

@media (max-width: 1180px) {
  .site-header .container.header-inner,
  .site-header .header-inner {
    width: min(100% - 24px, 560px) !important;
  }
}

/* v1.14.0: SmartCaptcha + stable liquid menu polish */
.captcha-wrap {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 100px;
  border-radius: 16px;
  overflow: hidden;
}
.lead-form input[maxlength],
.lead-form textarea[maxlength] {
  caret-color: var(--accent);
}
@media (min-width: 1181px) {
  .site-header .container.header-inner,
  .site-header .header-inner {
    overflow: visible !important;
  }
  .site-header .desktop-nav {
    margin-inline: clamp(18px, 2.2vw, 34px) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    isolation: isolate;
  }
  .site-header .desktop-nav a {
    overflow: visible !important;
    text-overflow: clip !important;
    background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.43)) !important;
    border: 1px solid rgba(255,255,255,.68) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 14px 35px rgba(17,18,23,.09) !important;
    backdrop-filter: blur(18px) saturate(1.25) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
  }
  .site-header .desktop-nav a:hover,
  .site-header .desktop-nav a:focus-visible {
    transform: translateY(-2px) !important;
    background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.62)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 18px 42px rgba(17,18,23,.14) !important;
  }
  .site-header .desktop-nav a::before { display: none !important; }
}

/* v1.16.0: improved mobile phone mask and seamless announcement */
.lead-form input[name="phone"],
input[data-phone-mask] {
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
}

/* v1.15.0: header polish, announcement, phone mask, wider case modal */
.site-header .desktop-nav {
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 4px 8px !important;
  isolation: isolate;
}
.site-header .desktop-nav a {
  overflow: visible !important;
  white-space: nowrap !important;
  will-change: transform;
}
.site-header .desktop-nav a:hover,
.site-header .desktop-nav a:focus-visible {
  transform: translateY(-2px) scale(1.015) !important;
}
.site-header .header-actions-liquid {
  align-items: center !important;
}
.site-header .header-actions-liquid .header-contact {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-end !important;
  min-height: 46px !important;
  line-height: 1.15 !important;
  margin-top: 0 !important;
  transform: none !important;
}
.site-header .header-actions-liquid .header-contact strong,
.site-header .header-actions-liquid .header-contact span { line-height: 1.15 !important; }

.announcement-marquee {
  width: 100%;
  overflow: hidden;
  background: rgba(17,18,22,.96);
  border-block: 1px solid rgba(255,255,255,.08);
  color: #fff;
  white-space: nowrap;
  box-shadow: 0 16px 40px rgba(17,18,22,.10);
}
.announcement-track {
  display: flex;
  width: max-content;
  min-width: 200%;
  overflow: hidden;
  animation: announcement-marquee var(--announcement-speed, 58s) linear infinite;
  will-change: transform;
}
.announcement-group {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: clamp(26px, 4vw, 58px);
  min-width: 100vw;
  padding: 9px 0;
  flex-shrink: 0;
}
.announcement-track span {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.announcement-track span::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--accent, #ff9f0a);
  box-shadow: 0 0 0 5px rgba(255,159,10,.16);
}
@keyframes announcement-marquee {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
@media (prefers-reduced-motion: reduce) {
  .announcement-track { animation: none; transform: none; }
}

.modal-card.case-modal {
  width: min(1420px, calc(100vw - 34px)) !important;
  grid-template-columns: minmax(420px, .92fr) minmax(620px, 1.08fr) !important;
}
.case-modal-content { min-width: 0; }
.case-estimate { overflow-x: visible !important; }
.case-estimate table { min-width: 0 !important; width: 100% !important; table-layout: auto; }
.case-estimate th,
.case-estimate td { white-space: normal; word-break: break-word; }
.case-estimate td:nth-child(2),
.case-estimate td:nth-child(3),
.case-estimate td:nth-child(4) { white-space: nowrap; }
@media (max-width: 1080px) {
  .modal-card.case-modal { grid-template-columns: 1fr !important; width: min(100%, calc(100vw - 20px)) !important; }
  .case-estimate { overflow-x: auto !important; }
  .case-estimate table { min-width: 520px !important; }
}

/* v1.17.0: service toggles in calculator, live field validation, topbar/process polish */
.lead-form { position: relative; }
.field-error {
  position: absolute;
  z-index: 12;
  display: block;
  min-height: 16px;
  margin: 0;
  padding: 0 2px;
  color: #ffb02e;
  font-size: 12px;
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: .01em;
  pointer-events: none;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.field-error[hidden] { display: none !important; }
.lead-form input.is-invalid,
.lead-form textarea.is-invalid {
  border-color: rgba(255, 159, 10, .82) !important;
  box-shadow: 0 0 0 3px rgba(255, 159, 10, .16) !important;
}
.calc-services-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.calc-service-switches {
  display: grid;
  gap: 10px;
}
.calc-service-switch {
  position: relative;
  display: grid;
  grid-template-columns: 52px 1fr;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.055);
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.calc-service-switch:hover {
  transform: translateY(-1px);
  border-color: rgba(255,159,10,.34);
  background: rgba(255,159,10,.08);
}
.calc-service-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.service-switch-ui {
  width: 50px;
  height: 30px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
  position: relative;
}
.service-switch-ui::after {
  content: '';
  position: absolute;
  top: 5px;
  left: 5px;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  transition: transform .2s ease, background .2s ease;
}
.calc-service-switch input:checked + .service-switch-ui {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 12px 24px rgba(255,159,10,.22);
}
.calc-service-switch input:checked + .service-switch-ui::after {
  transform: translateX(20px);
  background: #fff;
}
.service-switch-text {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.service-switch-text b { color: #fff; font-size: .98rem; }
.service-switch-text small { color: rgba(255,255,255,.62); line-height: 1.35; }
.service-switch-text em { color: var(--accent); font-style: normal; font-weight: 900; }
.site-header .desktop-nav a {
  color: var(--accent) !important;
}
.site-header .desktop-nav a:hover,
.site-header .desktop-nav a:focus-visible {
  color: #d97900 !important;
}
.site-header .header-actions-liquid .header-btn,
.site-header .btn.btn-accent.header-btn {
  color: #fff !important;
}
.process-grid-visual article {
  min-height: 360px !important;
  background:
    linear-gradient(180deg, rgba(17,18,23,.18) 0%, rgba(17,18,23,.05) 34%, rgba(255,255,255,.88) 76%, rgba(255,255,255,.98) 100%),
    var(--process-bg) center bottom -18px / auto 112% no-repeat,
    linear-gradient(135deg, rgba(255,159,10,.16), #f7f8fb 62%, #fff) !important;
}
.process-grid-visual span {
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.18);
}
.process-grid-visual h3 { margin-top: 150px !important; }
@media (max-width: 980px) {
  .calc-services-card { grid-column: 1 / -1; }
  .process-grid-visual article { min-height: 300px !important; background-size: auto 104%, auto 104%, auto !important; }
  .process-grid-visual h3 { margin-top: 118px !important; }
}
@media (max-width: 640px) {
  .field-error { font-size: 11px; line-height: 1.15; }
  .calc-service-switch { grid-template-columns: 46px 1fr; padding: 11px; }
  .service-switch-ui { width: 46px; height: 28px; }
  .service-switch-ui::after { width: 18px; height: 18px; }
  .calc-service-switch input:checked + .service-switch-ui::after { transform: translateX(18px); }
}
@media (min-width: 1101px) {
  .calc-grid-materials .object-card { grid-column: 1; grid-row: 1; }
  .calc-grid-materials .calc-services-card { grid-column: 1; grid-row: 2; }
  .calc-grid-materials .estimate-card { grid-column: 2; grid-row: 1 / span 2; }
  .calc-grid-materials .calc-result { grid-column: 3; grid-row: 1 / span 2; }
}

/* v1.18.0: rebuilt readable topbar and compact adaptive calculator */
@media (min-width: 1181px) {
  .site-header {
    position: sticky !important;
    top: 12px !important;
    z-index: 100 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  .site-header .container.header-inner,
  .site-header .header-inner {
    width: min(1320px, calc(100vw - 48px)) !important;
    height: auto !important;
    min-height: 72px !important;
    margin: 0 auto !important;
    padding: 8px 10px 8px 12px !important;
    display: grid !important;
    grid-template-columns: 180px minmax(520px, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 18px !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    border-radius: 34px !important;
    background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.76)) !important;
    box-shadow: 0 24px 70px rgba(17,18,23,.14), inset 0 1px 0 rgba(255,255,255,.95) !important;
    backdrop-filter: blur(22px) saturate(1.2) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.2) !important;
    pointer-events: auto !important;
  }
  .site-header .logo {
    grid-column: 1 !important;
    width: 172px !important;
    min-width: 172px !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px 8px !important;
    margin: 0 !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 10px 28px rgba(17,18,23,.08) !important;
  }
  .site-header .logo img {
    width: 150px !important;
    max-width: 150px !important;
    max-height: 48px !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
  }
  .site-header .desktop-nav {
    grid-column: 2 !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
  .site-header .desktop-nav a {
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 clamp(12px, .9vw, 18px) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    border: 1px solid rgba(222,226,234,.85) !important;
    background: rgba(255,255,255,.78) !important;
    color: #15171d !important;
    font-weight: 900 !important;
    font-size: clamp(.78rem, .76vw, .92rem) !important;
    line-height: 1 !important;
    letter-spacing: -.015em !important;
    white-space: nowrap !important;
    overflow: visible !important;
    box-shadow: 0 10px 26px rgba(17,18,23,.07), inset 0 1px 0 rgba(255,255,255,.86) !important;
    transform: translateZ(0) !important;
  }
  .site-header .desktop-nav a:hover,
  .site-header .desktop-nav a:focus-visible {
    color: #111216 !important;
    background: #fff !important;
    border-color: rgba(255,159,10,.62) !important;
    transform: translateY(-2px) translateZ(0) !important;
    box-shadow: 0 16px 34px rgba(17,18,23,.11), 0 0 0 4px rgba(255,159,10,.10) !important;
  }
  .site-header .header-actions-liquid {
    grid-column: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    min-width: max-content !important;
    margin: 0 !important;
    padding: 6px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(223,226,232,.85) !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 12px 30px rgba(17,18,23,.08) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    pointer-events: auto !important;
  }
  .site-header .header-actions-liquid .header-contact {
    display: grid !important;
    align-content: center !important;
    justify-items: end !important;
    gap: 3px !important;
    min-width: 148px !important;
    height: 50px !important;
    padding: 0 4px 0 12px !important;
    margin: 0 !important;
    text-align: right !important;
    line-height: 1 !important;
  }
  .site-header .header-actions-liquid .header-contact strong {
    color: #101116 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
  }
  .site-header .header-actions-liquid .header-contact span {
    color: rgba(17,18,23,.58) !important;
    font-size: 12px !important;
    line-height: 1 !important;
  }
  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn {
    min-height: 50px !important;
    height: 50px !important;
    padding: 0 24px !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--accent), var(--accent-2)) !important;
    box-shadow: 0 14px 30px rgba(255,159,10,.28), inset 0 1px 0 rgba(255,255,255,.34) !important;
  }
}
@media (max-width: 1360px) and (min-width: 1181px) {
  .site-header .container.header-inner,
  .site-header .header-inner {
    width: calc(100vw - 24px) !important;
    grid-template-columns: 150px minmax(445px, 1fr) max-content !important;
    column-gap: 10px !important;
    padding: 7px 8px !important;
  }
  .site-header .logo { width: 144px !important; min-width: 144px !important; }
  .site-header .logo img { width: 132px !important; max-width: 132px !important; }
  .site-header .desktop-nav { gap: 6px !important; }
  .site-header .desktop-nav a { height: 40px !important; min-height: 40px !important; padding-inline: 10px !important; font-size: .75rem !important; }
  .site-header .header-actions-liquid { gap: 7px !important; }
  .site-header .header-actions-liquid .header-contact { min-width: 132px !important; height: 46px !important; }
  .site-header .header-actions-liquid .header-contact span { display: none !important; }
  .site-header .header-actions-liquid .header-btn,
  .site-header .btn.btn-accent.header-btn { height: 46px !important; min-height: 46px !important; padding-inline: 16px !important; font-size: .84rem !important; }
}

@media (min-width: 1101px) {
  .calc-grid-materials {
    grid-template-columns: minmax(260px, 300px) minmax(430px, 1fr) minmax(250px, 300px) !important;
    align-items: stretch !important;
    gap: 18px !important;
  }
  .calc-grid-materials .object-card { grid-column: 1 !important; grid-row: 1 !important; }
  .calc-grid-materials .calc-services-card { grid-column: 1 !important; grid-row: 2 !important; }
  .calc-grid-materials .estimate-card { grid-column: 2 !important; grid-row: 1 / span 2 !important; }
  .calc-grid-materials .calc-result { grid-column: 3 !important; grid-row: 1 / span 2 !important; }
  .calc-card,
  .calc-result { min-width: 0 !important; }
  .calc-services-card {
    min-height: 0 !important;
    max-height: 260px !important;
    padding: 16px !important;
    gap: 10px !important;
    overflow: hidden !important;
  }
  .calc-service-switches {
    gap: 8px !important;
    overflow-y: auto !important;
    padding-right: 3px !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,159,10,.85) rgba(255,255,255,.08) !important;
  }
  .calc-service-switch {
    min-height: 62px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 42px !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 10px 10px 12px !important;
    border-radius: 14px !important;
  }
  .calc-service-switch input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
  .calc-service-switch .service-switch-ui {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 42px !important;
    height: 24px !important;
    display: block !important;
    align-self: center !important;
    justify-self: end !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    background: rgba(255,255,255,.14) !important;
  }
  .calc-service-switch .service-switch-ui::after {
    top: 3px !important;
    left: 3px !important;
    width: 18px !important;
    height: 18px !important;
  }
  .calc-service-switch input:checked + .service-switch-ui::after { transform: translateX(18px) !important; }
  .calc-service-switch .service-switch-text {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    gap: 2px !important;
  }
  .service-switch-text b { font-size: .9rem !important; line-height: 1.15 !important; }
  .service-switch-text small { font-size: .76rem !important; line-height: 1.22 !important; display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; }
  .service-switch-text em { font-size: .88rem !important; }
  .estimate-card {
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .estimate-card .estimate-items {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  .calc-result {
    height: 100% !important;
    min-height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch !important;
  }
  .calc-result p { margin-bottom: auto !important; }
  .calc-result .btn.btn-accent { margin-top: auto !important; }
  .calc-result .btn,
  .calc-result .btn-excel { width: 100% !important; justify-content: center !important; }
}
@media (max-width: 1100px) {
  .calc-services-card { max-height: none !important; }
  .calc-service-switch {
    grid-template-columns: minmax(0, 1fr) 44px !important;
  }
  .calc-service-switch .service-switch-ui {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }
  .calc-service-switch .service-switch-text { grid-column: 1 !important; grid-row: 1 !important; }
}

/* v1.20.0: stable service toggles and non-breaking validation popovers */
body > .field-error {
  position: fixed !important;
  z-index: 10050 !important;
  display: block !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(255,159,10,.46) !important;
  background: linear-gradient(135deg, rgba(22,23,28,.98), rgba(39,31,20,.96)) !important;
  color: #ffb02e !important;
  font-size: 12px !important;
  line-height: 1.28 !important;
  font-weight: 900 !important;
  letter-spacing: -.01em !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.35), 0 0 0 4px rgba(255,159,10,.10) !important;
  pointer-events: none !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  transform: translate3d(0,-2px,0) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}
body > .field-error[hidden] { display: none !important; }
body > .field-error::after {
  content: '';
  position: absolute;
  left: 22px;
  bottom: -7px;
  width: 12px;
  height: 12px;
  border-right: 1px solid rgba(255,159,10,.46);
  border-bottom: 1px solid rgba(255,159,10,.46);
  background: rgba(39,31,20,.96);
  transform: rotate(45deg);
}
body > .field-error.field-error-below::after {
  bottom: auto;
  top: -7px;
  border: 0;
  border-left: 1px solid rgba(255,159,10,.46);
  border-top: 1px solid rgba(255,159,10,.46);
}
.lead-form input.is-invalid,
.lead-form textarea.is-invalid {
  border-color: rgba(255,159,10,.86) !important;
  box-shadow: 0 0 0 3px rgba(255,159,10,.16) !important;
}

.calc-services-card {
  min-width: 0 !important;
  overflow: hidden !important;
}
.calc-services-card > label {
  margin: 0 !important;
  line-height: 1.1 !important;
}
.calc-services-card .calc-service-switches {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 0 6px 0 0 !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(255,159,10,.88) rgba(255,255,255,.08) !important;
}
.calc-services-card .calc-service-switches::-webkit-scrollbar { width: 8px; }
.calc-services-card .calc-service-switches::-webkit-scrollbar-track {
  background: rgba(255,255,255,.07);
  border-radius: 999px;
}
.calc-services-card .calc-service-switches::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--accent), var(--accent-2));
  border-radius: 999px;
  border: 2px solid rgba(17,18,23,.92);
}
.calc-services-card .calc-service-switch {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 64px !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 10px 10px 12px !important;
  margin: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.065) !important;
}
.calc-services-card .calc-service-switch:hover {
  transform: none !important;
}
.calc-services-card .calc-service-switch:has(input:checked) {
  border-color: rgba(255,159,10,.55) !important;
  background: linear-gradient(135deg, rgba(255,159,10,.16), rgba(255,255,255,.07)) !important;
}
.calc-services-card .service-switch-text {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  display: grid !important;
  gap: 4px !important;
  align-content: center !important;
}
.calc-services-card .service-switch-text b {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  color: #fff !important;
  font-size: .9rem !important;
  line-height: 1.16 !important;
  letter-spacing: -.02em !important;
  overflow-wrap: anywhere !important;
}
.calc-services-card .service-switch-text small {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  margin: 0 !important;
  color: rgba(255,255,255,.62) !important;
  font-size: .74rem !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere !important;
}
.calc-services-card .service-switch-text em {
  display: block !important;
  color: var(--accent) !important;
  font-size: .86rem !important;
  line-height: 1.05 !important;
  font-style: normal !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
}
.calc-services-card .service-switch-ui {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  align-self: center !important;
  width: 62px !important;
  height: 30px !important;
  border-radius: 999px !important;
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.13) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12) !important;
}
.calc-services-card .service-switch-ui::before {
  content: 'выкл';
  position: absolute;
  top: 50%;
  right: 7px;
  transform: translateY(-50%);
  color: rgba(255,255,255,.68);
  font-size: 8px;
  line-height: 1;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.calc-services-card .service-switch-ui::after {
  content: '' !important;
  position: absolute !important;
  top: 3px !important;
  left: 3px !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.22) !important;
  transition: transform .2s ease, background .2s ease !important;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui {
  background: linear-gradient(135deg, var(--accent), var(--accent-2)) !important;
  border-color: rgba(255,178,50,.94) !important;
  box-shadow: 0 12px 26px rgba(255,159,10,.20), inset 0 1px 0 rgba(255,255,255,.22) !important;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::before {
  content: 'вкл';
  right: auto;
  left: 8px;
  color: #161718;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::after {
  transform: translateX(32px) !important;
  background: #fff !important;
}

@media (min-width: 1101px) {
  .calc-grid-materials .calc-services-card {
    max-height: 320px !important;
    padding: 16px !important;
    gap: 10px !important;
  }
  .calc-grid-materials .calc-service-switches {
    max-height: 240px !important;
  }
}
@media (max-width: 1100px) {
  .calc-services-card .calc-service-switch {
    grid-template-columns: minmax(0, 1fr) 62px !important;
  }
}
@media (max-width: 560px) {
  body > .field-error {
    width: min(320px, calc(100vw - 20px)) !important;
    font-size: 11px !important;
  }
  .calc-services-card .service-switch-text b { font-size: .86rem !important; }
  .calc-services-card .service-switch-text small { font-size: .72rem !important; }
}

/* v1.21.0 — services block: readable cards and internal scroll */
.calc-services-card {
  min-height: 0 !important;
  overflow: hidden !important;
}
.calc-services-card .calc-service-switches {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: 360px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 2px 8px 2px 0 !important;
  overscroll-behavior: contain !important;
}
.calc-services-card .calc-service-switch {
  min-height: 112px !important;
  height: auto !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  align-items: start !important;
  gap: 14px !important;
  padding: 16px 14px !important;
  overflow: visible !important;
}
.calc-services-card .service-switch-text {
  overflow: visible !important;
  align-content: start !important;
  gap: 7px !important;
}
.calc-services-card .service-switch-text b,
.calc-services-card .service-switch-text small {
  display: block !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.calc-services-card .service-switch-text b {
  font-size: .95rem !important;
  line-height: 1.18 !important;
}
.calc-services-card .service-switch-text small {
  font-size: .78rem !important;
  line-height: 1.35 !important;
}
.calc-services-card .service-switch-text em {
  margin-top: 2px !important;
  white-space: normal !important;
}
.calc-services-card .service-switch-ui {
  width: 46px !important;
  height: 26px !important;
  align-self: start !important;
  margin-top: 2px !important;
}
.calc-services-card .service-switch-ui::before,
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::before {
  content: none !important;
  display: none !important;
}
.calc-services-card .service-switch-ui::after {
  top: 3px !important;
  left: 3px !important;
  width: 20px !important;
  height: 20px !important;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::after {
  transform: translateX(20px) !important;
}
@media (min-width: 1101px) {
  .calc-grid-materials .calc-services-card {
    max-height: 430px !important;
  }
  .calc-grid-materials .calc-service-switches {
    max-height: 340px !important;
  }
}
@media (max-width: 1100px) {
  .calc-services-card .calc-service-switches {
    max-height: 380px !important;
  }
  .calc-services-card .calc-service-switch {
    min-height: 104px !important;
    grid-template-columns: minmax(0, 1fr) 46px !important;
  }
}

/* v1.22.0 — services cards must grow naturally, no fixed card height */
.calc-services-card .calc-service-switches {
  max-height: min(52vh, 460px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  align-content: start !important;
}
.calc-services-card .calc-service-switch {
  height: auto !important;
  min-height: auto !important;
  align-items: center !important;
  grid-template-columns: minmax(0, 1fr) 46px !important;
  padding: 16px 14px !important;
}
.calc-services-card .service-switch-text,
.calc-services-card .service-switch-text b,
.calc-services-card .service-switch-text small,
.calc-services-card .service-switch-text em {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
}
.calc-services-card .service-switch-text small { display: block !important; }
@media (max-width: 640px) {
  .calc-services-card .calc-service-switches { max-height: 420px !important; }
  .calc-services-card .calc-service-switch { padding: 14px 12px !important; }
}

/* v1.23.0: service cards must grow with content, no clipped text */
.calc-services-card .calc-service-switches {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  align-content: start !important;
  gap: 12px !important;
}
.calc-services-card .calc-service-switch {
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  align-items: center !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  padding: 15px 14px !important;
}
.calc-services-card .service-switch-text,
.calc-services-card .service-switch-text b,
.calc-services-card .service-switch-text small,
.calc-services-card .service-switch-text em {
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.calc-services-card .service-switch-text small {
  line-height: 1.35 !important;
  margin-top: 6px !important;
}
.calc-services-card .service-switch-text em {
  margin-top: 8px !important;
}
.calc-services-card .service-switch-ui {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: end !important;
}
@media (max-width: 760px) {
  .calc-services-card .calc-service-switch { grid-template-columns: minmax(0, 1fr) 44px !important; }
}

/* v1.24.0 — stable service cards + promo fields */
.calc-services-card .calc-service-switches {
  max-height: 360px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 10px !important;
  display: grid !important;
  gap: 12px !important;
  align-content: start !important;
}
.calc-services-card .calc-service-switch {
  min-height: 0 !important;
  height: auto !important;
  overflow: visible !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  align-items: start !important;
  gap: 12px !important;
  padding: 14px 14px 14px 16px !important;
  border-radius: 18px !important;
}
.calc-services-card .calc-service-switch .service-switch-text {
  min-width: 0 !important;
  width: 100% !important;
  display: grid !important;
  gap: 7px !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  overflow: visible !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b,
.calc-services-card .calc-service-switch .service-switch-text small,
.calc-services-card .calc-service-switch .service-switch-text em {
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  display: block !important;
  max-width: 100% !important;
  line-height: 1.22 !important;
}
.calc-services-card .calc-service-switch .service-switch-text small {
  color: rgba(255,255,255,.72) !important;
  font-weight: 700 !important;
}
.calc-services-card .calc-service-switch .service-switch-text em {
  color: #ff9f0a !important;
  font-weight: 950 !important;
  font-style: normal !important;
  margin-top: 2px !important;
}
.calc-services-card .calc-service-switch .service-switch-ui {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: start !important;
  margin-top: 4px !important;
  flex: 0 0 auto !important;
}
.promo-attach-toggle {
  display: inline-grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.9);
  font-weight: 850;
}
.promo-attach-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.promo-attach-toggle span {
  width: 46px;
  height: 26px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  position: relative;
  transition: .2s ease;
}
.promo-attach-toggle span::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  top: 2px;
  left: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 5px 16px rgba(0,0,0,.25);
  transition: .2s ease;
}
.promo-attach-toggle input:checked + span {
  background: #ff9f0a;
  border-color: #ff9f0a;
}
.promo-attach-toggle input:checked + span::after { transform: translateX(18px); }
.promo-code-input[hidden] { display: none !important; }
.promo-code-input {
  grid-column: 1 / -1;
  text-transform: uppercase;
  letter-spacing: .06em;
}
@media (max-width: 760px) {
  .calc-services-card .calc-service-switches { max-height: 310px !important; }
  .calc-services-card .calc-service-switch { grid-template-columns: minmax(0, 1fr) 46px !important; }
}


/* v1.25.0: final dynamic service cards and stable validation popovers */
.calc-services-card {
  min-height: 0 !important;
}
.calc-services-card .calc-service-switches {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  max-height: min(46vh, 430px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 0 8px 2px 0 !important;
  align-content: initial !important;
}
.calc-services-card .calc-service-switch {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 50px !important;
  grid-auto-rows: auto !important;
  align-items: start !important;
  gap: 14px !important;
  width: 100% !important;
  height: auto !important;
  min-height: unset !important;
  max-height: none !important;
  padding: 16px 14px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.calc-services-card .calc-service-switch input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.calc-services-card .service-switch-text {
  display: block !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}
.calc-services-card .service-switch-text b,
.calc-services-card .service-switch-text small,
.calc-services-card .service-switch-text em {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}
.calc-services-card .service-switch-text b {
  font-size: .96rem !important;
  line-height: 1.18 !important;
  margin: 0 0 7px !important;
}
.calc-services-card .service-switch-text small {
  font-size: .78rem !important;
  line-height: 1.36 !important;
  margin: 0 0 8px !important;
}
.calc-services-card .service-switch-text em {
  font-size: .86rem !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}
.calc-services-card .service-switch-ui {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: start !important;
  justify-self: end !important;
  width: 50px !important;
  height: 28px !important;
  margin: 2px 0 0 !important;
  flex: none !important;
}
.calc-services-card .service-switch-ui::before {
  content: none !important;
  display: none !important;
}
.calc-services-card .service-switch-ui::after {
  top: 4px !important;
  left: 4px !important;
  width: 20px !important;
  height: 20px !important;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::after {
  transform: translateX(22px) !important;
}
@media (max-width: 760px) {
  .calc-services-card .calc-service-switches {
    max-height: 360px !important;
    padding-right: 6px !important;
  }
  .calc-services-card .calc-service-switch {
    grid-template-columns: minmax(0, 1fr) 48px !important;
    padding: 14px 12px !important;
  }
}


/* v1.26.0 — hard reset for dynamic service cards */
.calc-services-card {
  overflow: hidden !important;
}
.calc-services-card .calc-service-switches {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  max-height: min(58vh, 470px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 2px 10px 2px 0 !important;
  align-items: stretch !important;
}
.calc-services-card .calc-service-switch {
  position: relative !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  height: auto !important;
  min-height: fit-content !important;
  max-height: none !important;
  padding: 16px 14px 16px 16px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.calc-services-card .calc-service-switch input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.calc-services-card .calc-service-switch .service-switch-text {
  position: static !important;
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: calc(100% - 64px) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b,
.calc-services-card .calc-service-switch .service-switch-text small,
.calc-services-card .calc-service-switch .service-switch-text em {
  display: block !important;
  position: static !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b {
  margin: 0 0 7px !important;
  font-size: .94rem !important;
  line-height: 1.22 !important;
}
.calc-services-card .calc-service-switch .service-switch-text small {
  margin: 0 0 9px !important;
  font-size: .78rem !important;
  line-height: 1.38 !important;
}
.calc-services-card .calc-service-switch .service-switch-text em {
  margin: 0 !important;
  font-size: .86rem !important;
  line-height: 1.2 !important;
}
.calc-services-card .calc-service-switch .service-switch-ui {
  position: relative !important;
  display: block !important;
  flex: 0 0 48px !important;
  width: 48px !important;
  height: 28px !important;
  margin: 2px 0 0 !important;
  align-self: flex-start !important;
  justify-self: auto !important;
}
.calc-services-card .service-switch-ui::before,
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::before {
  content: none !important;
  display: none !important;
}
.calc-services-card .service-switch-ui::after {
  top: 4px !important;
  left: 4px !important;
  width: 20px !important;
  height: 20px !important;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::after {
  transform: translateX(20px) !important;
}
@media (max-width: 760px) {
  .calc-services-card .calc-service-switches { max-height: 420px !important; }
  .calc-services-card .calc-service-switch { padding: 14px 12px !important; }
  .calc-services-card .calc-service-switch .service-switch-text { max-width: calc(100% - 58px) !important; }
}

/* v1.27.0: final dynamic service cards reset */
.calc-services-card .calc-service-switches {
  max-height: 420px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding-right: 8px !important;
}
.calc-services-card .calc-service-switch {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 52px !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 14px 14px !important;
  overflow: visible !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
  white-space: normal !important;
  display: block !important;
  line-height: 1.35 !important;
}
.calc-services-card .calc-service-switch .service-switch-text b,
.calc-services-card .calc-service-switch .service-switch-text small,
.calc-services-card .calc-service-switch .service-switch-text em {
  display: block !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
}
.calc-services-card .calc-service-switch .service-switch-text b {
  margin-bottom: 6px !important;
}
.calc-services-card .calc-service-switch .service-switch-text small {
  margin-bottom: 7px !important;
}
.calc-services-card .calc-service-switch .service-switch-ui {
  justify-self: end !important;
  align-self: center !important;
  position: relative !important;
  flex: 0 0 auto !important;
}
@media (max-width: 980px) {
  .calc-services-card .calc-service-switches { max-height: 360px !important; }
  .calc-services-card .calc-service-switch { grid-template-columns: minmax(0, 1fr) 48px !important; }
}

/* v1.28.0: hard reset for public calculator service cards */
.calc-services-card .calc-service-switches {
  max-height: 430px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  padding: 0 8px 0 0 !important;
  scrollbar-gutter: stable !important;
}
.calc-services-card .calc-service-switch {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 52px !important;
  grid-template-areas: "text toggle" !important;
  align-items: center !important;
  column-gap: 14px !important;
  row-gap: 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: max-content !important;
  max-height: none !important;
  padding: 14px 14px !important;
  overflow: visible !important;
  white-space: normal !important;
  box-sizing: border-box !important;
}
.calc-services-card .calc-service-switch input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  inset: auto !important;
}
.calc-services-card .calc-service-switch .service-switch-text {
  grid-area: text !important;
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b,
.calc-services-card .calc-service-switch .service-switch-text small,
.calc-services-card .calc-service-switch .service-switch-text em {
  position: static !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b {
  margin: 0 0 6px !important;
  font-size: .92rem !important;
  line-height: 1.25 !important;
}
.calc-services-card .calc-service-switch .service-switch-text small {
  margin: 0 0 8px !important;
  font-size: .76rem !important;
  line-height: 1.35 !important;
  color: rgba(255,255,255,.62) !important;
}
.calc-services-card .calc-service-switch .service-switch-text em {
  margin: 0 !important;
  font-size: .86rem !important;
  line-height: 1.2 !important;
}
.calc-services-card .calc-service-switch .service-switch-ui {
  grid-area: toggle !important;
  position: relative !important;
  justify-self: end !important;
  align-self: center !important;
  flex: none !important;
  display: block !important;
  width: 48px !important;
  height: 28px !important;
  min-width: 48px !important;
  margin: 0 !important;
}
.calc-services-card .calc-service-switch .service-switch-ui::before,
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::before {
  content: none !important;
  display: none !important;
}
.calc-services-card .calc-service-switch .service-switch-ui::after {
  top: 4px !important;
  left: 4px !important;
  width: 20px !important;
  height: 20px !important;
}
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::after {
  transform: translateX(20px) !important;
}
@media (max-width: 760px) {
  .calc-services-card .calc-service-switches { max-height: 390px !important; }
  .calc-services-card .calc-service-switch {
    grid-template-columns: minmax(0, 1fr) 48px !important;
    padding: 13px 12px !important;
  }
  .calc-services-card .calc-service-switch .service-switch-ui {
    width: 46px !important;
    min-width: 46px !important;
  }
}

/* v1.34.0: final dynamic public calculator service switches */
.calc-services-card .calc-service-switches {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  max-height: 430px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 0 8px 0 0 !important;
}
.calc-services-card .calc-service-switch {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  align-items: center !important;
  gap: 14px !important;
  height: auto !important;
  min-height: fit-content !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 14px !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  overflow: visible !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b,
.calc-services-card .calc-service-switch .service-switch-text small,
.calc-services-card .calc-service-switch .service-switch-text em {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}
.calc-services-card .calc-service-switch .service-switch-ui {
  position: relative !important;
  align-self: center !important;
  justify-self: end !important;
  width: 48px !important;
  min-width: 48px !important;
}


/* v1.40.0: restore stable v1.34 calculator visual layout + safe new options */
@media (min-width: 1101px) {
  .calc-grid-materials {
    align-items: start !important;
  }
  .calc-grid-materials .calc-result {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 470px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 470px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card .estimate-items {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 335px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 8px !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,159,10,.9) rgba(255,255,255,.08) !important;
  }
}

.calc-card.calc-card-wide.estimate-card > span,
.calc-card.calc-card-wide.estimate-card > label,
.calc-card.calc-card-wide.estimate-card > .calc-note {
  flex: 0 0 auto !important;
}

.calc-card.calc-card-wide.estimate-card .estimate-items::-webkit-scrollbar,
.calc-services-card .calc-service-switches::-webkit-scrollbar { width: 8px !important; }
.calc-card.calc-card-wide.estimate-card .estimate-items::-webkit-scrollbar-track,
.calc-services-card .calc-service-switches::-webkit-scrollbar-track { background: rgba(255,255,255,.08) !important; border-radius: 999px !important; }
.calc-card.calc-card-wide.estimate-card .estimate-items::-webkit-scrollbar-thumb,
.calc-services-card .calc-service-switches::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--accent), var(--accent-2)) !important; border-radius: 999px !important; }

/* Do not collapse service cards: text must define card height. */
.calc-services-card .calc-service-switches {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  max-height: 430px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 0 8px 0 0 !important;
  scrollbar-gutter: stable !important;
}
.calc-services-card .calc-service-switch {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  grid-template-areas: "serviceText serviceToggle" !important;
  align-items: start !important;
  column-gap: 14px !important;
  width: 100% !important;
  height: auto !important;
  min-height: fit-content !important;
  max-height: none !important;
  padding: 14px !important;
  margin: 0 !important;
  overflow: visible !important;
  white-space: normal !important;
  box-sizing: border-box !important;
}
.calc-services-card .calc-service-switch input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  inset: auto !important;
}
.calc-services-card .calc-service-switch .service-switch-text {
  grid-area: serviceText !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b,
.calc-services-card .calc-service-switch .service-switch-text small,
.calc-services-card .calc-service-switch .service-switch-text em {
  position: static !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.calc-services-card .calc-service-switch .service-switch-text b { font-size: .92rem !important; line-height: 1.25 !important; }
.calc-services-card .calc-service-switch .service-switch-text small { font-size: .76rem !important; line-height: 1.35 !important; color: rgba(255,255,255,.62) !important; }
.calc-services-card .calc-service-switch .service-switch-text em { font-size: .86rem !important; line-height: 1.2 !important; color: var(--accent) !important; font-weight: 950 !important; font-style: normal !important; }
.calc-services-card .calc-service-switch .service-switch-ui {
  grid-area: serviceToggle !important;
  position: relative !important;
  justify-self: end !important;
  align-self: start !important;
  flex: none !important;
  display: block !important;
  width: 48px !important;
  height: 28px !important;
  min-width: 48px !important;
  margin: 2px 0 0 !important;
  overflow: hidden !important;
}
.calc-services-card .calc-service-switch .service-switch-ui::before,
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::before { content: none !important; display: none !important; }
.calc-services-card .calc-service-switch .service-switch-ui::after { top: 4px !important; left: 4px !important; width: 20px !important; height: 20px !important; }
.calc-services-card .calc-service-switch input:checked + .service-switch-ui::after { transform: translateX(20px) !important; }

/* Estimate rows: every row grows by its own content; inner list scrolls. */
.estimate-card .estimate-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(138px, 160px) !important;
  align-items: start !important;
  gap: 12px !important;
  height: auto !important;
  min-height: fit-content !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 12px !important;
  box-sizing: border-box !important;
}
.estimate-card .estimate-info {
  min-width: 0 !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  overflow: visible !important;
}
.estimate-card .estimate-info b,
.estimate-card .estimate-info small {
  display: block !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}
.estimate-card .estimate-info b { font-size: .96rem !important; line-height: 1.25 !important; }
.estimate-card .estimate-info small { margin-top: 0 !important; line-height: 1.25 !important; }
.estimate-controls {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: start !important;
  justify-items: stretch !important;
  gap: 8px !important;
}
.estimate-controls .qty-control {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: center !important;
}
.estimate-controls .qty-control input[type="number"] {
  width: 100% !important;
  min-width: 0 !important;
  text-align: center !important;
}
.estimate-row-total {
  display: block !important;
  color: var(--accent) !important;
  font-weight: 950 !important;
  font-size: .84rem !important;
  line-height: 1.2 !important;
  text-align: right !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.estimate-subparams {
  display: grid !important;
  gap: 7px !important;
  margin-top: 4px !important;
}
.estimate-subparam {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 8px 9px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: rgba(255,255,255,.055) !important;
  color: rgba(255,255,255,.82) !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
.estimate-subparam input { width: 16px !important; height: 16px !important; margin-top: 2px !important; accent-color: var(--accent) !important; }
.estimate-subparam span { min-width: 0 !important; font-size: .76rem !important; line-height: 1.25 !important; overflow-wrap: anywhere !important; }
.estimate-subparam em { color: var(--accent) !important; font-style: normal !important; font-weight: 900 !important; font-size: .76rem !important; white-space: nowrap !important; }
.height-work-toggle {
  display: inline-grid !important;
  grid-template-columns: 18px auto !important;
  align-items: center !important;
  gap: 8px !important;
  width: max-content !important;
  max-width: 100% !important;
  padding: 8px 10px !important;
  border: 1px solid rgba(255,159,10,.45) !important;
  border-radius: 999px !important;
  color: rgba(255,255,255,.9) !important;
  font-size: .76rem !important;
  font-weight: 850 !important;
}
.height-work-toggle input { width: 16px !important; height: 16px !important; accent-color: var(--accent) !important; }
.height-work-qty {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 94px !important;
  gap: 7px !important;
  align-items: center !important;
  padding: 9px !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.055) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}
.height-work-qty[hidden] { display: none !important; }
.height-work-qty span,
.height-work-qty small { font-size: .74rem !important; line-height: 1.2 !important; color: rgba(255,255,255,.66) !important; }
.height-work-qty input { width: 100% !important; min-width: 0 !important; height: 36px !important; padding: 0 10px !important; text-align: center !important; border-radius: 12px !important; }
.height-work-qty small { grid-column: 1 / -1 !important; }

@media (max-width: 960px) {
  .calc-grid-materials .calc-result,
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    height: auto !important;
    max-height: none !important;
  }
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card .estimate-items {
    max-height: 430px !important;
    overflow-y: auto !important;
  }
}
@media (max-width: 760px) {
  .calc-services-card .calc-service-switches { max-height: 390px !important; }
  .calc-services-card .calc-service-switch { grid-template-columns: minmax(0, 1fr) 46px !important; padding: 13px 12px !important; }
  .estimate-card .estimate-row { grid-template-columns: 1fr !important; }
  .estimate-row-total { text-align: left !important; }
  .estimate-subparam { grid-template-columns: 18px minmax(0, 1fr) !important; }
  .estimate-subparam em { grid-column: 2 !important; white-space: normal !important; }
  .height-work-qty { grid-template-columns: 1fr !important; }
}


/* v1.41.0: equal desktop height for estimate card and result card */
@media (min-width: 1101px) {
  .calc-grid-materials .calc-result,
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    --calculator-side-card-height: 470px;
    align-self: start !important;
    height: var(--calculator-side-card-height) !important;
    min-height: var(--calculator-side-card-height) !important;
    max-height: var(--calculator-side-card-height) !important;
    box-sizing: border-box !important;
  }

  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  .calc-grid-materials .calc-card.calc-card-wide.estimate-card .estimate-items {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
}

/* v1.42.0: requested calculator height limits */
@media (min-width: 1101px) {
  .calc-grid-materials .calc-result {
    height: auto !important;
    min-height: 0 !important;
    max-height: 600px !important;
    align-self: start !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-self: start !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .calc-grid-materials .calc-card.calc-card-wide.estimate-card .estimate-items {
    height: auto !important;
    min-height: 0 !important;
    max-height: 900px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .calc-grid-materials .estimate-row {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

@media (max-width: 1100px) {
  .calc-grid-materials .calc-result,
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card,
  .calc-grid-materials .estimate-items,
  .calc-grid-materials .estimate-row {
    height: auto !important;
    max-height: none !important;
  }
}

/* v1.43.0: fixed result height and mirrored estimate card height */
.calc-minimum-note {
  display: block;
  margin: -2px 0 10px;
  color: var(--accent);
  font-weight: 900;
  line-height: 1.3;
}
.calc-minimum-note[hidden] { display: none !important; }

@media (min-width: 1101px) {
  .calc-grid-materials .calc-result {
    height: 700px !important;
    min-height: 700px !important;
    max-height: 700px !important;
    align-self: start !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    height: 700px !important;
    min-height: 700px !important;
    max-height: 700px !important;
    align-self: start !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .calc-grid-materials .calc-card.calc-card-wide.estimate-card .estimate-items {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: 900px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .calc-grid-materials .estimate-row {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

@media (max-width: 1100px) {
  .calc-grid-materials .calc-result,
  .calc-grid-materials .calc-card.calc-card-wide.estimate-card {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
}

/* v1.46.0: SEO landing pages and internal service links */
.seo-services-panel {
  margin-top: 28px;
  padding: 26px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 28px;
  background: rgba(255,255,255,.05);
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: 24px;
}
.seo-services-panel h2,
.seo-landing-hero h1,
.seo-content-section h2,
.seo-more-section h2 { margin-top: 0; }
.seo-service-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-content: start;
}
.seo-service-links a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: #fff;
  font-weight: 850;
  text-decoration: none;
}
.seo-service-links a:hover { border-color: rgba(255,159,10,.7); color: var(--accent); }
.seo-header { position: sticky; top: 0; background: rgba(17,18,22,.88); backdrop-filter: blur(18px); }
.seo-landing-hero { background: #111216; color: #fff; }
.seo-landing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 36px;
  align-items: center;
}
.seo-landing-hero h1 { font-size: clamp(2.4rem, 6vw, 5.8rem); line-height: .94; letter-spacing: -.075em; max-width: 920px; }
.seo-landing-hero p { color: rgba(255,255,255,.72); font-size: 1.12rem; line-height: 1.6; max-width: 760px; }
.seo-landing-card { padding: 28px; border-radius: 28px; }
.seo-landing-card span { color: var(--accent); font-weight: 900; text-transform: uppercase; font-size: .8rem; }
.seo-landing-card ul { display: grid; gap: 14px; margin: 18px 0 0; padding-left: 18px; }
.seo-landing-card li { line-height: 1.45; }
.seo-content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.seo-content-grid article {
  padding: 28px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid rgba(17,18,22,.08);
  box-shadow: 0 18px 48px rgba(17,18,22,.06);
}
.seo-service-links-wide a { color: #111216; background: #fff; border-color: rgba(17,18,22,.1); }
@media (max-width: 900px) {
  .seo-services-panel,
  .seo-landing-grid,
  .seo-content-grid { grid-template-columns: 1fr; }
  .seo-landing-card { order: -1; }
}

/* v1.47.0: SEO links panel is hidden from public page by request */
.seo-services-panel[hidden],
.container.seo-services-panel {
  display: none !important;
}

/* v1.48.0: full privacy policy layout */
.privacy-card-full {
  max-width: 1040px;
}
.privacy-card-full h1 {
  max-width: 860px;
  font-size: clamp(2rem, 4.8vw, 4.2rem);
}
.privacy-card-full h2 {
  scroll-margin-top: 110px;
}
.privacy-card-full p {
  margin: 10px 0;
}
.privacy-dash {
  padding-left: 22px;
}
.privacy-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 18px 0 28px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.privacy-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
  color: var(--text);
}
.privacy-table th,
.privacy-table td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
  line-height: 1.55;
}
.privacy-table tr:last-child th,
.privacy-table tr:last-child td {
  border-bottom: 0;
}
.privacy-table th {
  width: 240px;
  background: #f7f8fa;
  font-weight: 800;
}
.privacy-table ul {
  margin: 0;
  padding-left: 18px;
}
@media (max-width: 680px) {
  .privacy-card-full { padding: 22px; }
  .privacy-card-full h1 { letter-spacing: -.055em; }
  .privacy-table { min-width: 560px; }
}


/* v1.49.0: privacy page must stay visible after tab switches / browser restore */
.privacy-page.section-pad {
  min-height: calc(100vh - 90px);
  padding-top: clamp(72px, 8vw, 110px);
  padding-bottom: clamp(64px, 8vw, 110px);
}
.privacy-page .privacy-card,
.privacy-page .privacy-card.reveal,
.privacy-page .privacy-card.is-visible {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  visibility: visible !important;
}
.privacy-page .privacy-card-full {
  display: block !important;
}
@media (max-width: 680px) {
  .privacy-page.section-pad {
    padding-top: 36px;
    padding-bottom: 52px;
  }
}

/* v1.51.0: engineering, suppliers and document example sections */
.engineering-section {
  background: #fff;
}
.engineering-section .section-head p:not(.eyebrow),
.documents-section .section-line p:not(.eyebrow) {
  max-width: 760px;
  color: var(--muted);
}
.engineering-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 20px;
  margin-top: 36px;
}
.engineering-card {
  position: relative;
  overflow: hidden;
  min-height: 280px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  padding: clamp(22px, 3vw, 34px);
  box-shadow: 0 18px 42px rgba(17,18,23,.06);
}
.engineering-card > span,
.engineering-card-visual span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  border-radius: 999px;
  background: var(--accent);
  color: #111217;
  font-weight: 900;
  margin-bottom: 20px;
}
.engineering-card h3 {
  margin: 0 0 14px;
  font-size: clamp(1.55rem, 2.3vw, 2.25rem);
  line-height: 1.02;
  letter-spacing: -.055em;
}
.engineering-card p {
  color: var(--muted);
  margin: 0;
  line-height: 1.62;
}
.engineering-card-visual {
  grid-row: span 2;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 22px;
  background: #f7f8fb;
}
.engineering-card-visual img {
  width: 100%;
  min-height: 280px;
  object-fit: cover;
  border-radius: 18px;
  border: 1px solid rgba(17,18,23,.1);
  box-shadow: 0 18px 34px rgba(17,18,23,.12);
}
.engineering-card-accent {
  background: #111217;
  color: #fff;
}
.engineering-card-accent p {
  color: rgba(255,255,255,.76);
}
.supplier-marquee {
  margin-top: 24px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #f7f8fb;
  mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.supplier-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: 34px;
  padding: 24px 28px;
  animation: supplier-marquee 26s linear infinite;
}
.supplier-track img {
  display: block;
  max-width: 190px;
  max-height: 68px;
  object-fit: contain;
  filter: grayscale(1) saturate(0) opacity(.62);
  mix-blend-mode: multiply;
}
@keyframes supplier-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.documents-section {
  background: var(--soft);
}
.document-slider-actions {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
}
.document-slider-actions button {
  width: 48px;
  height: 48px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: #111217;
  font-size: 1.75rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(17,18,23,.08);
}
.document-slider {
  position: relative;
  margin-top: 34px;
  min-height: 520px;
}
.document-slide {
  display: none;
  margin: 0;
  padding: clamp(14px, 2.5vw, 26px);
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #fff;
  box-shadow: var(--shadow);
}
.document-slide.is-active {
  display: block;
}
.document-slide img {
  width: 100%;
  max-height: 720px;
  object-fit: contain;
  border-radius: 18px;
  background: #eef0f4;
}
.document-slide figcaption {
  margin-top: 14px;
  color: var(--muted);
  font-weight: 800;
  text-align: center;
}
.document-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 18px;
}
.document-dots button {
  width: 11px;
  height: 11px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #cfd3da;
  cursor: pointer;
}
.document-dots button.is-active {
  width: 28px;
  background: var(--accent);
}

@media (max-width: 1100px) {
  .engineering-grid { grid-template-columns: 1fr; }
  .engineering-card-visual { grid-row: auto; }
  .document-slider { min-height: auto; }
}
@media (max-width: 720px) {
  .engineering-card { min-height: 0; }
  .supplier-track { gap: 24px; padding: 18px; }
  .supplier-track img { max-width: 140px; max-height: 54px; }
  .documents-section .section-line { display: grid; gap: 16px; }
  .document-slider-actions button { width: 44px; height: 44px; }
  .document-slide { padding: 10px; border-radius: 18px; }
  .document-slide img { border-radius: 12px; }
}

/* v1.52.0: quick calculator, stable case cards and clean document slider */
.calc-grid-materials [hidden] { display: none !important; }
.calc-mode-card {
  grid-column: 1 / -1;
  display: inline-flex;
  justify-self: start;
  gap: 8px;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.075);
}
.calc-mode-card button {
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,.72);
  font-weight: 900;
  cursor: pointer;
}
.calc-mode-card button.is-active {
  color: #111217;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 12px 26px rgba(255,159,10,.22);
}
.calc-grid-materials .calc-quick-card {
  grid-column: 1 / span 2;
  grid-row: auto;
  min-height: 700px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.quick-calc-intro {
  margin: 10px 0 18px;
  color: rgba(255,255,255,.62);
  line-height: 1.55;
}
.quick-calc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  overflow-y: auto;
  padding-right: 8px;
  min-height: 0;
}
.quick-calc-tile {
  position: relative;
  display: grid !important;
  grid-template-columns: 180px minmax(0, 1fr) 240px;
  gap: 18px;
  align-items: center;
  margin: 0 !important;
  padding: 16px !important;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  background: rgba(0,0,0,.22);
  cursor: pointer;
}
.quick-calc-tile.is-active {
  border-color: rgba(255,159,10,.64);
  background: linear-gradient(135deg, rgba(255,159,10,.18), rgba(255,255,255,.06));
}
.quick-calc-tile input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.quick-calc-tile img {
  width: 100%;
  aspect-ratio: 1.3;
  object-fit: contain;
  border-radius: 16px;
  background: rgba(255,255,255,.08);
  padding: 10px;
}
.quick-calc-body {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.quick-calc-body b {
  color: #fff;
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1;
}
.quick-calc-body small {
  margin: 0;
  color: rgba(255,255,255,.62);
}
.quick-calc-body em {
  color: var(--accent);
  font-style: normal;
  font-weight: 950;
  font-size: 1.2rem;
}
.quick-area-control {
  display: grid;
  gap: 10px;
  min-width: 0;
}
.quick-area-control > span {
  color: rgba(255,255,255,.78);
  font-weight: 800;
  text-transform: none;
  font-size: .95rem;
}
.quick-area-control input[type="range"] { width: 100%; accent-color: var(--accent); }
.quick-area-control input[type="number"] {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px;
  background: rgba(255,255,255,.1);
  color: #fff;
  padding: 9px 12px;
  font-weight: 900;
}
.calc-grid-materials[data-calc-mode="quick"] .calc-result,
.calc-grid-materials .calc-result {
  height: 700px !important;
  min-height: 700px !important;
  max-height: 700px !important;
}
.case-bottom span { color: #111217; }
.case-estimate,
[data-case-modal-estimate-title] { display: none !important; }
.case-modal-content .btn { margin-top: 18px; }
.document-slider { min-height: 0 !important; }
.document-slide img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(76vh, 760px);
  object-fit: contain;
}
@media (min-width: 1101px) {
  .calc-grid-materials[data-calc-mode="quick"] {
    grid-template-columns: minmax(0, 2.05fr) minmax(260px, 1fr);
  }
  .calc-grid-materials[data-calc-mode="quick"] .calc-mode-card { grid-column: 1 / -1; }
  .calc-grid-materials[data-calc-mode="quick"] .calc-quick-card { grid-column: 1; }
  .calc-grid-materials[data-calc-mode="quick"] .calc-result { grid-column: 2; grid-row: auto; }
}
@media (max-width: 1100px) {
  .calc-grid-materials .calc-quick-card,
  .calc-grid-materials .calc-result {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
  }
  .quick-calc-tile { grid-template-columns: 130px minmax(0, 1fr); }
  .quick-area-control { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .calc-mode-card { width: 100%; display: grid; grid-template-columns: 1fr 1fr; border-radius: 18px; }
  .calc-mode-card button { padding-inline: 10px; }
  .quick-calc-tile { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; padding: 12px !important; }
  .quick-calc-body b { font-size: 1.15rem; }
}


/* v1.53.0: strict quick/custom calculator separation and PDF-page document slider */
.calc-grid-materials[data-calc-mode="quick"] [data-advanced-calc-card],
.calc-grid-materials[data-calc-mode="quick"] .object-card,
.calc-grid-materials[data-calc-mode="quick"] .calc-services-card,
.calc-grid-materials[data-calc-mode="quick"] .calc-card.calc-card-wide.estimate-card {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.calc-grid-materials[data-calc-mode="custom"] [data-quick-calc-panel],
.calc-grid-materials[data-calc-mode="custom"] .calc-quick-card {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (min-width: 1101px) {
  .calc-grid-materials[data-calc-mode="quick"] {
    grid-template-columns: minmax(0, 2.05fr) minmax(300px, 1fr) !important;
    align-items: start !important;
  }
  .calc-grid-materials[data-calc-mode="quick"] .calc-mode-card {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }
  .calc-grid-materials[data-calc-mode="quick"] .calc-quick-card {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .calc-grid-materials[data-calc-mode="quick"] .calc-result {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
}
.document-slide img {
  background: #f2f4f8;
}
