/* Théa 3D — conteneur de l'aperçu (widget HTML #dualbox des templates 842, 857 et 27144), même taille que DualBox :
   hauteur = moitié de la largeur + 6 px (relevé sur le site, bague, double bague et boucle d'oreille, à 375, 768, 1280
   et 1920 px). Classe `thea3d-product` posée sur le body des produits équipés (includes/front.php). */
.thea3d-product #dualbox { position: relative; height: 0; padding-bottom: calc(50% + 6px); overflow: hidden; background: #fff; }
.thea3d-product #dualbox > iframe { position: absolute; inset: 0; visibility: hidden; }
.thea3d-product #dualbox[data-thea3d="ready"] > iframe { visibility: visible; }

/* Chargement, puis message discret si l'aperçu est indisponible (la commande reste possible) */
.thea3d-product #dualbox[data-thea3d="loading"]::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 28px; height: 28px; margin: -14px 0 0 -14px;
  border-radius: 50%; border: 1.5px solid rgba(31, 29, 26, .14); border-top-color: #a8852c; animation: thea3d-spin 1s linear infinite;
}
.thea3d-product #dualbox[data-thea3d="error"]::after {
  content: "Aperçu 3D momentanément indisponible"; position: absolute; inset: 0; display: flex; align-items: center;
  justify-content: center; padding: 0 16px; text-align: center; font-size: 13px; color: #6b6760;
}
html[lang^="en"] .thea3d-product #dualbox[data-thea3d="error"]::after { content: "3D preview temporarily unavailable"; }
@keyframes thea3d-spin { to { transform: rotate(360deg); } }

.single_add_to_cart_button.thea3d-preparing { cursor: progress; opacity: .75; }
