.illustrated-guide {
  display:grid;
  grid-template-columns:minmax(0, 1.25fr) minmax(260px, .85fr);
  align-items:center;
  gap:0 clamp(25px, 5vw, 75px);
}
.illustrated-guide .crumb { grid-column:1/-1 }
.owner-guide .illustrated-guide h1 { font-size:clamp(2.4rem, 4.7vw, 4.8rem); line-height:1.02; max-width:18ch }
.guide-jump { display:inline-block; padding:.4rem 0; font-weight:650; text-underline-offset:4px }
.repair-plate { margin:1.3rem 0 0 }
.repair-plate img { display:block; width:100%; height:auto }
.repair-plate figcaption, .lab-device-name, .lab-stamp { font:600 .8rem/1.5 var(--mono) }
.repair-plate figcaption { color:var(--muted); margin-top:.65rem }
.repair-lab {
  margin:2rem 0; padding:clamp(16px, 3vw, 29px); min-width:0;
  border:1px solid #b4c9bf; border-radius:8px; background:#e8f2ec; scroll-margin-top:6rem;
}
.repair-lab legend { padding:0 .5rem; font-size:clamp(1.25rem, 3vw, 1.7rem); font-weight:700; letter-spacing:-.035em }
.repair-lab .lab-instruction { margin:0 0 1rem; color:#324e43; font-size:1rem }
.repair-lab input { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden }
.repair-lab label {
  display:inline-flex; align-items:center; min-height:44px; padding:6px 12px; margin:0 3px 6px 0;
  border:1px solid #798f83; border-radius:5px; font-size:.92rem; font-weight:600; cursor:pointer;
}
.repair-lab input:checked + label { background:#193d31; color:white; border-color:#193d31 }
.repair-lab input:focus-visible + label, .repair-detail summary:focus-visible { outline:3px solid #086a56; outline-offset:3px }
.lab-screen { display:none; align-items:center; gap:clamp(1rem, 3vw, 2rem); padding-top:1rem }
#screen-search:checked ~ .search-view,
#screen-page:checked ~ .page-view,
#screen-booking:checked ~ .booking-view { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr) }
.lab-device { min-height:220px; background:white; border:1px solid #b2c8bb; border-top:5px solid #264a3d; border-radius:9px; padding:20px }
.lab-device-name, .lab-device small, .lab-result-title { display:block }
.lab-device-name, .lab-address { color:#385343 }
.lab-query { padding:6px 12px; margin:.85rem 0; border:1px solid #aebfb7; border-radius:100px; font-size:.96rem }
.lab-address { font-size:.8rem }
.lab-result-title { margin:.5rem 0; font-size:1.3rem; letter-spacing:-.03em; line-height:1.18 }
.lab-screen p { margin:.6rem 0 0; color:#2d453b; font-size:1rem; line-height:1.55 }
.lab-mock-button, .lab-stamp { display:inline-block; margin:.85rem 0 .4rem; padding:.35rem .7rem; border-radius:4px; background:#b6f2d6; color:#143629; font-weight:650 }
.lab-log { margin:.75rem 0 0; padding:0; list-style:none; font-size:.9rem }
.lab-log li { padding:.3rem 0; border-bottom:1px solid #dce7df }
.lab-log b { margin-right:.45rem; font-family:var(--mono) }
.repair-detail { margin:.5rem 0 2rem; border-block:1px solid #afc6b9 }
.repair-detail summary { padding:14px 0; color:#215543; font-weight:680; cursor:pointer }
.repair-detail dl { margin:0 0 1.1rem }
.repair-detail dt { font-weight:650; margin-top:.75rem }
.repair-detail dd { margin:.15rem 0 0; color:var(--muted) }
@media (max-width:680px) {
  .illustrated-guide { grid-template-columns:minmax(0, 1fr) }
  .repair-plate { max-width:340px }
  .repair-lab .lab-screen { grid-template-columns:minmax(0, 1fr) !important }
  .repair-lab label { padding-inline:8px; font-size:.87rem }
  .lab-device { min-height:0 }
}
.repair-checks { display:grid; gap:.5rem; padding-bottom:1rem } .repair-checks label { display:flex; align-items:baseline; gap:.7rem; padding:.45rem 0; cursor:pointer } .repair-checks input { accent-color:#1e5840; flex:none }
.lab-callback summary, .lab-receipt summary { cursor:pointer }
.lab-callback summary:focus-visible { outline:3px solid #086a56; outline-offset:3px }
.lab-fields { margin:.6rem 0; font-size:.93rem }
.lab-fields dt { font-weight:650 }
.lab-fields dd { margin:0 0 .5rem }
.lab-receipt { padding:.65rem; border:1px solid #a7c3b3; margin:.6rem 0 }
.lab-receipt summary { color:#215543; font-weight:650 }
.repair-map, .repair-cohort { margin:1.7rem 0 2rem; padding:clamp(16px,3.2vw,28px); border-radius:8px }
.repair-map { background:#153a35; color:#f2fff7 }
.repair-map figcaption strong, .repair-cohort figcaption strong { display:block; font-size:clamp(1.25rem,2.6vw,1.55rem) }
.repair-map figcaption span, .repair-cohort figcaption span { display:block; margin-top:.35rem; font-size:.95rem }
.repair-map-body { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(18px,3vw,34px); align-items:center; margin-top:1.5rem }
.map-phone { background:#eff9f2; color:#163a32; border:5px solid #759c8e; border-radius:20px; padding:12px; box-shadow:4px 5px 0 #0b2825 }
.map-speaker { width:28px; height:4px; margin:0 auto 12px; background:#749182; border-radius:3px }
.map-row { display:flex; align-items:center; gap:8px; padding:.7rem 0; border-top:1px solid #bad0c2; line-height:1.3 }
.map-row i { font:600 .8rem var(--mono); color:#206044 }
.map-row b { font-size:1.25rem }
.map-cta { display:inline-block; padding:6px 9px; color:white; background:#205943; border-radius:4px }
.map-key { margin:0 }
.map-key dt { font-weight:700; color:#a1f4cf }
.map-key dd { margin:.15rem 0 .8rem; line-height:1.45 }
.repair-cohort { border:1px solid #a9c3b4; background:#f0f6ef }
.repair-cohort ol { margin:1rem 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); list-style:none; gap:12px }
.repair-cohort li { border-top:3px solid #327454; padding-top:.45rem; font-size:.93rem }
.repair-cohort li b { display:block; font-size:2rem; line-height:1.15 }
.content-copy .repair-cohort p { margin:0; font-size:1rem }
@media (max-width:620px) {
  .repair-map-body { grid-template-columns:minmax(0,1fr) }
  .map-phone { width:min(100%,240px); margin:auto }
}
