/* Loaded last on every page: shared layout constraints, without hiding overflow. */
:root {
  --responsive-gutter: clamp(12px, 1.6vw, 24px);
}

.container {
  width: min(var(--container), calc(100% - 2 * var(--responsive-gutter)));
  min-width: 0;
}

/* Grid/flex children may shrink to their track; tables keep their own minimum. */
.content-area :is(div, section, article, aside) {
  min-width: 0;
}

.content-area :is(h1, h2, h3, p, li, a),
.site-footer__legal :is(a, button) {
  overflow-wrap: anywhere;
}

/* Legacy page rules force single-line headings with very specific selectors. */
.site-main :is(h1, h2, h3, h4):not(.sr-only) {
  white-space: normal !important;
  text-wrap: wrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: anywhere;
}

.content-area .button {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  text-align: center;
}

.content-area :is(img, video) {
  max-width: 100%;
  height: auto;
}

.services512-card__eyebrow,
.services512-kicker {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.contact-embed,
.contact-embed__surface,
.contact-embed__target {
  min-width: 0;
  max-width: 100%;
}

.contact-embed__target iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  border: 0;
}

.site-footer__legal > * {
  min-width: 0;
}

.site-footer {
  padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}

/* Large legal tables scroll inside their cards, instead of widening the page. */
:is(.cgu-layout, .cgv-layout, .legal-layout, .privacy-layout, .cookie-layout, .compliance-layout) > * {
  min-width: 0;
}

:is(.cgu-table-wrap, .cgv-table-wrap, .legal-table-wrap, .privacy-table-wrap, .cookie-table-wrap, .compliance-table-wrap) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.cookie-consent { z-index: 3900; }
.contact-modal { z-index: 4000; }
.cookie-drawer { z-index: 4100; }

.contact-modal__dialog,
.cookie-drawer__panel {
  min-width: 0;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overflow-wrap: anywhere;
}

.cookie-drawer__footer .button {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
}

/* Fluid home columns remain usable on a landscape tablet. */
.home167-container {
  width: min(1500px, calc(100% - 2 * var(--responsive-gutter)));
}

.home167-grid {
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  align-items: start;
}

.home167-left-stack {
  grid-template-rows: auto;
}

.home167-panel--intro,
.home167-panel--risk,
.home167-panel--method,
.home167-contact {
  padding: clamp(18px, 2vw, 28px);
}

.home167-contact {
  height: auto;
}

.home167-panel p {
  text-align: left;
  text-align-last: auto;
}

@media (max-width: 62.5rem) {
  .home167-grid { grid-template-columns: minmax(0, 1fr); }

  :is(.reg172-hero-grid, .reg68-hero-grid, .reg171-hero-grid) {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 67.5rem) {
  :is(.cgu-layout, .cgv-layout, .legal-layout, .privacy-layout, .cookie-layout, .compliance-layout) {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 47.5rem) {
  .reg171-inline-note {
    flex-direction: column;
  }

  .reg171-inline-note strong {
    white-space: normal;
  }

  .content-area :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    max-width: 100%;
    font-size: 1rem;
  }

  .contact-modal__dialog,
  .cookie-drawer__panel {
    padding: 14px;
  }

  .contact-embed__surface,
  .contact1416-form-shell .contact-embed__surface,
  .contact-modal .contact-embed__surface {
    padding: 8px;
  }
}

@media (max-width: 30rem) {
  .body--diagnostic .diag-options.diag-options--answers {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .body--diagnostic .diag-options.diag-options--answers > .diag-option.diag-option--answer {
    min-height: 48px;
    padding: 12px 16px;
  }

  .body--diagnostic .diag-options.diag-options--answers > .diag-option.diag-option--answer > strong {
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    font-size: 1rem;
    line-height: 1.25;
  }
}

/* Keep at least 256px for the embedded privacy badge on a 320px screen. */
@media (max-width: 22.5rem) {
  .home167-contact { padding: 10px; }
  .home167-contact .contact-embed__surface { padding: 0; }
  .contact-modal { padding: 8px; }
  .contact-modal__dialog { padding: 8px; }
  .contact-modal .contact-embed__surface { padding: 0; }
  .site-footer__legal { grid-template-columns: minmax(0, 1fr); }
}
