/* Page composition only. All shared typography and components live in site.css. */
.layout-hero { padding:var(--section-y) 0 32px; background:var(--paper); border-bottom:1px solid var(--mist); }
.layout-hero__inner { display:grid; grid-template-columns:minmax(0,720px) 320px; justify-content:center; gap:64px; align-items:start; }
.layout-hero__copy { min-width:0; }

.layout-answer { font-size:1.25rem; line-height:1.6; }
.layout-answer-detail { margin-top:20px; }
.hero-assessment-link { margin:24px 0 0; }
.hero-service-line { font-size:.875rem; color:var(--teal); margin-bottom:20px; }
.key-facts { background:var(--sand); border:0; }
.key-facts--summary { padding:var(--panel-pad); border-radius:var(--radius); color:var(--ink); }
.key-facts--summary h2 { margin-top:0; color:var(--navy); }
.key-facts h2,.price-method-card h2,.safety-box h2,.rail h2,.hero-toc h2 { font:600 1.125rem/1.4 var(--sans); }
.key-facts dl { margin:0; }
.key-facts dl > div { padding:16px 0; border-top:1px solid var(--divider); }
.key-facts dt { font-weight:600; font-size:.875rem; }
.key-facts dd { margin:4px 0 0; font-size:1rem; }
.price-answer { font-size:2rem; line-height:1.4; }
.price-answer--summary { font-size:1.25rem; }
.price-method-card p { font-size:.875rem; }
.decision-answer { margin:0; padding:0; border:0; font-size:1.5rem; line-height:1.5; }
.safety-box { border-left:3px solid var(--teal); }
.safety-box p { font-size:.9375rem; }
.layout-reading { padding-top:32px; padding-bottom:0; }
.rail-card { padding:24px; border:1px solid var(--mist); border-radius:var(--radius); background:var(--paper); }
.rail-card p { font-size:1rem; }
.rail nav .toc-list { max-height:none; overflow:visible; }
.rail .panel { padding:var(--panel-pad); }
.toc-list { list-style:none; padding:0; margin:0; }
.toc-list li { margin:0; }
.toc-list a { display:block; padding:7px 0; font-size:.875rem; line-height:1.4; text-decoration:none; }
.toc-list a:hover { text-decoration:underline; }
.rail-assessment .button { width:100%; margin-top:16px; }
.rail-phone { display:block; border:0; padding:0; background:transparent; color:var(--navy); font-size:1rem; }


.guide-mobile-toc { display:none; }
.hero-aside { display:grid; gap:24px; min-width:0; }
.hero-aside > * { width:100%; }
.hero-aside .editorial-image { margin:0; }
.comparison-lead { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); }
.hub-entry-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); }
.hub-child-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); list-style:none; padding:0; }
.hub-child-list li { margin:0; }
.hub-child-list .tile { height:100%; }
.layout-home .layout-hero__inner { grid-template-columns:minmax(0,1fr); gap:32px; align-items:center; }
.layout-home .layout-hero .hero-visual { max-width:none; }
.layout-home .layout-reading { display:block; }
.layout-home .wrap .wrap { width:100%; margin-inline:0; }
.layout-home .section:not(.panel) { padding:0; }
.section-row { min-height:0; display:flex; align-items:center; justify-content:space-between; gap:32px; padding-block:0; margin-bottom:24px; }
.section-row h2 { margin:0; }
.section-row > :last-child { max-width:300px; flex-shrink:0; }
.content-grid { display:block; }
.content-grid.section-row { display:flex; }
.section-row .section-heading { margin:0; }
.section-row .section-row-link { max-width:300px; }
.section-heading p,.layout-home #network,.layout-home #homepage-faq { max-width:var(--content); }
.fit-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--gap); }
.limits-list,.decision-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); }
.pathway-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); }
.pathway-links { display:flex; flex-wrap:wrap; gap:14px 20px; margin-top:24px; }
.option-card--photo { overflow:hidden; padding:0; }
.option-card__image { width:100%; aspect-ratio:4/3; object-fit:cover; }
.option-card__body { padding:28px; display:flex; flex-direction:column; flex:1; }
.option-card__body > p { color:var(--ink); }
.safety-band { margin-top:0; }
.safety-band strong { display:block; font-size:1.125rem; margin-bottom:16px; }
.navigator-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start; }
.navigator-buttons { display:grid; gap:10px; }
.navigator-buttons button { text-align:left; background:transparent; color:white; border:1px solid rgba(255,255,255,.6); padding:12px 16px; border-radius:var(--radius); font-size:1rem; }
.navigator-buttons button:hover,.navigator-buttons button.is-active { background:white; color:var(--navy); }
.navigator-result.card h3,.navigator-result.card p { color:var(--ink); }
.navigator-result.card .result-index { display:block; margin:0 0 8px; }
.navigator-result.card .result-label { color:var(--muted); margin:0 0 16px; }
.navigator-result.card .navigator-closing a { color:var(--teal-dark); }
.navigator-result.card .button { color:white; text-decoration:none; margin-bottom:16px; }
.result-index { display:none; }
.evaluation-grid { display:block; }
.evaluation-copy { max-width:var(--content); margin-bottom:32px; }
.evaluation-steps { padding-left:24px; margin:0; }
.evaluation-steps li { padding:20px 0; }
.evaluation-steps li > span { display:none; }
.evaluation-steps h3 { margin-bottom:12px; }
.guide-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); }
.guide-list span { display:block; color:var(--muted); font-size:.8125rem; margin-bottom:8px; }
.guide-list strong { display:block; font-size:1.125rem; }
.styleguide-section { margin-block:var(--section-y); }
.styleguide-section > .layout-hero { border-top:1px solid var(--mist); }
@media(max-width:1099px) {

  .guide-mobile-toc { display:block; margin-bottom:40px; }
  .guide-mobile-toc details { padding:16px 20px; background:var(--sand); border-radius:var(--radius); }
  .guide-mobile-toc a { color:var(--teal-dark); }
  .guide-mobile-toc summary { cursor:pointer; color:var(--navy); font-weight:600; }
  .guide-mobile-toc .toc-list { display:flex; flex-wrap:wrap; gap:0 24px; padding-top:12px; }
  .assessment-bottom { display:block; margin-top:48px; }
  .assessment-bottom .rail-card { max-width:var(--content); }
  .fit-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:899px) {
  .layout-hero__inner,.layout-home .layout-hero__inner { grid-template-columns:1fr; gap:32px; }
  .layout-hero__inner > aside { max-width:var(--content); }
  .hub-entry-grid,.hub-child-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .navigator-grid { grid-template-columns:1fr; }
  .limits-list,.decision-grid { grid-template-columns:1fr; }
  .section-row { display:block; min-height:0; }
  .content-grid.section-row { display:block; }
  .section-row > :last-child { max-width:none; margin-top:16px; }
}
@media(max-width:599px) {
  .comparison-lead,.hub-entry-grid,.hub-child-list,.fit-list,.pathway-grid,.guide-list { grid-template-columns:1fr; }
  .hero-assessment-link .button { width:100%; }
  .guide-mobile-toc .toc-list { display:block; }
  .hero-toc { display:none; }
}

/* Photo features and shorter format cards have their own rows and proportions. */
.option-featured { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); margin-bottom:var(--gap); }
.option-featured .option-card--photo { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
.option-featured .option-card__image { height:100%; min-height:250px; aspect-ratio:auto; }
.option-featured .option-card__body { padding:24px; }
.layout-home .option-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin-block:0; }
.layout-home .section-heading > :last-child { margin-bottom:0; }
.layout-home .decision-grid .card { display:flex; flex-direction:column; }
.layout-home .decision-grid .card > a { margin-top:auto; }
.consultation-stage > .wrap > :last-child { margin-bottom:0; }
.consultation-stage { margin-bottom:var(--section-y); }
/* The homepage end block is a grid item, so its margin cannot collapse with the footer. */
body:has(.layout-home) > .site-footer { margin-top:0; }
@media(max-width:899px) { .option-featured { grid-template-columns:1fr; } }
@media(max-width:599px) {
 .option-featured .option-card--photo { grid-template-columns:1fr; }
 .option-featured .option-card__image { height:auto; min-height:0; aspect-ratio:16/9; }
 .layout-home .option-grid { grid-template-columns:1fr; }
 .option-card__body,.option-featured .option-card__body,.rail-card { padding:20px; }
 .option-card--photo { padding:0; }
}

.option-card p { margin-bottom:0; }
.company-context { margin-top:40px; }

/* The article is one grid item. Its tables and lists cannot displace the rail. */
.guide { display:grid; grid-template-columns:minmax(0,var(--content)) var(--rail); column-gap:64px; row-gap:0; justify-content:center; align-items:start; }
.guide > .content { display:flow-root; min-width:0; grid-column:1; }
.guide > .rail { grid-column:2; grid-row:1; align-self:stretch; margin:0; min-width:0; }
.rail-inner { position:sticky; top:max(96px,calc(var(--sticky-header-height) + 16px)); display:grid; gap:16px; max-height:none; overflow:visible; }
.guide--hub { display:block; }
.layout-f .content > p,.layout-f .content > h2,.layout-f .content > h3 { max-width:var(--content); }
.layout-page > .assessment-section,.layout-page > .related-section { width:min(calc(100% - 2 * var(--gutter)),var(--container)); margin:48px auto 0; }
.layout-page > .assessment-section { margin-bottom:var(--section-y); }
.layout-page:not(.layout-f) > .assessment-section,.layout-page:not(.layout-f) > .related-section { width:min(calc(100% - 2 * var(--gutter)),calc(var(--content) + var(--rail) + 64px)); }
.assessment-section > p { max-width:var(--content); }
.assessment-section > .panel > p { max-width:var(--content); }
.assessment-section > :last-child,.related-section > :last-child { margin-bottom:0; }
.related-section > h2 { margin-bottom:24px; }
.layout-hero__copy .hero-lead { font-size:20px; line-height:1.6; font-weight:400; }
.hero-note { margin:20px 0 0; padding:16px; border-left:4px solid var(--teal); background:var(--sand); font-size:16px; }
.hero-parent { margin:20px 0 0; color:var(--muted); font-size:15px; }
.guide-mobile-toc { width:min(calc(100% - 2 * var(--gutter)),var(--container)); margin:32px auto 0; }
.content .hub-child-list { list-style:none; padding:0; }
.content .hub-child-list li { margin:0; }
.content .hub-child-list .tile { height:100%; }
.content .related-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.content > .card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); }

.layout-home .layout-reading { display:grid; gap:var(--section-y); padding-top:var(--section-y); }
.layout-home .layout-hero { padding:var(--section-y) 0; }
.layout-home .homepage-sections { display:grid; gap:var(--section-y); }
.layout-home .layout-reading > [data-stage=orientation] { max-width:var(--content); margin-inline:0; }
.layout-home .section-heading { margin-bottom:28px; }
.layout-home .faq { border-top:1px solid var(--divider); }
@media(min-width:1100px) {
 .layout-home .section.panel { width:calc(100% + 2 * var(--panel-pad)); margin-inline:calc(-1 * var(--panel-pad)); }
}
.layout-home .wrap .safety-band { width:100%; max-width:100%; margin-inline:0; }
@media(max-width:1099px) {
 .guide { grid-template-columns:minmax(0,1fr); }
 .guide > .rail { display:none; }
 .guide > .content > * { grid-column:1; }
}
@media(max-width:599px) {
 .content > .card-grid,.content .related-grid,.content .term-grid,.content .setting-list,.content .not-included-grid,.content .priority-grid { grid-template-columns:minmax(0,1fr); }
}
@media print { .guide { display:block; } }

@media(max-width:599px) {
  .hero-note { padding:20px; margin-bottom:24px; }
  .key-facts--summary { padding:20px; margin-bottom:24px; }
}

/* Card counts control desktop columns; compact widths always stack predictably. */
[data-card-columns="2"],.content > [data-card-columns="2"],.content .related-grid[data-card-columns="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
[data-card-columns="3"],.content > [data-card-columns="3"],.content .related-grid[data-card-columns="3"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
.guide:not(.guide--hub) > .content :is(.card-grid,.related-grid,.term-grid,.setting-list,.not-included-grid,.priority-grid,[data-card-columns]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:899px) {
 [data-card-columns],.content > [data-card-columns],.content .related-grid[data-card-columns] { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:599px) {
 [data-card-columns],.content > [data-card-columns],.content .related-grid[data-card-columns] { grid-template-columns:minmax(0,1fr); }
 .guide:not(.guide--hub) > .content :is(.card-grid,.related-grid,.term-grid,.setting-list,.not-included-grid,.priority-grid,[data-card-columns]) { grid-template-columns:minmax(0,1fr); }
 .layout-page > .assessment-section,.layout-page > .related-section { margin-top:40px; }
}

/* Homepage hero: exact owner copy and width-specific presentation. */
.layout-home .layout-hero__copy h1 { font-size:clamp(2rem,4vw,2.75rem); line-height:1.1; }
.layout-home .layout-hero__copy .hero-lead { font-size:20px; max-width:62ch; margin:0; }
.layout-home .layout-hero__copy > .button-row { margin-top:20px; }
@media(min-width:900px) {
  .layout-home .layout-hero__inner { grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:64px; align-items:center; }
}
@media(min-width:640px) {
  .layout-home [data-hero-assessment-actions] a[href^="tel:"] { display:inline-flex; }
}
@media(max-width:639px) {
  .layout-home .layout-hero .hero-visual { display:none; }
  .layout-home [data-hero-assessment-actions] a[href^="tel:"] { display:none; }
  .layout-home .layout-hero__copy > .button-row { flex-direction:column; align-items:stretch; }
  .layout-home .layout-hero__copy > .button-row > .button { width:100%; }
}

/* Center reading blocks on the fifteen pages without a sidebar. */
.layout-page:not(:has(aside)) .layout-stage { margin-inline:auto; }
.layout-home .layout-reading > [data-stage=orientation],.layout-home #homepage-faq,.layout-home #network,.layout-home .consultation-stage { width:100%; max-width:var(--content); margin-inline:auto; }
.no-rail:not(.layout-home) .layout-hero__inner { grid-template-columns:minmax(0,var(--content)); }
.no-rail > .assessment-section { max-width:var(--content); }
.no-rail .company-hero { display:block; max-width:var(--content); margin-inline:auto; }
.company-page.no-rail > .layout-reading > .content { margin-inline:auto; }

/* Owner-requested homepage alignment and pathway guide links. */
.layout-home .layout-stage, .layout-home section.standards { margin-inline: 0; }
.pathway-links { display: grid; gap: 8px; margin-top: 18px; padding-top: 14px; border-top: 1px solid #e3e0da; }
.pathway-links::before { content: "Guides"; font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #5b6b75; }
.pathway-links a { display: block; }

/* Match the earlier centering selectors so the homepage alignment takes precedence. */
.layout-home.layout-page .layout-stage,
.layout-home .layout-reading > [data-stage=orientation],
.layout-home #network { margin-inline: 0; }

/* Owner-requested FAQ alignment and stacked definition-guide link. */
.layout-home .layout-stage, .layout-home section.standards, .layout-home #homepage-faq { margin-inline: 0; }
.content-grid--intro { flex-direction: column; align-items: flex-start; gap: 6px; }
.content-grid--intro .section-heading { width: 100%; }
.content-grid--intro .section-row-link { width: auto; max-width: none; }

/* Owner-requested alignment of hub reading blocks with their card grid. */
.no-rail:has(.hub-entry-grid) .content > * { margin-inline: 0; }
/* Override the more specific existing centering rule within the same hubs. */
.no-rail:has(.hub-entry-grid) .content > *:not(.hub-entry-grid):not(.related-grid):not(.assessment-section):not(.wrap) { margin-inline: 0; }
