/* Static production build: never hide content waiting for React/IntersectionObserver. */
[data-animate] { opacity: 1 !important; transform: none !important; }
#root [style*="opacity:0"] { opacity: 1 !important; }
#root [style*="opacity: 0"] { opacity: 1 !important; }
#root [style*="clip-path"] { clip-path: none !important; }
#root [style*="translateY"] { transform: none !important; }
#root [style*="translateX"] { transform: none !important; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }
.site-form-message { margin-top: 12px; padding: 11px 13px; border-radius: 12px; font-size: 13px; line-height: 1.45; }
.site-form-message.ok { background: #eaf7ec; color: #256a31; }
.site-form-message.err { background: #fff0ef; color: #9a332d; }

/* === Unified site typography (CMS baseline) ===
   Requested baseline: body 15px; primary headings 30px mobile / 40px desktop.
   Smaller card headings and overlines use a proportional hierarchy. */
#root main p:not(.dacha-price-line):not([class*="text-xl"]):not([class*="text-2xl"]):not([class*="text-3xl"]):not([class*="text-4xl"]):not([class*="text-5xl"]):not([class*="text-6xl"]),
#root main li,
#root main blockquote {
  font-size: 15px !important;
  line-height: 1.6 !important;
}

#root main h1,
#root main h2 {
  font-size: 30px !important;
  line-height: 1.08 !important;
}

#root main h3 {
  font-size: 20px !important;
  line-height: 1.25 !important;
}

#root main h4,
#root main h5,
#root main h6 {
  font-size: 17px !important;
  line-height: 1.3 !important;
}

/* Eyebrows / overlines / compact labels above card and section titles. */
#root main :is(p,span,div)[class*="uppercase"][class*="tracking-"],
#root main :is(p,span,div).font-mono[class*="text-"] {
  font-size: 12px !important;
  line-height: 1.35 !important;
}

/* Form controls stay readable without making compact UI labels oversized. */
#root main input,
#root main textarea,
#root main select,
#root main button {
  font-size: 15px;
}
#root main label {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

@media (min-width: 768px) {
  #root main h1,
  #root main h2 {
    font-size: 40px !important;
  }
  #root main h3 {
    font-size: 22px !important;
  }
  #root main h4,
  #root main h5,
  #root main h6 {
    font-size: 18px !important;
  }
}

/* === Typography completion: card/accordion titles + inherited heading spans === */
/* Headline spans must not keep Tailwind's old text-* sizes inside an h1/h2. */
#root main h1 > span,
#root main h1 > span > span,
#root main h2 > span,
#root main h2 > span > span {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* Section kicker / overline: smaller than body, but no longer microscopic. */
#root main [data-section-kicker],
#root main :is(p,span,div)[class*="uppercase"][class*="tracking-"] {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

/* Titles inside cards, service rows and FAQ accordions. */
#root main [data-card-title],
#root main [data-faq-title] {
  font-size: 18px !important;
  line-height: 1.28 !important;
}

#root main [data-card-heading] {
  font-size: 20px !important;
  line-height: 1.25 !important;
}

/* Home price table: keep price on one readable line. */
#root main .dacha-home-price {
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  color: inherit !important;
}
#root main .dacha-home-price-mobile {
  font-size: 15px !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
}

@media (min-width: 768px) {
  #root main [data-section-kicker],
  #root main :is(p,span,div)[class*="uppercase"][class*="tracking-"] {
    font-size: 14px !important;
  }
  #root main [data-card-title],
  #root main [data-faq-title] {
    font-size: 20px !important;
  }
  #root main [data-card-heading] {
    font-size: 22px !important;
  }
}


/* === V6: home service title links === */
#root main [data-home-service-title-link] {
  color: inherit !important;
  text-decoration: none !important;
}
#root main [data-home-service-title] {
  font-size: 25px !important; /* previous 20px + 5px */
  line-height: 1.16 !important;
  cursor: pointer;
}
#root main [data-home-service-title-link]:hover [data-home-service-title],
#root main [data-home-service-title-link]:focus-visible [data-home-service-title] {
  color: var(--color-primary-600, #b85800) !important;
}
@media (min-width: 768px) {
  #root main [data-home-service-title] {
    font-size: 27px !important; /* previous 22px + 5px */
  }
}

/* === V6: service page price panel on phones === */
@media (max-width: 767px) {
  #root main .dacha-price-panel-inline {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px 20px !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;
  }
  #root main .dacha-price-panel-inline .dacha-price-line {
    display: flex !important;
    align-items: baseline !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    width: auto !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    font-size: 30px !important;
    line-height: 1 !important;
  }
  #root main .dacha-price-panel-inline .dacha-price-prefix,
  #root main .dacha-price-panel-inline .dacha-price-number {
    white-space: nowrap !important;
  }
  #root main .dacha-price-panel-inline .dacha-price-unit {
    font-size: 16px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }
  #root main .dacha-price-panel-inline .dacha-price-note {
    margin: 0 !important;
    padding: 0 !important;
    border-left: 0 !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  #root main .dacha-price-button-inline {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    margin: 12px 0 0 !important;
    padding: 14px 20px !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
  }
}
