/* Phase 4B.3. Opt-in internal templates only; approved home/header styles stay intact. */
.visual-stage.internal-page {
 --internal-copy-size:1rem;
 --internal-heading-size:1.75rem;
 --internal-hero-ratio:320 / 165;
 height:auto;
}
.internal-page .visual-main.internal-main {
 position:relative;
 display:grid;
 grid-template-columns:minmax(0,1fr);
 gap:1.5rem;
 box-sizing:border-box;
 width:100%;
 max-width:66rem;
 height:auto;
 margin-inline:auto;
 padding:14.5rem 1.25rem 3rem;
 color:#303030;
}
.internal-page .internal-main > *,
.internal-page .internal-main .visual-component {
 display:block;
 position:static;
 box-sizing:border-box;
 width:auto;
 min-width:0;
 height:auto;
 margin:0;
}
.internal-page .internal-main .visual-component {
 font-family:Arial,Helvetica,sans-serif;
 font-size:var(--internal-copy-size);
 line-height:1.65;
 text-align:left;
 overflow-wrap:break-word;
}
.internal-page .internal-main :is(p,ul,ol,li,span,a) {
 font-size:inherit;
 line-height:inherit;
}
.internal-page .internal-main p {
 margin:0 0 .75rem;
 text-align:inherit;
}
.internal-page .internal-main p[data-internal-spacer] { margin:0;line-height:0; }
.internal-page .internal-main :is(ul,ol) { margin:1.25rem 0;padding-left:1.25rem; }
.internal-page .internal-main li { margin:0;padding-block:.375rem; }
/* Keep the existing serif family and meaningful italic/bold emphasis. */
.internal-page .internal-main h1 {
 max-width:32ch;
 font-size:var(--internal-heading-size);
 font-weight:700;
 line-height:1.2;
 letter-spacing:-.02em;
 text-wrap:balance;
 color:#1b3892;
}
.internal-page .internal-main h2 {
 margin-top:1.5rem;
 font-size:1.75rem;
 font-weight:700;
 line-height:1.25;
 color:#1b3892;
}
.internal-page .internal-main h3 {
 font-size:1.25rem;
 line-height:1.4;
 color:#1b3892;
}
.internal-page .internal-main :is(h1,h2,h3) span { font-size:inherit;line-height:inherit;color:inherit; }
.internal-page .internal-main .internal-hero {
 grid-area:hero;
 width:100%;
 aspect-ratio:var(--internal-hero-ratio);
}
.internal-page .internal-main .internal-hero :is(a,picture,img) {
 display:block;
 width:100%;
 height:100%;
}
/* Different source crops remain complete within the shared frame: no face/text cropping. */
.internal-page .internal-main .internal-hero img { object-fit:contain; }
.internal-page .internal-main .internal-lede { grid-area:lede;max-width:65ch; }
.internal-page .internal-main .internal-title { grid-area:title; }
.internal-page .internal-main .internal-primary {
 grid-area:primary;
 display:grid;
 align-content:start;
 gap:1.5rem;
 max-width:65ch;
 min-width:0;
 font-size:var(--internal-copy-size);
}
.internal-page .internal-main .internal-secondary {
 grid-area:secondary;
 display:grid;
 align-content:start;
 gap:1.5rem;
 min-width:0;
}
.internal-page .internal-main .internal-contact { font-size:1rem; }
.internal-page .internal-main a {
 color:#1b3892;
 text-underline-offset:.18em;
 text-decoration-thickness:.06em;
 overflow-wrap:anywhere;
}
.internal-page .internal-main .internal-contact a {
 display:inline-block;
 min-height:2rem;
 line-height:2;
 max-width:100%;
}
.internal-page .internal-main .visual-contact-button {
 box-sizing:border-box;
 min-height:2.75rem;
 height:auto;
 padding:.5rem;
 font-size:1rem;
 line-height:1.4;
}
/* Empty decorative overlay backdrops are no longer needed after moving text into flow. */
.internal-page .internal-main > [aria-hidden="true"] {
 position:absolute;
 width:0;
 height:0;
 border:0;
 background:none;
 pointer-events:none;
}
.internal-page.internal-service .internal-main { grid-template-areas:"hero" "lede" "title" "primary" "secondary"; }
.internal-page.internal-buyer .internal-main { grid-template-areas:"hero" "lede" "primary" "secondary"; }
.internal-page.internal-legal .internal-main { grid-template-areas:"hero" "title" "primary"; }
.internal-page.internal-legal .internal-main .internal-primary { display:block; }
/* Buyer text and headings keep their source DOM order; visual section pairing follows baseline. */
.internal-buyer .internal-primary { grid-template-areas:"title" "intro" "service-title" "service-copy" "demand-title" "demand-copy" "cost-title" "cost-copy"; }
.internal-buyer .internal-primary > :nth-child(1) { grid-area:title; }
.internal-buyer .internal-primary > :nth-child(2) { grid-area:intro; }
.internal-buyer .internal-primary > :nth-child(3) { grid-area:service-title; }
.internal-buyer .internal-primary > :nth-child(4) { grid-area:service-copy; }
.internal-buyer .internal-primary > :nth-child(5) { grid-area:demand-title; }
.internal-buyer .internal-primary > :nth-child(6) { grid-area:cost-title; }
.internal-buyer .internal-primary > :nth-child(7) { grid-area:cost-copy; }
.internal-buyer .internal-primary > :nth-child(8) { grid-area:demand-copy; }
.visual-stage.internal-page > .visual-footer.site-footer { position:relative;top:auto; }
@media(min-width:768px) {
 .visual-stage.internal-page { --internal-copy-size:1.125rem;--internal-heading-size:2.5rem;--internal-hero-ratio:1407 / 651; }
 .internal-page .visual-main.internal-main {
  grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);
  column-gap:3rem;
  padding:12rem 2rem 4rem;
  align-items:start;
 }
 .internal-page.internal-service .internal-main { grid-template-areas:"hero hero" "lede lede" "title title" "primary secondary"; }
 .internal-page.internal-buyer .internal-main { grid-template-areas:"hero hero" "lede lede" "primary secondary"; }
 .internal-page.internal-legal .internal-main { grid-template-areas:"hero hero" "title title" "primary primary"; }
}
@media(min-width:768px) and (max-width:979px) {
 .visual-stage.internal-page { --internal-copy-size:1.375rem;--internal-heading-size:3rem; }
 .internal-page .internal-main .internal-contact { font-size:1.25rem; }
 .internal-page .internal-main .visual-contact-button { min-height:3.5rem;font-size:1.25rem; }
}
