/* Shared safeguards for the original Creatium layouts. */
html .area .textable, html.area .textable { overflow-wrap: anywhere !important; }
.btn .text { overflow-wrap: anywhere; }
html .textable.ksu-hero-title { line-height: 1.12 !important; }
html .textable.ksu-hero-subtitle { line-height: 1.15 !important; }
html .textable.ksu-service-title { line-height: 1.2 !important; }
.ksu-stat-row .col { min-width: 0; }
.cookies[hidden], .cookies-alert[hidden], .ksu-cookies-dismissed .cookies, .ksu-cookies-dismissed .cookies-alert { display: none !important; }
.cookies, .cookies-alert { max-height: calc(100dvh - 20px); overflow-y: auto; }
.ksu-step-row .number { font-size: 64px !important; }

@media (max-width: 1199px) {
  .top-right .widget-button:has(a:not([href^="tel:"]):not([href^="mailto:"])) { display: none !important; }
  .top-right a[href^="tel:"] { font-size: 14px !important; }
  .top-right a[href^="mailto:"] { font-size: 12px !important; }
}

@media (max-width: 767px) {
  .top-right > .cont { display: flex; flex-direction: column; align-items: center; justify-content: center; }
  .top-right .widget-button:not(.ksu-header-phone) { display: none !important; }
  .top-right .ksu-company-title { font-size: 11px !important; line-height: 1.15 !important; }
  .top-right .ksu-header-phone .btn { font-size: 14px !important; line-height: 1.2 !important; min-height: 28px; }
}

/* The three material names must fit their cards between desktop breakpoints. */
@media (min-width: 768px) and (max-width: 1399px) {
  .ksu-material-title { font-size: clamp(22px, 3.3vw, 40px) !important; line-height: 1.15 !important; }
}
.screen-sm .ksu-material-title { font-size: 24px !important; }
.screen-md .ksu-material-title { font-size: 30px !important; }
/* Use the content breakpoint so an open desktop sidebar is accounted for. */
:is(.screen-sm, .screen-md) .ksu-stat-row > .gridwrap { display: flex !important; flex-direction: column; align-items: center; gap: 8px; }
:is(.screen-sm, .screen-md) .ksu-stat-row > .gridwrap > .col { width: 100% !important; }
:is(.screen-sm, .screen-md) .ksu-stat-row .textable { text-align: center !important; }
:is(.screen-sm, .screen-md) .ksu-stat-row .digits { font-size: 60px !important; line-height: 1.1 !important; white-space: nowrap; }

/* Small phones need complete words and room around controls. */
@media (max-width: 359px) {
  .rating-result { white-space: nowrap; }
  .rating-result span { font-size: 11px !important; margin: 0 1px !important; }
  .area .textable.ksu-hero-title { font-size: 30px !important; }
  .area .textable.ksu-company-title { font-size: 24px !important; line-height: 1.15 !important; }
  .area .top-right .textable.ksu-company-title { font-size: 11px !important; }
  .textable { hyphens: auto; }
  .ksu-hero-title, .digits { hyphens: none; }
}
