/* Interactive floor plan: cards on the side light up one zone of the plan */
.floorplan-wrap{position:relative;padding:0}
.floorplan-wrap .floorplan-img{display:block;width:100%;max-width:560px;height:auto;margin-inline:auto;border-radius:0;filter:drop-shadow(0 14px 20px rgba(25,63,123,.12))}
.floorplan-hl{position:absolute;inset:0;width:100%;max-width:560px;height:100%;margin-inline:auto;left:0;right:0;pointer-events:none;overflow:visible}
.floorplan-wrap .floorplan-img{transition:filter .35s ease}
.floorplan-wrap.is-on .floorplan-img{filter:brightness(.62) saturate(.8) drop-shadow(0 14px 20px rgba(25,63,123,.12))}
.floorplan-hl .fp-zone{opacity:0;transition:opacity .35s ease}
.floorplan-hl .fp-zone.is-active{opacity:1}
.floorplan-hl .fp-zone rect{stroke-width:5;fill-opacity:.16}
.floorplan-hl .fp-badge circle.fp-disc{fill:#fff;stroke-width:5;filter:drop-shadow(0 6px 10px rgba(0,20,60,.3))}
.floorplan-hl .fp-badge path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.floorplan-hl .fp-pulse{fill:none;stroke-width:3;opacity:0}
.floorplan-hl .fp-zone.is-active .fp-pulse{animation:fpPulse 1.8s ease-out infinite}
@keyframes fpPulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}
.floorplan-hl .fp-pulse{transform-box:fill-box;transform-origin:center}

.protection-card{font:inherit;cursor:pointer;color:inherit;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,transform .2s ease}
.protection-card:hover{transform:translateY(-2px);background:#f8fbff}
.protection-card:focus-visible{outline:3px solid rgba(32,107,238,.35);outline-offset:2px}
.protection-card.is-active{border-color:var(--zone,#206bee);box-shadow:0 0 0 2px color-mix(in srgb,var(--zone,#206bee) 22%,transparent),0 10px 25px color-mix(in srgb,var(--zone,#206bee) 18%,transparent);background:#fff}
.protection-card.is-active .legend-num{background:var(--zone,#206bee);color:#fff}
.protection-card[data-zone="1"]{--zone:#20a567}
.protection-card[data-zone="2"]{--zone:#206bee}
.protection-card[data-zone="3"]{--zone:#f28b2d}
.protection-card[data-zone="4"]{--zone:#da3f46}
@media(prefers-reduced-motion:reduce){.floorplan-hl .fp-zone,.floorplan-hl .fp-dim{transition:none}.floorplan-hl .fp-zone.is-active .fp-pulse{animation:none}}

/* Larger zone cards with icons instead of numbers */
.protection-card{min-height:164px;padding:21px 14px 20px;gap:5px;border-radius:14px}
.protection-card strong{font-size:18.8px}
.protection-card small{font-size:16px;line-height:1.55}
.protection-card .legend-num{width:52px;height:52px;margin-bottom:4px}
.protection-card .legend-num svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:720px){.protection-card{min-height:140px;padding:16px 10px}.protection-card strong{font-size:16.5px}.protection-card small{font-size:14px}.protection-card .legend-num{width:46px;height:46px}}

/* Entrance animation: plan rises in, copy fades, zone cards follow right to left */
.fp-grid:not(.is-in) .floorplan-img{opacity:0;transform:translateY(22px) scale(.97)}
.fp-grid .floorplan-img{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.fp-grid:not(.is-in) .story-content{opacity:0;transform:translateY(14px)}
.fp-grid .story-content{transition:opacity .6s ease .15s,transform .6s cubic-bezier(.2,.7,.2,1) .15s}
.fp-grid:not(.is-in) .protection-card{opacity:0;transform:translateY(18px)}
.fp-grid .protection-card{transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.fp-grid.is-in .protection-card:nth-child(1){transition-delay:.35s}
.fp-grid.is-in .protection-card:nth-child(2){transition-delay:.47s}
.fp-grid.is-in .protection-card:nth-child(3){transition-delay:.59s}
.fp-grid.is-in .protection-card:nth-child(4){transition-delay:.71s}
.fp-grid.is-in .protection-card:hover{transition-delay:0s}
@media(prefers-reduced-motion:reduce){.fp-grid:not(.is-in) *{opacity:1!important;transform:none!important}}
