:root {
  --ink: #202020;
  --muted: #666;
  --line: #dedede;
  --soft: #f7f7f7;
  --navy: #242424;
  --blue: #a31318;
  --gold: #c51b22;
  --accent: #c51b22;
}

.editorial { font-size: 16px; line-height: 1.85; }
.editorial h1, .editorial h2, .editorial h3, .editorial a { letter-spacing: 0; }
.editorial a:focus-visible, .editorial input:focus-visible, .editorial button:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.editorial [hidden] { display: none !important; }
.editorial .site-shell { display: flex; flex-direction: column; min-height: 100vh; }
.editorial .page-main { flex: 1; }
.basic-work-page .toc { top: 16px; }
.office-header { background: #fff; border-bottom: 1px solid var(--line); }
.office-header-inner { max-width: 1280px; margin: auto; min-height: 100px; padding: 20px 36px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.office-brand { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.office-brand img { width: 90px; height: 48px; object-fit: contain; }
.office-brand span { font-size: 20px; font-weight: 600; }
.office-nav { display: flex; align-items: center; gap: 28px; }
.office-nav a { position: relative; font-size: 13px; padding: 12px 0; white-space: nowrap; }
.office-nav a.active::after { content: ''; position: absolute; height: 2px; left: 0; right: 0; bottom: 3px; background: var(--accent); }
.office-nav a:hover, .office-footer a:hover, .quiet-link:hover { color: var(--accent); }
.office-container { width: min(1000px, calc(100% - 80px)); margin: 0 auto; }
.office-hero { position: relative; min-height: 510px; max-width: 1440px; margin: auto; display: grid; align-items: center; overflow: hidden; background: #fafafa; }
.office-hero-photo { position: absolute; top: 0; bottom: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.office-hero-inner { position: relative; width: min(480px, calc(52% - 64px)); margin: 0 0 0 max(40px, calc((100% - 1120px) / 2)); padding: 60px 0; }
.office-hero h1 { --heading-gradient: linear-gradient(to right, var(--accent), #ee8b26 55%, #eacb3c); font-size: 36px; line-height: 1.55; font-weight: 600; margin: 0 0 30px; }
.office-hero h1::after { display: block; content: ''; width: 2.1em; height: 3px; margin: 0.25em 0 0; background: var(--heading-gradient); }
.hero-message { font-size: 27px; font-weight: 600; margin-bottom: 22px; }
.hero-description { font-size: 16px; line-height: 1.9; margin-bottom: 28px; }
.office-cta { display: inline-flex; align-items: center; gap: 32px; padding: 12px 24px; min-height: 50px; background: #c30c15; color: #fff; border-radius: 2px; font-size: 15px; }
.office-cta:hover { background: #a50b12; }
.office-cta span { font: 26px/1 Georgia, serif; }
.office-section { padding-top: 44px; }
.ruled-heading { font-size: 22px; font-weight: 500; padding-bottom: 16px; margin-bottom: 0; border-bottom: 1px solid #aaa; }
.service-rows a { display: grid; grid-template-columns: 64px 190px 1fr 24px; align-items: center; gap: 20px; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.service-number { font: 30px/1.3 Georgia, serif; color: var(--accent); }
.service-rows h3 { font-size: 24px; margin: 0; font-weight: 500; }
.service-rows p { margin: 0; font-size: 15px; line-height: 1.8; }
.row-arrow { font: 27px/1 Georgia, serif; text-align: right; }
.service-rows a:hover, .toolbox-links a:hover, .document-row:hover { background: #f8f8f8; }
.toolbox-section { padding-bottom: 80px; }
.toolbox-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 24px 0; }
.toolbox-links a { padding: 8px 24px; display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.toolbox-links a + a { border-left: 1px solid var(--line); }
.toolbox-links strong { display: block; font-size: 19px; font-weight: 500; }
.toolbox-links small { display: block; font-size: 13px; color: #555; }
.quiet-link { display: block; width: fit-content; margin-left: 24px; font-size: 13px; color: #666; }
.office-footer { background: #131313; color: #eee; padding: 42px 36px; }
.office-footer-inner { max-width: 1200px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.footer-name { font-size: 20px; }
.office-footer p { margin: 10px 0 0; font-size: 12px; line-height: 1.8; color: #ccc; }
.footer-right { text-align: right; }
.footer-right nav { display: flex; flex-wrap: wrap; gap: 24px; font-size: 12px; margin-bottom: 24px; }
.footer-right small { font-size: 12px; color: #ccc; }
.data-editorial .page-hero, .company-editorial .page-hero { padding: 76px 0 32px; text-align: center; background: #fff; border: 0; }
.data-editorial .page-hero h1, .company-editorial .page-hero h1 { font-size: 42px; font-weight: 500; margin-bottom: 22px; }
.data-editorial .page-hero h1::after, .company-editorial .page-hero h1::after { content: ''; display: block; width: 30px; height: 2px; background: var(--accent); margin: 22px auto 0; }
.data-editorial .lead, .company-editorial .lead { color: #333; font-size: 15px; }
.data-editorial .container, .company-editorial .container { width: min(1000px, calc(100% - 80px)); }
.data-editorial .section { background: #fff; padding: 0 0 100px; }
.data-editorial .search-panel { border: 0; padding: 0; box-shadow: none; background: #fff; margin: 0 auto 76px; max-width: 760px; }
.data-editorial .search-box { border: 1px solid #b8b8b8; min-height: 54px; border-radius: 3px; background: #fff; padding: 0 18px; }
.data-editorial .search-box input { font-family: inherit; font-size: 15px; background: #fff; box-shadow: none; }
.data-editorial .search-box:focus-within { outline: 2px solid var(--accent); outline-offset: 3px; }
.data-editorial .search-box input:focus,
.data-editorial .search-box input:focus-visible { outline: none; }
.data-editorial .search-results-grid { margin-top: 24px; }
.resource-groups { display: grid; gap: 62px; }
.resource-group { display: grid; grid-template-columns: 155px minmax(0, 1fr); gap: 30px; }
.accent-heading { border-left: 2px solid var(--accent); padding-left: 16px; font-size: 23px; font-weight: 500; align-self: start; line-height: 1.4; margin: 0; }
.resource-body { border-top: 1px solid #aaa; }
.resource-feature { display: grid; grid-template-columns: 190px minmax(0, 1fr) 20px; align-items: center; gap: 28px; padding: 28px 0; }
.resource-feature.resource-text { grid-template-columns: minmax(0, 1fr) 20px; }
.resource-feature img { width: 190px; height: 145px; object-fit: cover; }
.resource-feature img.inspection-thumb { object-position: right; }
.resource-feature img.ocr-chart-thumb { object-fit: contain; background: #fff; border: 1px solid var(--line); }
.resource-feature strong { display: block; font-size: 21px; line-height: 1.65; font-weight: 500; }
.resource-feature small { display: block; font-size: 14px; color: #555; margin-top: 12px; }
.resource-feature:hover strong { color: var(--accent); }
.document-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 4px; border-top: 1px solid var(--line); font-size: 17px; }
.document-row:last-child { border-bottom: 1px solid var(--line); }
.company-editorial .company-hero .container { padding: 0; background: none; border: none; box-shadow: none; backdrop-filter: none; }
.company-editorial .page-hero .lead { max-width: 640px; margin: auto; }
.company-editorial .section { padding: 20px 0 90px; }
.company-editorial .company-index-layout { display: block; }
.company-editorial .page-toc { position: static; display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; margin-bottom: 48px; }
.company-editorial .page-toc a { display: block; min-height: 0; border: 0; box-shadow: none; padding: 8px 0; font-size: 13px; font-weight: 400; color: #666; background: none; }
.company-editorial .page-toc a:hover { transform: none; color: var(--accent); }
.company-editorial .toc-icon { display: none; }
.company-editorial .company-card-stack { gap: 50px; }
.company-editorial .article-block { padding: 0; border: 0; border-radius: 0; overflow: visible; scroll-margin-top: 24px; }
.company-editorial .article-block > h2 { font-size: 25px; font-weight: 500; border-left: 2px solid var(--accent); padding-left: 16px; margin-bottom: 26px; }
.company-editorial .company-list { margin-left: 18px; border: 0; border-top: 1px solid #aaa; border-bottom: 1px solid #aaa; border-radius: 0; }
.company-editorial .company-list div { grid-template-columns: 240px minmax(0, 1fr); }
.company-editorial .company-list dt { font-weight: 400; background: #f8f8f8; }
.company-editorial .company-list dt, .company-editorial .company-list dd { padding: 16px 24px; font-size: 15px; }
.company-editorial .company-list dd p:last-child { margin-bottom: 0; }
.company-editorial .article-block > p, .company-editorial .representative-profile { margin-left: 18px; font-size: 15px; line-height: 2; }
.company-editorial .app-icon-row { margin-left: 18px; }
.company-editorial .app-icon-row img { width: 64px; height: 64px; }
.company-editorial .app-icon-row a { display: grid; gap: 8px; justify-items: center; color: inherit; text-decoration: none; }
.company-editorial .app-icon-row a:hover figcaption { color: var(--accent); }
.company-editorial .representative-profile { align-items: start; }
@media (min-width: 1600px) { .office-hero { min-height: 560px; } }
@media (max-width: 1000px) {
  .office-header-inner { flex-direction: column; gap: 8px; padding: 16px 24px 10px; }
  .office-nav { gap: 28px; }
  .office-hero h1 { font-size: 30px; }
  .hero-message { font-size: 23px; }
  .resource-group { grid-template-columns: 110px minmax(0, 1fr); gap: 20px; }
  .resource-feature { grid-template-columns: 140px minmax(0, 1fr) 16px; gap: 20px; }
  .resource-feature img { width: 140px; height: 125px; }
  .office-footer-inner { align-items: flex-start; }
  .footer-right nav { gap: 14px; }
}
@media (max-width: 640px) {
  .office-header-inner { min-height: 0; padding: 14px 16px 8px; gap: 8px; }
  .office-brand img { width: 70px; height: 38px; }
  .office-brand span { font-size: 17px; }
  .office-nav { gap: 0; width: 100%; justify-content: space-between; }
  .office-nav a { font-size: 11px; padding: 10px 3px; }
  .office-container, .data-editorial .container, .company-editorial .container { width: calc(100% - 40px); }
  .office-hero { min-height: 560px; align-items: start; }
  .office-hero-photo { width: 100%; height: 255px; top: auto; object-position: right center; }
  .office-hero-inner { width: calc(100% - 40px); margin: 0 auto; padding: 30px 0 285px; }
  .office-hero h1 { font-size: 27px; margin-bottom: 18px; }
  .hero-message { font-size: 22px; margin-bottom: 14px; }
  .hero-description { font-size: 14px; margin-bottom: 20px; }
  .office-cta { min-height: 46px; padding: 10px 18px; font-size: 14px; }
  .office-section { padding-top: 30px; }
  .ruled-heading { font-size: 20px; padding-bottom: 12px; }
  .service-rows a { grid-template-columns: 34px minmax(0, 1fr) 16px; gap: 10px 14px; padding: 20px 4px; }
  .service-number { font-size: 25px; }
  .service-rows h3 { font-size: 22px; }
  .service-rows p { grid-column: 2; font-size: 13px; }
  .service-rows .row-arrow { grid-column: 3; grid-row: 1 / 3; }
  .service-rows p br { display: none; }
  .toolbox-links { grid-template-columns: 1fr; padding: 8px 0; }
  .toolbox-links a { padding: 16px 4px; }
  .toolbox-links a + a { border-left: 0; border-top: 1px solid var(--line); }
  .quiet-link { margin-left: 4px; margin-top: 12px; }
  .toolbox-section { padding-bottom: 44px; }
  .office-footer { padding: 30px 20px; }
  .office-footer-inner { flex-direction: column; gap: 24px; }
  .footer-right { text-align: left; }
  .footer-right nav { gap: 12px 20px; margin-bottom: 18px; }
  .data-editorial .page-hero, .company-editorial .page-hero { padding: 42px 0 24px; }
  .data-editorial .page-hero h1, .company-editorial .page-hero h1 { font-size: 32px; }
  .data-editorial .lead, .company-editorial .lead { font-size: 14px; }
  .data-editorial .search-panel { margin-bottom: 40px; }
  .resource-groups { gap: 36px; }
  .resource-group { grid-template-columns: 1fr; gap: 18px; }
  .accent-heading { font-size: 21px; }
  .resource-feature { grid-template-columns: 96px minmax(0, 1fr) 12px; gap: 14px; padding: 20px 0; }
  .resource-feature img { width: 96px; height: 106px; }
  .resource-feature strong { font-size: 17px; }
  .resource-feature small { font-size: 12px; margin-top: 6px; }
  .resource-feature small br { display: none; }
  .document-row { font-size: 15px; }
  .data-editorial .section { padding-bottom: 48px; }
  .company-editorial .page-toc { gap: 18px; margin-bottom: 32px; }
  .company-editorial .company-list { margin-left: 0; }
  .company-editorial .company-list div { grid-template-columns: 112px minmax(0, 1fr); }
  .company-editorial .company-list dt, .company-editorial .company-list dd { padding: 12px 10px; font-size: 13px; overflow-wrap: anywhere; }
  .company-editorial .article-block > h2 { font-size: 23px; }
  .company-editorial .article-block > p, .company-editorial .representative-profile { margin-left: 0; font-size: 14px; }
  .company-editorial .company-card-stack { gap: 36px; }
}
.commissioning-index { padding: 26px 0 54px; }
.commissioning-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; font-size: 12px; color: #666; }
.commissioning-breadcrumb a:hover { color: var(--accent); }
.commissioning-breadcrumb > span[aria-hidden] { color: #aaa; }
.commissioning-heading { padding: 30px 0 32px; }
.commissioning-heading h1 { margin: 0 0 18px; font-size: 36px; line-height: 1.55; font-weight: 500; }
.commissioning-heading h1 > span, .commissioning-resource h2 > span { display: inline-block; }
.commissioning-heading h1::after { content: ''; display: block; width: 40px; height: 2px; background: var(--accent); margin-top: 18px; }
.commissioning-heading p { margin: 0; font-size: 15px; color: #555; line-height: 1.9; }
.commissioning-resources { border-top: 1px solid #aaa; }
.commissioning-resource { display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(0, 1.1fr) 20px; gap: 28px; align-items: center; min-height: 150px; padding: 26px 12px; border-bottom: 1px solid var(--line); }
.commissioning-resource:hover { background: #f8f8f8; }
.commissioning-resource:hover h2 { color: var(--accent); }
.commissioning-resource:focus-visible { position: relative; outline-offset: -2px; }
.commissioning-number { font: 28px/1.3 Georgia, serif; color: var(--accent); }
.commissioning-category { display: block; color: #666; font-size: 12px; margin-bottom: 6px; }
.commissioning-resource h2 { font-size: 23px; font-weight: 500; line-height: 1.55; margin: 0; }
.commissioning-resource-description p { font-size: 14px; line-height: 1.85; margin: 0 0 8px; }
.commissioning-resource-description > span { color: #777; font-size: 12px; }
.commissioning-related { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 24px; font-size: 13px; }
.commissioning-related a { padding: 8px 0; color: #555; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: #ccc; }
.commissioning-related a:hover { color: var(--accent); text-decoration-color: var(--accent); }
@media (max-width: 900px) {
  .commissioning-resource { gap: 20px; grid-template-columns: 36px minmax(0, 1fr) minmax(0, 1fr) 16px; }
  .commissioning-resource h2 { font-size: 21px; }
}
@media (max-width: 640px) {
  .commissioning-index { padding: 20px 0 36px; }
  .commissioning-breadcrumb { gap: 8px; font-size: 11px; }
  .commissioning-heading { padding: 24px 0; }
  .commissioning-heading h1 { font-size: 28px; margin-bottom: 16px; }
  .commissioning-heading p { font-size: 13px; }
  .commissioning-heading p br { display: none; }
  .commissioning-resource { grid-template-columns: 30px minmax(0, 1fr) 14px; gap: 12px 14px; padding: 22px 0; min-height: 0; }
  .commissioning-number { font-size: 24px; align-self: start; padding-top: 22px; }
  .commissioning-resource h2 { font-size: 21px; }
  .commissioning-resource-description { grid-column: 2; }
  .commissioning-resource-description p { font-size: 13px; }
  .commissioning-resource-description p br { display: none; }
  .commissioning-resource .row-arrow { grid-column: 3; grid-row: 1 / 3; }
  .commissioning-related { margin-top: 20px; }
}
.cable-page { padding: 26px 0 54px; }
.cable-page .cable-date { font-size: 12px; color: #777; margin-top: 14px; }
.cable-notice { padding: 28px 32px; background: #faf7f7; border-left: 3px solid var(--accent); }
.cable-notice .cable-kicker { color: var(--accent); font-size: 13px; margin: 0 0 10px; }
.cable-notice h2 { font-size: 27px; line-height: 1.6; font-weight: 500; margin-bottom: 14px; }
.cable-notice h2 span { display: inline-block; }
.cable-notice > p:not(.cable-kicker) { font-size: 15px; margin-bottom: 14px; max-width: 800px; }
.cable-notice a, .cable-section-body a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #aaa; }
.cable-notice a { font-size: 13px; }
.cable-page a:hover { color: var(--accent); }
.cable-toc { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 24px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.commissioning-heading .cable-toc { padding: 4px 0 20px; margin: 0 0 18px; border-bottom: 1px solid var(--line); }
.cable-toc a { padding: 5px 0; }
.cable-section { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 34px; padding: 38px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.cable-section-title > span { font: 25px/1.3 Georgia, serif; color: var(--accent); }
.cable-section-title h2 { font-size: 23px; font-weight: 500; line-height: 1.6; margin: 12px 0 0; }
.cable-section-body { min-width: 0; }
.cable-section-body p { font-size: 15px; line-height: 1.95; margin-bottom: 18px; }
.cable-section-body h3 { font-size: 19px; font-weight: 500; margin-bottom: 14px; }
.cable-section-body > :last-child { margin-bottom: 0; }
.cable-section-body .cable-source-note { font-size: 12px; color: #666; margin-top: 18px; }
.cable-checklist { margin: 0; border-top: 1px solid #aaa; }
.cable-checklist > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.cable-checklist dt { font-size: 14px; padding: 14px 12px; background: #f7f7f7; }
.cable-checklist dd { font-size: 14px; margin: 0; padding: 14px 16px; }
.cable-table-scroll { overflow-x: auto; max-width: 100%; margin: 20px 0; }
.cable-table { border-collapse: collapse; width: 100%; min-width: 490px; font-size: 14px; line-height: 1.8; text-align: left; }
.cable-table caption { text-align: left; padding: 0 0 10px; font-size: 13px; color: #666; }
.cable-table th, .cable-table td { padding: 13px 14px; border: 1px solid var(--line); vertical-align: top; }
.cable-table thead th { background: #262626; color: #fff; border-color: #444; font-weight: 500; }
.cable-table tbody th { background: #f7f7f7; font-weight: 500; }
.cable-manufacturer-table { min-width: 680px; font-size: 13px; }
.cable-manufacturer-table th:first-child { width: 80px; }
.cable-manufacturer-table th:nth-child(2) { width: 260px; }
.cable-condition-note { padding-left: 16px; border-left: 2px solid var(--accent); }
.cable-condition-note strong { display: block; font-weight: 500; }
.cable-manufacturer-contact { padding: 20px 0; border-top: 1px solid var(--line); }
.cable-manufacturer-contact p { margin: 0; }
.cable-manufacturer-contact a { font-size: 24px; display: inline-block; margin-top: 8px; }
.cable-manufacturer-contact span { display: block; font-size: 12px; color: #666; }
.cable-original { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 16px 0; }
.cable-original summary { cursor: pointer; font-size: 14px; }
.cable-original figure { margin: 18px 0 0; }
.cable-original img { display: block; width: 100%; height: auto; }
.cable-original figcaption { font-size: 12px; color: #666; margin-top: 10px; }
.cable-source-list > :is(a, .cable-source-entry) { display: block; padding: 18px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.cable-source-list > :is(a, .cable-source-entry):first-child { padding-top: 0; }
.cable-source-list > :is(a, .cable-source-entry):last-child { border-bottom: 0; padding-bottom: 0; }
.cable-source-list small { display: block; font-size: 12px; color: #666; margin-bottom: 6px; }
.cable-source-list strong { font-size: 16px; font-weight: 500; }
@media (max-width: 900px) {
  .cable-section { grid-template-columns: 1fr; gap: 22px; }
  .cable-section-title { display: flex; gap: 18px; align-items: baseline; }
  .cable-section-title h2 { margin: 0; }
}
@media (max-width: 640px) {
  .cable-page { padding-top: 20px; }
  .cable-notice { padding: 20px 18px; }
  .cable-notice h2 { font-size: 23px; }
  .cable-notice > p:not(.cable-kicker) { font-size: 14px; }
  .cable-toc { gap: 6px 20px; padding: 18px 0; }
  .cable-section { padding: 28px 0; }
  .cable-section-title h2 { font-size: 21px; }
  .cable-section-body p { font-size: 14px; }
  .cable-checklist > div { grid-template-columns: 90px minmax(0, 1fr); }
  .cable-checklist dt, .cable-checklist dd { padding: 12px 10px; font-size: 13px; }
}
.recall-page { padding: 26px 0 54px; }
.recall-page .office-container { width: min(1160px, calc(100% - 80px)); }
.recall-page .recall-date { font-size: 12px; color: #666; margin-top: 16px; }
.recall-note { font-size: 14px; padding: 14px 18px; border-left: 2px solid var(--accent); background: #faf7f7; margin-bottom: 28px; }
.recall-table-wrap { max-width: 100%; overflow-x: auto; }
.recall-table { width: 100%; min-width: 840px; border-collapse: collapse; text-align: left; font-size: 14px; line-height: 1.85; }
.recall-table caption { text-align: left; font-size: 13px; color: #666; margin-bottom: 12px; }
.recall-table thead th { background: #252525; color: #fff; font-weight: 400; padding: 14px 20px; }
.recall-table th:first-child { width: 25%; }
.recall-table th:nth-child(2) { width: 49%; }
.recall-table th:nth-child(3) { width: 26%; }
.recall-table tbody th, .recall-table td { vertical-align: top; padding: 24px 20px; border-bottom: 1px solid #ccc; }
.recall-table tbody th { font-weight: 400; background: #fafafa; }
.recall-table tbody th strong { display: block; font-size: 18px; font-weight: 500; margin: 8px 0; }
.recall-kind { color: var(--accent); font: 24px/1.3 Georgia, serif; }
.recall-table tbody th small { display: block; font-size: 13px; color: #666; }
.recall-model { display: block; margin-top: 14px; font-size: 13px; overflow-wrap: anywhere; }
.recall-table p { margin: 0 0 12px; }
.recall-table p:last-child { margin-bottom: 0; }
.recall-table p strong { font-weight: 600; }
.recall-action { color: var(--accent); font-size: 12px; }
.recall-status { color: #666; font-size: 12px; }
.recall-links a { display: block; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #aaa; }
.recall-links a:hover { color: var(--accent); }
.recall-links small { display: block; font-size: 12px; margin: 8px 0 20px; color: #666; }
.recall-serials { font-size: 12px; margin: 12px 0 0; }
.recall-serials div { display: grid; grid-template-columns: 48px 1fr; gap: 8px; }
.recall-serials dd { margin: 0; overflow-wrap: anywhere; }
.recall-verification { padding: 28px 0; border-bottom: 1px solid var(--line); }
.recall-verification h2 { font-size: 21px; font-weight: 500; }
.recall-verification p { font-size: 14px; margin: 0; color: #555; }
@media (max-width: 640px) {
  .recall-page { padding-top: 20px; }
  .recall-page .office-container { width: calc(100% - 40px); }
  .recall-note { font-size: 13px; }
  .recall-table tbody th, .recall-table td { padding: 20px 16px; }
}
.toolbox-page .container, .basic-work-page .container { width: min(1040px, calc(100% - 80px)); }
.toolbox-page .page-hero, .basic-work-page .page-hero { padding: 26px 0 30px; background: #fff; border: 0; }
.toolbox-page .commissioning-breadcrumb, .basic-work-page .commissioning-breadcrumb, .page-hero .commissioning-breadcrumb { margin-bottom: 28px; }
.editorial-page-title,
.toolbox-page h1,
.basic-work-page h1,
.data-editorial .page-hero h1.editorial-page-title,
.company-editorial .page-hero h1.editorial-page-title,
.commissioning-heading h1.editorial-page-title {
  --heading-gradient: linear-gradient(to right, var(--accent), #ee8b26 55%, #eacb3c);
  width: fit-content;
  max-width: 100%;
  margin: 0 0 16px;
  padding: 0;
  color: #000;
  font-size: 36px;
  font-weight: 500;
  line-height: 1.35;
  text-align: left;
  border: 0;
}
.editorial-page-title::after,
.toolbox-page h1::after,
.basic-work-page h1::after,
.data-editorial .page-hero h1.editorial-page-title::after,
.company-editorial .page-hero h1.editorial-page-title::after,
.commissioning-heading h1.editorial-page-title::after {
  content: '';
  display: block;
  width: 2.1em;
  height: 3px;
  margin: 0.25em 0 0;
  background: var(--heading-gradient);
}
.data-editorial .page-hero:has(.editorial-page-title),
.company-editorial .page-hero:has(.editorial-page-title),
.contact-editorial .page-hero:has(.editorial-page-title) {
  padding: 26px 0 30px;
  text-align: left;
  background: #fff;
  border: 0;
}
.company-editorial .page-hero:has(.editorial-page-title) .lead {
  margin-left: 0;
  margin-right: 0;
}
.contact-editorial .lead { font-size: 15px; color: #555; margin: 0; }
.toolbox-page .lead, .basic-work-page .lead { font-size: 15px; color: #555; margin: 0; }
.toolbox-page > .section { padding: 0 0 64px; }
.toolbox-directory { border-top: 1px solid #aaa; }
.toolbox-directory > a { display: grid; grid-template-columns: 44px minmax(0, .85fr) minmax(0, 1.35fr) 20px; align-items: center; gap: 24px; padding: 34px 12px; min-height: 166px; border-bottom: 1px solid var(--line); }
.directory-number { color: var(--accent); font: 29px/1.4 Georgia, serif; }
.toolbox-directory h2 { margin: 0; font-size: 25px; font-weight: 500; line-height: 1.6; }
.toolbox-directory p { margin: 0 0 10px; font-size: 15px; }
.toolbox-directory small { color: #777; font-size: 12px; }
.toolbox-directory a:hover h2, .toolbox-directory a:focus-visible h2 { color: var(--accent); }
.toolbox-directory a:focus-visible { outline-offset: -2px; }
.basic-work-page > .section { padding: 0 0 64px; }
.basic-work-page .work-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 48px; }
.basic-work-page .toc { top: 16px; gap: 0; padding: 0 22px 0 0; background: transparent; border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; max-height: calc(100dvh - 32px); overflow-y: auto; }
.basic-work-page .toc a { padding: 12px 0; color: #555; font-size: 14px; font-weight: 400; border-radius: 0; }
.basic-work-page .toc a:hover, .basic-work-page .toc a:focus-visible { color: var(--accent); background: transparent; text-decoration: underline; text-underline-offset: 5px; }
.basic-work-page .article-stack { gap: 0; min-width: 0; counter-reset: work-section; }
.basic-work-page .article-block { padding: 30px 0; background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; overflow: visible; scroll-margin-top: 20px; }
.basic-work-page .article-block:first-child { padding-top: 22px; border-top-color: #aaa; }
.basic-work-page .article-block:last-child { padding-bottom: 0; }
.basic-work-page .article-block h2 { display: flex; gap: 18px; align-items: baseline; color: #000; font-size: 25px; line-height: 1.6; font-weight: 500; margin: 0 0 18px; }
.basic-work-page .text-alert { color: #b42318; font-style: normal; font-weight: 700; }
.basic-work-page .article-block h2::before { counter-increment: work-section; content: counter(work-section, decimal-leading-zero); color: var(--accent); font: 22px/1.3 Georgia, serif; }
.basic-work-page .article-block p { color: #333; font-size: 15px; line-height: 2; margin-bottom: 16px; overflow-wrap: anywhere; }
.basic-work-page .article-block p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .basic-work-page .work-layout { grid-template-columns: 1fr; gap: 24px; }
  .basic-work-page .toc { position: static; display: flex; flex-wrap: wrap; gap: 0 24px; max-height: none; overflow: visible; border-right: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 8px 0; }
  .basic-work-page .toc a { padding: 8px 0; }
  .toolbox-directory > a { grid-template-columns: 32px minmax(0, .9fr) minmax(0, 1.1fr) 16px; gap: 18px; }
  .toolbox-directory h2 { font-size: 22px; }
}
@media (max-width: 640px) {
  .toolbox-page .container, .basic-work-page .container { width: calc(100% - 40px); }
  .toolbox-page .page-hero, .basic-work-page .page-hero { padding: 20px 0 26px; }
  .toolbox-page h1, .basic-work-page h1, .editorial-page-title { font-size: 29px; }
  .toolbox-page .lead, .basic-work-page .lead { font-size: 14px; }
  .toolbox-directory > a { grid-template-columns: 30px minmax(0, 1fr) 16px; gap: 12px 14px; padding: 26px 0; min-height: 0; }
  .toolbox-directory > a > div { grid-column: 2; }
  .toolbox-directory .row-arrow { grid-column: 3; grid-row: 1 / 3; }
  .directory-number { font-size: 24px; }
  .toolbox-directory p { font-size: 14px; }
  .toolbox-directory p br { display: none; }
  .basic-work-page .article-block { padding: 26px 0; }
  .basic-work-page .article-block h2 { font-size: 22px; gap: 12px; }
  .basic-work-page .article-block p { font-size: 14px; }
  .toolbox-page > .section, .basic-work-page > .section { padding-bottom: 40px; }
}
.service-rows a { grid-template-columns: 230px minmax(0, 1fr) 24px; }
.toolbox-directory > a { grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr) 20px; }
.commissioning-resource { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) 20px; }
.service-rows h3, .toolbox-directory h2, .commissioning-resource-title,
.basic-work-page .article-block h2, .cable-section-title h2 {
  border-left: 2px solid var(--accent);
  padding-left: 16px;
}
.basic-work-page .article-block h2::before { content: none; counter-increment: none; }
.basic-work-page .article-stack { counter-reset: none; }
.cable-section-title h2 { margin-top: 0; }

.pcb-page .pcb-comparison { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.pcb-page .pcb-table { table-layout: fixed; min-width: 660px; }
.pcb-page .pcb-kind { width: 112px; }
.pcb-page .pcb-maker-table { table-layout: fixed; min-width: 720px; }
.pcb-page .pcb-maker-name { width: 180px; }
.pcb-page .pcb-maker-links { width: 185px; }
.pcb-page .pcb-maker-table th small { display: block; margin-top: 6px; color: #666; font-size: 12px; font-weight: 400; }
.pcb-page .pcb-maker-table a { overflow-wrap: anywhere; }
.pcb-page .pcb-table td p { margin: 8px 0 0; font-size: 14px; line-height: 1.85; }
.pcb-page .pcb-table td strong { font-weight: 600; }
.pcb-page .pcb-cell-reference,
.basic-work-page .pcb-cell-reference,
.grounding-page .pcb-cell-reference { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.75; color: #666; overflow-wrap: anywhere; }
.basic-work-page #points .pcb-cell-reference { border-top: 0; padding-top: 0; }
.pcb-page .cable-checklist a { overflow-wrap: anywhere; }
.pcb-page .pcb-role-group + .pcb-role-group { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.pcb-page .pcb-role-label { display: inline-block; padding: 3px 10px; border-left: 3px solid var(--accent); background: #f7f7f7; font-weight: 700; }
.pcb-page .pcb-role-group p { margin: 8px 0 0; font-size: inherit; }
.pcb-map-section.cable-section { grid-template-columns: 1fr; }
.pcb-map-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.pcb-map { position: relative; display: flex; flex-direction: column; align-items: flex-start; box-sizing: border-box; max-width: 100%; margin: 0; padding: 16px 8px 8px 172px; overflow: visible; }
.pcb-map-lines { position: absolute; top: 0; left: 0; display: block; overflow: visible; pointer-events: none; z-index: 0; }
.pcb-map-node, .pcb-map-choice, .pcb-map-fork, .pcb-map-col, .pcb-map-yn, .pcb-map-yn-main, .pcb-map-yn-side, .pcb-map-waste-left, .pcb-map-decide { position: relative; z-index: 1; }
.pcb-map-waste-left { position: absolute; left: 8px; top: 160px; width: 148px; display: flex; flex-direction: column; align-items: center; }
.pcb-map-has-svg .pcb-map-arrow { visibility: hidden; height: 32px; }
.pcb-map-has-svg .pcb-map-arrow-merge { height: 52px; }
.pcb-map-has-svg .pcb-map-arrow-end { height: 52px; }
.pcb-map-has-svg .pcb-map-join { visibility: hidden; height: 48px; margin: 8px 0; padding: 0; border: 0; }
.pcb-map-has-svg .pcb-map-fork::before, .pcb-map-has-svg .pcb-map-col::before { display: none; }
.pcb-map-node { display: flex; flex-direction: column; align-items: center; justify-content: center; width: min(240px, 100%); padding: 10px 14px; border: 1px solid #333; background: #fff; color: inherit; text-align: center; text-decoration: none; font-size: 13px; line-height: 1.5; scroll-margin-top: 24px; }
.pcb-map-node-wide { width: min(320px, 100%); }
.pcb-map-node span { display: block; }
button.pcb-map-node { appearance: none; margin: 0; font: inherit; color: inherit; cursor: default; }
.pcb-map-node-start, .pcb-map-node-end { box-sizing: border-box; width: min(240px, 100%); min-height: 72px; padding: 18px 28px; border-radius: 999px; background: #f7f7f7; font-weight: 600; }
.pcb-map-node-start span { margin-top: 2px; font-weight: 400; }
.pcb-map-node-start.is-current { cursor: pointer; }
.pcb-map-node-start.is-current:hover, .pcb-map-node-start.is-current:focus-visible { border-color: var(--accent); color: var(--accent); }
.pcb-map-node-process { background: #fff; }
a.pcb-map-node-process:hover, a.pcb-map-node-process:focus-visible { border-color: var(--accent); color: var(--accent); }
.pcb-map-node-decision { width: 112px; height: 112px; margin: 30px 22px; padding: 0; border: 1px solid var(--accent); background: #fff8f4; transform: rotate(45deg); font-weight: 600; }
.pcb-map-node-decision span { display: block; width: 148px; transform: rotate(-45deg); }
.pcb-map-node.is-done { border-color: var(--accent); color: #7a1014; }
.pcb-map-node-decision.is-done { background: #ffe8e4; }
.pcb-map-node.is-current { z-index: 1; border-color: var(--accent); box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--accent), 0 0 22px rgba(197, 27, 34, .45); }
.pcb-map-node-decision.is-current { background: #ffd7d2; }
.pcb-map-arrow { position: relative; width: 2px; height: 28px; background: #666; }
.pcb-map-arrow::after { content: ''; position: absolute; left: -5px; bottom: -1px; border: 6px solid transparent; border-top-color: #666; border-bottom-width: 0; }
.pcb-map-arrow.is-active, .pcb-map-join.is-active::before { background: var(--accent); }
.pcb-map-arrow.is-active::after { border-top-color: var(--accent); }
.pcb-map-choice:disabled { opacity: .55; }
.pcb-map-decide { width: 240px; display: flex; flex-direction: column; align-items: center; }
.pcb-map-choice-no { position: absolute; left: calc(50% + 68px); top: calc(50% - 38px); z-index: 2; margin: 0; white-space: nowrap; }
.pcb-map-choice-no-left { left: auto; right: calc(50% + 68px); }
.pcb-map-yn { display: grid; grid-template-columns: max-content minmax(148px, max-content); align-items: start; gap: 8px 36px; width: max-content; }
.pcb-map-yn-main { display: grid; grid-template-columns: 240px max-content; justify-items: center; width: max-content; min-width: 240px; }
.pcb-map-yn-main > :not(.pcb-map-yn) { grid-column: 1; }
.pcb-map-yn-main > .pcb-map-yn { grid-column: 1 / -1; justify-self: start; }
.pcb-map-yn-side { display: flex; flex-direction: column; align-items: center; min-width: 0; padding-top: 65px; }
.pcb-map-fork { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px; width: 100%; margin-top: 8px; position: relative; }
.pcb-map-fork::before { content: ''; position: absolute; top: 0; left: 25%; right: 25%; height: 2px; background: #666; }
.pcb-map-fork-inner { margin-top: 10px; }
.pcb-map-col { display: flex; flex-direction: column; align-items: center; min-width: 0; position: relative; padding-top: 8px; }
.pcb-map-col::before { content: ''; position: absolute; top: 0; left: 50%; width: 2px; height: 8px; background: #666; transform: translateX(-50%); }
.pcb-map-choice { margin: 0 0 2px; padding: 3px 12px; border: 1px solid var(--accent); background: #fff; color: var(--accent); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.pcb-map-choice.is-available { background: #fff3f2; box-shadow: 0 0 0 2px rgba(197, 27, 34, .25); }
.pcb-map-choice.is-taken { background: var(--accent); color: #fff; }
.pcb-map-choice:disabled { cursor: default; }
.pcb-map-join { display: flex; flex-direction: column; align-items: center; width: 100%; margin: 18px 0 4px; padding-top: 14px; border-top: 2px solid #666; color: #666; font-size: 12px; font-weight: 700; }
.pcb-map-join::before { content: ''; width: 2px; height: 20px; background: #666; }
.pcb-map-join.is-active { border-top-color: var(--accent); color: var(--accent); }
.pcb-map-panel { grid-column: 1; grid-row: 1; justify-self: end; align-self: start; position: sticky; top: 20px; z-index: 3; width: 250px; max-width: 100%; box-sizing: border-box; padding: 16px 16px 14px; border: 1px solid #333; background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .06); }
.pcb-map { grid-column: 1; grid-row: 1; }
.pcb-map-panel-kicker { margin: 0 0 6px; color: var(--accent); font-size: 12px; font-weight: 700; }
.pcb-disposal-routes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; width: 100%; margin-top: 24px; }
.pcb-disposal-route { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 16px 8px; border-top: 2px solid #777; }
.pcb-disposal-route > .pcb-map-choice { width: 100%; white-space: normal; min-height: 48px; }
.pcb-disposal-route .pcb-disposal-scope { font-size: 13px; line-height: 1.7; margin: 12px 0; }
.pcb-disposal-route > .pcb-cell-reference { margin-bottom: 18px; }
.pcb-disposal-route > .pcb-map-node { box-sizing: border-box; width: 100%; }
.pcb-disposal-reference { font-size: 13px; line-height: 1.7; }
@media (max-width: 760px) {
  .pcb-disposal-routes { grid-template-columns: minmax(0, 1fr); }
}
.pcb-map-panel-title { margin: 0 0 8px; font-size: 18px; font-weight: 600; line-height: 1.45; }
.pcb-map-panel-note { margin: 0 0 14px; color: #555; font-size: 13px; line-height: 1.7; }
.pcb-map-panel-choices { display: grid; gap: 8px; }
.pcb-map-panel-choice, .pcb-map-panel-reset, .pcb-map-panel-back, .pcb-map-panel-detail { display: block; width: 100%; padding: 9px 12px; border: 1px solid var(--accent); background: #fff; color: var(--accent); font: inherit; font-size: 14px; font-weight: 600; text-align: center; text-decoration: none; cursor: pointer; }
.pcb-map-panel-back { margin-top: 10px; }
.pcb-map-panel-back:disabled { opacity: .45; cursor: default; }
.pcb-map-panel-choice { background: var(--accent); color: #fff; }
.pcb-map-panel-choice:hover, .pcb-map-panel-choice:focus-visible { background: #a31318; }
.pcb-map-panel-detail { margin-top: 8px; }
.pcb-map-panel-reset { margin-top: 10px; border-color: #bbb; color: #555; }
@media (max-width: 900px) {
  .pcb-map-layout { gap: 14px; }
  .pcb-map { grid-row: 2; }
  .pcb-map-panel {
    grid-row: 1;
    position: sticky;
    top: 0;
    z-index: 3;
    justify-self: start;
    width: 250px;
    max-width: 100%;
    padding: 12px 14px 12px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
  }
  .pcb-map-panel-kicker,
  .pcb-map-panel-note { display: none; }
  .cable-section-body .pcb-map-panel-title { margin: 0 0 8px; font-size: 16px; line-height: 1.35; }
  .pcb-map-panel-choice,
  .pcb-map-panel-back,
  .pcb-map-panel-reset,
  .pcb-map-panel-detail { padding: 8px 10px; font-size: 13px; }
  .pcb-map-panel-back,
  .pcb-map-panel-reset { margin-top: 8px; }
  .pcb-map-panel-detail { margin-top: 6px; }
  .pcb-map-node { scroll-margin-top: 24px; }
}
@media (max-width: 640px) {
  .pcb-map { padding-left: 8px; }
  .pcb-map-waste-left { position: static; width: auto; padding: 0; margin: 8px 0 12px; }
  .pcb-map-yn { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .pcb-map-yn-main { width: 100%; grid-template-columns: minmax(0, 1fr); }
  .pcb-map-yn-side { padding-top: 10px; }
  .pcb-map-decide { width: 100%; }
  .pcb-map-choice-no { position: static; left: auto; right: auto; top: auto; transform: none; margin: 4px 0 0; }
  .pcb-map-fork { grid-template-columns: 1fr; }
  .pcb-map-fork::before { left: 50%; right: auto; width: 2px; height: 12px; }
  .pcb-map-node-decision { width: 104px; height: 104px; margin: 28px 16px; font-size: 12px; }
  .pcb-map-node-decision span { width: 136px; }
}
@media (prefers-reduced-motion: no-preference) {
  .pcb-map-node.is-current { animation: pcb-map-glow 1.6s ease-in-out infinite; }
}
@keyframes pcb-map-glow {
  50% { box-shadow: 0 0 0 3px #fff, 0 0 0 8px var(--accent), 0 0 28px rgba(197, 27, 34, .6); }
}
.pcb-map-layout > .pcb-map { grid-column: 1; grid-row: 1; }
.pcb-target-guides { margin-top: 0; padding-top: 0; }
.pcb-target-guides > p { margin: 0 0 8px; font-size: 15px; }
.pcb-target-card { margin-top: 28px; padding-top: 22px; border-top: 1px solid #aaa; scroll-margin-top: 24px; }
.pcb-target-card:first-of-type { margin-top: 20px; padding-top: 0; border-top: 0; }
.pcb-target-card h3 { margin: 0 0 8px; font-size: 18px; font-weight: 600; }
.pcb-act { margin: 18px 0 8px; padding-top: 4px; font-size: 16px; font-weight: 700; scroll-margin-top: 24px; }
.pcb-act + p { margin: 0 0 12px; font-size: 15px; line-height: 1.8; }
.pcb-target-scope { margin: 0 0 10px; color: #666; font-size: 13px; }
.pcb-target-action { margin: 0 0 16px; font-size: 15px; }
.pcb-flow-caption { margin: 18px 0 8px; font-size: 13px; font-weight: 700; }
/* Keep the original chart appearance while retaining the connected graph. */
.pcb-map-layout:has(.pcb-chart-scroll) { grid-template-columns: minmax(0, 1fr); }
.pcb-page .pcb-map-layout:has(.pcb-chart-scroll) {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  box-sizing: border-box;
  padding: 0 16px 8px;
}
html:has(.pcb-page),
body:has(.pcb-page) { overflow-x: clip; }
.pcb-map-layout:has(.pcb-chart-scroll) > .pcb-map-panel { grid-column: 1; grid-row: 1; justify-self: start; position: static; top: auto; width: 250px; margin: 0 0 16px; }
.pcb-chart-scroll { grid-column: 1; grid-row: 2; width: 100%; max-width: 100%; overflow-x: auto; overflow-y: visible; background: transparent; }
.pcb-map.pcb-connected-map { position: relative; display: block; max-width: none; padding: 0; margin: 0; }
.pcb-connected-node { position: absolute; z-index: 1; display: flex; flex-direction: column; align-items: center; box-sizing: border-box; width: 240px; color: inherit; }
.pcb-connected-decision .pcb-map-choice-yes { position: absolute; left: 50%; top: calc(50% + 84px); z-index: 2; margin: 0; transform: translateX(-50%); white-space: nowrap; }
.pcb-connected-decision .pcb-map-choice-no { position: absolute; left: calc(50% + 84px); top: calc(50% - 15px); z-index: 2; margin: 0; white-space: nowrap; }
.pcb-connected-decision .pcb-map-choice-no.is-left { left: auto; right: calc(50% + 84px); }
.pcb-connected-node > .pcb-map-node { box-sizing: border-box; }
.pcb-connected-node .pcb-map-node > a { display: block; color: inherit; text-decoration: none; }
.pcb-connected-node .pcb-map-node > a:hover, .pcb-connected-node .pcb-map-node > a:focus-visible { color: var(--accent); }
.pcb-connected-node .pcb-map-node-decision > a { width: 148px; transform: rotate(-45deg); }
.pcb-connected-node > .pcb-map-choice { margin-top: 8px; }
.pcb-connected-choices { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pcb-connected-node.is-current .pcb-map-choice { background: #fff3f2; box-shadow: 0 0 0 2px rgba(197, 27, 34, .25); }
.pcb-connected-lines { position: absolute; inset: 0; pointer-events: none; }
.pcb-connected-lines g path { fill: none; stroke: #666; stroke-width: 2; }
.pcb-connected-lines circle { fill: #fff; stroke: none; }
.pcb-connected-lines g.is-active path { stroke: var(--accent); stroke-width: 3; }
.pcb-connected-lines rect { fill: white; }
.pcb-connected-lines text { text-anchor: middle; font-size: 12px; fill: #444; }
@media (max-width: 640px) {
  .pcb-connected-node .pcb-map-node-decision > a { width: 136px; }
}
.pcb-flow-caption:first-of-type { margin-top: 4px; }
.pcb-flow-next { margin: 14px 0 0; padding: 10px 12px; background: #f7f7f7; border-left: 3px solid var(--accent); font-size: 13px; line-height: 1.7; }
.pcb-flow { display: flex; flex-wrap: wrap; gap: 10px 0; list-style: none; margin: 0; padding: 0; }
.pcb-flow li { position: relative; flex: 1 1 150px; min-width: 132px; margin: 0; padding: 12px 28px 12px 12px; background: #f7f7f7; border-left: 3px solid var(--accent); font-size: 13px; line-height: 1.6; }
.pcb-flow li span { display: block; margin-bottom: 4px; color: var(--accent); font-size: 12px; font-weight: 700; }
.pcb-flow li:not(:last-child)::after { content: ''; position: absolute; top: 50%; right: 8px; width: 8px; height: 8px; border-right: 2px solid #bbb; border-bottom: 2px solid #bbb; transform: translateY(-50%) rotate(-45deg); }
@media (max-width: 640px) {
  .pcb-flow { flex-direction: column; }
  .pcb-flow li { padding-right: 12px; padding-bottom: 22px; }
  .pcb-flow li:not(:last-child)::after { top: auto; right: auto; left: 18px; bottom: 6px; transform: rotate(45deg); }
}

.pcb-page .cable-table-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 900px) {
  .toolbox-directory > a { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) 16px; }
  .commissioning-resource { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 16px; }
}
@media (max-width: 640px) {
  .service-rows a, .toolbox-directory > a, .commissioning-resource { grid-template-columns: minmax(0, 1fr) 16px; }
  .service-rows p, .toolbox-directory > a > div, .commissioning-resource-description { grid-column: 1; padding-left: 18px; }
  .service-rows .row-arrow, .toolbox-directory .row-arrow, .commissioning-resource .row-arrow { grid-column: 2; grid-row: 1 / 3; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Keep each PCB explanation together with its supporting source. */
.pcb-page .pcb-evidence-item + .pcb-evidence-item { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.pcb-page .pcb-evidence-item > p { margin: 0; }
.pcb-page .pcb-evidence-item > .pcb-cell-reference { margin-top: 5px; padding-top: 0; border-top: 0; }

/* Explanations of the legal basis in PCB source links. */
.pcb-page .pcb-evidence-summary,
.basic-work-page .pcb-evidence-summary,
.grounding-page .pcb-evidence-summary,
.company-rule .pcb-evidence-summary { color: #b85c00; }
.grounding-page .cable-source-list .pcb-evidence-summary { font-size: 12px; }
.pcb-page a:hover,
.pcb-page a:focus-visible,
.basic-work-page .pcb-cell-reference a:hover,
.basic-work-page .pcb-cell-reference a:focus-visible,
.grounding-page a:hover,
.grounding-page a:focus-visible,
.company-rule a:hover,
.company-rule a:focus-visible,
.pcb-page a:hover .pcb-evidence-summary,
.basic-work-page a:hover .pcb-evidence-summary,
.basic-work-page a:focus-visible .pcb-evidence-summary,
.pcb-page a:focus-visible .pcb-evidence-summary,
.grounding-page a:hover .pcb-evidence-summary,
.grounding-page a:focus-visible .pcb-evidence-summary,
.company-rule a:hover .pcb-evidence-summary,
.company-rule a:focus-visible .pcb-evidence-summary { color: var(--accent); }

.cable-accident-figure { margin: 24px 0; }
.cable-accident-figure img, .cable-accident-chart { display: block; width: 100%; max-width: 760px; height: auto; margin: 0 auto; }
.cable-accident-figure figcaption { margin-top: 12px; font-size: 12px; line-height: 1.8; color: #666; overflow-wrap: anywhere; }
.cable-accident-chart { font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; }
.cable-chart-title { fill: #111; font-size: 16px; font-weight: 500; }
.cable-chart-legend text, .cable-chart-label text { fill: #555; font-size: 12px; }
.cable-chart-axis-title { fill: #666; font-size: 12px; }
.cable-chart-grid line { stroke: #efefef; stroke-width: 1; }
.cable-chart-axis line { stroke: #cfcfcf; stroke-width: 1; }
.cable-chart-under { fill: #3a6ea5; }
.cable-chart-over { fill: #d8883c; }
.cable-chart-pct { fill: #fff; font-size: 12px; font-weight: 600; }
.cable-chart-pct-dark { fill: #1f4d7a; font-size: 12px; font-weight: 600; }
