/* Product gallery controls, descriptions, and accessible image viewer. */
.product-gallery { background:#fff; color:var(--navy); border:1px solid #dce5f5; border-radius:20px; overflow:hidden; box-shadow:0 22px 65px #00143930; }
.gallery-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:21px 24px 17px; font-size:13px; color:#64718a; }
.gallery-heading>span:first-child { font-weight:750; letter-spacing:.9px; color:var(--primary); }
.gallery-switch { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:6px; margin:0 22px 18px; border-radius:12px; background:#eff3fa; }
.gallery-switch[hidden],.gallery-panel[hidden] { display:none; }
.gallery-switch button { display:flex; align-items:center; justify-content:center; gap:9px; border:0; padding:13px 10px; color:#51617a; background:transparent; border-radius:8px; font:inherit; font-size:14px; font-weight:650; cursor:pointer; transition:background .2s,color .2s; }
.gallery-switch button[aria-selected="true"] { background:var(--primary); color:#fff; box-shadow:0 4px 10px #003fb320; }
.gallery-switch button:hover:not([aria-selected="true"]) { background:#e1e9f9; color:var(--primary); }
.gallery-switch .icon { flex-shrink:0; }
.gallery-panel { margin:0; }
.gallery-panel+.gallery-panel:not([hidden]) { border-top:1px solid #dce5f5; }
.gallery-panel[role="tabpanel"] { border-top:0; }
.product-gallery-figure { margin:0; }
.image-zoom-label { position:absolute; right:15px; bottom:12px; display:flex; align-items:center; gap:7px; padding:7px 10px; color:var(--primary); background:#fff; border:1px solid #dce5f6; border-radius:7px; font-size:12px; box-shadow:0 2px 6px #003fb30b; }
.product-gallery-figure figcaption { display:flex; align-items:center; gap:8px; padding:13px 24px; font-size:14px; color:var(--primary); border-block:1px solid #e2e8f3; background:#fafbfe; }
.product-gallery-figure figcaption>span { margin-left:auto; color:#69758a; font-size:12px; }
.gallery-description { padding:24px; }
.gallery-description h2 { color:var(--navy); font-size:22px; letter-spacing:-.5px; line-height:1.3; margin:0 0 12px; }
.gallery-description p { color:#626e81; font-size:16px; line-height:1.65; margin:0 0 16px; }
.gallery-description ul { display:flex; flex-wrap:wrap; gap:10px 17px; list-style:none; margin:0 0 18px; padding:0; }
.gallery-description li { display:flex; align-items:center; gap:7px; font-size:14px; color:#445774; }
.gallery-description li .icon { color:var(--primary); flex-shrink:0; }
.gallery-more { display:inline-flex; align-items:center; gap:10px; color:var(--primary); font-size:14px; font-weight:650; }
.gallery-more:hover { text-decoration:underline; text-underline-offset:4px; }
.gallery-demo { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:17px 24px; border-top:1px solid #e3e8f2; background:#f1f5fc; }
.gallery-demo>span { color:#566780; font-size:13px; max-width:220px; }
.gallery-demo>a { display:flex; align-items:center; gap:8px; color:var(--primary); font-size:14px; font-weight:750; white-space:nowrap; }
.product-gallery.is-compact { box-shadow:0 18px 45px #003f9b10; }
.is-compact .product-gallery-figure figcaption { border-bottom:0; }

/* Native dialog provides keyboard focus management and Escape-to-close behavior. */
.product-image-dialog { width:min(920px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #dbe4f2; border-radius:18px; background:#fff; color:var(--navy); box-shadow:0 30px 90px #00142e50; overflow:auto; }
.product-image-dialog::backdrop { background:#001631ca; backdrop-filter:blur(5px); }
.product-image-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:19px 23px; border-bottom:1px solid #e2e8f3; }
.product-image-dialog-header h2 { margin:0; font-size:21px; line-height:1.35; letter-spacing:-.4px; }
.product-image-dialog-header button { display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; color:var(--primary); border:0; border-radius:8px; background:#eff3fa; cursor:pointer; }
.product-image-dialog-header button:hover { background:#dfe8fa; }
.product-image-dialog-stage { display:flex; align-items:center; justify-content:center; padding:20px; background:#f4f6fb; }
.product-image-dialog-stage img { display:block; width:auto; height:auto; max-width:100%; max-height:65dvh; object-fit:contain; }
#product-image-description { margin:0; padding:19px 23px 23px; font-size:16px; line-height:1.6; color:#5e6c82; }
.image-dialog-open { overflow:hidden; }

/* Clear, readable explanations for the customer-facing feature controls. */
.hero-feature-list li { font-size:14px; }
.product-topic-tabs button { font-size:14px; }
.topic-content>p { font-size:16px; }
.topic-features li { font-size:14px; }
.topic-result li>strong { font-size:14px; }
.topic-result>p { font-size:14px; }
.topic-result-top>span:last-child { font-size:12px; }
.topic-content .text-link,.explorer-demo>a { font-size:14px; }
@media(max-width:1100px) {
    .gallery-description { padding:21px; }
    .gallery-description h2 { font-size:21px; }
    .gallery-demo { padding-inline:21px; gap:12px; flex-wrap:wrap; }
    .gallery-heading { padding-inline:21px; }
}
@media(min-width:701px) and (max-width:900px) {
    .gallery-switch { margin-inline:12px; }
    .gallery-switch button { padding-inline:7px; gap:6px; }
    .gallery-heading { font-size:12px; padding:18px 15px; flex-wrap:wrap; }
    .product-gallery-figure figcaption { padding:12px 15px; flex-wrap:wrap; }
    .gallery-description { padding:19px; }
    .gallery-description h2 { font-size:20px; }
    .gallery-description ul { gap:9px; }
    .gallery-demo { gap:8px; }
}
@media(max-width:700px) {
    .product-gallery { border-radius:16px; }
    .gallery-heading { padding:18px 17px 15px; font-size:12px; }
    .gallery-switch { margin:0 13px 14px; }
    .gallery-switch button { padding:12px 8px; gap:7px; }
    .image-zoom-label { right:10px; bottom:9px; padding:5px 8px; }
    .product-gallery-figure figcaption { padding:12px 17px; gap:6px; }
    .gallery-description { padding:22px 19px; }
    .gallery-description h2 { font-size:22px; }
    .gallery-description ul { gap:10px 12px; }
    .gallery-demo { padding:16px 19px; gap:10px; }
    .gallery-demo>span { max-width:none; }
    .product-image-dialog-header { padding:15px; }
    .product-image-dialog-header h2 { font-size:19px; }
    .product-image-dialog-stage { padding:12px; }
    #product-image-description { padding:16px; }
}
@media(max-width:360px) {
    .gallery-heading { flex-wrap:wrap; gap:8px; }
    .product-gallery-figure figcaption { flex-wrap:wrap; }
    .product-gallery-figure figcaption>span { margin-left:0; width:100%; }
}
@media(prefers-reduced-motion:reduce) { .gallery-switch button { transition:none; } }
