/* The engineering contents and discipline details use the shared Banktrade page system. */

.specialties-page .discipline-index-layout {
  grid-template-columns: minmax(0, .55fr) minmax(0, 1fr);
  gap: clamp(28px, 4.5vw, 68px);
  align-items: start;
}
.specialties-page .discipline-index-layout > *,
.specialties-page .discipline-grid > * { min-width: 0; }
.specialties-page .discipline-index-copy { position: static; }
.specialties-page .discipline-index-copy h2 { max-width: 20ch; margin-bottom: 18px; }
.specialties-page .discipline-index-copy p { margin-top: 0; font-size: .95rem; }
.specialties-page .specialty-index-note {
  display: grid;
  gap: 16px;
  margin: 24px 0 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--planning-rule);
  list-style: none;
}
.specialties-page .specialty-index-note li {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.6;
}
.specialties-page .specialty-index-note .planning-icon { width: 25px; height: 25px; }
/* The contents sheet folds its top-right corner on hover, like the cards (styles.css); on touch
   screens the corner stays folded. */
@property --sheet-fold { syntax: '<length>'; inherits: false; initial-value: 0px; }
.specialties-page .discipline-index {
  --sheet-row-columns: 26px minmax(125px, .85fr) minmax(24px, .28fr) minmax(0, 1.45fr);
  --sheet-fold-size: 28px;
  --sheet-fold: var(--sheet-fold-size);
  --cut-size: var(--sheet-fold);
  --cut-line: rgba(61, 117, 108, .3);
  padding: clamp(22px, 2.6vw, 36px);
  border: 0;
  background: #fff;
  clip-path: polygon(0 0, calc(100% - var(--cut-size)) 0, 100% var(--cut-size), 100% 100%, 0 100%);
}
.specialties-page .discipline-index::before {
  display: block;
  background:
    linear-gradient(var(--cut-line), var(--cut-line)) top left / calc(100% - var(--cut-size)) 1px no-repeat,
    linear-gradient(var(--cut-line), var(--cut-line)) right 0 top var(--cut-size) / 1px calc(100% - var(--cut-size)) no-repeat,
    linear-gradient(to bottom left, transparent calc(50% - .7px), var(--cut-line) calc(50% - .7px) calc(50% + .7px), transparent calc(50% + .7px)) top right / var(--cut-size) var(--cut-size) no-repeat,
    linear-gradient(var(--cut-line), var(--cut-line)) bottom left / 100% 1px no-repeat,
    linear-gradient(var(--cut-line), var(--cut-line)) top left / 1px 100% no-repeat;
}
.specialties-page .discipline-index::after {
  display: block;
  background:
    linear-gradient(var(--cut-line), var(--cut-line)) left top / 1px 100% no-repeat,
    linear-gradient(var(--cut-line), var(--cut-line)) left bottom / 100% 1px no-repeat,
    #edf3ef;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}
@media (hover: hover) {
  .specialties-page .discipline-index { --sheet-fold: 0px; transition: --sheet-fold .42s cubic-bezier(.3, .7, .2, 1); }
  .specialties-page .discipline-index:is(:hover, :focus-within) { --sheet-fold: var(--sheet-fold-size); }
}
.specialties-page .index-sheet-header,
.specialties-page .index-sheet-meta,
.specialties-page .index-sheet-columns,
.specialties-page .index-sheet-footer { position: relative; z-index: 2; }
.specialties-page .index-sheet-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px 20px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--green);
}
.specialties-page .discipline-index .index-sheet-brand {
  color: var(--green);
  font-size: .79rem;
  font-weight: 800;
  letter-spacing: .11em;
}
.specialties-page .discipline-index .index-sheet-kind {
  color: var(--muted);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.specialties-page .discipline-index h2 {
  margin: 0 0 7px;
  font-size: clamp(1.35rem, 1.9vw, 1.65rem);
  font-weight: 600;
  letter-spacing: -.02em;
}
.specialties-page .index-sheet-meta {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: .75rem;
  line-height: 1.6;
}
.specialties-page .index-sheet-columns {
  display: grid;
  grid-template-columns: var(--sheet-row-columns);
  gap: 10px;
  padding: 8px 0;
  border-block: 1px solid rgba(61, 117, 108, .28);
  background: rgba(61, 117, 108, .035);
}
.specialties-page .discipline-index .index-sheet-columns span {
  color: var(--muted);
  font-size: .61rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}
.specialties-page .index-sheet-columns span:first-child { grid-column: 1 / 4; }
.specialties-page .index-sheet-columns span:last-child { grid-column: 4; }
.specialties-page .index-sheet-footer {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-top: 22px;
  padding-top: 12px;
  border-top: 1px solid var(--green);
}
.specialties-page .discipline-index .index-sheet-footer span {
  color: var(--muted);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .03em;
}
.specialties-page .discipline-index .index-sheet-footer strong {
  color: var(--green);
  font-size: .67rem;
  font-weight: 600;
  letter-spacing: .08em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.specialties-page .discipline-index a {
  grid-template-columns: var(--sheet-row-columns);
  gap: 10px;
  padding: 12px 0;
  align-items: baseline;
  transition: color 180ms ease, background-color 180ms ease;
}
.specialties-page .discipline-index a:hover { transform: none; background: rgba(183, 221, 200, .15); }
.specialties-page .discipline-index strong {
  min-width: 0;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.5;
}
.specialties-page .discipline-index span { font-size: .69rem; font-variant-numeric: tabular-nums; }
.specialties-page .discipline-index i {
  display: block;
  min-width: 0;
  border-bottom: 1px dotted rgba(61, 117, 108, .45);
}
.specialties-page .discipline-index small {
  min-width: 0;
  grid-column: 4;
  font-size: .85rem;
  line-height: 1.55;
  white-space: normal;
}
.specialties-page .discipline-index-divider {
  margin: 14px 0 4px;
  padding-top: 15px;
  font-size: .64rem;
  line-height: 1.6;
  letter-spacing: .1em;
}
.specialties-page .discipline-section { scroll-margin-top: 112px; }
.specialties-page .discipline-grid {
  grid-template-columns: minmax(0, .65fr) minmax(0, 1fr);
  gap: clamp(30px, 5vw, 78px);
}
.specialties-page .discipline-title { position: sticky; top: 112px; }
.specialties-page .specialty-heading {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 15px;
}
.specialties-page .discipline-number {
  width: 45px;
  height: 45px;
  margin: 0;
  border: 1px solid var(--planning-rule);
  background: transparent;
  clip-path: none;
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .04em;
}
.specialties-page .specialty-heading .planning-icon { width: 33px; height: 33px; }
.specialties-page .discipline-title .eyebrow { display: block; margin: 0; }
.specialties-page .discipline-thumb {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  margin-top: 20px;
  object-fit: cover;
  clip-path: none;
  box-shadow: none;
  cursor: zoom-in;
}
.specialties-page .discipline-thumb.specialty-drawing {
  object-fit: contain;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--planning-rule);
}
.specialties-page .discipline-title .specialty-caption {
  margin: 13px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--planning-rule);
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.65;
}
.specialties-page .discipline-copy h2 { margin: 0 0 17px; max-width: 32ch; }
.specialties-page .discipline-copy > p.specialty-lead { margin: 0 0 24px; font-size: .98rem; }
.specialties-page .specialty-topics { display: grid; gap: 0; }
.specialties-page .specialty-detail {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 14px;
  min-width: 0;
  padding: 19px 0;
  border-top: 1px solid var(--planning-rule);
}
.specialties-page .specialty-detail .planning-icon { width: 28px; height: 28px; margin-top: 2px; }
.specialties-page .specialty-detail > div { min-width: 0; }
.specialties-page .specialty-detail h3 { margin: 0 0 7px; font-size: 1rem; font-weight: 600; }
.specialties-page .specialty-detail p { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.7; }
.specialties-page .specialty-interface {
  margin-top: 5px;
  padding: 17px 19px;
  border-left: 2px solid var(--green);
  background: var(--planning-tint);
}
.specialties-page .specialty-interface > strong {
  display: block;
  margin-bottom: 5px;
  color: var(--green);
  font-size: .79rem;
  font-weight: 700;
  line-height: 1.5;
}
.specialties-page .specialty-interface p { margin: 0; font-size: .84rem; line-height: 1.65; }
.specialties-page .specialty-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-top: 21px;
}
.specialties-page .specialty-links .text-link { font-size: .82rem; }
.specialties-page .discipline-gallery { margin-top: 24px; }
.specialties-page .discipline-gallery .accordion-item {
  border: 1px solid var(--planning-rule);
  background: transparent;
  clip-path: none;
  box-shadow: none;
}
.specialties-page .discipline-gallery .accordion-item::before,
.specialties-page .discipline-gallery .accordion-item::after { display: none; }
.specialties-page .discipline-gallery .accordion-item > button {
  min-height: 52px;
  gap: 20px;
  padding: 13px 18px;
  font-size: .83rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
}
.specialties-page .discipline-gallery .accordion-item > button::after {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-width: 1px;
}
.specialties-page .discipline-gallery .gallery-wrap { padding-inline: 18px; }
.specialties-page .discipline-gallery .lazy-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.specialties-page .discipline-gallery .lazy-gallery figure {
  min-height: 0;
  aspect-ratio: 4 / 3;
  clip-path: none;
}
.specialties-page .discipline-gallery .lazy-gallery img { min-height: 0; height: 100%; }
.specialties-page .discipline-gallery .lazy-gallery figcaption {
  left: 7px;
  right: 7px;
  bottom: 7px;
  padding: 5px 7px;
  clip-path: none;
  font-size: .62rem;
  font-weight: 600;
  line-height: 1.5;
}
.specialties-page .special-solutions { border-block: 1px solid var(--planning-rule); }
.specialties-page .special-solutions h2 { max-width: 32ch; margin-bottom: 14px; }
.specialties-page .special-solutions p { margin-bottom: 0; }
@media (max-width: 1060px) {
  .specialties-page .discipline-index-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .specialties-page .discipline-index-copy h2 { max-width: 30ch; }
  .specialties-page .specialty-index-note { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .specialties-page .discipline-grid { gap: 34px; }
}
@media (max-width: 900px) {
  .specialties-page .discipline-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .specialties-page .discipline-title { position: static; }
  .specialties-page .discipline-thumb { max-width: 560px; max-height: 330px; }
  .specialties-page .discipline-title .specialty-caption { max-width: 560px; }
}
@media (max-width: 620px) {
  .specialties-page .specialty-index-note { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .specialties-page .discipline-index { --sheet-fold-size: 22px; padding: 22px 16px; }
  .specialties-page .index-sheet-header { gap: 6px 16px; margin-bottom: 17px; }
  .specialties-page .discipline-index .index-sheet-brand { font-size: .73rem; }
  .specialties-page .discipline-index .index-sheet-kind { font-size: .58rem; }
  .specialties-page .index-sheet-meta { margin-bottom: 16px; font-size: .7rem; }
  .specialties-page .index-sheet-columns { grid-template-columns: minmax(0, 1fr); }
  .specialties-page .index-sheet-columns span:first-child { grid-column: 1; }
  .specialties-page .index-sheet-columns span:last-child { display: none; }
  .specialties-page .index-sheet-footer { margin-top: 18px; }
  .specialties-page .discipline-index a {
    grid-template-columns: 24px minmax(0, 1fr) 30px;
    gap: 5px 9px;
    padding: 13px 0;
  }
  .specialties-page .discipline-index i { display: block; grid-column: 3; grid-row: 1; }
  .specialties-page .discipline-index small { grid-column: 2 / 4; font-size: .82rem; }
  .specialties-page .discipline-index strong { font-size: .91rem; }
  .specialties-page .discipline-thumb { max-height: none; }
  .specialties-page .specialty-detail { gap: 12px; padding-block: 18px; }
  .specialties-page .specialty-interface { padding: 15px 16px; }
  .specialties-page .specialty-links { gap: 12px 20px; }
  .specialties-page .discipline-gallery .lazy-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .specialties-page .discipline-index a,
  .specialties-page .discipline-gallery .accordion-panel,
  .specialties-page .discipline-gallery .accordion-item > button::after,
  .specialties-page .discipline-gallery .lazy-gallery figure,
  .specialties-page .discipline-gallery .lazy-gallery img { transition: none; animation: none; }
}

/* Floor plan beside the table of contents (generated by scripts/build-specialties-plan.py). */
.specialties-page .spec-plan { margin: 34px 0 0; padding-top: 22px; border-top: 1px solid var(--planning-rule); }
.specialties-page .spec-plan-svg { display: block; width: 100%; height: auto; overflow: visible; }
.specialties-page .spec-plan figcaption { margin-top: 12px; color: var(--muted); font-size: .76rem; line-height: 1.6; }
.specialties-page .plan-grid { fill: none; stroke: #2b5847; stroke-opacity: .1; stroke-width: .6; }
.specialties-page .plan-grille { fill: #b9dbca; fill-opacity: .55; }
.specialties-page .plan-wall { fill: url(#spec-plan-hatch); stroke: #2b5847; stroke-width: 1.2; }
.specialties-page .plan-door-gap { fill: var(--bg); stroke: none; }
.specialties-page .plan-door { fill: none; stroke: #2b5847; stroke-width: 1; }
.specialties-page .plan-rack { fill: #e4f0e9; stroke: #2b5847; stroke-width: .8; }
.specialties-page .plan-climate { fill: #b9dbca; stroke: #2b5847; stroke-width: 1.1; }
.specialties-page .plan-board { fill: #fff; stroke: #2b5847; stroke-width: 1.1; }
.specialties-page .plan-battery { fill: #d3e5db; stroke: #2b5847; stroke-width: 1; }
.specialties-page .plan-outdoor { fill: #fff; stroke: #2b5847; stroke-width: 1.1; }
.specialties-page .plan-fan { fill: none; stroke: #2b5847; stroke-width: .9; }
.specialties-page .plan-cylinder { fill: #fff; stroke: #2b5847; stroke-width: 1.1; }
.specialties-page .plan-device { fill: #2b5847; }
.specialties-page .plan-tray { fill: none; stroke: #6f9d8a; stroke-width: 2.2; stroke-opacity: .45; }
.specialties-page .plan-pipe { fill: none; stroke: #b98a2e; stroke-width: 1.4; }
.specialties-page .plan-fire-pipe { fill: none; stroke: #2b5847; stroke-width: .7; stroke-opacity: .55; stroke-dasharray: 3 2; }
.specialties-page .plan-leader { fill: none; stroke: var(--green); stroke-width: 1.2; }
.specialties-page .plan-target { fill: var(--green); }
.specialties-page .plan-badge { fill: var(--green); stroke: var(--bg); stroke-width: 2; transition: fill .2s ease; }
.specialties-page .plan-marker text { fill: #fff; font-family: Sora, Manrope, sans-serif; font-size: 11.5px; font-weight: 600; text-anchor: middle; pointer-events: none; }
.specialties-page .plan-marker:hover .plan-badge,
.specialties-page .plan-marker:focus-visible .plan-badge { fill: var(--ink); }
.specialties-page .plan-marker:focus-visible { outline: none; }
.specialties-page .plan-marker:focus-visible .plan-badge { stroke: var(--mint); stroke-width: 3; }

/* Chapter rail: fixed on the right on wide screens, a floating button on smaller ones. */
.specialties-page .specialty-rail {
  position: fixed;
  z-index: 40;
  top: 50%;
  right: max(var(--content-pad), calc((100vw - var(--max)) / 2));
  width: 184px;
  transform: translateY(-50%);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.specialties-page .specialty-rail.is-visible { opacity: 1; visibility: visible; }
.specialties-page .specialty-rail-toggle { display: none; }
.specialties-page .specialty-rail-title {
  display: block;
  margin: 0 0 10px 18px;
  color: var(--green);
  font-family: Sora, Manrope, sans-serif;
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.specialties-page .specialty-rail-list {
  position: relative;
  margin: 0;
  padding: 0 0 0 18px;
  list-style: none;
}
.specialties-page .specialty-rail-list::before,
.specialties-page .specialty-rail-list::after {
  position: absolute;
  top: 8px;
  left: 3px;
  width: 2px;
  content: "";
}
.specialties-page .specialty-rail-list::before { bottom: 8px; background: var(--planning-rule); }
.specialties-page .specialty-rail-list::after { height: var(--rail-fill, 0px); max-height: calc(100% - 16px); background: var(--green); }
.specialties-page .specialty-rail-list li { position: relative; }
.specialties-page .specialty-rail-list li.specialty-rail-gap { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--planning-rule); }
.specialties-page .specialty-rail-list a {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 4px 0;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.35;
  text-decoration: none;
  transition: color .2s ease;
}
.specialties-page .specialty-rail-list a::before {
  position: absolute;
  top: 50%;
  left: -18px;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border: 2px solid var(--planning-rule);
  background: var(--bg);
  content: "";
  transition: border-color .2s ease, background .2s ease;
}
.specialties-page .specialty-rail-list li.specialty-rail-gap a::before { margin-top: 1px; }
.specialties-page .specialty-rail-list a > span {
  flex: 0 0 18px;
  color: var(--green);
  font-family: Sora, Manrope, sans-serif;
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .04em;
}
.specialties-page .specialty-rail-list a:hover,
.specialties-page .specialty-rail-list a:focus-visible { color: var(--green); }
.specialties-page .specialty-rail-list a.is-active { color: var(--ink); font-weight: 600; }
.specialties-page .specialty-rail-list a.is-active::before { border-color: var(--green); background: var(--green); }

@media (min-width: 1200px) {
  .specialties-page .discipline-section > .container,
  .specialties-page .special-solutions > .container { padding-right: 224px; }
}
@media (max-width: 1199px) {
  .specialties-page .specialty-rail {
    top: auto;
    right: 16px;
    bottom: 16px;
    width: auto;
    max-width: calc(100vw - 32px);
    transform: none;
  }
  .specialties-page .specialty-rail-title { display: none; }
  .specialties-page .specialty-rail-toggle {
    position: relative;
    display: flex;
    gap: 10px;
    align-items: center;
    overflow: hidden;
    padding: 11px 16px 13px;
    border: 1px solid var(--planning-rule);
    background: var(--bg);
    box-shadow: 0 12px 30px rgba(20, 62, 50, .16);
    color: var(--ink);
    font: 600 .82rem/1.3 Manrope, sans-serif;
    cursor: pointer;
  }
  .specialties-page .specialty-rail-toggle small { color: var(--green); font-size: .66rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
  .specialties-page .specialty-rail-toggle::after {
    position: absolute;
    left: 0;
    bottom: 0;
    width: calc(100% * var(--rail-progress, 0));
    height: 3px;
    background: var(--green);
    content: "";
  }
  .specialties-page .specialty-rail-list {
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    display: none;
    width: min(300px, calc(100vw - 32px));
    max-height: 62vh;
    overflow: auto;
    padding: 14px 16px 14px 34px;
    border: 1px solid var(--planning-rule);
    background: var(--bg);
    box-shadow: 0 12px 30px rgba(20, 62, 50, .16);
  }
  .specialties-page .specialty-rail-list::before,
  .specialties-page .specialty-rail-list::after { top: 22px; left: 19px; }
  .specialties-page .specialty-rail-list::before { bottom: 22px; }
  .specialties-page .specialty-rail-list::after { max-height: calc(100% - 44px); }
  .specialties-page .specialty-rail.is-open .specialty-rail-list { display: block; }
  .specialties-page .specialty-rail-list a { padding: 6px 0; font-size: .84rem; }
}
@media (prefers-reduced-motion: reduce) {
  .specialties-page .specialty-rail,
  .specialties-page .specialty-rail-list a,
  .specialties-page .specialty-rail-list a::before { transition: none; }
}
.specialties-page .print-header { display: none; }
.specialties-page .specialty-rail-list li.specialty-rail-top { margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--planning-rule); }
.specialties-page .specialty-rail-list li.specialty-rail-top a::before { margin-top: -9px; }

/* Ctrl+P: the page prints as a tidy technical summary on A4. */
@media print {
  @page { size: A4; margin: 12mm 12mm 13mm; }
  html, body.specialties-page { background: #fff !important; }
  body.specialties-page { color: #1c2a24; font-size: 9.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .specialties-page :is(.site-header, .site-footer, .skip-link, .specialty-rail, .scroll-progress, .pointer-glow,
    .image-lightbox, .hero-media, .hero-actions, .planning-hero-points, .hero .eyebrow, .discipline-gallery,
    .specialty-links, .planning-start-section, .specialty-index-note, .index-sheet-footer) { display: none !important; }
  .specialties-page a { color: inherit !important; background: none !important; text-decoration: none !important; }
  .specialties-page main :is(.section, .hero) { min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; overflow: visible !important; }
  .specialties-page .hero::before, .specialties-page .hero::after { display: none !important; }
  .specialties-page main .container,
  .specialties-page .hero-content { width: auto !important; max-width: none !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; }
  .specialties-page .hero-copy { max-width: none; }

  .specialties-page .print-header { display: flex; align-items: center; gap: 6mm; margin: 0 0 7mm; padding-bottom: 4mm; border-bottom: 1.2pt solid #2b5847; }
  .specialties-page .print-header img { width: 32mm; height: auto; }
  .specialties-page .print-header strong { display: block; color: #143e32; font: 600 12.5pt/1.3 Sora, Manrope, sans-serif; }
  .specialties-page .print-header span { display: block; margin-top: 1mm; color: #4a5c54; font-size: 7.5pt; }
  .specialties-page .hero h1 { margin: 0 0 2mm; font-size: 20pt; }
  .specialties-page .hero .lead { max-width: none; margin: 0 0 7mm; font-size: 10pt; }

  /* Contents first, then the floor plan. */
  .specialties-page .discipline-index-layout { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 6mm !important; }
  .specialties-page .discipline-index { order: -1; padding: 6mm 7mm; clip-path: none; break-inside: avoid; border: .8pt solid #c6d6cd; }
  .specialties-page .discipline-index::before, .specialties-page .discipline-index::after { display: none; }
  .specialties-page .discipline-index-copy h2 { max-width: none; margin: 0 0 2mm; font-size: 13pt; }
  .specialties-page .discipline-index-copy .eyebrow { display: none; }
  .specialties-page .index-sheet-header { margin-bottom: 3mm; }
  .specialties-page .discipline-index h2 { margin-bottom: 1mm; font-size: 15pt; }
  .specialties-page .index-sheet-meta { margin-bottom: 3mm; font-size: 7.5pt; }
  .specialties-page .index-sheet-columns { padding: 1.2mm 0; font-size: 7pt; }
  .specialties-page .discipline-index a { padding: 1.5mm 0 !important; }
  .specialties-page .discipline-index strong { font-size: 9.5pt; line-height: 1.35; }
  .specialties-page .discipline-index small { font-size: 8.5pt; line-height: 1.35; }
  .specialties-page .discipline-index span { font-size: 7.5pt; }
  .specialties-page .discipline-index-divider { margin: 2mm 0 0; padding-top: 2.5mm; font-size: 7pt; }
  .specialties-page .discipline-index-copy p { font-size: 9.5pt; }
  .specialties-page .discipline-index-copy { break-before: page; }
  .specialties-page .spec-plan { max-width: 170mm; margin: 8mm auto 0; padding-top: 0; border-top: 0; break-inside: avoid; }
  .specialties-page .plan-door-gap { fill: #fff; }
  .specialties-page .plan-badge { stroke: #fff; }

  /* Chapters: photo column and text, never split inside a topic. */
  .specialties-page main .discipline-section,
  .specialties-page main .special-solutions { padding-top: 4mm !important; margin-top: 4mm !important; border-top: .8pt solid #c6d6cd !important; }
  .specialties-page main .discipline-section { break-inside: avoid; }
  .specialties-page #epiteszet { break-before: page; margin-top: 0 !important; border-top: 0 !important; padding-top: 0 !important; }
  .specialties-page main .special-solutions { break-before: page; margin-top: 0 !important; border-top: 0 !important; padding-top: 0 !important; }
  .specialties-page .special-solutions h2 { max-width: none; font-size: 13pt; }
  .specialties-page .discipline-grid { display: grid !important; grid-template-columns: 42mm minmax(0, 1fr) !important; gap: 6mm !important; padding-right: 0 !important; align-items: start; }
  .specialties-page .discipline-title { position: static !important; break-inside: avoid; }
  .specialties-page .discipline-number { width: 9mm; height: 9mm; font-size: 8pt; }
  .specialties-page .specialty-heading { gap: 3mm; margin-bottom: 2mm; }
  .specialties-page .specialty-heading .planning-icon { width: 7mm; height: 7mm; }
  .specialties-page .discipline-thumb { margin-top: 3mm; }
  .specialties-page .discipline-title .specialty-caption { margin-top: 2mm; padding-top: 2mm; font-size: 7pt; }
  .specialties-page .discipline-copy h2 { max-width: none; margin: 0 0 2.5mm; font-size: 14pt; break-after: avoid; }
  .specialties-page .discipline-copy > p.specialty-lead { margin: 0 0 2.5mm; font-size: 9.5pt; }
  .specialties-page .specialty-detail { grid-template-columns: 6mm minmax(0, 1fr); gap: 3mm; padding: 1.8mm 0; break-inside: avoid; }
  .specialties-page .specialty-detail .planning-icon { width: 5.5mm; height: 5.5mm; }
  .specialties-page .specialty-detail h3 { margin-bottom: 1mm; font-size: 9.5pt; }
  .specialties-page .specialty-detail p { color: #34463e; font-size: 8.8pt; line-height: 1.5; }
  .specialties-page .specialty-interface { margin-top: 1.5mm; padding: 2.5mm 4mm; background: #f1f6f3 !important; break-inside: avoid; break-before: avoid; }
  .specialties-page .specialty-interface p { font-size: 8.5pt; }
}
