<svg xmlns="http://www.w3.org/2000/svg" viewBox="14 24 872 528" role="img" aria-label="Schematic building section showing fire detection devices, sprinkler branch lines, wet riser, fire pump set and storage tank">
  <defs>
    <linearGradient id="fslab" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#F2F8FC"/><stop offset="1" stop-color="#DDEAF3"/>
    </linearGradient>
    <linearGradient id="ftank" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#0B4E80"/><stop offset=".4" stop-color="#1E6EA6"/><stop offset="1" stop-color="#083A61"/>
    </linearGradient>
    <linearGradient id="fwater" gradientUnits="userSpaceOnUse" x1="0" y1="380" x2="0" y2="520">
      <stop offset="0" stop-color="#00696B"/><stop offset=".45" stop-color="#00A2A4"/><stop offset="1" stop-color="#00696B"/>
    </linearGradient>
  </defs>

  <g stroke="#0B4E80" stroke-linejoin="round" stroke-linecap="round">

    <!-- ===== building shell ===== -->
    <rect x="120" y="56" width="600" height="470" fill="#FAFCFE" stroke-width="2.4"/>
    <!-- roof -->
    <rect x="104" y="40" width="632" height="18" rx="3" fill="url(#fslab)" stroke-width="2.4"/>

    <!-- floor slabs -->
    <g fill="url(#fslab)" stroke-width="2.2">
      <rect x="120" y="188" width="600" height="16"/>
      <rect x="120" y="320" width="600" height="16"/>
      <rect x="120" y="452" width="600" height="16"/>
    </g>

    <!-- floor labels -->
    <g font-family="'Sora',system-ui,sans-serif" font-size="11" fill="#6B7280" letter-spacing="2" stroke="none">
      <text x="132" y="120">LEVEL 03</text>
      <text x="132" y="252">LEVEL 02</text>
      <text x="132" y="404">LEVEL 01</text>
      <text x="132" y="518">PUMP ROOM</text>
    </g>

    <!-- ===== wet riser (vertical) ===== -->
    <line x1="600" y1="500" x2="600" y2="70" stroke="#00A2A4" stroke-width="9"/>
    <g fill="#E2EDF5" stroke-width="1.8">
      <rect x="592" y="176" width="16" height="14" rx="2"/>
      <rect x="592" y="308" width="16" height="14" rx="2"/>
      <rect x="592" y="440" width="16" height="14" rx="2"/>
    </g>

    <!-- ===== sprinkler branch lines + heads (3 floors) ===== -->
    <g>
      <!-- L3 -->
      <line x1="200" y1="82" x2="600" y2="82" stroke="#00898B" stroke-width="5"/>
      <g stroke="#0B4E80" stroke-width="2">
        <line x1="250" y1="82" x2="250" y2="98"/><circle cx="250" cy="103" r="6" fill="#7FC4C5"/>
        <line x1="340" y1="82" x2="340" y2="98"/><circle cx="340" cy="103" r="6" fill="#7FC4C5"/>
        <line x1="430" y1="82" x2="430" y2="98"/><circle cx="430" cy="103" r="6" fill="#7FC4C5"/>
        <line x1="520" y1="82" x2="520" y2="98"/><circle cx="520" cy="103" r="6" fill="#7FC4C5"/>
      </g>
      <!-- L2 -->
      <line x1="200" y1="214" x2="600" y2="214" stroke="#00898B" stroke-width="5"/>
      <g stroke="#0B4E80" stroke-width="2">
        <line x1="250" y1="214" x2="250" y2="230"/><circle cx="250" cy="235" r="6" fill="#7FC4C5"/>
        <line x1="340" y1="214" x2="340" y2="230"/><circle cx="340" cy="235" r="6" fill="#7FC4C5"/>
        <line x1="430" y1="214" x2="430" y2="230"/><circle cx="430" cy="235" r="6" fill="#7FC4C5"/>
        <line x1="520" y1="214" x2="520" y2="230"/><circle cx="520" cy="235" r="6" fill="#7FC4C5"/>
      </g>
      <!-- L1 -->
      <line x1="200" y1="346" x2="600" y2="346" stroke="#00898B" stroke-width="5"/>
      <g stroke="#0B4E80" stroke-width="2">
        <line x1="250" y1="346" x2="250" y2="362"/><circle cx="250" cy="367" r="6" fill="#7FC4C5"/>
        <line x1="340" y1="346" x2="340" y2="362"/><circle cx="340" cy="367" r="6" fill="#7FC4C5"/>
        <line x1="430" y1="346" x2="430" y2="362"/><circle cx="430" cy="367" r="6" fill="#7FC4C5"/>
        <line x1="520" y1="346" x2="520" y2="362"/><circle cx="520" cy="367" r="6" fill="#7FC4C5"/>
      </g>
    </g>

    <!-- ===== detectors (ceiling mounted, offset from sprinklers) ===== -->
    <g>
      <g fill="#FFFFFF" stroke-width="2">
        <ellipse cx="295" cy="72" rx="13" ry="6"/><ellipse cx="475" cy="72" rx="13" ry="6"/>
        <ellipse cx="295" cy="204" rx="13" ry="6"/><ellipse cx="475" cy="204" rx="13" ry="6"/>
        <ellipse cx="295" cy="336" rx="13" ry="6"/><ellipse cx="475" cy="336" rx="13" ry="6"/>
      </g>
      <g fill="#00898B" stroke="none">
        <circle cx="295" cy="72" r="3"/><circle cx="475" cy="72" r="3"/>
        <circle cx="295" cy="204" r="3"/><circle cx="475" cy="204" r="3"/>
        <circle cx="295" cy="336" r="3"/><circle cx="475" cy="336" r="3"/>
      </g>
      <!-- detection signal arcs from one detector -->
      <g fill="none" stroke="#00898B" stroke-width="1.8" opacity=".7">
        <path d="M283 86 a18 18 0 0 0 24 0"/>
        <path d="M275 96 a30 30 0 0 0 40 0" opacity=".5"/>
      </g>
    </g>

    <!-- ===== detection loop wiring (dashed) ===== -->
    <path d="M295 72 L295 60 L192 60 L192 500 L232 500" fill="none" stroke="#0B5FA5"
          stroke-width="2" stroke-dasharray="7 5" opacity=".75"/>
    <path d="M475 72 L475 60 L295 60" fill="none" stroke="#0B5FA5" stroke-width="2"
          stroke-dasharray="7 5" opacity=".45"/>

    <!-- ===== fire alarm control panel ===== -->
    <rect x="232" y="472" width="66" height="56" rx="5" fill="#012A4E" stroke="#012A4E" stroke-width="2"/>
    <rect x="242" y="482" width="46" height="22" rx="3" fill="#00A2A4" stroke="none" opacity=".9"/>
    <g fill="#7FC4C5" stroke="none">
      <circle cx="248" cy="516" r="4"/><circle cx="262" cy="516" r="4" opacity=".55"/>
      <circle cx="276" cy="516" r="4" opacity=".3"/>
    </g>

    <!-- ===== fire pump set ===== -->
    <rect x="330" y="500" width="150" height="14" rx="2" fill="#CFE0EC" stroke-width="2"/>
    <!-- jockey pump -->
    <rect x="340" y="472" width="34" height="28" rx="4" fill="#E2EDF5" stroke-width="2"/>
    <circle cx="357" cy="486" r="7" fill="#7FC4C5" stroke-width="1.6"/>
    <!-- main electric fire pump -->
    <rect x="386" y="454" width="46" height="46" rx="5" fill="url(#ftank)" stroke-width="2"/>
    <circle cx="409" cy="477" r="13" fill="#E2EDF5" stroke-width="2"/>
    <g stroke="#00898B" stroke-width="2" fill="none">
      <path d="M409 477 q7 -4 11 -9"/><path d="M409 477 q7 6 4 12"/><path d="M409 477 q-9 3 -12 -5"/>
    </g>
    <!-- diesel standby pump -->
    <rect x="442" y="464" width="34" height="36" rx="4" fill="#E2EDF5" stroke-width="2"/>
    <g stroke="#0B4E80" stroke-width="1.6" opacity=".6">
      <line x1="448" y1="472" x2="470" y2="472"/><line x1="448" y1="480" x2="470" y2="480"/>
      <line x1="448" y1="488" x2="470" y2="488"/>
    </g>

    <!-- suction + discharge headers -->
    <line x1="330" y1="500" x2="308" y2="500" stroke="#00A2A4" stroke-width="7"/><circle cx="308" cy="500" r="7" fill="#E2EDF5" stroke="#0B4E80" stroke-width="1.8"/>
    <path d="M480 500 L600 500" fill="none" stroke="#00A2A4" stroke-width="7"/>

    <!-- ===== water storage tank ===== -->
    <rect x="756" y="380" width="118" height="146" rx="6" fill="url(#ftank)" stroke-width="2.4"/>
    <path d="M762 452 q29 -12 58 0 t54 0 l0 68 q0 6 -6 6 l-100 0 q-6 0 -6 -6 Z"
          fill="#00A2A4" stroke="none" opacity=".55"/>
    <line x1="756" y1="416" x2="874" y2="416" stroke="#7FC4C5" stroke-width="1.6" opacity=".6"/>
    <path d="M756 500 L720 500" fill="none" stroke="#00A2A4" stroke-width="7"/>

    <!-- ===== external hydrant ===== -->
    <line x1="46" y1="526" x2="120" y2="526" stroke="#0B4E80" stroke-width="2.4" opacity=".5"/>
    <rect x="58" y="470" width="20" height="56" rx="9" fill="#00898B" stroke="#00696B" stroke-width="2"/>
    <rect x="46" y="484" width="12" height="12" rx="3" fill="#00A2A4" stroke="#00696B" stroke-width="1.8"/>
    <rect x="78" y="484" width="12" height="12" rx="3" fill="#00A2A4" stroke="#00696B" stroke-width="1.8"/>
    <ellipse cx="68" cy="470" rx="14" ry="6" fill="#00A2A4" stroke="#00696B" stroke-width="2"/>

    <!-- ground line -->
    <line x1="20" y1="526" x2="880" y2="526" stroke="#0B4E80" stroke-width="2.6"/>
    <g stroke="#B9D2E4" stroke-width="2">
      <line x1="30" y1="526" x2="18" y2="540"/><line x1="70" y1="526" x2="58" y2="540"/>
      <line x1="110" y1="526" x2="98" y2="540"/><line x1="150" y1="526" x2="138" y2="540"/>
      <line x1="190" y1="526" x2="178" y2="540"/><line x1="230" y1="526" x2="218" y2="540"/>
      <line x1="270" y1="526" x2="258" y2="540"/><line x1="310" y1="526" x2="298" y2="540"/>
      <line x1="350" y1="526" x2="338" y2="540"/><line x1="390" y1="526" x2="378" y2="540"/>
      <line x1="430" y1="526" x2="418" y2="540"/><line x1="470" y1="526" x2="458" y2="540"/>
      <line x1="510" y1="526" x2="498" y2="540"/><line x1="550" y1="526" x2="538" y2="540"/>
      <line x1="590" y1="526" x2="578" y2="540"/><line x1="630" y1="526" x2="618" y2="540"/>
      <line x1="670" y1="526" x2="658" y2="540"/><line x1="710" y1="526" x2="698" y2="540"/>
      <line x1="750" y1="526" x2="738" y2="540"/><line x1="790" y1="526" x2="778" y2="540"/>
      <line x1="830" y1="526" x2="818" y2="540"/><line x1="870" y1="526" x2="858" y2="540"/>
    </g>
  </g>

  <!-- ===== key ===== -->
  <g font-family="'Sora',system-ui,sans-serif" font-size="12" fill="#01325D" letter-spacing="1.6">
    <g stroke="none">
      <circle cx="130" cy="586" r="6" fill="#7FC4C5"/><text x="146" y="591">SPRINKLER HEAD</text>
      <ellipse cx="316" cy="586" rx="12" ry="5.5" fill="#FFFFFF" stroke="#0B4E80" stroke-width="1.8"/>
      <circle cx="316" cy="586" r="3" fill="#00898B"/><text x="336" y="591">DETECTOR</text>
      <rect x="466" y="580" width="24" height="6" rx="3" fill="#00A2A4"/><text x="500" y="591">WET RISER</text>
      <rect x="632" y="578" width="18" height="14" rx="3" fill="#012A4E"/><text x="660" y="591">CONTROL PANEL</text>
    </g>
  </g>
</svg>
