/* Public page alignment. Layout styles below share one border-box container;
   narrower article/answer copy is an intentional reading measure inside it. */
:root {
  --page-width: 1440px;
  --reading-width: 46rem;
  --reading-media-width: 56rem;
}
.site-header .header-inner,
main > .breadcrumb,
main > .section,
main > .hero,
main > .legal-page {
  width: 100%; max-width: var(--page-width); margin-inline: auto;
  padding-inline: var(--gutter);
}
/* The band fills the viewport. Only its contents follow the shared page edges.
   Percentages use the containing block, avoiding scrollbar-width drift from vw. */
main > .contact.section,
main > .detail-content.section,
main > .reviews.section,
main > .closing.closing-with-form,
body > footer {
  width: 100%; max-width: none;
  padding-inline: max(var(--gutter), calc((100% - var(--page-width)) / 2 + var(--gutter)));
}
/* These are already inside the shared insets: no second fixed-width container. */
main > .detail-content > .section-heading,
main > .detail-content > .detail-grid,
body > footer > .footer-top,
body > footer > .footer-bottom {
  width: 100%; max-width: none; margin-inline: 0;
}
/* FAQ introduction and accordion fill the shared grid without excessively long answer lines. */
.faq-page { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.65fr); align-items: start; gap: clamp(40px,5vw,72px); }
.faq-page > .faq-page-heading { max-width: none; min-width: 0; margin-bottom: 0; }
.faq-page-heading > p { max-width: 36ch; }
.faq-page-content { min-width: 0; }
.faq-page-content .faq-page-list { max-width: none; }
.faq-page-content .faq-answer { max-width: 68ch; }
@media(max-width:900px) {
  .faq-page { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .faq-page-heading > p { max-width: 50ch; }
}
/* Legal documents share the FAQ grid: heading and document navigation beside a readable text column. */
.legal-page { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.65fr); align-items: start; gap: clamp(40px,5vw,72px); }
.legal-page > .legal-heading, .legal-page > .legal-content { min-width: 0; }
.legal-page > .legal-content { max-width: var(--reading-media-width); }
@media(max-width:900px) {
  .legal-page { grid-template-columns: minmax(0,1fr); gap: 30px; }
}
/* Editorial articles keep a centered reading column inside the page container. */
.blog-article > .article-photo,
.blog-article > .article-video {
  width: 100%; max-width: var(--reading-media-width); margin-inline: auto;
}
.blog-article > .article-body { max-width: min(100%, var(--reading-width)); }
/* Long addresses, service names and translated headings may wrap within a column. */
.contact > .contact-copy,
.detail-content .section-heading > *,
.detail-content .detail-grid > *,
footer .footer-top > * { min-width: 0; }
