html,
body {
  max-width: 100%;
  overflow-x: clip;
}

.hero,
.hero > *,
.answerBlock,
.answerBlock > *,
.compareSection,
.compareSection > *,
.typeCards,
.typeCards > *,
.signalPanel,
.signalFlow,
.signalFlow > li,
.signalFlow > li > *,
.processGrid,
.processGrid > *,
.chainGrid,
.chainGrid > *,
.orderLayout,
.orderLayout > *,
.footerPrimary,
.footerPrimary > * {
  min-width: 0;
}

.answerBlock {
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
}

.typeCards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 940px) {
  .answerBlock,
  .compareSection,
  .regionSection,
  .downloadsPreview,
  .ctaBand,
  .protocolSection,
  .twoColumnSection,
  .techChecklist,
  .priceDocuments,
  .downloadNotes {
    grid-template-columns: minmax(0, 1fr);
  }

  .typeCards,
  .optionGrid,
  .catalogGrid,
  .detailOptionGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  .hero h1,
  .hero p,
  .hero a,
  .signalPanel,
  .signalPanel *,
  .answerBlock *,
  .typeCards *,
  .compareSection * {
    overflow-wrap: anywhere;
  }

  .signalFlow li {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .typeCards,
  .optionGrid,
  .catalogGrid,
  .detailOptionGrid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* WCAG 2.2 AA: readable text and mobile-safe form controls. */
:root {
  --muted: #4b574f;
}

.typeCards article > span,
.typeCards article h3,
.optionGrid article h3 {
  color: #f0f7f2;
}

.footerLegal,
.footerLegal a {
  color: #93a399;
}

.orderForm input:not([type="checkbox"]):not([type="hidden"]):not([type="radio"]):not([type="button"]):not([type="submit"]),
.orderForm select,
.orderForm textarea {
  font-size: 16px;
}

/* Alarmportal 360 review, 6 September 2026. */
.authoritySection, .authoritySources, .priceOverview {
  margin-block: 4rem;
  padding-block: 2rem;
  border-top: 1px solid #cbd4cd;
}
.authoritySection p, .authoritySources p, .authoritySources li,
.priceOverview p, .priceOverview li { color: #39463d; line-height: 1.65; }
.authoritySection h2, .priceOverview h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.15; margin-bottom: 1.25rem; }
.authoritySources h2 { font-size: 1.5rem; margin-bottom: 1rem; }
.authorityGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin-block: 1.5rem; }
.authorityGrid article { padding: 1.5rem; background: #e5ece5; border-radius: 6px; }
.authorityGrid h3 { font-size: 1.2rem; margin-bottom: .75rem; }
.authoritySources ul, .priceNotes { padding-left: 1.3rem; margin-block: 1rem; }
.authoritySources li, .priceNotes li { margin-block: .65rem; }
.authoritySection a, .authoritySources a, .priceOverview a { text-decoration: underline; text-underline-offset: .2em; }
.priceTableWrap { margin-block: 1.5rem; }
.priceOverview table { width: 100%; border-collapse: collapse; text-align: left; }
.priceOverview caption { text-align: left; font-weight: 700; margin-bottom: 1rem; }
.priceOverview th, .priceOverview td { padding: .9rem .7rem; border-bottom: 1px solid #bbc8bf; }
.priceOverview thead { background: #102218; color: #fff; }
.priceOverview tbody th { font-weight: 600; }
.priceRequest { padding: 1.5rem; background: #e5ece5; margin-top: 1.5rem; border-radius: 6px; }
.priceRequest h3 { margin-bottom: .75rem; }
.sourceNote { font-size: .95rem; }
.hero h1 { font-size: clamp(2rem, 5.4vw, 4.5rem); overflow-wrap: normal; word-break: normal; hyphens: none; }
.hero .heroLead { max-width: 42rem; }
.panelTop { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.panelTop b { min-width: 0; }
.typeCards a { display: inline-block; margin-top: .8rem; color: #d5ffdd; }
@media (max-width: 940px) {
  .authorityGrid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 650px) {
  .hero { padding-top: 2rem; gap: 2rem; }
  .hero h1 { font-size: clamp(1.8rem, 7.7vw, 2.5rem); line-height: 1.12; letter-spacing: -.025em; overflow-wrap: normal; word-break: normal; }
  .hero .heroLead { font-size: 1rem; line-height: 1.55; margin-top: 1.2rem; }
  .heroActions { gap: .6rem; margin-top: 1.2rem; }
  .heroActions .button { min-height: 46px; padding: .85rem 1rem; }
  .authoritySection, .authoritySources, .priceOverview { margin-block: 2rem; padding-block: 1.5rem; }
  .priceOverview th, .priceOverview td { padding: .65rem .35rem; font-size: .85rem; }
  .priceOverview td { white-space: nowrap; }
  .priceOverview th { overflow-wrap: normal; }
}
/* Leave the fixed contact actions unobstructed, including safe-area insets. */
@media (max-width: 760px) {
  #secuconsent-settings { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); right: 12px; }
}
.authoritySection, .authoritySources, .priceOverview { width: min(1440px, calc(100% - 48px)); margin-inline: auto; }
@media (max-width:650px) { .authoritySection, .authoritySources, .priceOverview { width: calc(100% - 24px); } }
