/* Sélection visuelle : mêmes tons chauds que le studio. */
.handle-options{border:0;padding:0;margin:0;min-width:0;grid-column:1/-1}
.handle-options legend{padding:0;margin-bottom:12px;font-size:13px;color:#594536;font-weight:600}
#ftHandleName,#ftGlassName{display:block;margin-top:4px;font-weight:400;color:#8c7160;font-size:12px}
.handle-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:350px;overflow-y:auto;padding:3px;scrollbar-width:thin;overscroll-behavior:contain}
.handle-card{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;padding:9px 7px 10px;border:1px solid #ddcbbb;border-radius:12px;background:#fffaf4;color:#594536;cursor:pointer;font:inherit;transition:border-color .18s,background .18s}
.handle-card:hover{border-color:#aa7861;background:#f7ede2}
.handle-card[aria-pressed="true"]{border-color:#a6554d;background:#f6e8db;box-shadow:inset 0 0 0 1px #a6554d}
.handle-card:focus-visible{outline:2px solid #704932;outline-offset:2px}
.handle-card:disabled{cursor:wait;opacity:.65}
.handle-card-image{width:100%;height:84px;display:grid;place-items:center;color:#8c7160;font-size:10px;text-align:center}
.handle-card-image img{width:100%;height:100%;object-fit:contain}
.handle-card-name{font-size:11px;line-height:1.4;text-align:center;overflow-wrap:anywhere}
.handle-card-state{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#947963;margin-top:7px}
.handle-card[aria-pressed="true"] .handle-card-state{color:#a04f48;font-weight:700}
#ftHandle[hidden],#ftGlass[hidden],.handle-options[hidden]{display:none!important}
.glass-options{margin-top:16px;padding-top:18px;border-top:1px solid #e5d9cc}
.glass-cards{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}
.glass-card-image{height:auto;aspect-ratio:3/2;margin-bottom:5px}
.glass-card .handle-card-name{font-size:12px;font-weight:600}
.glass-card-detail{font-size:10px;color:#8c7160;margin-top:3px;text-align:center}
@media(max-width:420px){.handle-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.handle-card{transition:none}}

/* Tracé et informations visibles en moins d'une seconde pour les quatre cases. */
.collection-reveal .case-pending.is-drawing:not(.is-drawn) .case-line{animation-duration:.54s,.38s;animation-delay:.02s,.08s}
.collection-reveal .case-pending.is-drawing:not(.is-drawn) .case-corners{animation-duration:.36s;animation-delay:.1s}
.collection-reveal .case-pending.is-drawing:not(.is-drawn) .collection-case-surface{animation-duration:.4s;animation-delay:.04s}
.collection-reveal .case-pending.is-drawing:not(.is-drawn) .product-card-body{animation-duration:.28s;animation-delay:.24s}
.collection-reveal .case-pending.is-drawing:not(.is-drawn) .product-badge,.collection-reveal .case-pending.is-drawing:not(.is-drawn) .visual-action,.collection-reveal .case-pending.is-drawing:not(.is-drawn) .product-card-visual:before,.collection-reveal .case-pending.is-drawing:not(.is-drawn) .product-card-visual:after{animation-duration:.3s;animation-delay:.16s}

/* Mobile : pas de filtres plein écran ni de géométrie animée pendant le scroll. */
.ft-mobile-leger .site-header,.ft-mobile-leger .scene-tools,.ft-mobile-leger .purchase-panel{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.ft-mobile-leger .showroom{transition:opacity .18s ease!important}
.ft-mobile-leger .product-photo{filter:none!important;transition:none!important}
.ft-mobile-leger .product-card:hover .product-photo{transform:none}
.ft-mobile-leger .builder-gallery,.ft-mobile-leger .purchase-panel,.ft-mobile-leger .builder-heading{transition:opacity .18s ease!important}
.ft-mobile-leger .footer-letter{perspective:none}
.ft-mobile-leger .letter-flap{display:none}
.ft-mobile-leger .collection-mobile .product-card{contain:layout paint;transition:none}
.ft-mobile-leger .collection-mobile .product-photo{opacity:1!important;visibility:visible!important}

/* Le cadre reste à l'écran pendant le choix des options, borné au studio.
   Le canvas utilise les mêmes coordonnées de viewport, sans poursuite animée. */
.showroom.is-docked{position:fixed;overflow:hidden;isolation:isolate;transition:none}
.style .builder-gallery{position:sticky;top:104px;align-self:start;z-index:4}
.style .viewer-slot{height:min(560px,calc(100svh - 210px))}
@media(max-width:760px){
 .style .builder-gallery{top:82px}
 .style .viewer-slot{height:clamp(150px,28svh,240px)}
 .style .gallery-caption{padding:10px 14px}
 .style .gallery-note{padding:8px 14px}
}
.loader.is-done{display:none}
