/* Reading and responsive refinements for supporting pages. The main landing
   page does not load this stylesheet. Brand gradients stay in styles.css. */
.content-page :is(h1, h2, h3, h4) { overflow-wrap: anywhere; hyphens: manual; }
.content-page main :is(p, li, a, code) { overflow-wrap: anywhere; }
.content-page main .btn { max-width: 100%; white-space: normal; }
.content-page main [id] { scroll-margin-top: calc(var(--header-height, 99px) + 1.5rem); }
.content-page main a:not(.btn) { text-underline-offset: .2em; }
.content-page :is(.content-table-scroll, pre):focus-visible { outline: 2px solid var(--primary-600); outline-offset: 4px; }
.content-page .faq-heading { margin: 0; font: inherit; }
.content-page button.faq-question { width: 100%; border: 0; background: transparent; font-family: inherit; text-align: left; }
.content-page .faq-answer[hidden] { display: none; }
.content-page .faq-item.active .faq-answer { max-height: none; }
.content-page #pricing-toggle { flex-shrink: 0; }

/* Articles: one header offset, readable metadata, and navigable sections. */
.article-page .breadcrumb {
    position: relative;
    z-index: 1;
    max-width: 1024px;
    margin: 0 auto;
    padding: calc(var(--header-height, 99px) + 1.5rem) 2rem 0;
    color: var(--surface-400);
    font-size: .875rem;
    line-height: 1.6;
}
.article-page .breadcrumb a { color: var(--surface-400); text-decoration: underline; }
.article-page .breadcrumb span { margin-inline: .45rem; }
.article-page :is(.compare-hero, .roundup-hero, .guide-hero) { padding-top: 2.5rem; }
.article-page :is(.compare-hero, .roundup-hero, .guide-hero) h1 { max-width: 960px; margin-inline: auto; }
.article-page :is(.updated, .meta) { max-width: 760px; margin-inline: auto; font-family: var(--font-display); line-height: 1.65; }
.article-page :is(.updated, .meta) a { color: var(--primary-600); text-decoration: underline; }
.article-page :is(.compare-container, .roundup-container, .guide-container) > p { max-width: 75ch; }
.article-page :is(.compare-section, .roundup-section, .guide-section) a:not(.btn) { color: var(--primary-600); text-decoration: underline; }
.article-page :is(.toc-list a, .toc a) { display: inline-flex; align-items: center; min-height: 44px; padding-block: .4rem; }
.article-page .tool-badge { max-width: 100%; white-space: normal; line-height: 1.5; border-radius: 8px; }
.article-page .badge-enterprise { color: #4338a0; }
.article-page .badge-church { color: #795013; }
.article-page .badge-screens { color: #a42a69; }
.article-page .tool-card-title { min-width: 0; max-width: 100%; }
.article-page .tool-card-title h3 { min-width: 0; }
.article-page .tool-verdict { flex-wrap: wrap; }
.article-page .tool-verdict p { min-width: 0; flex: 1 1 160px; }
.article-page .table-followup { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem; margin: 1.5rem 0; border: 1px solid var(--glass-border); border-radius: 12px; background: rgba(45,212,191,.06); }
.article-page .table-followup p { min-width: 0; flex: 1 1 220px; margin: 0; }
.article-page :is(.equipment-grid, .best-for-grid, .criteria-grid, .answer-grid, .tool-pros-cons) > * { min-width: 0; }
.article-page .plan-decision-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.article-page .plan-decision-grid > div { min-width: 0; }
.article-page .tool-meta-value { color: var(--surface-100); }
.article-page :is(.pros-block, .cons-block, .callout-note) { border-left-width: 1px; }
.article-page .equipment-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.article-page .price-range { overflow-wrap: anywhere; }

/* Comparison labels remain readable; wide tables get an explicit scroll region. */
.content-page .content-table-scroll { max-width: 100%; overflow-x: auto; scrollbar-width: thin; scrollbar-color: rgba(72, 91, 110, .35) transparent; }
.content-page .content-table { width: 100%; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
.content-page .content-table :is(th, td) { vertical-align: top; line-height: 1.6; }
.content-page .content-table tbody th[scope="row"] { text-align: left; font-weight: 600; color: var(--surface-100); }
.article-page .content-table :is(th, td) { padding: 1rem 1.25rem; border-bottom: 1px solid var(--glass-border); }
.article-page .content-table tbody tr:last-child > * { border-bottom: 0; }
.article-page .content-table thead th { white-space: normal; }
.content-page .table-wide { min-width: var(--table-min-width, 700px); }
.content-page .table-wide tr > :first-child { position: sticky; left: 0; z-index: 1; min-width: 150px; max-width: 230px; white-space: normal; background: var(--surface-950); border-right: 1px solid var(--glass-border); }
.content-page .table-scroll-hint { margin: -.75rem 0 1.75rem; font-size: .875rem; color: var(--surface-400); }
.content-page .table-scroll-hint[hidden] { display: none; }
.content-page .table-stack tbody th { padding: 1rem 1.25rem; border-bottom: 1px solid var(--glass-border); }

/* Legal documents keep their wording but share a calm reading rhythm. */
.legal-page .legal-container { max-width: 860px; }
.legal-page .legal-content { font-size: 1.0625rem; line-height: 1.8; }
.legal-page .legal-content h2 { font-size: 1.75rem; line-height: 1.3; padding-bottom: .75rem; border-bottom: 1px solid var(--glass-border); }
.legal-page .legal-content h3 { font-size: 1.25rem; line-height: 1.4; }
.legal-page :is(.highlight-box, .contact-box) > :is(h2, h3) { margin-top: 0; padding: 0; border: 0; }
.legal-page :is(.highlight-box, .contact-box) > :last-child { margin-bottom: 0; }
.legal-page .legal-section { box-shadow: none; }
.legal-page .back-to-home { min-height: 44px; }
.legal-page .contact-box { padding: 1.5rem; }
.legal-page .data-table { font-size: .9375rem; }
.legal-page .content-table tbody th { padding: 1rem; }

/* Companion guide: the same reading grid and header surface as the setup guide. */
.control-page { --guide-toolbar-height: 0px; }
.control-page > header { position: fixed; background: var(--glass-bg); }
.control-page .control-doc-layout { display: grid; grid-template-columns: 272px minmax(0, 1fr); max-width: 1280px; margin: 0 auto; padding-top: var(--header-height, 99px); align-items: start; }
.control-page .control-doc-sidebar { top: var(--header-height, 99px); width: auto; height: calc(100dvh - var(--header-height, 99px)); padding: 2rem 1.25rem 2rem 2rem; background: var(--glass-bg); scrollbar-width: thin; overscroll-behavior: contain; }
.control-page .control-doc-sidebar-title { margin: 0 0 1rem .75rem; font-size: .9375rem; font-weight: 600; color: var(--surface-100); letter-spacing: normal; text-transform: none; }
.control-page .control-doc-sidebar a { padding: .625rem .75rem; border: 1px solid transparent; font-size: .875rem; line-height: 1.45; }
.control-page .control-doc-sidebar a.active { border: 1px solid rgba(20,184,166,.16); }
.control-page .control-doc-content { min-width: 0; width: auto; max-width: none; padding: 2.75rem 3rem 5rem; }
.control-page .control-doc-content .container { max-width: 760px; margin-inline: auto; min-width: 0; }
.control-page .control-hero { overflow: visible; }
.control-page .control-hero h1 { font-size: clamp(2rem, 3.5vw, 2.75rem); letter-spacing: -.02em; }
.control-page .control-lead { font-size: 1.125rem; line-height: 1.75; }
.control-page .control-doc-content .control-heading h2 { font-size: 1.75rem; border-bottom-width: 1px; }
.control-page .control-doc-content h3 { font-size: 1.25rem; }
.control-page .control-doc-content a:not(.btn) { color: var(--primary-600); text-decoration: underline; }
.control-page .control-kicker { max-width: 100%; white-space: normal; font-size: .8125rem; letter-spacing: normal; text-transform: none; border-radius: 8px; }
.control-page .control-download-box { flex-wrap: wrap; border: 1px solid var(--glass-border); border-radius: 12px; padding: 1.25rem; }
.control-page .control-download-box > div { min-width: 0; flex: 1 1 220px; }
.control-page .control-download-box > .btn { flex: 0 1 auto; }
.control-page :is(.control-callouts, .control-feature-grid) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.control-page :is(.control-callouts article, .control-feature-grid article, .control-steps li) { min-width: 0; background: var(--glass-bg); }
.control-page .control-callouts article > div { min-width: 0; }
.control-page .control-callouts article h3 { margin-top: 0; }
.control-page .control-flow { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); gap: .75rem; padding: 1rem; background: transparent; }
.control-page .control-flow > div { min-width: 0; border: 0; background: transparent; }
.control-page .control-flow > svg { transform: none; }
.control-page .control-table { background: var(--glass-bg); }
.control-page .control-table thead th { color: var(--surface-100); letter-spacing: normal; text-transform: none; font-size: .875rem; }
.control-page .control-table tbody th { padding: 1rem 1.25rem; text-transform: none; letter-spacing: normal; }
.control-page .control-code > div { color: #d7e5f1; gap: .75rem; }
.control-page .control-code button { width: 44px; height: 44px; flex-shrink: 0; }
.control-page .control-code pre { max-width: 100%; }
.control-page .control-doc-content [id] { scroll-margin-top: calc(var(--header-height, 99px) + var(--guide-toolbar-height) + 1.5rem); }
.control-page .guide-toolbar, .control-page .sidebar-overlay { display: none; }
.control-page .back-to-top { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 80; width: 44px; height: 44px; border: 1px solid var(--glass-border); border-radius: 12px; background: #fbfdff; color: var(--primary-600); display: grid; place-items: center; opacity: 0; visibility: hidden; cursor: pointer; }
.control-page .back-to-top.visible { opacity: 1; visibility: visible; }
.control-page .back-to-top svg { width: 22px; height: 22px; }
.control-page .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* The roundup's persistent download action uses the shared light surface. */
.roundup-page #sticky-mobile-cta { display: none; }

@media (max-width: 1024px) {
    .control-page { --guide-toolbar-height: 56px; }
    .control-page .control-doc-layout { display: block; padding-top: calc(var(--header-height, 99px) + var(--guide-toolbar-height)); }
    .control-page .control-doc-content { padding: 2rem 2rem 5rem; }
    .control-page .guide-toolbar { display: block; position: fixed; inset: var(--header-height, 99px) 0 auto; z-index: 90; background: var(--glass-bg); backdrop-filter: blur(12px); border-bottom: 1px solid var(--glass-border); }
    .control-page .guide-toolbar button { display: flex; align-items: center; gap: .75rem; width: 100%; height: var(--guide-toolbar-height); padding: 0 1.25rem; border: 0; background: transparent; color: var(--surface-100); font: 500 .9375rem var(--font-display); text-align: left; cursor: pointer; }
    .control-page .guide-contents-label { flex: 0 0 auto; }
    .control-page .guide-current-section { min-width: 0; margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--surface-400); font-size: .8125rem; }
    .control-page .guide-toolbar svg { width: 18px; height: 18px; flex-shrink: 0; }
    .control-page .guide-toolbar [aria-expanded="true"] svg { transform: rotate(180deg); }
    .control-page .control-doc-sidebar { display: none; position: fixed; top: calc(var(--header-height, 99px) + var(--guide-toolbar-height)); left: 0; right: 0; height: auto; max-height: calc(100dvh - var(--header-height, 99px) - var(--guide-toolbar-height) - 1rem); padding: .75rem 1.25rem 1.25rem; border: 0; border-bottom: 1px solid var(--glass-border); background: #fbfdff; z-index: 1001; }
    .control-page .control-doc-sidebar.open { display: block; }
    .control-page .control-doc-sidebar-title { display: none; }
    .control-page .control-doc-sidebar a { display: flex; align-items: center; min-height: 44px; }
    .control-page .sidebar-overlay { position: fixed; inset: calc(var(--header-height, 99px) + var(--guide-toolbar-height)) 0 0; background: rgba(14,30,45,.16); z-index: 999; }
    .control-page .sidebar-overlay.visible { display: block; }
    .control-page.guide-contents-open { overflow: hidden; }
}

@media (max-width: 768px) {
    .article-page .breadcrumb { padding-inline: 1.25rem; padding-top: calc(var(--header-height, 99px) + 1.25rem); }
    .article-page :is(.compare-hero, .roundup-hero, .guide-hero) { padding: 2rem 1.25rem 2.5rem; }
    .article-page :is(.compare-section, .roundup-section, .guide-section) { padding-inline: 1.25rem; }
    .article-page .plan-decision-grid { grid-template-columns: minmax(0,1fr); }
    .article-page .tool-card { padding: 1.25rem; }
    .article-page .toc-list { gap: .25rem 1rem; }
    .legal-page .legal-container { padding-inline: 1.25rem; }
    .legal-page .legal-content { font-size: 1rem; }
    .legal-page .legal-content h2 { font-size: 1.5rem; }
    .legal-page .highlight-box { padding: 1.25rem; }
    .roundup-page #sticky-mobile-cta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; position: fixed; bottom: 0; left: 0; right: 0; z-index: 80; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--glass-border); background: #fbfdff; }
    .roundup-page #sticky-mobile-cta > div > div:first-child { color: var(--surface-100) !important; }
    .roundup-page #sticky-mobile-cta > div > div:last-child { color: var(--surface-400) !important; }
    .roundup-page #sticky-mobile-cta .btn { min-height: 44px; }
    .roundup-page footer { padding-bottom: calc(6rem + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 700px) {
    .content-page .table-stack { position: relative; min-width: 0; }
    .content-page .table-stack, .content-page .table-stack tbody { display: block; width: 100%; }
    .content-page .table-stack thead { display: table-header-group; position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .content-page .table-stack tbody tr { display: block; width: 100%; padding: 1rem; margin: 0; border: 0; border-radius: 0; background: transparent; }
    .content-page .table-stack tbody tr + tr { border-top: 1px solid var(--glass-border); }
    .content-page .table-stack tbody :is(th, td) { display: block; width: auto; padding: 0; border: 0; white-space: normal; font-size: 1rem; }
    .content-page .table-stack tbody th { margin-bottom: .4rem; }
    .content-page .table-stack tbody td + td { margin-top: .75rem; }
    .content-page .table-stack tbody td::before { content: attr(data-label); display: block; margin-bottom: .2rem; color: var(--surface-400); font-size: .8125rem; font-weight: 500; letter-spacing: normal; text-transform: none; }
    .content-page .table-stack tbody th + td { margin-top: .4rem; }
    .content-page .table-stack :is(td, th) a { white-space: normal; }
    .content-page .table-stack .price-highlight { max-width: 100%; flex-wrap: wrap; }
    .control-page .control-doc-content { padding: 1.75rem 1.25rem 5rem; }
    .control-page .control-doc-content .control-heading h2 { font-size: 1.5rem; }
    .control-page .control-hero h1 { font-size: 2rem; }
    .control-page .control-lead { font-size: 1.0625rem; }
    .control-page .control-kicker { font-weight: 600; }
    .control-page .control-download-box > div { flex-basis: auto; }
    .control-page .control-callouts article { padding: 1.25rem; }
    .control-page .control-flow { grid-template-columns: minmax(0,1fr); gap: .25rem; }
    .control-page .control-flow > div { min-height: 90px; }
    .control-page .control-flow > svg { transform: rotate(90deg); justify-self: center; }
    .control-page .control-doc-content .control-table-wrap { border: 1px solid var(--glass-border); border-radius: 12px; overflow: hidden; }
    .control-page .table-stack tbody tr > td:first-child { margin-bottom: .5rem; }
    .localized-homepage .languages-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .localized-homepage .language-item { min-width: 0; }
    .localized-homepage .language-name { overflow-wrap: anywhere; }
    .localized-homepage :is(.emphasis-text, .comparison-tagline) { max-width: 100%; padding: 1.25rem; overflow-wrap: anywhere; }
    .content-page .conference-use-layout { grid-template-columns: minmax(0,1fr); }
    .content-page .conference-use-layout > * { min-width: 0; }
    .content-page .conference-text-link { max-width: 100%; }
    .content-page .conference-text-link svg { flex-shrink: 0; }
}

@media print {
    .content-page > header, .content-page .mobile-menu, .content-page .guide-toolbar,
    .content-page .control-doc-sidebar, .content-page .back-to-top,
    .roundup-page #sticky-mobile-cta { display: none !important; }
    .control-page .control-doc-layout { display: block; padding: 0; }
    .content-page .content-table-scroll { overflow: visible; }
}
