/* PhoneHub components reuse the site's --ph-* tokens. No page-specific IDs. */
.toanweb-ui-icon { width:24px; height:24px; flex:none; }
.toanweb-brand-logo { display:block; width:auto; max-width:180px; max-height:44px; object-fit:contain; }
/* Product prose only: retain bullets without changing review forms or spec rows. */
.breakdance .toanweb-pdp-rich :is(ul,ol):not(.commentlist,.children) { margin:0 0 16px; padding-inline-start:22px; list-style-position:outside; }
.breakdance .toanweb-pdp-rich ul:not(.commentlist,.children) { list-style-type:disc; }
.breakdance .toanweb-pdp-rich ol:not(.commentlist,.children) { list-style-type:decimal; }
.breakdance .toanweb-pdp-rich :is(ul,ol):not(.commentlist,.children) > li { padding-inline-start:3px; margin-bottom:8px; }
.breakdance .toanweb-pdp-rich :is(ul,ol):not(.commentlist,.children) > li:last-child { margin-bottom:0; }
.breakdance .toanweb-pdp-rich li::marker { color:var(--ph-brand); }
.breakdance .toanweb-pdp-rich li p { margin:0 0 8px; }
.breakdance .toanweb-pdp-rich li p:last-child { margin-bottom:0; }
.breakdance .toanweb-pdp-rich li :is(ul,ol):not(.commentlist,.children) { margin-block:8px 0; }
:is(.toanweb-floating,.toanweb-sticky-buy) [hidden],.toanweb-sticky-buy[hidden] { display:none; }
:is(.toanweb-floating,.toanweb-sticky-buy,.toanweb-faq) button:focus-visible,.toanweb-contact-link:focus-visible,.toanweb-faq summary:focus-visible { outline:3px solid var(--ph-brand); outline-offset:4px; }

/* Product FAQ */
.toanweb-faq-slot,.toanweb-faq-slot > .bde-text { width:100%; }
.toanweb-faq-slot:not(:has(.toanweb-faq)) { display:none; }
.toanweb-faq { padding:24px; border-radius:var(--ph-radius); background:var(--ph-surface); }
.toanweb-faq-list { display:grid; gap:12px; margin-top:20px; }
.toanweb-faq-item { background:var(--ph-canvas); border:1px solid transparent; border-radius:12px; overflow:hidden; }
.toanweb-faq-item[open] { border-color:var(--ph-line); }
.toanweb-faq summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:15px 18px; color:var(--ph-ink); font-size:14px; font-weight:600; line-height:1.5; cursor:pointer; list-style:none; }
.toanweb-faq summary::-webkit-details-marker { display:none; }
.toanweb-faq summary .toanweb-ui-icon { width:18px; height:18px; color:var(--ph-muted); transition:transform .2s; }
.toanweb-faq-item[open] summary .toanweb-ui-icon { transform:rotate(180deg); color:var(--ph-brand); }
.toanweb-faq-answer { padding:0 18px 18px; font-size:14px; line-height:1.8; color:var(--ph-muted); }
.toanweb-faq-answer p { margin:0 0 8px; }
.toanweb-faq-answer p:last-child { margin-bottom:0; }

/* Product buy bar. Kept clear of the contact dock and safe areas. */
body.toanweb-has-sticky { padding-bottom:108px; }
.toanweb-sticky-buy { position:fixed; z-index:80; bottom:16px; left:16px; right:16px; pointer-events:none; }
.toanweb-sticky-inner { display:flex; align-items:center; gap:16px; width:min(950px,100%); margin-inline:auto; padding:14px 18px; background:var(--ph-surface); color:var(--ph-ink); border:1px solid var(--ph-line); border-radius:16px; box-shadow:0 4px 32px #10151f24; pointer-events:auto; }
.toanweb-sticky-image { width:56px; height:56px; object-fit:contain; border-radius:8px; flex:none; }
.toanweb-sticky-copy { display:flex; flex-direction:column; gap:5px; min-width:0; flex:1; }
.toanweb-sticky-copy strong { font-size:14px; line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.toanweb-sticky-variant { font-size:12px; line-height:1.5; color:var(--ph-muted); }
.toanweb-sticky-price { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:flex-end; gap:3px 8px; max-width:230px; font-size:18px; font-weight:800; color:var(--ph-brand); }
.toanweb-sticky-price del { color:var(--ph-muted); font-size:11px; font-weight:400; }
.toanweb-sticky-price ins { text-decoration:none; }
.toanweb-sticky-action { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 18px; border:0; border-radius:10px; background:var(--ph-brand); color:white; font-family:inherit; font-size:14px; font-weight:700; line-height:1.4; cursor:pointer; flex:none; }
.toanweb-sticky-action:hover { background:var(--ph-brand-hover); }
.toanweb-sticky-action:disabled { opacity:.45; cursor:not-allowed; }

/* Site contact dock: all artwork is inline SVG, no external icon requests. */
.toanweb-floating { position:fixed; z-index:90; right:24px; bottom:calc(var(--ph-floating-bottom,24px) + env(safe-area-inset-bottom,0px)); display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.toanweb-contact-menu { display:flex; flex-direction:column; align-items:flex-end; gap:10px; max-height:calc(100dvh - 240px); overflow-y:auto; padding:8px 4px; }
.toanweb-contact-link { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-height:44px; max-width:min(300px,calc(100vw - 32px)); padding:10px 14px; border-radius:99px; background:var(--ph-brand); color:white; box-shadow:0 4px 18px #e6001226; text-decoration:none; font-size:13px; font-weight:700; }
.toanweb-contact-link:hover { background:var(--ph-brand-hover); color:white; }
.toanweb-contact-link .toanweb-ui-icon { width:22px; height:22px; }
.toanweb-contact-toggle,.toanweb-backtop { display:flex; align-items:center; justify-content:center; width:48px; height:48px; padding:0; border-radius:50%; cursor:pointer; box-shadow:0 4px 18px #10151f20; }
.toanweb-contact-toggle { border:0; color:white; background:var(--ph-brand); }
.toanweb-contact-toggle:hover { background:var(--ph-brand-hover); }
.toanweb-toggle-close,.toanweb-contact-toggle[aria-expanded="true"] .toanweb-toggle-open { display:none; }
.toanweb-contact-toggle[aria-expanded="true"] .toanweb-toggle-close { display:flex; }
.toanweb-backtop { border:1px solid var(--ph-line); color:var(--ph-ink); background:var(--ph-surface); }
.toanweb-backtop:hover { color:var(--ph-brand); border-color:var(--ph-brand); }
html.is-breakdance-mini-cart-open .toanweb-floating,html.is-breakdance-mini-cart-open .toanweb-sticky-buy { visibility:hidden; }

/* Native related-product cards, same geometry and color roles as the catalog. */
.breakdance .toanweb-pdp .bde-related-products { width:100%; }
.breakdance .toanweb-pdp .bde-related-products .related > h2 { display:none; }
.breakdance .toanweb-pdp .bde-related-products ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0; padding:0; width:100%; }
.breakdance .toanweb-pdp .bde-related-products ul.products::before,.breakdance .toanweb-pdp .bde-related-products ul.products::after { display:none; }
.breakdance .toanweb-pdp .bde-related-products ul.products li.product { display:flex; flex-direction:column; float:none; min-width:0; width:100%; margin:0; padding:14px; border:1px solid var(--ph-line); border-radius:12px; background:var(--ph-surface); transition:box-shadow .2s; }
.breakdance .toanweb-pdp .bde-related-products ul.products li.product:hover { box-shadow:0 6px 22px #10151f0d; }
.breakdance .toanweb-pdp .bde-related-products .woocommerce-loop-product__link { display:flex; flex-direction:column; gap:12px; flex:1; color:var(--ph-ink); text-decoration:none; }
.breakdance .toanweb-pdp .bde-related-products .bde-woo-product-image { position:relative; width:100%; aspect-ratio:1; margin:0; }
.breakdance .toanweb-pdp .bde-related-products .bde-woo-product-image img { width:100%; height:100%; object-fit:contain; margin:0; border-radius:8px; }
.breakdance .toanweb-pdp .bde-related-products .woocommerce-loop-product__title { padding:0; margin:0; color:var(--ph-ink); font-size:14px; font-weight:700; line-height:1.5; min-height:42px; }
.breakdance .toanweb-pdp .bde-related-products li.product .price { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; margin-top:auto; color:var(--ph-brand); font-size:17px; font-weight:800; line-height:1.5; }
.breakdance .toanweb-pdp .bde-related-products .price del { color:var(--ph-muted); font-size:11px; font-weight:400; }
.breakdance .toanweb-pdp .bde-related-products .price ins { text-decoration:none; }
.breakdance .toanweb-pdp .bde-related-products .onsale { top:0; left:0; right:auto; min-height:0; min-width:0; margin:0; padding:4px 8px; border-radius:6px; background:var(--ph-brand); color:white; font-size:11px; line-height:1.4; }
.breakdance .toanweb-pdp .bde-related-products .bde-woo-product-footer { margin-top:14px; }
.breakdance .toanweb-pdp .bde-related-products a.button { display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; margin:0; padding:10px 8px; border:1px solid var(--ph-brand); border-radius:8px; background:var(--ph-surface); color:var(--ph-brand); font-size:13px; font-weight:700; text-decoration:none; }
.breakdance .toanweb-pdp .bde-related-products a.button:hover { background:var(--ph-brand); color:white; }

/* Breakdance mini cart internals. Native fragments and stepper remain intact. */
.breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas-body { background:var(--ph-surface); color:var(--ph-ink); font-size:14px; }
.breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas--sidebar .bde-mini-cart-offcanvas-body { width:min(440px,100vw); max-width:100vw; }
.breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas-topbar { padding:24px; border-bottom:1px solid var(--ph-line); gap:12px; }
.breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas-title { margin:0; font-size:23px; font-weight:800; color:var(--ph-ink); }
.breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas__close-button { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid var(--ph-line); border-radius:50%; background:var(--ph-canvas); color:var(--ph-ink); font-size:26px; cursor:pointer; }
.breakdance .toanweb-mini-cart ul.woocommerce-mini-cart { padding:8px 24px; margin:0; }
.breakdance .toanweb-mini-cart li.bde-mini-cart-item { position:relative; display:grid; grid-template-columns:80px minmax(0,1fr); gap:10px 14px; padding:20px 26px 20px 0; border-bottom:1px solid var(--ph-line); }
.breakdance .toanweb-mini-cart a.bde-mini-cart-item-thumbnail { grid-column:1; grid-row:1 / 3; }
.breakdance .toanweb-mini-cart a.bde-mini-cart-item-thumbnail img { width:80px; height:80px; object-fit:contain; border:1px solid var(--ph-line); border-radius:10px; }
.breakdance .toanweb-mini-cart a.bde-mini-cart-item-title { grid-column:2; grid-row:1; min-width:0; color:var(--ph-ink); font-size:14px; font-weight:700; line-height:1.6; text-decoration:none; }
.breakdance .toanweb-mini-cart dl.variation { margin:6px 0 0; color:var(--ph-muted); font-size:11px; font-weight:400; }
.breakdance .toanweb-mini-cart dl.variation :is(dt,dd,p) { display:inline; float:none; margin:0 3px 0 0; }
.breakdance .toanweb-mini-cart dl.variation dd::after { content:" "; }
.breakdance .toanweb-mini-cart .bde-mini-cart-quantity { grid-column:2; grid-row:2; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.breakdance .toanweb-mini-cart .bde-mini-cart-quantity > .amount { color:var(--ph-brand); font-size:14px; font-weight:800; }
.breakdance .toanweb-mini-cart .bde-mini-cart-item a.remove { position:absolute; top:20px; right:-10px; display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; color:var(--ph-muted); background:var(--ph-canvas); font-size:22px; }
.breakdance .toanweb-mini-cart .bde-mini-cart-item a.remove:hover { color:white; background:var(--ph-brand); }
.breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas-footer { padding:24px; border-top:1px solid var(--ph-line); background:var(--ph-surface); }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__total { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:0 0 18px; margin:0; border:0; }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__total .amount { font-size:20px; font-weight:800; color:var(--ph-brand); }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__buttons { display:grid; grid-template-columns:1fr; gap:12px; margin:0; }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__buttons a.button { display:flex; align-items:center; justify-content:center; min-height:48px; width:100%; margin:0; padding:12px; border:1px solid var(--ph-brand); border-radius:10px; background:var(--ph-surface); color:var(--ph-brand); font-size:13px; font-weight:700; text-decoration:none; }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__buttons a.checkout { background:var(--ph-brand); color:white; }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__buttons a.button:hover { background:var(--ph-brand-hover); color:white; }
.breakdance .toanweb-mini-cart .woocommerce-mini-cart__empty-message { padding:36px 24px; color:var(--ph-muted); text-align:center; }

/* Shared WooCommerce quantity control for mini cart and native cart page. */
:is(.toanweb-mini-cart,.toanweb-cart) .quantity:not(.quantity--hidden) { position:static; display:inline-flex; align-items:stretch; width:auto; max-width:none; height:44px; margin:0; border:1px solid var(--ph-line); border-radius:8px; overflow:hidden; }
:is(.toanweb-mini-cart,.toanweb-cart) .quantity input.qty { width:38px; min-width:0; height:auto; padding:0; margin:0; border:0; border-radius:0; background:var(--ph-surface); color:var(--ph-ink); text-align:center; font-size:14px; }
:is(.toanweb-mini-cart,.toanweb-cart) .quantity .bde-quantity-button { position:static; display:flex; align-items:center; justify-content:center; width:30px; min-width:30px; height:auto; padding:0; margin:0; transform:none; border:0; border-radius:0; background:var(--ph-canvas); color:var(--ph-ink); font-size:11px; }

/* Cart uses the real Breakdance WooCommerce Cart element, including notices. */
.breakdance .toanweb-cart { width:100%; padding-block:12px 32px; }
.toanweb-cart-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:20px 0; }
.toanweb-cart-title { margin:0; color:var(--ph-ink); font-size:28px; font-weight:800; }
.breakdance .toanweb-cart .bde-woo-cart { width:100%; }
.breakdance .toanweb-cart .woocommerce-cart-form,.breakdance .toanweb-cart .cart_totals { background:var(--ph-surface); border:1px solid var(--ph-line); border-radius:14px; padding:24px; }
.breakdance .toanweb-cart .woocommerce-cart-form__contents { border:0; width:100%; border-collapse:collapse; }
.breakdance .toanweb-cart .woocommerce-cart-form__contents thead th { color:var(--ph-muted); border:0; border-bottom:1px solid var(--ph-line); padding:0 8px 16px; font-size:12px; font-weight:600; }
.breakdance .toanweb-cart .woocommerce-cart-form__contents td { padding:20px 8px; border:0; border-bottom:1px solid var(--ph-line); font-size:14px; color:var(--ph-ink); }
.breakdance .toanweb-cart .woocommerce-cart-form__contents td.product-thumbnail img { width:90px; height:90px; min-width:70px; max-width:90px; object-fit:contain; border-radius:10px; }
.breakdance .toanweb-cart .woocommerce-cart-form__contents td.product-name a { color:var(--ph-ink); font-size:14px; font-weight:700; line-height:1.5; text-decoration:none; }
.breakdance .toanweb-cart dl.variation { margin:6px 0 0; font-size:12px; color:var(--ph-muted); }
.breakdance .toanweb-cart dl.variation :is(dt,dd,p) { display:inline; float:none; margin:0 3px 0 0; }
.breakdance .toanweb-cart .woocommerce-cart-form__contents td.product-subtotal { color:var(--ph-brand); font-weight:800; }
.breakdance .toanweb-cart a.remove { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:var(--ph-canvas); color:var(--ph-muted); font-size:22px; text-decoration:none; }
.breakdance .toanweb-cart a.remove:hover { color:white; background:var(--ph-brand); }
.breakdance .toanweb-cart .woocommerce-cart-form__contents td.actions { border:0; padding:20px 0 0; }
.breakdance .toanweb-cart .coupon { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.breakdance .toanweb-cart input#coupon_code { min-height:46px; width:180px; max-width:100%; padding:10px 12px; border:1px solid var(--ph-line); border-radius:8px; font-size:13px; background:var(--ph-surface); color:var(--ph-ink); }
.breakdance .toanweb-cart button[name="update_cart"] { display:none; }
.breakdance .toanweb-cart button[name="apply_coupon"] { min-height:46px; padding:10px 16px; border:1px solid var(--ph-brand); border-radius:8px; background:var(--ph-surface); color:var(--ph-brand); font-size:13px; font-weight:700; }
.breakdance .toanweb-cart .cart_totals h2 { margin:0 0 20px; font-size:21px; font-weight:800; color:var(--ph-ink); }
.breakdance .toanweb-cart .cart_totals table.shop_table { width:100%; border:0; border-collapse:collapse; }
.breakdance .toanweb-cart .cart_totals table.shop_table :is(th,td) { padding:16px 0; border:0; border-bottom:1px solid var(--ph-line); font-size:14px; color:var(--ph-ink); }
.breakdance .toanweb-cart .cart_totals table.shop_table th { text-align:left; font-weight:500; }
.breakdance .toanweb-cart .cart_totals table.shop_table td { text-align:right; }
.breakdance .toanweb-cart .cart_totals tr.order-total td { color:var(--ph-brand); font-size:22px; font-weight:800; }
.breakdance .toanweb-cart :is(td.product-subtotal,tr.order-total td) .amount { color:var(--ph-brand); font-weight:800; }
.breakdance :is(.toanweb-mini-cart,.toanweb-cart,.toanweb-pdp .bde-related-products) .amount bdi { color:inherit; font-weight:inherit; }
.breakdance .toanweb-pdp .bde-related-products .price .amount { color:inherit; font-weight:inherit; }
.breakdance .toanweb-cart :is(a.checkout-button,a.wc-backward) { display:flex; align-items:center; justify-content:center; min-height:52px; width:100%; margin:0; padding:14px 20px; border:0; border-radius:10px; background:var(--ph-brand); color:white; font-size:15px; font-weight:800; text-decoration:none; }
.breakdance .toanweb-cart :is(a.checkout-button,a.wc-backward):hover { background:var(--ph-brand-hover); color:white; }
.breakdance .toanweb-cart .wc-proceed-to-checkout { padding:20px 0 0; }
.breakdance .toanweb-cart ul#shipping_method { list-style:none; margin:0; padding:0; font-size:12px; line-height:1.7; }
.breakdance .toanweb-cart .shipping-calculator-button { color:var(--ph-brand); font-size:12px; }
.breakdance .toanweb-cart :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) { padding:16px 20px 16px 48px; border:0; border-radius:10px; font-size:14px; line-height:1.7; }
.breakdance .toanweb-cart :is(.woocommerce-message,.woocommerce-info,.woocommerce-error)::before { left:18px; }
.breakdance .toanweb-cart .woocommerce-message { background:#eaf7ef; color:#167344; }
.breakdance .toanweb-cart .woocommerce-info { background:var(--ph-canvas); color:var(--ph-ink); }
.breakdance .toanweb-cart .woocommerce-error { background:#fff1f2; color:var(--ph-brand-hover); }
.breakdance .toanweb-cart .return-to-shop { max-width:250px; margin:20px auto 40px; }
.breakdance .toanweb-cart .cart-empty { padding-block:36px; text-align:center; }

@media(max-width:1023px) {
 .toanweb-sticky-copy { max-width:280px; }
 .breakdance .toanweb-cart .woocommerce-cart-form,.breakdance .toanweb-cart .cart_totals { padding:18px; }
 .breakdance .toanweb-cart .woocommerce-cart-form__contents td { padding:14px 6px; }
}
@media(max-width:767px) {
 .toanweb-faq { padding:18px; }
 .toanweb-faq summary { padding:14px; font-size:13px; }
 .toanweb-faq-answer { padding:0 14px 16px; font-size:13px; }
 .toanweb-sticky-buy { bottom:0; left:0; right:0; }
 .toanweb-sticky-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 12px; padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px)); border-radius:14px 14px 0 0; }
 .toanweb-sticky-image { display:none; }
 .toanweb-sticky-copy { grid-column:1; grid-row:1; max-width:none; }
 .toanweb-sticky-copy strong { display:none; }
 .toanweb-sticky-price { grid-column:1; grid-row:2; justify-content:flex-start; max-width:100%; font-size:16px; }
 .toanweb-sticky-variant { font-size:11px; }
 .toanweb-sticky-action { grid-column:2; grid-row:1 / 3; min-width:140px; padding:12px; font-size:13px; }
 .toanweb-sticky-action .toanweb-ui-icon { width:20px; height:20px; }
 .toanweb-floating { right:14px; }
 .breakdance .toanweb-pdp .bde-related-products ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .breakdance .toanweb-pdp .bde-related-products ul.products li.product { padding:10px; }
 .breakdance .toanweb-pdp .bde-related-products li.product .price { font-size:15px; }
 .breakdance .toanweb-mini-cart .bde-mini-cart-offcanvas--sidebar .bde-mini-cart-offcanvas-body { width:100vw; }
 .toanweb-cart-title { font-size:24px; }
 .breakdance .toanweb-cart .woocommerce-cart-form,.breakdance .toanweb-cart .cart_totals { padding:14px; }
 .breakdance .toanweb-cart .woocommerce-cart-form__contents td.product-thumbnail img { width:80px; height:80px; min-width:0; max-width:80px; }
 .breakdance .toanweb-cart .woocommerce-cart-form__contents td.product-name a { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
 .toanweb-faq summary .toanweb-ui-icon,.breakdance .toanweb-pdp .bde-related-products ul.products li.product { transition:none; }
}
