/* Service layouts extend the existing contracting visual system. */
.services-page { overflow-wrap: break-word; }
.services-page .breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem .7rem; padding-top: 1.6rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.6; }
.services-page .service-hero { padding: clamp(2.5rem, 4vw, 3.75rem) 0 clamp(3.5rem, 6vw, 5.5rem); }
.services-page .service-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.services-page .hero h1 { max-width: 19ch; font-size: clamp(2.85rem, 4.6vw, 4.2rem); }
.services-page .hero-actions { flex-wrap: wrap; gap: 1.1rem 1.5rem; }
.services-page .button { line-height: 1.35; }
.services-page .eyebrow, .services-page .capability-title > p { color: #596e80; }
.services-page .eyebrow-light { color: var(--blue); }
.services-page .service-preview { min-width: 0; border-top: 2px solid var(--blue-deep); padding: 1.5rem 0 0; }
.services-page .preview-label, .services-page .figure-label { margin: 0 0 1.15rem; color: #596e80; font: 700 .7rem/1.5 var(--font-display); text-transform: uppercase; letter-spacing: .12em; }
.services-page .preview-title { font-size: 1.6rem; line-height: 1.2; margin-bottom: 1.15rem; }
.services-page .preview-rail { list-style: none; padding: 0; margin: 0; }
.services-page .preview-rail li { display: flex; align-items: baseline; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
.services-page .preview-rail li span { color: #596e80; font-size: .72rem; }
.services-page .preview-caption { color: var(--ink-soft); font-size: .76rem; line-height: 1.6; margin: 1rem 0 0; }
.services-page .section { border-top: 1px solid var(--line); }
.services-page .section-intro { max-width: 760px; margin-bottom: 2.4rem; }
.services-page h2 { font-size: clamp(2.05rem, 3.45vw, 3.25rem); max-width: 24ch; line-height: 1.12; }
.services-page .capability-index { max-width: none; }
.services-page .capability-row { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 5rem); padding: 1.8rem 0; }
.services-page .capability-title h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
.services-page .service-note { max-width: 720px; color: var(--ink-soft); font-size: .86rem; line-height: 1.65; margin: 1.5rem 0 0; }
.services-page .reading-copy { max-width: 720px; color: var(--ink-soft); font-size: 1rem; }
.services-page .example-section { background: var(--soft); }
.services-page .example-figure { margin: 0; }
.services-page .example-figure figcaption { margin-top: 1.15rem; font-size: .8rem; color: var(--ink-soft); line-height: 1.6; }
.services-page .example-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; align-items: start; }
.services-page .example-panel { min-width: 0; padding: clamp(1.2rem, 2.5vw, 2rem); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.services-page .example-panel h3 { line-height: 1.3; margin-bottom: 1rem; }
.services-page .example-panel p { font-size: .9rem; color: var(--ink-soft); line-height: 1.6; }
.services-page .example-panel p:last-child { margin-bottom: 0; }
.services-page .record-label { font: 700 .68rem/1.5 var(--font-display); color: #596e80; letter-spacing: .1em; text-transform: uppercase; }
.services-page .record-heading { font-size: 1.45rem; font-weight: 400; }
.services-page .record-fields { margin: 1.25rem 0; }
.services-page .record-fields > div { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1fr); gap: .75rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.services-page .record-fields dt { color: var(--ink-soft); font-size: .78rem; }
.services-page .record-fields dd { margin: 0; font-size: .85rem; }
.services-page .record-state { display: inline-block; padding: .3rem .65rem; background: var(--soft); border-left: 2px solid var(--blue-deep); font-size: .78rem; color: var(--ink); }
.services-page .example-table { width: 100%; border-collapse: collapse; font: .8rem/1.5 var(--font-prose); }
.services-page .example-table th, .services-page .example-table td { text-align: left; padding: .8rem .4rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.services-page .example-table th { font-weight: 600; color: var(--ink-soft); }
.services-page .example-table th:first-child, .services-page .example-table td:first-child { padding-left: 0; }
.services-page .history { padding: 1rem 0 0; border-top: 1px solid var(--line); margin-top: 1rem; }
.services-page .history p { margin-bottom: .55rem; }
.services-page .flow-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; padding: 0; margin: 0; gap: 1.5rem; }
.services-page .flow-steps > li { min-width: 0; position: relative; }
.services-page .flow-steps > li:not(:last-child)::after { content: '→'; position: absolute; top: 1.2rem; right: -1.1rem; color: var(--blue-deep); }
.services-page .exception { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--blue-deep); }
.services-page .proof-excerpt { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: clamp(2rem, 5vw, 4rem); padding: 2rem 0; border-block: 1px solid var(--line); }
.services-page .proof-excerpt + .proof-excerpt { border-top: 0; }
.services-page .proof-excerpt p { color: var(--ink-soft); font-size: 1rem; }
.services-page .proof-excerpt p:last-child { margin-bottom: 0; }
.services-page .proof-excerpt h3 { font-size: 1.6rem; line-height: 1.25; }
.services-page .proof-status { font-size: .78rem !important; line-height: 1.55; }
.services-page .proof-image { display: block; width: 100%; height: auto; margin-top: 1.5rem; border: 1px solid var(--line); }
.services-page .process-layout { gap: clamp(2.5rem, 6vw, 6rem); }
.services-page .process-list > li > span { color: #596e80; }
.services-page .process-sequence > .service-note { margin-left: 3.4rem; }
.services-page .contact-copy h2 { max-width: 15ch; }
.services-page .contact-grid { gap: clamp(2rem, 6vw, 6rem); }
.services-page .field-help { margin: 0; color: var(--muted-on-dark); font-size: .8rem; line-height: 1.6; }
.services-page .field label span { color: var(--muted-on-dark); }
.services-page .contact-form .enquiry-reassurance { margin:0; color:var(--text-on-dark); font:1rem/1.6 var(--font-prose); }
.services-page .related-services { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; padding-block: 2rem; font-size: .8rem; }
.services-page .related-services p { margin: 0; color: var(--ink-soft); }
.services-page .service-group + .service-group { margin-top: 3.5rem; }
.services-page .directory-row { color: inherit; text-decoration: none; position: relative; padding-right: 2rem; }
.services-page .directory-row:hover { background: var(--soft); }
.services-page .directory-row > .directory-arrow { position: absolute; right: .25rem; top: 1.8rem; }
.services-page .directory-row:focus-visible { outline-offset: 1px; }
.services-page.services-hub .service-hero { padding-bottom: 2.5rem; }
.services-page.services-hub .service-hero-grid { grid-template-columns: minmax(0,1.6fr) minmax(0,.7fr); }
.services-page.services-hub #service-directory { padding-top: 2.5rem; }
.services-page.services-hub .hero h1 { max-width: 20ch; }
.services-page .phone-panel { max-width: 320px; border: 2px solid var(--ink-soft); padding: 1.4rem; border-radius: 3px; background: var(--paper); }
.services-page .phone-panel .record-label { display: block; border-bottom: 1px solid var(--line); padding-bottom: .75rem; }
.services-page .branch-heading { text-align: center; padding: 1rem; margin: 0 0 1.5rem; border-block: 1px solid var(--line); font-size: 1.15rem; }
.services-page .two-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
@media (max-width: 980px) {
    .services-page .service-hero-grid, .services-page.services-hub .service-hero-grid, .services-page .example-grid, .services-page .proof-excerpt { grid-template-columns: 1fr; }
    .services-page .service-preview { max-width: 720px; }
    .services-page .hero h1 { max-width: 22ch; }
    .services-page .preview-rail { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
    .services-page .preview-rail li { align-items: flex-start; }
}
@media (max-width: 760px) {
    .services-page .capability-row, .services-page .flow-steps, .services-page .two-columns { grid-template-columns: 1fr; }
    .services-page .capability-row { gap: .9rem; }
    .services-page .flow-steps > li:not(:last-child)::after { content: '↓'; top: auto; bottom: -1.5rem; left: 1rem; right: auto; }
    .services-page .service-preview { padding-top: 1.25rem; }
    .services-page .hero h1 { max-width: none; }
    .services-page .hero-actions { align-items: stretch; }
    .services-page .process-sequence > .service-note { margin-left: 3.05rem; }
    .services-page .related-services { flex-direction: column; gap: .75rem; }
}
@media (max-width: 520px) {
    .services-page .hero h1 { font-size: clamp(2.3rem, 9vw, 2.85rem); }
    .services-page .preview-rail { display: block; }
    .services-page .service-hero { padding-top: 2rem; }
    .services-page .example-table thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
    .services-page .example-table, .services-page .example-table tbody, .services-page .example-table tr { display: block; }
    .services-page .example-table tr { padding: .6rem 0; border-bottom: 1px solid var(--line); }
    .services-page .example-table td { display: grid; grid-template-columns: 5rem minmax(0,1fr); border: 0; padding: .3rem 0; gap: .5rem; }
    .services-page .example-table td::before { content: attr(data-label); font-weight: 600; }
}
.services-page.services-hub .hero h1 { font-size: clamp(2.5rem, 4vw, 3.7rem); }
.services-page.services-hub .hero-lede { font-size: 1.15rem; }
.services-page.services-hub .service-hero { padding-top: 2.5rem; }
.services-page.services-hub .hero-copy > .service-note { margin-top: 1rem; }

/* Customer & Operations Portals: page-scoped extensions of the current service system. */
.portals-page { --shell:1200px; --portal-slate:#526a7d; --portal-green:#31594e; }
.portals-page .section { padding:3rem 0; }
.portals-page p { font-size:1rem; line-height:1.7; }
.portals-page main > .section p { color:var(--ink-soft); }
.portals-page h2 { font-size:clamp(2rem,3vw,2.75rem); max-width:25ch; }
.portals-page h3 { font-size:1.15rem; line-height:1.35; }
.portals-page .eyebrow { font:700 .7rem/1.5 var(--font-display); color:var(--portal-slate); }
.portals-page .eyebrow-light { color:var(--blue); }
.portals-page .service-hero { padding:2.25rem 0 2.75rem; }
.portals-page .service-hero-grid { width:min(calc(100% - 2.5rem),1440px); grid-template-columns:minmax(0,41fr) minmax(0,59fr); gap:3rem; align-items:center; }
.portals-page .hero h1 { font-size:clamp(2.6rem,4vw,3.8rem); max-width:20ch; line-height:1.08; }
.portals-page .hero-lede { font-size:1.12rem; line-height:1.75; margin-bottom:1.2rem; }
.portals-page .hero-actions { gap:.9rem 1.25rem; }
.portals-page .hero-actions .button, .portals-page .hero-actions .text-link { font-size:.85rem; }
.portals-page .hero-actions .button { padding-inline:1rem; }
.portals-page .portal-start-note { font-size:.85rem; margin:.8rem 0 1.25rem; color:var(--ink-soft); }
.portals-page .portal-experience-line { padding-top:1rem; border-top:1px solid var(--line); font-size:.85rem; line-height:1.65; color:var(--portal-slate); margin-bottom:0; }
.portals-page .portal-experience-line strong { font-weight:600; }
.portals-page .portal-experience-line a { white-space:normal; }
.portals-page .service-preview { padding:0; border:0; max-width:none; container:portal-hero / inline-size; }
.portals-page .breadcrumb { width:min(calc(100% - 2.5rem),1440px); }
.portals-page .portal-panel-label { font:700 .65rem/1.5 var(--font-display); text-transform:uppercase; letter-spacing:.07em; color:var(--portal-slate); margin:0 0 .7rem; }
.portals-page .portal-app { background:var(--paper); border:1px solid #cad5de; border-radius:var(--radius); overflow:hidden; font-family:var(--font-prose); }
.portals-page .portal-app-bar { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.2rem .65rem; background:#243745; color:var(--text-on-dark); padding:.7rem .9rem; font-size:.8rem; line-height:1.5; }
.portals-page .portal-app-bar > span { color:#d6e1e9; font-size:.75rem; }
.portals-page .portal-status { display:inline-block; padding:.15rem .45rem; background:#edf1f4; color:#435b6d; font:500 .75rem/1.6 var(--font-prose); border-radius:2px; }
.portals-page .portal-status-delivered { background:#eaf2ee; color:var(--portal-green); }
.portals-page .portal-document { display:flex; align-items:center; gap:.65rem; padding:.75rem 0; border-block:1px solid var(--line); font:500 .85rem/1.5 var(--font-prose); }
.portals-page .portal-document svg { width:1.3rem; height:1.6rem; flex:none; stroke:var(--blue-deep); stroke-width:1.3; fill:none; }
.portals-page .portal-document small { display:block; margin-top:.1rem; color:var(--portal-slate); font-size:.75rem; font-weight:400; }
/* The existing Caveat face supplies the same handwritten notes as the spreadsheet page. */
@font-face { font-family:'Caveat';src:url('/assets/fonts/Caveat-Variable.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap; }
.portals-page .portal-hero-figure { margin:0; }
.portals-page .portal-hero-app { border-color:#c4d1dd; overflow:visible; }
.portals-page .portal-hero-topbar { border-radius:5px 5px 0 0; }
.portals-page .portal-hero-topbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.4rem 1rem; padding:1rem 1.25rem; background:#243745; color:var(--text-on-dark); }
.portals-page .portal-hero-topbar > span { display:flex; align-items:center; gap:.75rem; }
.portals-page .portal-hero-topbar svg { width:1.5rem; height:1.5rem; fill:none; stroke:currentColor; stroke-width:1.5; }
.portals-page .portal-hero-workspace { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,2fr); align-items:start; }
.portals-page .portal-hero-workspace .portal-hero-shipments { padding:1.1rem .65rem; border-bottom:0; background:#f6f8fa; }
.portals-page .portal-hero-workspace .portal-hero-shipment { grid-template-columns:minmax(0,1fr) auto; gap:.3rem; padding:.7rem .5rem; font-size:.76rem; }
.portals-page .portal-hero-workspace .portal-hero-shipment > strong { grid-column:1 / -1; }
.portals-page .portal-hero-workspace .portal-hero-shipment > span:nth-child(2) { grid-column:1 / -1; }
.portals-page .portal-hero-workspace .portal-hero-shipment > .portal-status { justify-self:start; }
.portals-page .portal-hero-workspace .portal-hero-detail { min-width:0; border-left:1px solid var(--line); padding:1.15rem 1rem 2rem; }
.portals-page .portal-hero-workspace .portal-hero-record-header h3 > span { display:block; }
.portals-page .portal-hero-workspace .portal-hero-content { gap:.75rem; border:0; }
.portals-page .portal-hero-workspace .portal-hero-detail-block { border:1px solid var(--line); border-radius:var(--radius); padding:.75rem .65rem 2.4rem; margin:0; }
.portals-page .portal-hero-workspace .portal-hero-detail-block .portal-document { font-size:.72rem; gap:.45rem; }
.portals-page .portal-hero-workspace .portal-document small { font-size:.65rem; }
.portals-page .portal-hero-workspace .portal-hero-history li { font-size:.72rem; padding:.4rem 0; }
.portals-page .portal-hero-handwritten-summary { font:500 1.6rem/1.25 'Caveat',cursive; color:var(--portal-slate); text-align:center; margin:2rem 0 .35rem; transform:rotate(-2deg); }
.portals-page .portal-hero-topbar strong { font-size:1.15rem; font-weight:600; }
.portals-page .portal-hero-topbar > span { font-size:.8rem; color:#d6e1e9; }
.portals-page .portal-hero-shipments { padding:1rem 1.25rem; background:#f6f8fa; border-bottom:1px solid var(--line); }
.portals-page .portal-hero-shipments h2 { font:700 .7rem/1.5 var(--font-display); text-transform:uppercase; letter-spacing:.06em; margin:0 0 .6rem; }
.portals-page .portal-hero-shipments ul { list-style:none; margin:0; padding:0; }
.portals-page .portal-hero-shipment { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto; align-items:center; gap:.5rem 1rem; padding:.65rem .8rem; font-size:.85rem; }
.portals-page .portal-hero-shipment strong { font-weight:600; }
.portals-page .portal-hero-shipment small { font-size:.65rem; font-weight:400; color:var(--portal-slate); margin-left:.4rem; }
.portals-page .portal-hero-shipment-selected { background:#e8eff5; box-shadow:inset 2px 0 var(--blue-deep); }
.portals-page .portal-hero-detail { padding:1.15rem 1.25rem 1.25rem; }
.portals-page .portal-hero-record-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem; margin-bottom:1rem; }
.portals-page .portal-hero-record-header h3 { font:600 1.2rem/1.5 var(--font-prose); margin:0; }
.portals-page .portal-hero-record-header h3 > span { font-size:.9rem; font-weight:400; color:var(--portal-slate); }
.portals-page .portal-hero-status-area { position:relative; padding:1rem .75rem; margin-bottom:1rem; border:1px solid var(--line); border-radius:var(--radius); }
.portals-page .portal-hero-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; list-style:none; margin:0; padding:1.5rem 0 0; font:400 .75rem/1.5 var(--font-prose); }
.portals-page .portal-hero-progress li { position:relative; padding-top:2rem; text-align:center; }
.portals-page .portal-hero-progress li::before { content:'✓'; position:absolute; top:0; left:calc(50% - .75rem); width:1.5rem; height:1.5rem; display:grid; place-items:center; border-radius:50%; background:#dbe7ef; color:#31594e; z-index:1; }
.portals-page .portal-hero-progress li:last-child::before { color:#fff; background:var(--portal-green); }
.portals-page .portal-hero-progress li:not(:last-child)::after { content:''; position:absolute; left:50%; top:.7rem; width:100%; border-top:2px solid #bdd0df; }
.portals-page .portal-hero-progress strong { display:block; font-weight:600; }
.portals-page .portal-hero-progress time { display:block; font-size:.68rem; color:var(--portal-slate); }
.portals-page .portal-hero-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-top:1px solid var(--line); }
.portals-page .portal-hero-detail-block { padding-top:1rem; min-width:0; }
.portals-page .portal-hero-detail-block + .portal-hero-detail-block { border-left:1px solid var(--line); padding-left:1.2rem; margin-left:1.2rem; }
.portals-page .portal-hero-detail-block h4 { font:600 .9rem/1.5 var(--font-prose); margin:0 0 .65rem; }
.portals-page .portal-hero-detail-block .portal-document { border:0; padding:.4rem 0; font-size:.85rem; }
.portals-page .portal-hero-detail-block .portal-document > span { overflow-wrap:anywhere; }
.portals-page .portal-hero-history { list-style:none; padding:0; margin:0; }
.portals-page .portal-hero-history li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.2rem .5rem; padding:.25rem 0; font:400 .8rem/1.5 var(--font-prose); }
.portals-page .portal-hero-history time { color:var(--portal-slate); }
.portals-page .portal-hero-callout { display:flex; align-items:center; gap:.2rem; color:var(--portal-slate); font:500 1.4rem/1.2 'Caveat',cursive; }
.portals-page .portal-hero-callout svg { width:2rem; height:2.2rem; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.portals-page .portal-hero-note-status { position:absolute; right:-2.6rem; top:-1.25rem; transform:rotate(-7deg); z-index:2; }
.portals-page .portal-hero-note-status svg { margin-top:.2rem; }
.portals-page .portal-hero-documents { position:relative; padding-bottom:2.3rem; }
.portals-page .portal-hero-note-documents { position:absolute; bottom:-1.5rem; left:1.8rem; transform:rotate(-8deg); z-index:2; }
@media (min-width:1101px) {
  .portals-page .portal-hero-figure { padding:1.5rem 3.5rem 2rem .4rem; perspective:1800px; }
  .portals-page .portal-hero-figure > .portal-panel-label { transform:rotate(-2.3deg); transform-origin:left bottom; margin-left:1.2rem; margin-bottom:-.25rem; }
  .portals-page .portal-hero-app { transform:rotateY(-12deg) rotateX(2deg) rotateZ(-.5deg); transform-origin:center; border:3px solid #e0e8ee; border-radius:8px; box-shadow:8px 18px 24px -18px #354e6680, 3px 5px 0 #e5ecf1; }
  .portals-page .portal-hero-figure figcaption { margin-top:.35rem; }
}
.portals-page .portal-hero-figure figcaption { font:400 .75rem/1.65 var(--font-display); color:var(--portal-slate); text-align:center; margin:.35rem 0 0; }
.portals-page .portal-editorial, .portals-page .portal-proof-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4rem; }
.portals-page .portal-editorial h2 { max-width:23ch; }
.portals-page .portal-editorial > div > p:last-child { margin:0; }
.portals-page .portal-situations { margin:0; }
.portals-page .portal-situations > div { border-top:1px solid var(--line); padding:.85rem 0; }
.portals-page .portal-situations dt { font:400 1.15rem/1.4 var(--font-display); }
.portals-page .portal-situations dd { margin:.35rem 0 0; font-size:.9rem; color:var(--ink-soft); }
.portals-page .portal-paths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 3rem; border-block:1px solid var(--line); margin-top:1.8rem; padding:1rem 0; }
.portals-page .portal-paths p { margin:0; font-size:.85rem; }
.portals-page .portal-paths strong { display:block; color:var(--portal-slate); font-weight:600; margin-bottom:.25rem; }
.portals-page .portal-paths span { color:var(--blue-deep); }
.portals-page .portal-closing { margin:1rem 0 0; font-size:.9rem; }
.portals-page .portal-example-intro { max-width:780px; margin-bottom:1.75rem; }
.portals-page .portal-example-intro h2 { max-width:26ch; }
.portals-page .portal-example-figure { margin:0; }
.portals-page .portal-shared-source { position:relative; text-align:center; border-block:1px solid #c7d1da; padding:.7rem 1rem; font:400 .85rem/1.5 var(--font-prose); }
.portals-page .portal-shared-source strong { font-weight:600; }
.portals-page .portal-shared-source span { color:var(--portal-slate); margin-left:1rem; }
.portals-page .portal-shared-source::after { content:''; position:absolute; height:1rem; width:1px; background:#a4b5c3; top:100%; left:50%; }
.portals-page .portal-audiences { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; padding-top:2rem; }
.portals-page .portal-audiences::before { content:''; position:absolute; top:1rem; left:calc((100% - 2.5rem)/6); right:calc((100% - 2.5rem)/6); border-top:1px solid #a4b5c3; }
.portals-page .portal-audience { position:relative; min-width:0; display:flex; flex-direction:column; }
.portals-page .portal-audience::before { content:''; position:absolute; top:-1rem; left:50%; height:.7rem; border-left:1px solid #a4b5c3; }
.portals-page .portal-audience-heading { min-height:6.5rem; }
.portals-page .portal-audience h3 { font-size:1.18rem; margin:0 0 .35rem; max-width:23ch; }
.portals-page .portal-audience-heading p { font-size:.8rem; color:var(--portal-slate); margin:0 0 1rem; }
.portals-page .portal-audience .portal-app { flex:1; }
.portals-page .portal-shipments { list-style:none; margin:0; padding:0; }
.portals-page .portal-shipment { padding:.9rem; border-bottom:1px solid var(--line); }
.portals-page .portal-shipment:last-child { border-bottom:0; }
.portals-page .portal-shipment-featured { background:#f5f8fa; box-shadow:inset 2px 0 var(--blue-deep); }
.portals-page .portal-shipment-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.4rem; }
.portals-page .portal-shipment-heading strong { font-size:.9rem; font-weight:600; }
.portals-page .portal-shipment dl { margin:.5rem 0 0; }
.portals-page .portal-shipment dl > div { display:grid; grid-template-columns:6.6rem minmax(0,1fr); gap:.4rem; padding:.1rem 0; font-size:.78rem; line-height:1.5; }
.portals-page .portal-shipment dt { color:var(--portal-slate); }
.portals-page .portal-shipment dd { margin:0; }
.portals-page .portal-shipment-document { margin-top:.2rem; }
.portals-page .portal-featured-detail { display:grid; grid-template-columns:.8fr .75fr 1.15fr 1fr; gap:1.25rem; padding:1.3rem; margin-top:1.3rem; background:var(--paper); border:1px solid #cad5de; border-radius:var(--radius); align-items:start; }
.portals-page .portal-detail-summary h3 { font-size:1.35rem; margin:0 0 .3rem; }
.portals-page .portal-detail-summary p:last-child { margin:0; font-size:.8rem; }
.portals-page .portal-detail-summary .portal-panel-label { margin-bottom:.25rem; }
.portals-page .portal-detail-answer { border-left:1px solid var(--line); padding-left:1.25rem; }
.portals-page .portal-detail-answer .portal-question { font:400 .9rem/1.5 var(--font-display); margin:0 0 .75rem; color:var(--portal-slate); }
.portals-page .portal-detail-answer .portal-document { padding:0; border:0; }
.portals-page .portal-history-label { font-size:.8rem; margin:0 0 .35rem; }
.portals-page .portal-history-steps { display:flex; flex-wrap:wrap; gap:.25rem .6rem; padding:0; margin:0; list-style:none; font:400 .8rem/1.6 var(--font-prose); }
.portals-page .portal-history-steps li + li::before { content:'→'; color:var(--blue-deep); margin-right:.6rem; }
.portals-page .portal-example-figure figcaption { font-size:.8rem; margin:.6rem 0 0; color:var(--portal-slate); }
.portals-page .portal-useful-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin-top:1.8rem; }
.portals-page .portal-useful-details h3 { font-size:1.1rem; margin:0 0 .5rem; }
.portals-page .portal-useful-details p { font-size:.9rem; margin:0; }
.portals-page .portal-mid-action { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.75rem 2rem; margin-top:1.75rem; padding-top:1rem; border-top:1px solid #c7d1da; font:400 .9rem/1.6 var(--font-prose); }
.portals-page .portal-mid-action strong { font-weight:500; }
.portals-page .portal-proof-layout { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:4rem; }
.portals-page .portal-role { padding-top:1rem; border-top:1px solid var(--line); font-size:.9rem; }
.portals-page .portal-proof-copy > p { margin:0 0 1rem; }
.portals-page .portal-proof-copy > p:last-child { margin-bottom:0; }
.portals-page .portal-proof-copy .portal-proof-relevance { border-top:1px solid var(--line); padding-top:1rem; }
.portals-page .portal-approach-intro { max-width:800px; margin-bottom:1.75rem; }
.portals-page .portal-approach-intro h2 { max-width:27ch; }
.portals-page .portal-system-approach { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem; }
.portals-page .portal-system-approach h3 { margin:0 0 .7rem; }
.portals-page .portal-system-approach p { font-size:.92rem; margin:0 0 1rem; }
.portals-page .portal-system-approach .portal-working-copy { border-left:2px solid var(--blue); padding-left:.8rem; color:var(--portal-slate); font-size:.83rem; }
.portals-page .portal-engagement { gap:1.25rem; margin:1.25rem 0 1.75rem; }
.portals-page .portal-engagement .phase-card { min-height:5.5rem; padding:.75rem 14% .75rem 1rem; justify-content:center; gap:.45rem; background:#dce5eb; clip-path:polygon(0 0,94% 0,100% 50%,94% 100%,0 100%); }
.portals-page .portal-engagement .phase-step:first-child .phase-card { background:#c9d6df; }
.portals-page .portal-engagement .phase-step:last-child .phase-card { background:#e4ebf0; }
.portals-page .portal-engagement .phase-number { font-size:.8rem; color:#435b6d; }
.portals-page .portal-engagement h3 { font-size:1.1rem; margin:0; }
.portals-page .portal-engagement .phase-step > p { font-size:.9rem; margin:.9rem 0 0; }
.portals-page .portal-engagement .phase-step > p > strong { display:block; font-weight:600; margin-bottom:.35rem; }
.portals-page .portal-first-build { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:.6rem 2rem; border-block:1px solid #c7d1da; padding:1.2rem 0; }
.portals-page .portal-first-build h3 { margin:0; }
.portals-page .portal-first-build p { font-size:.92rem; margin:0; }
.portals-page .portal-first-build p:last-child { grid-column:2; font-size:.85rem; color:var(--portal-slate); }
.portals-page .portal-ownership { font:700 .95rem/1.6 var(--font-display); margin:1.25rem 0 0; }
.portals-page .portal-adjacent { font-size:.8rem; margin:.9rem 0 0; }
.portals-page .portal-faq .shell { max-width:880px; }
.portals-page .portal-faq details { border-bottom:1px solid #c9d1da; padding:1rem 0; }
.portals-page .portal-faq summary { font-weight:600; cursor:pointer; line-height:1.6; font-size:1rem; }
.portals-page .portal-faq details p { margin:.8rem 0 0; }
.portals-page .portal-faq summary:focus-visible { outline:2px solid var(--blue-deep); outline-offset:5px; }
.portals-page .contact-copy h2 { max-width:20ch; }
.portals-page .contact-grid > *, .portals-page .contact-form > *, .portals-page .field { min-width:0; }
.portals-page .contact-copy > p { font-size:1rem; }
.portals-page .field-help { font-size:.85rem; }
.portals-page .form-note { font-size:.8rem; }
.portals-page .footer-inner p { font-size:inherit; }
@media (max-width:1100px) {
  .portals-page .portal-hero-note-status { right:-1rem; }
  .portals-page .service-hero-grid { grid-template-columns:1fr; gap:2rem; }
  .portals-page .hero-copy { max-width:740px; }
  .portals-page .service-preview { width:100%; max-width:850px; margin-inline:auto; }
  .portals-page .portal-shipment dl > div { grid-template-columns:1fr; gap:0; }
  .portals-page .portal-shipment dl > div + div { margin-top:.3rem; }
  .portals-page .portal-featured-detail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portals-page .portal-detail-answer:nth-child(3) { border-left:0; padding-left:0; }
}
@media (max-width:980px) {
  .portals-page .service-hero-grid { grid-template-columns:1fr; gap:2rem; }
  .portals-page .hero-copy { max-width:740px; }
  .portals-page .hero h1 { max-width:22ch; }
  .portals-page .service-preview { width:100%; max-width:850px; margin-inline:auto; }
  .portals-page .portal-editorial, .portals-page .portal-proof-layout { gap:2rem; }
  .portals-page .portal-audiences { grid-template-columns:1fr; gap:1.5rem; padding-top:1.5rem; }
  .portals-page .portal-audiences::before, .portals-page .portal-audience::before, .portals-page .portal-shared-source::after { display:none; }
  .portals-page .portal-audience-heading { min-height:0; }
  .portals-page .portal-audience h3 { max-width:none; }
  .portals-page .portal-audience-heading p { margin-bottom:.7rem; }
  .portals-page .portal-shipment dl { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; }
  .portals-page .portal-shipment dl > div + div { margin-top:0; }
  .portals-page .portal-engagement h3 { font-size:1rem; }
}
@media (max-width:760px) {
  .portals-page .section { padding:2.25rem 0; }
  .portals-page .portal-editorial, .portals-page .portal-proof-layout, .portals-page .portal-system-approach { grid-template-columns:1fr; gap:1.5rem; }
  .portals-page .portal-paths, .portals-page .portal-useful-details { grid-template-columns:1fr; gap:1rem; }
  .portals-page .portal-useful-details > div { border-top:1px solid #c7d1da; padding-top:.9rem; }
  .portals-page .portal-engagement { grid-template-columns:1fr; gap:1.25rem; }
  .portals-page .portal-engagement::before { display:none; }
  .portals-page .portal-engagement .phase-card { min-height:0; clip-path:none; padding:.75rem 0 0; border:0; border-top:2px solid var(--blue); background:none!important; flex-direction:row; align-items:baseline; justify-content:flex-start; gap:.8rem; }
  .portals-page .portal-engagement h3 { font-size:1.1rem; }
  .portals-page .portal-engagement .phase-step > p { margin-top:.6rem; }
  .portals-page .portal-first-build { grid-template-columns:1fr; }
  .portals-page .portal-first-build p:last-child { grid-column:auto; }
}
@media (max-width:520px) {
  .portals-page .footer-inner { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; }

  .portals-page .hero h1 { font-size:clamp(2.2rem,8.5vw,2.85rem); }
  .portals-page .hero-actions { align-items:flex-start; }
  .portals-page .hero-actions .button { width:auto; text-align:left; }
  .portals-page .portal-shared-source span { display:block; margin:.3rem 0 0; }
  .portals-page .portal-shipment dl { display:block; }
  .portals-page .portal-shipment dl > div { grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr)); gap:.4rem; }
  .portals-page .portal-shipment dl > div + div { margin-top:.2rem; }
  .portals-page .portal-featured-detail { grid-template-columns:1fr; padding:1rem; gap:1rem; }
  .portals-page .portal-detail-answer, .portals-page .portal-detail-answer:nth-child(3) { border-left:0; padding:1rem 0 0; border-top:1px solid var(--line); }
  .portals-page .portal-detail-answer .portal-question { margin-bottom:.5rem; }
}

@container portal-hero (max-width:40rem) {
  .portals-page .portal-hero-note-status { right:-1rem; }
  .portals-page .portal-hero-workspace { grid-template-columns:1fr; }
  .portals-page .portal-hero-workspace .portal-hero-shipments { border-bottom:1px solid var(--line); }
  .portals-page .portal-hero-workspace .portal-hero-detail { border-left:0; }
  .portals-page .portal-hero-workspace .portal-hero-shipment { grid-template-columns:minmax(0,1fr) auto; }
  .portals-page .portal-hero-workspace .portal-hero-shipment > span:nth-child(2) { grid-column:auto; }
  .portals-page .portal-hero-workspace .portal-hero-shipment > .portal-status { justify-self:end; }
  .portals-page .portal-hero-handwritten-summary { margin-top:1rem; }
}
@container portal-hero (max-width:30rem) {
  .portals-page .portal-hero-shipment { grid-template-columns:minmax(0,1fr) auto; gap:.25rem .5rem; }
  .portals-page .portal-hero-shipment > strong { grid-column:1 / -1; }
  .portals-page .portal-hero-content { grid-template-columns:1fr; }
  .portals-page .portal-hero-detail-block + .portal-hero-detail-block { border-left:0; border-top:1px solid var(--line); margin:1rem 0 0; padding:1rem 0 0; }
  .portals-page .portal-hero-callout { font-size:1.25rem; }
  .portals-page .portal-hero-progress { padding-right:0; }
  .portals-page .portal-hero-status-area { padding-top:2.8rem; }
  .portals-page .portal-hero-note-status { top:-.6rem; right:-1rem; }
  .portals-page .portal-hero-note-status svg { margin-top:0; }
  .portals-page .portal-hero-documents { padding-bottom:2.5rem; }
  .portals-page .portal-hero-workspace .portal-hero-content { row-gap:2rem; }
}

@media (max-width:640px) {
  .portals-page .service-hero-grid, .portals-page .breadcrumb { width:calc(100% - 2rem); }
}

/* Customer portal revision: project evidence and focused first releases. */
.portals-page .portal-work { border-block:1px solid #c7d1da; background:#f2f5f7; }
.portals-page .portal-work-intro { max-width:780px; margin-bottom:2.5rem; }
.portals-page .portal-project { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1.5rem 3.5rem; scroll-margin-top:7rem; }
.portals-page .portal-project + .portal-project { margin-top:3rem; padding-top:3rem; border-top:1px solid #bbc9d4; }
.portals-page .portal-project-number { color:var(--portal-slate); font:500 .75rem/1.5 var(--font-prose); letter-spacing:.06em; text-transform:uppercase; margin:0 0 .6rem; }
.portals-page .portal-project h3 { font-size:clamp(1.8rem,3vw,2.5rem); margin:0 0 .7rem; }
.portals-page .portal-project-descriptor { font:500 1.1rem/1.5 var(--font-display); margin:0 0 1.1rem; max-width:33ch; }
.portals-page .portal-project .portal-role { margin:0; max-width:44ch; }
.portals-page .portal-project-copy p { margin:0 0 1rem; font-size:.95rem; }
.portals-page .portal-project-copy .text-link { font-size:.9rem; }
.portals-page .portal-project-visual { grid-column:1 / -1; min-width:0; margin:0; }
.portals-page .portal-project-visual img { display:block; width:100%; height:auto; border:1px solid #c7d1da; border-radius:6px; }
.portals-page .portal-project-visual a { display:block; }
.portals-page .portal-project-visual a:focus-visible { outline:3px solid var(--blue-deep); outline-offset:5px; }
.portals-page .portal-project-visual figcaption { margin-top:.75rem; color:var(--portal-slate); font-size:.8rem; line-height:1.6; }
.portals-page .portal-breeze-workflow { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2.5rem; padding:1.6rem; background:var(--paper); border:1px solid #c7d1da; border-radius:6px; }
.portals-page .portal-breeze-workflow h4 { font-size:1rem; line-height:1.5; margin:0 0 .75rem; }
.portals-page .portal-breeze-workflow h4 span { display:block; font-size:.9rem; color:var(--portal-slate); font-weight:400; }
.portals-page .portal-breeze-record { align-self:center; position:relative; }
.portals-page .portal-breeze-record-id { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; padding:.8rem 0; border-block:1px solid var(--line); }
.portals-page .portal-breeze-record > p:last-child { font-size:.8rem; margin:.6rem 0 0; color:var(--portal-slate); }
.portals-page .portal-breeze-linked { border-left:1px solid #a4b5c3; padding-left:1.5rem; position:relative; }
.portals-page .portal-breeze-linked::before { content:''; position:absolute; width:1rem; border-top:1px solid #a4b5c3; left:-1rem; top:50%; }
.portals-page .portal-breeze-linked > div + div { border-top:1px solid var(--line); margin-top:1rem; padding-top:1rem; }
.portals-page .portal-breeze-linked h4 { margin-bottom:.3rem; }
.portals-page .portal-breeze-linked p { margin:0; font-size:.85rem; }
.portals-page .portal-breeze-linked span { color:var(--portal-slate); font-size:.75rem; }
.portals-page .portal-audience-heading { min-height:6.5rem; }
.portals-page .portal-shipment { padding:.6rem .8rem; }
.portals-page .portal-shipment dl { margin:.2rem 0 0; }
.portals-page .portal-audience .portal-app { flex:none; }
.portals-page .portal-starting-scopes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; border-block:1px solid #c7d1da; padding:1.25rem 0; }
.portals-page .portal-starting-scopes h3 { margin:0 0 .6rem; font-size:1.2rem; }
.portals-page .portal-starting-scopes p { margin:0; font-size:.92rem; }
.portals-page .portal-scope-note { font-size:.85rem; margin:1rem 0 2rem; max-width:90ch; }
.portals-page .portal-scope-note strong { display:block; margin-bottom:.35rem; }
.portals-page .portal-ownership { font-weight:400; max-width:85ch; }
@media(max-width:980px) {
  .portals-page .portal-project { gap:1.5rem 2rem; }
}
@media(max-width:760px) {
  .portals-page .portal-audience-heading { min-height:0; }
  .portals-page .portal-shipment dl { display:block; }
  .portals-page .portal-shipment dl > div { grid-template-columns:6.6rem minmax(0,1fr); }
}
@media(max-width:640px) {
  .portals-page .portal-project, .portals-page .portal-starting-scopes { grid-template-columns:1fr; gap:1.5rem; }
  .portals-page .portal-project + .portal-project { margin-top:2rem; padding-top:2rem; }
  .portals-page .portal-breeze-workflow { grid-template-columns:1fr; gap:1.25rem; padding:1.1rem; }
  .portals-page .portal-breeze-linked { border-left:0; border-top:1px solid #a4b5c3; padding:1rem 0 0; }
  .portals-page .portal-breeze-linked::before { display:none; }
  .portals-page .portal-starting-scopes > div + div { padding-top:1.25rem; border-top:1px solid #c7d1da; }
}

.portals-page .portal-fss-visual { width:100%; max-width:1063px; justify-self:center; }

@media(max-width:640px) {
  .portals-page .portal-fss-visual { max-width:379px; }
  .portals-page .portal-fss-visual img { aspect-ratio:379 / 866; }
}

/* Focused portal refinement: parallel record scopes and the engagement hierarchy. */
.portals-page .portal-scope-example .portal-audiences { padding-top:0; gap:1.5rem; }
.portals-page .portal-scope-example .portal-audiences::before,
.portals-page .portal-scope-example .portal-audience::before { display:none; }
.portals-page .portal-scope-example .portal-audience-heading { border-top:1px solid #a4b5c3; padding-top:1rem; min-height:6.8rem; }
.portals-page .portal-scope-example .portal-audience h3 { max-width:none; font-size:1.1rem; }
.portals-page .portal-scope-example .portal-audience-heading p { font-size:.8rem; margin:0 0 .9rem; }
.portals-page .portal-scope-records { list-style:none; padding:0; margin:0; }
.portals-page .portal-scope-record { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.8rem; padding:.8rem; border-bottom:1px solid #ced8e0; }
.portals-page .portal-record-id { font:700 1rem/1.4 var(--font-display); white-space:nowrap; padding:.2rem .4rem; border:1px solid #a4b5c3; background:#f8fafb; color:#304b60; }
.portals-page .portal-record-context { font-size:.8rem; line-height:1.55; }
.portals-page .portal-record-context > span { display:block; }
.portals-page .portal-record-context > span + span { color:var(--portal-slate); }
.portals-page .portal-scope-record[data-record="SR-104"] { background:#e5edf2; box-shadow:inset 2px 0 #526a7d; }
.portals-page .portal-scope-record[data-record="SR-104"] .portal-record-id { background:#304b60; border-color:#304b60; color:#fff; }
.portals-page .portal-scope-example figcaption { margin-top:1rem; max-width:85ch; }
.portals-page .portal-scope-example figcaption strong { font-weight:600; }
.portals-page .portal-group-title { font:700 .8rem/1.5 var(--font-display); letter-spacing:.04em; color:var(--portal-slate); margin:0 0 .8rem; }
.portals-page .portal-starting-scopes { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:1.5rem; padding:1.3rem 0; border-top:1px solid #c7d1da; border-bottom:0; align-items:start; }
.portals-page .portal-starting-scopes h4 { margin:0 0 .6rem; font:700 1.35rem/1.4 var(--font-display); }
.portals-page .portal-scope-or { align-self:center; color:var(--portal-slate); font:400 1rem/1.5 var(--font-display); }
.portals-page .portal-scope-note { margin:.2rem 0 0; }
.portals-page .portal-sequence-title { border-top:1px solid #c7d1da; padding-top:1.7rem; margin-top:1.7rem; }
/* Portal engagement reuses the spreadsheet page's layered geometry and mobile sequence. */
.portals-page .portal-engagement-sequence { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; list-style:none; padding:0; margin:1rem 0 1.6rem; isolation:isolate; }
.portals-page .portal-engagement-sequence > li { --phase-surface:var(--blue); --phase-ink:var(--ink); position:relative; min-width:0; display:grid; grid-template-rows:auto 1fr; }
.portals-page .portal-engagement-sequence > li:first-child { --phase-surface:#304551; --phase-ink:var(--text-on-dark); }
.portals-page .portal-engagement-sequence > li:last-child { --phase-surface:#e3eaf0; }
.portals-page .portal-step-phase { position:relative; isolation:isolate; width:100%; padding:1.25rem 1rem 1.25rem 2.4rem; color:var(--phase-ink); }
.portals-page .portal-engagement-sequence > li:first-child .portal-step-phase { padding-left:1.25rem; }
.portals-page .portal-engagement-sequence > li:last-child .portal-step-phase { padding-right:2.4rem; }
.portals-page .portal-step-heading { display:grid; gap:.65rem; }
.portals-page .portal-step-number { font:700 1.6rem/1 var(--font-display); color:var(--phase-ink); }
.portals-page .portal-engagement-sequence > li:first-child .portal-step-number { color:#e3ebf1; }
.portals-page .portal-step-heading h4 { font:700 .9rem/1.45 var(--font-display); letter-spacing:.035em; text-transform:uppercase; margin:0; color:var(--phase-ink); }
.portals-page .portal-step-detail { padding:1.15rem 1.25rem; border-bottom:1px solid var(--line); }
.portals-page .portal-engagement-sequence > li + li .portal-step-detail { border-left:1px solid var(--line); }
.portals-page .portal-engagement-sequence .portal-step-detail p { font-size:.9rem; font-weight:400; line-height:1.8; margin:0; color:var(--ink-soft); }
.portals-page .portal-engagement-sequence p > strong { font-weight:600; }
@media(min-width:62.001rem) {
  .portals-page .portal-engagement-sequence > li { grid-template-rows:subgrid; grid-row:span 2; }
  .portals-page .portal-step-phase::before { content:''; position:absolute; inset:0 -1.15rem 0 0; z-index:-1; background:var(--phase-surface); clip-path:polygon(0 0,calc(100% - 1.4rem) 0,100% 50%,calc(100% - 1.4rem) 100%,0 100%,1.4rem 50%); }
  .portals-page .portal-engagement-sequence > li:first-child .portal-step-phase::before { clip-path:polygon(0 0,calc(100% - 1.4rem) 0,100% 50%,calc(100% - 1.4rem) 100%,0 100%); }
  .portals-page .portal-engagement-sequence > li:last-child .portal-step-phase::before { right:0; }
}
@media(max-width:62rem) {
  .portals-page .portal-engagement-sequence { grid-template-columns:minmax(0,1fr); }
  .portals-page .portal-engagement-sequence > li { --phase-ink:var(--ink); display:block; border-left:1px solid var(--blue-deep); padding:0 0 1.5rem 1.1rem; }
  .portals-page .portal-engagement-sequence > li:first-child { --phase-ink:var(--ink); }
  .portals-page .portal-engagement-sequence > li:last-child { padding-bottom:0; }
  .portals-page .portal-engagement-sequence > li::before { content:''; position:absolute; left:-.2rem; top:.4rem; width:.35rem; height:.35rem; background:var(--portal-slate); }
  .portals-page .portal-engagement-sequence .portal-step-phase,
  .portals-page .portal-engagement-sequence > li:first-child .portal-step-phase,
  .portals-page .portal-engagement-sequence > li:last-child .portal-step-phase { padding:0; }
  .portals-page .portal-step-heading { grid-template-columns:1.7rem minmax(0,1fr); gap:.65rem; align-items:baseline; }
  .portals-page .portal-engagement-sequence .portal-step-number,
  .portals-page .portal-engagement-sequence > li:first-child .portal-step-number { font-size:1.15rem; line-height:1.2; color:var(--portal-slate); }
  .portals-page .portal-step-heading h4 { font-size:.88rem; }
  .portals-page .portal-engagement-sequence > li:first-child h4 { font-weight:700; }
  .portals-page .portal-engagement-sequence .portal-step-detail,
  .portals-page .portal-engagement-sequence > li + li .portal-step-detail { padding:.8rem 0 0 2.35rem; border:0; }
}
@media(forced-colors:active) {
  .portals-page .portal-engagement-sequence > li { --phase-ink:CanvasText; }
  .portals-page .portal-step-phase { outline:1px solid CanvasText; outline-offset:-1px; }
  .portals-page .portal-step-phase::before { background:Canvas; }
}
@media(max-width:980px) {
  .portals-page .portal-scope-example .portal-audiences { gap:1rem; }
  .portals-page .portal-scope-example .portal-audience-heading { min-height:0; }
  .portals-page .portal-record-id { justify-self:start; }
}
@media(max-width:760px) {
  .portals-page .portal-scope-example .portal-audiences { gap:1.5rem; }
  .portals-page .portal-scope-example .portal-audience-heading { min-height:0; }
  .portals-page .portal-scope-record { grid-template-columns:auto minmax(0,1fr); gap:.8rem; }
}
@media(max-width:640px) {
  .portals-page .portal-starting-scopes { grid-template-columns:1fr; gap:.9rem; }
  .portals-page .portal-scope-or { display:flex; align-items:center; gap:.8rem; }
  .portals-page .portal-scope-or::before,
  .portals-page .portal-scope-or::after { content:''; height:1px; flex:1; background:#d3dce3; }
  .portals-page .portal-starting-scopes > div + div { padding:0; border:0; }
}

@media(min-width:1101px) {
  .portals-page .portal-scope-example .portal-audience-heading { min-height:5.2rem; }
}

/* Cedar Works reference: quiet panel dividers, counts, and clear record labels. */
.portals-page .portal-scope-example .portal-audiences { gap:0; }
.portals-page .portal-scope-example .portal-audience { display:grid; grid-template-rows:subgrid; grid-row:span 2; padding:0 1.15rem .4rem; border-left:1px solid #cbd9e4; }
.portals-page .portal-scope-example .portal-audience:last-child { border-right:1px solid #cbd9e4; }
.portals-page .portal-scope-example .portal-audience-heading { min-height:0; padding:1rem .35rem 0; border-color:#a8bdce; }
.portals-page .portal-audience-title { display:flex; align-items:flex-start; justify-content:space-between; gap:.65rem; }
.portals-page .portal-scope-example .portal-audience-title h3 { min-width:0; font:700 1.15rem/1.35 var(--font-display); margin:0; }
.portals-page .portal-record-count { flex:none; padding:.3rem .7rem; border-radius:2rem; background:#e6eff5; color:#405f77; font:500 .8rem/1.5 var(--font-prose); white-space:nowrap; }
.portals-page .portal-scope-example .portal-audience-heading p { margin:.3rem 0 1rem; font-size:.85rem; }
.portals-page .portal-scope-example .portal-scope-records { align-self:start; }
.portals-page .portal-scope-example .portal-scope-record { gap:1.2rem; padding:.65rem .8rem; border-color:#d5e1e9; }
.portals-page .portal-scope-example .portal-record-id { min-width:5.4rem; padding:.45rem .65rem; border-radius:4px; text-align:center; border-color:#94aabd; font-size:1.05rem; }
.portals-page .portal-scope-example .portal-record-context { font-size:.85rem; }
.portals-page .portal-scope-example .portal-scope-record[data-record="SR-104"] { box-shadow:none; border-bottom:0; border-radius:4px; background:#e7f0f6; margin-bottom:.4rem; }
.portals-page .portal-scope-example .portal-scope-record[data-record="SR-104"] .portal-record-id { background:#35586e; border-color:#35586e; }
.portals-page .portal-scope-example figcaption { display:flex; align-items:flex-start; gap:.8rem; border-top:1px solid #cbd9e4; padding:.95rem .45rem 0; margin-top:1.3rem; max-width:none; font-size:.85rem; }
.portals-page .portal-scope-info { width:1.4rem; height:1.4rem; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; }
.portals-page .portal-scope-info-dot { fill:currentColor; stroke:none; }
@media(max-width:1100px) and (min-width:981px) {
  .portals-page .portal-scope-example .portal-audience { padding-inline:.8rem; }
  .portals-page .portal-audience-title { gap:.4rem; }
  .portals-page .portal-scope-example .portal-scope-record { gap:.65rem; padding-inline:.5rem; }
}
@media(max-width:980px) {
  .portals-page .portal-scope-example .portal-audiences { gap:1.5rem; }
  .portals-page .portal-scope-example .portal-audience { display:block; grid-row:auto; padding:0; border:0; }
  .portals-page .portal-scope-example .portal-audience:last-child { border-right:0; }
  .portals-page .portal-scope-example .portal-audience-heading { padding-inline:.35rem; }
}
@media(max-width:400px) {
  .portals-page .portal-audience-title { gap:.5rem; }
  .portals-page .portal-scope-example .portal-audience-title h3 { font-size:1.05rem; }
  .portals-page .portal-record-count { padding:.25rem .5rem; font-size:.75rem; }
  .portals-page .portal-scope-example .portal-scope-record { gap:.7rem; padding-inline:.65rem; }
  .portals-page .portal-scope-example .portal-record-id { min-width:5rem; }
}

@media(max-width:400px) {
  .portals-page .portal-scope-example .portal-audience-title { flex-wrap:wrap; }
}

/* Four editorial beats around the unchanged portal engagement strip. */
.portals-page .portal-release-choices { background:#f5f7f9; padding:1.25rem 1.75rem; border-top:1px solid #c7d1da; }
.portals-page .portal-release-choices > .portal-group-title { font-size:1rem; letter-spacing:0; color:var(--ink); margin:0 0 1.2rem; }
.portals-page .portal-release-choices .portal-starting-scopes { border:0; padding:0; gap:1.75rem; }
.portals-page .portal-release-choices .portal-scope-note { margin:1rem 0 0; }
.portals-page .portal-sequence-title { border:0; padding:0; margin:2.5rem 0 1rem; }
.portals-page #how-projects-start .portal-ownership { border-left:2px solid #8a9eae; padding:.15rem 0 .15rem 1rem; margin:1.6rem 0 0; font-weight:500; }
.portals-page #how-projects-start .portal-adjacent { font-size:.78rem; color:var(--portal-slate); margin:1.2rem 0 0; }
.portals-page #how-projects-start .portal-adjacent a { color:inherit; font-weight:400; }
.portals-page #how-projects-start .portal-mid-action { margin-top:2rem; padding-top:0; border:0; }
.portals-page #how-projects-start .portal-mid-action .text-link { font:700 1.05rem/1.5 var(--font-display); }
@media(max-width:640px) {
  .portals-page .portal-release-choices { padding:1.25rem 1rem; }
  .portals-page .portal-release-choices .portal-starting-scopes { gap:1rem; }
  .portals-page .portal-sequence-title { margin-top:2rem; }
}

/* Fit02 reference: concrete starting views and quiet phase deliverables. */
.portals-page .portal-release-choices .portal-starting-scopes { align-items:stretch; }
.portals-page .portal-starting-scopes > div { display:flex; flex-direction:column; min-width:0; }
.portals-page .portal-release-choices .portal-scope-or { align-self:stretch; display:flex; flex-direction:column; gap:.8rem; align-items:center; }
.portals-page .portal-release-choices .portal-scope-or::before,
.portals-page .portal-release-choices .portal-scope-or::after { content:''; width:1px; flex:1; background:#cbd6df; }
.portals-page .portal-release-preview { margin:.6rem 0 .5rem; padding:1rem; border:1px solid #d0dce5; border-radius:3px; background:#fff; color:#243745; font:.85rem/1.45 var(--font-prose); }
.portals-page .portal-preview-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem; }
.portals-page .portal-preview-top > strong,.portals-page .portal-preview-payment > strong { font:700 1.15rem/1.4 var(--font-display); }
.portals-page .portal-preview-status { padding:.2rem .65rem; background:#dcf4e5; color:#225a3d; border-radius:4px; font-size:.75rem; font-weight:600; }
.portals-page .portal-preview-status--due { background:#fff0cf; color:#59441f; }
.portals-page .portal-preview-customer { margin-top:.25rem; }
.portals-page .portal-release-preview small { display:block; color:#526674; font-size:.78rem; }
.portals-page .portal-release-preview svg,.portals-page .portal-phase-artifact svg { width:1.25rem; height:1.5rem; flex-shrink:0; fill:none; stroke:#526e84; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.portals-page .portal-preview-document { display:flex; gap:.75rem; align-items:center; margin-top:1rem; padding-top:.85rem; border-top:1px solid #d0dce5; }
.portals-page .portal-preview-document > span:first-of-type { flex:1; overflow-wrap:anywhere; }
.portals-page .portal-preview-link { color:#315c7c; text-decoration:underline; text-underline-offset:.15em; }
.portals-page .portal-preview-payment { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem; margin:.5rem 0; }
.portals-page .portal-preview-pay { background:#304551; color:#f6f8f9; padding:.5rem 1.7rem; font-size:.8rem; font-weight:700; border-radius:2px; }
.portals-page .portal-preview-invoice { display:flex; gap:.6rem; align-items:center; }
.portals-page .portal-starting-scopes .portal-preview-caption { margin-top:auto; font-size:.8rem; font-weight:600; }
.portals-page .portal-release-choices .portal-scope-note { border-top:1px solid #cbd6df; padding-top:1.1rem; max-width:none; }
.portals-page .portal-step-heading { gap:.25rem; }
.portals-page .portal-phase-cue { font:400 .73rem/1.4 var(--font-display); text-transform:uppercase; color:var(--phase-ink); }
.portals-page .portal-phase-artifact { padding:1rem; margin:0 0 1rem; border:1px solid #d0dce5; border-radius:3px; min-height:12rem; background:#fcfdfe; color:#344b5b; }
.portals-page .portal-phase-artifact h5 { margin:0 0 .85rem; font:700 .9rem/1.4 var(--font-display); color:#243745; }
.portals-page .portal-fit-summary { font:.76rem/1.4 var(--font-prose); }
.portals-page .portal-fit-summary ul { margin:0; padding-left:1rem; }
.portals-page .portal-artifact-lines { display:grid; gap:.4rem; margin:.3rem 0 .8rem; }
.portals-page .portal-artifact-lines i,.portals-page .portal-artifact-rows i { display:block; height:.4rem; border-radius:3px; background:#dce2e7; }
.portals-page .portal-artifact-lines i:last-child { width:72%; }
.portals-page .portal-artifact-rows { display:grid; gap:.6rem; }
.portals-page .portal-artifact-rows > div { display:grid; grid-template-columns:1.25rem minmax(0,1fr) minmax(1rem,1fr); gap:.65rem; align-items:center; font:.78rem/1.4 var(--font-prose); }
@media(min-width:62.001rem) {
  .portals-page .portal-release-choices .portal-starting-scopes { row-gap:.35rem; }
  .portals-page .portal-starting-scopes > div { display:grid; grid-template-rows:subgrid; grid-row:span 4; }
  .portals-page .portal-scope-or { grid-row:span 4; }
  .portals-page .portal-release-preview { margin-top:.5rem; }
}
@media(max-width:62rem) {
  .portals-page .portal-phase-cue { grid-column:2; }
  .portals-page .portal-phase-artifact { min-height:0; max-width:28rem; }
}
@media(max-width:640px) {
  .portals-page .portal-release-choices .portal-scope-or { flex-direction:row; }
  .portals-page .portal-release-choices .portal-scope-or::before,
  .portals-page .portal-release-choices .portal-scope-or::after { width:auto; height:1px; }
  .portals-page .portal-release-preview { padding:.8rem; }
  .portals-page .portal-preview-pay { padding:.45rem .8rem; }
  .portals-page .portal-phase-artifact { padding:.8rem; }
}

/* Focused-release examples: wording and quiet divider from customer-task.png. */
.portals-page .portal-release-choices .portal-scope-or { gap:0; }
.portals-page .portal-starting-scopes .portal-preview-caption { font-weight:400; color:var(--portal-slate); }

/* Breeze03: operational records feed an illustrative shipment-detail interface. */
.portals-page .portal-breeze-project .portal-role { border-top:1px solid #cbd6df; padding-top:1rem; }
.portals-page .breeze-scene { display:grid; grid-template-columns:minmax(0,1fr) 2.5rem minmax(0,4.4fr); align-items:center; gap:.7rem; padding:1.2rem; background:#fcfdfe; border:1px solid #c7d1da; border-radius:5px; }
.portals-page .breeze-origin { padding:1.1rem; background:#f5f7f9; border:1px solid #d0dce5; border-radius:3px; }
.portals-page .breeze-origin h4 { margin:0 0 .5rem; font:700 .9rem/1.4 var(--font-display); }
.portals-page .breeze-origin p { margin:0; font-size:.82rem; line-height:1.6; }
.portals-page .breeze-origin ul { list-style:none; margin:1.25rem 0 0; padding:1rem 0 0; border-top:1px solid #cbd8e2; display:grid; gap:.85rem; font:.8rem/1.5 var(--font-prose); color:#526e84; }
.portals-page .breeze-scene-arrow { text-align:center; font-size:2rem; color:#526e84; }
.portals-page .breeze-screen { border:1px solid #cbd8e2; border-radius:4px; padding:.4rem; min-width:0; background:#f5f7f9; }
.portals-page .breeze-screen-bar { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.7rem; padding:.7rem .85rem; border:1px solid #d5e0e8; border-bottom:0; font:.72rem/1.5 var(--font-prose); color:#344b5b; }
.portals-page .breeze-screen-bar > strong { font:700 1.25rem/1.4 var(--font-display); color:var(--ink); }
.portals-page .breeze-screen-account { margin-left:auto; color:#526e84; }
.portals-page .breeze-screen-account > span { margin-left:.7rem; }
.portals-page .breeze-screen-body { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,1fr); gap:1.1rem; padding:.85rem; background:#fff; border:1px solid #e0e7ed; min-width:0; }
.portals-page .breeze-crumb { font-size:.7rem; margin:0 0 1.2rem; }
.portals-page .breeze-crumb span,.portals-page .breeze-file-title { text-decoration:underline; text-underline-offset:.15em; color:#456d8c; }
.portals-page .breeze-shipment { min-width:0; }
.portals-page .breeze-shipment-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.75rem; }
.portals-page .breeze-shipment-header h4 { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; margin:0; font:700 1.5rem/1.4 var(--font-display); }
.portals-page .breeze-delivered { font:600 .75rem/1.4 var(--font-prose); color:#22614e; background:#e0f3ec; padding:.3rem .55rem; border-radius:2px; }
.portals-page .breeze-shipment-header p { font-size:.82rem; font-weight:600; margin:.4rem 0 0; }
.portals-page .breeze-dates { display:flex; flex-wrap:wrap; gap:1rem; margin:0; font:.7rem/1.6 var(--font-prose); }
.portals-page .breeze-dates dt { color:#526e84; }
.portals-page .breeze-dates dd { margin:0; }
.portals-page .breeze-screen-tabs { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; border-bottom:1px solid #d0dce5; margin:1.1rem 0; font:.75rem/1.5 var(--font-prose); color:#526e84; }
.portals-page .breeze-screen-tabs span { padding:.4rem 0; }
.portals-page .breeze-screen-tabs span:first-child { border-bottom:2px solid #456d8c; color:#315574; font-weight:600; }
.portals-page .breeze-shipment-fields { display:grid; gap:.55rem; margin:0; font:.72rem/1.5 var(--font-prose); }
.portals-page .breeze-shipment-fields > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:.75rem; }
.portals-page .breeze-shipment-fields dt { color:#526e84; }
.portals-page .breeze-shipment-fields dd { margin:0; }
.portals-page .breeze-screen-sidebar { display:grid; gap:.8rem; }
.portals-page .breeze-screen-sidebar > div { border:1px solid #d0dce5; padding:1rem; border-radius:3px; }
.portals-page .breeze-screen-sidebar h4 { font:700 .85rem/1.4 var(--font-display); margin:0 0 .85rem; }
.portals-page .breeze-file { display:flex; gap:.7rem; align-items:center; font:.74rem/1.5 var(--font-prose); }
.portals-page .breeze-file + .breeze-file { margin-top:.8rem; }
.portals-page .breeze-file > span { min-width:0; overflow-wrap:anywhere; }
.portals-page .breeze-file svg { width:1.1rem; height:1.4rem; flex-shrink:0; fill:none; stroke:#526e84; stroke-width:1.7; }
.portals-page .breeze-file small { display:block; font-size:inherit; color:#526e84; }
.portals-page .breeze-screen-history { display:grid; gap:.85rem; margin:0; font:.7rem/1.5 var(--font-prose); }
.portals-page .breeze-screen-history > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:.6rem; }
.portals-page .breeze-screen-history dd { margin:0; }
@media(max-width:1100px) {
 .portals-page .breeze-scene { grid-template-columns:minmax(0,1fr); gap:1rem; }
 .portals-page .breeze-origin ul { grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:.8rem; padding-top:.8rem; }
 .portals-page .breeze-scene-arrow { display:none; }
}
@media(max-width:640px) {
 .portals-page .breeze-scene { padding:.75rem; }
 .portals-page .breeze-origin { padding:.85rem; }
 .portals-page .breeze-origin ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .portals-page .breeze-screen-bar { gap:.5rem 1rem; }
 .portals-page .breeze-screen-account { width:100%; margin:0; }
 .portals-page .breeze-screen-body { grid-template-columns:minmax(0,1fr); padding:.7rem; }
 .portals-page .breeze-screen-sidebar > div { padding:.8rem; }
 .portals-page .breeze-shipment-fields > div { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
 .portals-page .breeze-screen-tabs { gap:.4rem .8rem; }
}

/* Info01: everyday requests, with today's response alongside the portal outcome. */
.portals-page #when-it-fits .portal-editorial { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:4.5rem; }
.portals-page #when-it-fits .portal-closing { border-left:2px solid #607c92; padding:.2rem 0 .2rem 1.1rem; margin:2rem 0 0; font:500 1rem/1.6 var(--font-prose); color:var(--ink); }
.portals-page .portal-situations > div { padding:1rem 0 1.6rem; }
.portals-page .portal-situations dt { font-size:1.3rem; }
.portals-page .portal-situations .portal-situation-comparison { display:grid; grid-template-columns:minmax(0,1fr) 2rem minmax(0,1fr); gap:1.2rem; margin:1rem 0 0; }
.portals-page .portal-situation-comparison strong { display:block; font:700 .7rem/1.5 var(--font-display); letter-spacing:.04em; text-transform:uppercase; color:#42566b; }
.portals-page .portal-situation-comparison p { font-size:.9rem; line-height:1.6; margin:.4rem 0 0; }
.portals-page .portal-situation-arrow { align-self:center; font-size:1.8rem; color:#526e84; }
@media(max-width:1100px) {
 .portals-page #when-it-fits .portal-editorial { gap:2rem; }
 .portals-page .portal-situations .portal-situation-comparison { gap:.7rem; grid-template-columns:minmax(0,1fr) 1.2rem minmax(0,1fr); }
}
@media(max-width:980px) {
 .portals-page #when-it-fits .portal-editorial { grid-template-columns:minmax(0,1fr); }
 .portals-page #when-it-fits .portal-editorial h2 { max-width:27ch; }
}
@media(max-width:480px) {
 .portals-page .portal-situations .portal-situation-comparison { grid-template-columns:minmax(0,1fr); gap:1rem; }
 .portals-page .portal-situation-arrow { display:none; }
 .portals-page .portal-situation-comparison > div:last-child { border-left:2px solid #cbd8e2; padding-left:.85rem; }
}

/* Hero six: deliberate headline lines and a complete, elevated customer view. */
.portals-page .portal-hero-workspace { align-items:stretch; }
.portals-page .portal-hero-figure figcaption { margin-top:2rem; }
.portals-page .portal-hero-workspace .portal-hero-detail-block { padding-bottom:2.4rem; }
.portals-page .portal-experience-line a strong { font-weight:650; }
@media(min-width:1101px) {
 .portals-page .service-hero-grid { width:min(calc(100% - 7.5vw),1560px); grid-template-columns:minmax(0,40fr) minmax(0,60fr); gap:2rem; }
 .portals-page .hero h1 { font-size:clamp(2.6rem,3.8vw,4rem); max-width:none; line-height:1.12; }
 .portals-page .hero h1 { white-space:pre-line; }
 .portals-page .hero-lede { font-size:1.05rem; }
 .portals-page .portal-hero-figure { padding:1.5rem 1.8rem 1rem .4rem; }
 .portals-page .portal-hero-workspace .portal-hero-detail { padding:1.15rem 1rem 2rem; }
 .portals-page .portal-hero-status-area { padding:1.3rem .75rem; }
 .portals-page .portal-hero-workspace .portal-hero-detail-block { min-height:11.5rem; }
 .portals-page .portal-hero-note-status { right:-2.3rem; }
 .portals-page .portal-hero-figure figcaption { margin-top:2rem; }
}
@container portal-hero (max-width:30rem) {
 .portals-page .portal-hero-note-status { right:0; max-width:100%; }
 .portals-page .portal-hero-note-documents { left:.5rem; right:0; max-width:calc(100% - .5rem); }
 .portals-page .portal-hero-callout > span { min-width:0; }
}

/* Final hero polish: four-percent desktop enlargement within existing outer bounds. */
.portals-page .portal-experience-line a strong { font-weight:700; color:#344f65; }
@media(min-width:1101px) {
 .portals-page .portal-hero-app { transform:rotateY(-12deg) rotateX(2deg) rotateZ(-.5deg) scale(1.04); }
 .portals-page .portal-hero-figure > .portal-panel-label { position:relative; z-index:1; margin-left:.3rem; margin-bottom:-.65rem; transform:translateY(-.55rem) rotate(-2.3deg); color:#425d73; }
 .portals-page .portal-hero-figure { padding-bottom:1.5rem; }
}

/* Final page rhythm: retain project hierarchy and connect FAQ to contact. */
.portals-page .portal-project + .portal-project { padding-top:2.5rem; }
.portals-page .section.portal-faq { padding-bottom:1.5rem; }
.portals-page .contact-section { padding-top:clamp(2.5rem,4vw,3.5rem); }
@media(max-width:980px) {
 .portals-page .portal-project + .portal-project { padding-top:1.75rem; }
}

/* The named developer's portrait sits with the introduction, without changing its type hierarchy. */
.services-page .service-person { display:flex; align-items:center; gap:.75rem; }
.services-page .service-person > span { min-width:0; }
.services-page .service-person__portrait { display:block; flex:0 0 48px; width:48px; height:48px; border:1px solid #c9d1da; border-radius:50%; object-fit:cover; }
