/* TEC v1.46 — service gateways. Extends, rather than replaces, approved v1.45. */
.main-nav a[aria-current='page']::after,
.main-nav a.section-active::after { width: 100%; }
.breadcrumbs { padding-top: 26px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 12px; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; align-items: baseline; gap: 12px; }
.breadcrumbs li + li::before { content: '/'; color: var(--accent); }
.breadcrumbs a { text-decoration: none; padding-block: 4px; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs [aria-current='page'] { color: var(--ink); }
.gateway-hero { padding-block: clamp(44px, 5.5vw, 80px) clamp(64px, 7vw, 100px); }
.gateway-hero-grid { display: grid; grid-template-columns: minmax(0, 1.52fr) minmax(0, .9fr); align-items: center; gap: clamp(40px, 6vw, 92px); }
.gateway-opening { max-width: 740px; }
.gateway-opening h1 { font-size: clamp(54px, 5.7vw, 81px); line-height: 1.04; margin-top: 24px; max-width: 17ch; }
.gateway-strap { margin-top: 27px; font-family: var(--heading); font-size: clamp(25px, 2.5vw, 33px); line-height: 1.24; color: var(--accent); text-wrap: balance; }
.gateway-intro { margin-top: 22px; max-width: 57ch; font-size: 19px; line-height: 1.58; }
.gateway-actions { display: flex; align-items: flex-start; flex-direction: column; gap: 16px; margin-top: 28px; }
.gateway-actions .button { max-width: 100%; }
.gateway-art-panel { align-self: center; }
.gateway-art { width: 100%; aspect-ratio: 760 / 850; overflow: hidden; background: var(--wash); }
.gateway-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gateway-note { border-top: 1px solid var(--seam); margin-top: 20px; padding-top: 17px; font-family: var(--heading); font-size: 25px; color: var(--primary); line-height: 1.3; text-wrap: balance; }
.gateway-reading-grid { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 2.5fr); gap: clamp(50px, 7.5vw, 116px); align-items: start; border-top: 1px solid var(--seam); padding-block: 55px 88px; }
.page-rail { position: sticky; top: 128px; font-size: 15px; max-width: 252px; }
.mini-label { color: var(--accent); font-family: var(--body); font-size: 12px; font-weight: 600; line-height: 1.45; letter-spacing: .075em; text-transform: uppercase; }
.page-rail ol { list-style: none; padding: 0; margin-top: 15px; }
.page-rail li { border-bottom: 1px solid var(--seam); }
.page-rail li a { display: block; padding-block: 12px; text-decoration: none; line-height: 1.45; }
.page-rail li a:hover { color: var(--accent); text-decoration: underline; }
.rail-practice { padding-top: 30px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.rail-practice p + p { margin-top: 12px; }
.rail-practice a { display: block; padding-block: 8px; }
.rail-practice a:first-of-type { margin-top: 14px; }
.gateway-reading { max-width: 760px; min-width: 0; }
.reading-section + .reading-section { margin-top: 53px; }
.gateway-reading h2 { font-size: clamp(33px, 3.3vw, 43px); line-height: 1.15; margin-bottom: 23px; text-wrap: pretty; }
.gateway-reading h3 { font-size: 27px; line-height: 1.2; margin-bottom: 8px; }
.gateway-reading p { line-height: 1.65; }
.gateway-reading ul { padding-left: 24px; margin-block: 18px; }
.gateway-reading li { padding-left: 3px; margin-bottom: 10px; }
.gateway-reading a { text-decoration-color: var(--accent); }
.gateway-reading strong { font-weight: 600; }
.work-items { padding-block: 6px 0; }
.work-items > div { padding-block: 17px; border-top: 1px solid var(--seam); }
.work-items > div:last-child { padding-bottom: 0; }
.gateway-faq details { border-top: 1px solid var(--seam); }
.gateway-faq details:last-child { border-bottom: 1px solid var(--seam); }
.gateway-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 28px; padding-block: 20px; font-weight: 600; line-height: 1.5; }
.gateway-faq summary::-webkit-details-marker { display: none; }
.faq-indicator { flex-shrink: 0; display: block; position: relative; width: 16px; height: 16px; color: var(--accent); }
.faq-indicator::before, .faq-indicator::after { content: ''; position: absolute; background: currentColor; }
.faq-indicator::before { width: 14px; height: 1px; left: 1px; top: 7px; }
.faq-indicator::after { height: 14px; width: 1px; left: 7px; top: 1px; }
.gateway-faq details[open] .faq-indicator::after { display: none; }
.gateway-faq-answer { padding: 0 35px 23px 0; }
.further-reading { padding-top: 30px; border-top: 1px solid var(--seam); }
.further-reading h2 { font-size: 29px; }
.further-reading ul { list-style: none; padding: 0; font-size: 16px; }
.further-reading li { padding: 0 0 14px; }
.further-reading li p { font-size: 15px; color: var(--muted); margin-top: 4px; }
.information-boundary { color: var(--muted); font-size: 14px; }
.team-signpost { display: flex; align-items: center; gap: 20px; margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--seam); font-size: 15px; }
.team-signpost p { line-height: 1.5; }
.team-signpost a { display: inline-block; padding-block: 6px; line-height: 1.4; }
.team-small-portraits { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.team-small-portraits img { display: block; width: 50px; height: 65px; object-fit: cover; object-position: 50% 30%; }
.next-step-band { padding-block: clamp(58px, 7vw, 90px); background-color: var(--surface); background-image: var(--texture-linen); background-size: var(--texture-linen-size); background-blend-mode: multiply; border-block: 1px solid var(--seam); }
.next-step-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: clamp(38px, 7vw, 100px); }
.next-step-grid h2 { margin-top: 18px; max-width: 14ch; font-size: clamp(43px, 4.3vw, 62px); }
.next-step-grid .button { margin-top: 26px; max-width: 100%; }
.next-step-small { margin-top: 20px; font-size: 14px; color: var(--muted); }
.related-section { padding-block: 57px 74px; }
.related-section .section-kicker { margin-bottom: 25px; }
.related-section .section-kicker h2 { flex-shrink: 1; }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.related-card { border-block: 1px solid var(--seam); padding: 20px 0; display: flex; align-items: center; justify-content: space-between; gap: 25px; color: var(--primary); text-decoration: none; font-size: 19px; line-height: 1.35; }
.related-card > :last-child { font-size: 23px; }
.related-card:hover > :first-child { text-decoration: underline; }
.footer-directory { display: grid; grid-template-columns: 1.15fr 1.15fr 1fr; gap: 36px; padding-bottom: 39px; margin-bottom: 42px; border-bottom: 1px solid #c8b9a455; font-size: 15px; line-height: 1.45; }
.footer-directory a { display: block; width: fit-content; padding-block: 8px; text-decoration: none; }
.footer-directory a:hover { text-decoration: underline; }
.footer-directory-heading { font-family: var(--body); font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; min-height: 45px; }
.footer-directory-heading a { padding-top: 0; }
.form-processing-note { font-size: 14px; line-height: 1.55; color: var(--muted); margin: 18px 0 25px; }
.recognise a { text-decoration-color: currentColor; }
.safety-note { background: var(--surface); border-left: 3px solid var(--accent); padding: 22px 27px; margin-bottom: 40px; max-width: 950px; }
.safety-note > div > p + p { margin-top: 9px; font-size: 16px; line-height: 1.6; }
.hub-hero { padding-block: clamp(45px, 6vw, 80px) 55px; }
.hub-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: clamp(40px, 6vw, 86px); }
.hub-heading h1 { font-size: clamp(55px, 5.6vw, 80px); line-height: 1.05; margin-top: 25px; max-width: 16ch; }
.hub-heading .gateway-strap { margin-top: 0; margin-bottom: 22px; }
.hub-note { padding-top: 21px; color: var(--accent); font-size: 15px; font-weight: 600; }
.directory-section { padding-bottom: 85px; }
.gateway-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.gateway-directory-card { background-color: var(--surface); background-image: var(--texture-linen); background-size: var(--texture-linen-size); background-blend-mode: multiply; border: 1px solid var(--seam); padding: 33px 35px; display: flex; flex-direction: column; }
.gateway-directory-card h2 { font-size: clamp(31px, 3vw, 42px); margin-block: 18px 22px; line-height: 1.1; }
.gateway-directory-card h2 a { display: flex; align-items: baseline; justify-content: space-between; gap: 25px; text-decoration: none; }
.gateway-directory-card h2 a:hover { text-decoration: underline; }
.gateway-directory-card h2 a span { font-family: var(--body); font-size: 28px; }
.gateway-directory-card > p:not(.mini-label) { font-size: 17px; line-height: 1.6; }
.gateway-directory-card .card-note { padding-top: 24px; margin-top: auto; color: var(--accent); font-size: 15px !important; }
.hub-explanation { border-top: 1px solid var(--seam); padding-block: 65px 85px; }
.hub-explanation-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 2fr); gap: clamp(30px, 6vw, 85px); }
.hub-explanation .eyebrow { align-self: start; margin-top: 8px; }
@media (max-width: 1100px) {
 .gateway-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr); gap: 38px; }
 .gateway-opening h1 { font-size: clamp(51px, 6vw, 69px); }
 .gateway-reading-grid { gap: 48px; grid-template-columns: 200px minmax(0, 1fr); }
 .gateway-note { font-size: 22px; }
}
@media (max-width: 800px) {
 .gateway-hero-grid { grid-template-columns: 1fr; gap: 32px; }
 .gateway-opening { max-width: 670px; }
 .gateway-opening h1 { max-width: 21ch; font-size: clamp(48px, 7.6vw, 66px); }
 .gateway-actions { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 15px 25px; }
 .gateway-art-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 28px; align-items: center; }
 .gateway-art { aspect-ratio: 1.8; }
 .gateway-note { margin-top: 0; padding-top: 20px; font-size: 25px; }
 .gateway-reading-grid { grid-template-columns: 1fr; gap: 44px; padding-top: 32px; }
 .page-rail { position: static; max-width: none; }
 .page-rail ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
 .rail-practice { display: none; }
 .gateway-reading { max-width: none; }
 .next-step-grid { grid-template-columns: 1fr; gap: 26px; }
 .next-step-grid h2 { max-width: 19ch; }
 .hub-heading { grid-template-columns: 1fr; gap: 28px; }
 .hub-heading h1 { max-width: 20ch; }
 .hub-explanation-grid { grid-template-columns: 1fr; gap: 28px; }
 .gateway-directory-card { padding: 26px; }
 .related-grid { grid-template-columns: 1fr; gap: 0; }
 .related-card + .related-card { border-top: none; }
}
@media (max-width: 600px) {
 .breadcrumbs { font-size: 13px; padding-top: 22px; }
 .breadcrumbs ol { gap: 5px 8px; }
 .breadcrumbs li { gap: 8px; }
 .gateway-hero { padding-top: 34px; padding-bottom: 40px; }
 .gateway-opening h1 { font-size: clamp(41px, 10.8vw, 56px); margin-top: 22px; }
 .gateway-strap { font-size: 26px; margin-top: 24px; }
 .gateway-intro { font-size: 18px; }
 .gateway-actions { flex-direction: column; align-items: flex-start; }
 .gateway-actions .button { font-size: 16px; gap: 20px; }
 .gateway-art-panel { grid-template-columns: 1fr; gap: 16px; }
 .gateway-art { aspect-ratio: 2; }
 .gateway-art img { object-position: 50% 47%; }
 .gateway-note { padding-top: 15px; font-size: 23px; }
 .gateway-reading-grid { padding-bottom: 58px; gap: 35px; }
 .page-rail ol { grid-template-columns: 1fr; gap: 0; margin-top: 10px; }
 .page-rail li a { padding-block: 10px; }
 .gateway-reading h2 { font-size: 33px; }
 .gateway-reading h3 { font-size: 25px; }
 .reading-section + .reading-section { margin-top: 39px; }
 .gateway-faq summary { font-size: 17px; gap: 20px; padding-block: 18px; }
 .gateway-faq-answer { padding-right: 0; }
 .team-signpost { align-items: flex-start; gap: 14px; }
 .team-small-portraits { gap: 4px; }
 .team-small-portraits img { width: 37px; height: 49px; }
 .team-signpost { font-size: 14px; }
 .next-step-grid h2 { font-size: 43px; }
 .related-section { padding-block: 39px 49px; }
 .footer-directory { grid-template-columns: 1fr 1fr; gap: 30px 22px; font-size: 14px; padding-bottom: 32px; margin-bottom: 34px; }
 .footer-directory > :last-child { grid-column: 1 / -1; }
 .footer-directory-heading { min-height: 37px; font-size: 12px; }
 .footer-directory a { line-height: 1.5; }
 .safety-note { padding: 18px 19px; }
 .hub-hero { padding-top: 35px; padding-bottom: 35px; }
 .hub-heading h1 { font-size: clamp(45px, 10.5vw, 59px); }
 .gateway-directory { grid-template-columns: 1fr; gap: 17px; }
 .gateway-directory-card { padding: 25px; }
 .gateway-directory-card h2 { font-size: 35px; }
 .directory-section { padding-bottom: 52px; }
 .hub-explanation { padding-block: 42px 55px; }
}
@media (max-width: 359px) {
 .gateway-opening h1 { font-size: 40px; }
 .gateway-directory-card { padding: 22px; }
 .gateway-directory-card h2 { font-size: 31px; }
 .footer-directory { grid-template-columns: 1fr; }
 .footer-directory > :last-child { grid-column: auto; }
 .gateway-actions .button, .next-step-grid .button { gap: 14px; padding-inline: 15px; }
}
@media (prefers-reduced-motion: reduce) {
 .gateway-page *, .gateway-page *::before, .gateway-page *::after { scroll-behavior: auto; transition: none !important; }
}
@media (forced-colors: active) {
 .gateway-art, .next-step-band, .gateway-directory-card, .safety-note { background-image: none; border: 1px solid CanvasText; }
 .faq-indicator::before, .faq-indicator::after { background: CanvasText; }
}
@media print {
 .breadcrumbs, .page-rail, .gateway-actions, .gateway-art-panel, .next-step-band, .related-section, .footer-directory { display: none; }
 .gateway-hero-grid, .gateway-reading-grid, .hub-heading, .gateway-directory, .hub-explanation-grid { display: block; }
 .gateway-hero, .gateway-reading-grid, .hub-hero, .hub-explanation { padding-block: 16px; }
 .gateway-opening h1, .hub-heading h1 { max-width: none; font-size: 35pt; }
 .gateway-reading h2 { font-size: 23pt; }
 .gateway-directory-card { background: none; margin-bottom: 20px; break-inside: avoid; }
 .gateway-faq details::details-content { content-visibility: visible; }
 .reading-section { break-inside: auto; }
 .team-signpost, .gateway-faq details { break-inside: avoid; }
}

/* v1.47 — six counselling umbrellas and clear service boundaries. */
.domain-introduction { max-width: 66ch; margin: -12px 0 37px; color: var(--muted); font-size: 19px; }
.expanded-domains .situations-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 38px; }
.expanded-domains .situation { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding-top: 24px; }
.expanded-domains .situation-mark .tec-icon { width: 54px; height: 54px; }
.expanded-domains .situation h3 { font-size: 29px; margin-bottom: 13px; }
.expanded-domains .situation h3 a { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; text-decoration: none; }
.expanded-domains .situation h3 a:hover { text-decoration: underline; text-underline-offset: .14em; }
.domain-arrow { font-family: var(--body); font-size: 21px; flex-shrink: 0; color: var(--accent); }
.expanded-domains .situation p { font-size: 17px; line-height: 1.6; }
.situation-gateways { list-style: none; padding: 0; margin: 18px 0 0; font-size: 15px; line-height: 1.4; }
.situation-gateways li + li { margin-top: 4px; }
.situation-gateways a { display: inline-block; padding-block: 6px; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: var(--seam); }
.situation-gateways a:hover { text-decoration-color: currentColor; }
.domain-route-note { display: flex; gap: 12px 30px; flex-wrap: wrap; align-items: baseline; border-top: 1px solid var(--seam); margin-top: 37px; padding-top: 23px; font-size: 16px; }
.domain-route-note p { flex-basis: 100%; color: var(--muted); }
.domain-route-note .text-link { font-size: 16px; }
.scope-note { max-width: 950px; margin: 0 0 32px; border-left: 2px solid var(--accent); padding: 4px 0 4px 22px; font-size: 16px; line-height: 1.65; color: var(--muted); }
.scope-note strong { color: var(--ink); font-weight: 600; }
.hub-child-links { margin-top: 22px; padding: 0; list-style: none; border-top: 1px solid var(--seam); }
.hub-child-links li + li { border-top: 1px solid var(--seam); }
.hub-child-links a { display: block; padding-block: 12px; font-size: 17px; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.directory-title { font-size: clamp(32px, 3.4vw, 44px); line-height: 1.16; margin: 0 0 30px; max-width: 28ch; }
.gateway-directory-card h3 { font-size: clamp(30px, 3vw, 40px); margin-block: 18px 22px; line-height: 1.1; }
.gateway-directory-card h3 a { display: flex; align-items: baseline; justify-content: space-between; gap: 25px; text-decoration: none; }
.gateway-directory-card h3 a:hover { text-decoration: underline; }
.gateway-directory-card h3 a span { font-family: var(--body); font-size: 26px; }
.gateway-directory > :only-child { max-width: 780px; }
.gateway-directory:has(> :only-child) { grid-template-columns: 1fr; }
.breadcrumbs li { min-width: 0; }
.breadcrumbs li:last-child { overflow-wrap: anywhere; }
.gateway-intro, .hub-heading p, .gateway-directory-card p { overflow-wrap: break-word; }
@media (max-width: 1100px) {
 .expanded-domains .situations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 36px; }
}
@media (max-width: 600px) {
 .expanded-domains .situations-grid { grid-template-columns: 1fr; gap: 28px; }
 .expanded-domains .situation { gap: 13px; }
 .expanded-domains .situation-mark .tec-icon { width: 48px; height: 48px; }
 .expanded-domains .situation h3 { font-size: 30px; }
 .domain-introduction { font-size: 18px; margin-bottom: 28px; }
 .domain-route-note { display: block; }
 .domain-route-note a { display: flex; width: fit-content; margin-top: 12px; }
 .scope-note { font-size: 15px; padding-left: 16px; }
 .gateway-directory-card h3 { font-size: 32px; }
}
@media print {
 .expanded-domains .situations-grid { display: block; }
 .expanded-domains .situation { break-inside: avoid; margin-bottom: 15px; }
 .scope-note { border-left: 1pt solid; color: black; }
}
