/* Shared product gallery, scoped to the floor-plan page through this stylesheet. */
.fp-hero { overflow:hidden; background:#fff; }
.fp-hero__title { font-weight:700; line-height:1.05; letter-spacing:-.03em; color:#1d1d1f; }
.fp-hero__tag { font-size:clamp(.95rem,1.5vw,1.1rem); line-height:1.65; color:#6e6e73; }
.fp-hero__actions { display:flex; align-items:center; flex-wrap:wrap; }
.fp-hero__figure { margin:0; }
.fp-hero__figure video { display:block; width:100%; height:auto; border-radius:24px; }
.fp-setup__title { font-weight:700; }
.fp-setup__tabs { display:flex; margin-bottom:28px; overflow-x:auto; scrollbar-width:none; padding-bottom:4px; }
.fp-setup__tabs::-webkit-scrollbar { display:none; }
.fp-setup__tab { position:relative; flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; border:0; overflow:hidden; font-weight:600; cursor:pointer; transition:background-color .2s,color .2s; }
.fp-setup__tab:focus-visible { outline:3px solid #0071e3; outline-offset:3px; }
.fp-setup__tab-num { width:22px; height:22px; border-radius:50%; display:grid; place-items:center; font-size:12px; }
.fp-setup__tab.is-active .fp-setup__tab-num { background:#0071e3; color:#fff; }
.fp-setup__tab-progress { position:absolute; left:0; right:0; bottom:0; height:3px; }
.fp-setup__tab-progress span { display:block; width:100%; height:100%; background:#0071e3; transform:scaleX(0); transform-origin:left; transition:transform .1s linear; }
.fp-setup__media { position:relative; aspect-ratio:16/9; border-radius:24px; overflow:hidden; }
.fp-setup__media video { width:100%; height:100%; object-fit:contain; display:block; }
.fp-setup__playback { position:absolute; right:16px; bottom:16px; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:50%; background:rgba(0,0,0,.65); color:#fff; cursor:pointer; }
.fp-setup__playback:hover { background:#1d1d1f; }
.fp-setup__playback:focus-visible { outline:3px solid #0071e3; outline-offset:3px; }
.fp-setup__panel h3 { font-size:1.4rem; font-weight:700; margin:0 0 10px; line-height:1.3; }
.fp-setup__panel p { font-size:1rem; line-height:1.7; margin:0 0 16px; }
.fp-setup__chips { display:flex; flex-wrap:wrap; gap:8px; }
.fp-setup__chip { display:inline-flex; align-items:center; gap:7px; padding:6px 16px; border-radius:20px; font-size:14px; font-weight:600; text-decoration:none; }
@media(max-width:767px){.fp-setup__media{border-radius:16px}.fp-setup__panel h3{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.fp-setup__tab,.fp-setup__tab-progress span{transition:none}}
    /* FAQ accordion — shared look with Analytics / Event Management */
    #fp-faq .faq-list {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        max-width: 860px;
    }

    #fp-faq .faq-item {
        border: 1px solid #eaeaea;
        border-radius: 14px;
        background: #fff;
        overflow: hidden;
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    #fp-faq .faq-item.open {
        border-color: rgba(0, 113, 227, 0.35);
        box-shadow: 0 6px 24px rgba(0, 113, 227, 0.08);
    }

    #fp-faq .faq-question {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 1.1rem 1.25rem;
        background: none;
        border: none;
        font-size: 1.02rem;
        font-weight: 600;
        color: #1d1d1f;
        text-align: left;
        cursor: pointer;
    }

    #fp-faq .faq-icon {
        color: #0071e3;
        transition: transform 0.2s ease;
    }

    #fp-faq .faq-item.open .faq-icon {
        transform: rotate(180deg);
    }

    #fp-faq .faq-answer { display: none; padding: 0 1.25rem 1.1rem; }
    #fp-faq .faq-item.open .faq-answer { display: block; }

    #fp-faq .faq-answer p {
        margin: 0;
        color: #4a4a50;
        line-height: 1.65;
    }


/* Floor plans: live product first, quiet photography and consistent section rhythm. */
#fp-hero { padding: 88px 0 80px; text-align: left; }
#fp-hero .fp-hero__title { max-width: none; margin: 0; font-size: clamp(2.5rem,5vw,4.5rem); }
#fp-hero .fp-hero__tag { margin: 20px 0 26px; max-width: 700px; }
.fp-hero__actions { justify-content: flex-start; margin-bottom: 44px; gap: 24px; }
.fp-hero__actions .rb2-link { margin-top: 0; }
.fp-hero__figure { max-width: none; }
.fp-arrow { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#fp-wayfinding,#fp-setup,#fp-signage-templates,#fp-directory,#fp-gallery,#fp-faq,#fp-next { padding-block: 120px; }
.fp-feature { background: #f5f5f7; }
#fp-directory { background: #fff; }
.fp-feature .rb2-split__img-wrap { margin: 0; box-shadow: none; }
.fp-feature .rb2-split__img-wrap img { aspect-ratio: 4 / 3; object-fit: cover; box-shadow: none; }
.fp-feature__steps { list-style: none; counter-reset: steps; padding: 0; margin: 28px 0 0; }
.fp-feature__steps li { counter-increment: steps; position: relative; padding-left: 42px; margin-top: 22px; }
.fp-feature__steps li::before { content: counter(steps, decimal-leading-zero); position: absolute; left: 0; top: 1px; color: #6e6e73; font-size: 14px; }
.fp-feature__steps strong { font-size: 17px; color: #1d1d1f; }
.fp-feature__steps p { color: #6e6e73; line-height: 1.6; margin: 5px 0 0; }
.fp-setup { background: #fff; color: #1d1d1f; }
.fp-setup__head { text-align: left; margin: 0 0 32px; max-width: 780px; }
.fp-setup__title { font-size: clamp(1.8rem,3vw,2.6rem); line-height: 1.2; color: #1d1d1f; margin: 0 0 16px; }
.fp-setup__subtitle { color: #6e6e73; font-size: 17px; line-height: 1.7; }
.fp-setup__tabs { justify-content: flex-start; gap: 10px; }
.fp-setup__tab { background: #f5f5f7; color: #6e6e73; border-radius: 12px; padding: 16px 18px; }
.fp-setup__tab:hover { background: #e8e8ed; color: #1d1d1f; }
.fp-setup__tab.is-active { background: #eaf3fc; color: #0071e3; }
.fp-setup__tab-num { background: #e8e8ed; color: #6e6e73; }
.fp-setup__stage { max-width: none; }
.fp-setup__media { background: #f5f5f7; box-shadow: none; border: 1px solid #e8e8ed; }
.fp-setup__panel { text-align: left; margin: 28px 0 0; max-width: 720px; }
.fp-setup__panel h3 { color: #1d1d1f; }
.fp-setup__panel p { color: #6e6e73; }
.fp-setup__chips { justify-content: flex-start; }
.fp-setup__chip { background: #f5f5f7; color: #6e6e73; }
a.fp-setup__chip { color: #0071e3; }
a.fp-setup__chip:hover { background: #eaf3fc; color: #0071e3; }

.fp-detail { border-bottom: 1px solid #d2d2d7; padding: 0 0 20px; margin-top: 20px; }
.fp-detail summary { display: flex; justify-content: space-between; gap: 20px; align-items: center; cursor: pointer; font-size: 18px; font-weight: 600; color: #1d1d1f; list-style: none; }
.fp-detail summary::-webkit-details-marker { display: none; }
.fp-detail summary:focus-visible { outline: 2px solid #0071e3; outline-offset: 6px; border-radius: 3px; }
.fp-detail summary svg { transition: transform .2s; }
.fp-detail[open] summary svg { transform: rotate(180deg); }
.fp-detail p { margin: 14px 0 0; color: #6e6e73; line-height: 1.7; }
.fp-detail .rb2-link { margin-top: 16px; }
.fp-resources { background: #f5f5f7; }
.fp-resources__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 64px; margin-top: 32px; }
.fp-next { background: #f5f5f7; }
.fp-next .fp-hero__actions { margin: 28px 0 0; }
@media(max-width:767px) {
 #fp-hero { padding-top: 56px; padding-bottom: 64px; }
 .fp-hero__actions { align-items: flex-start; flex-direction: column; gap: 20px; }
 .fp-hero__actions .rb2-cta { width: auto; }
 .fp-resources__grid { grid-template-columns: 1fr; gap: 0; }
 .fp-setup__tab { font-size: 14px; }
}
@media(prefers-reduced-motion:reduce) { .fp-detail summary svg { transition: none; } }

#fp-setup { scroll-margin-top: 88px; }

/* Match Service Management's How it works: one selected screen beside disclosure topics. */
#fp-signage-templates { background:#f5f5f7; }
#fp-signage-templates .fp-signage__intro { margin-bottom:32px; }
.fp-signage.rb-closer { display:grid; grid-template-columns:1.25fr 1fr; min-height:480px; background:#fff; }
.fp-signage .rb-closer__images { position:relative; min-height:480px; background:#fff; }
.fp-signage .rb-closer__figure img { object-fit:contain; object-position:center; padding:16px; }
.fp-signage .rb-closer__topics { width:auto; padding:36px 28px; justify-content:center; gap:20px; }
.fp-signage .rb-closer__topic summary { width:100%; font-size:16px; }
.fp-signage .rb-closer__detail { padding:8px 12px; background:transparent; border-radius:0; }
.fp-signage .rb-closer__detail p { color:#6e6e73; font-size:15px; }
@media(max-width:767px) {
 .fp-signage.rb-closer { display:flex; flex-direction:column; min-height:0; }
 .fp-signage .rb-closer__images { width:100%; min-height:0; aspect-ratio:4/3; }
 .fp-signage .rb-closer__topics { padding:24px 20px; }
 .fp-signage .rb-closer__figure img { padding:8px; }
}
