/* =========================================================
   TecnoSolar — shop & product design layer (namespaced .ts-)
   Full-width, sectioned, reference-faithful (tecno-mobile).
   Fonts (Poppins / Roboto) already loaded by Woodmart.
   ========================================================= */
.ts-wrap{width:100%;max-width:1780px;margin:0 auto;padding:0 clamp(20px,4vw,80px)}

/* header: lean (conservative) */
.whb-header.whb-sticky-shadow{box-shadow:none}
.whb-main-header{border-bottom:1px solid #ededed}
.whb-header .wd-nav>li>a{font-family:'Poppins',sans-serif;font-weight:500;letter-spacing:.01em}

/* FULL-WIDTH shop: break Woodmart's narrow site-width container */
body.post-type-archive-product main.wd-content-layout{display:block !important;max-width:100% !important;width:100% !important;margin:0 !important;padding:0 !important}

/* product tab row */
.ts-subnav{background:#fff;border-bottom:1px solid #ededed}
.ts-subnav .ts-wrap{display:flex;align-items:center;min-height:58px;gap:18px}
.ts-crumb{font-family:'Poppins',sans-serif;font-size:14px;color:#9c9c9c;white-space:nowrap}
.ts-tabs{display:flex;gap:30px;margin:0 auto;overflow-x:auto;scrollbar-width:none}
.ts-tabs::-webkit-scrollbar{display:none}
.ts-tab{font-family:'Poppins',sans-serif;font-size:14px;font-weight:500;color:#9c9c9c;letter-spacing:.02em;white-space:nowrap;padding:8px 0;position:relative;text-decoration:none;transition:color .18s}
.ts-tab:hover,.ts-tab.on{color:#1d1d1f}
.ts-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#0494D9}
.ts-cmplink{font-family:'Poppins',sans-serif;font-size:14px;color:#1d1d1f;white-space:nowrap;text-decoration:none;transition:color .15s}
.ts-cmplink:hover{color:#0494D9}
@media(max-width:1024px){
  .ts-subnav .ts-wrap{flex-wrap:wrap;gap:12px 18px;padding-top:12px;padding-bottom:12px}
  .ts-tabs{margin:0;order:3;width:100%;gap:22px}
  .ts-cmplink{margin-left:auto}
}

/* shop body + sections */
.ts-shop{padding-top:6px;padding-bottom:90px}
.ts-section{margin-top:8px}
.ts-section + .ts-section{margin-top:26px}
.ts-seclabel{font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#9c9c9c;margin:46px 0 16px}

/* grid (responsive) */
.ts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;list-style:none;margin:0;padding:0}
@media(max-width:1024px){.ts-grid{grid-template-columns:repeat(2,1fr);gap:24px}}
@media(max-width:520px){.ts-grid{grid-template-columns:1fr;gap:20px}}

/* card: compact, panel flush to card width (reference) */
.ts-grid .ts-card{text-align:center;padding:0 0 14px;border-radius:12px;margin:0;border:none;background:none;box-shadow:none;width:auto;float:none;display:flex;flex-direction:column;transition:background .2s}
.ts-grid .ts-card:hover{background:#fbfbfc}
.ts-card .ts-panel{display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:8px;aspect-ratio:1/1;padding:14px;position:relative;transition:background .25s;overflow:hidden}
.ts-card:hover .ts-panel{background:#eef1f4}
.ts-card .ts-panel img{max-width:96%;max-height:96%;width:auto;height:auto;object-fit:contain;transition:transform .3s cubic-bezier(.22,1,.36,1);mix-blend-mode:multiply}
.ts-card:hover .ts-panel img{transform:scale(1.04)}
.ts-newflag{position:absolute;top:14px;left:16px;font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.08em;color:#0494D9;z-index:2}
.ts-card .ts-cname{font-family:'Poppins',sans-serif;font-size:15px;font-weight:500;color:#1d1d1f;margin:18px 8px 14px;line-height:1.4;flex:1 0 auto;display:flex;align-items:center;justify-content:center}
.ts-card .ts-cname a{color:inherit;text-decoration:none}
.ts-card .ts-cname a:hover{color:#0494D9}
.ts-acts{display:flex;gap:16px;justify-content:center;align-items:center;margin-top:auto;padding-bottom:4px}
.ts-learn{background:#0494D9;color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;padding:10px 24px;border-radius:6px;text-decoration:none;transition:background .15s;white-space:nowrap}
.ts-learn:hover{background:#037bb6;color:#fff}
.ts-specs{font-family:'Poppins',sans-serif;font-size:13.5px;color:#333;text-decoration:none;transition:color .15s;white-space:nowrap}
.ts-specs:hover{color:#0494D9}

.ts-empty{padding:60px 0;color:#9c9c9c;font-family:'Poppins',sans-serif}
@media(prefers-reduced-motion:reduce){.ts-card,.ts-card .ts-panel img{transition:none!important}}

/* ---- Product cards inside Woodmart/Elementor product widgets: minimal look only (no layout override; the Elementor Grid controls layout) ---- */
.wd-products .ts-card{text-align:center;display:flex;flex-direction:column;background:none;box-shadow:none;border:none}
.wd-products .ts-card .ts-panel{background:#f5f5f5;border-radius:8px;aspect-ratio:1/1;padding:16px}
.wd-products .ts-card .ts-panel img{max-width:90%;max-height:90%;object-fit:contain;mix-blend-mode:multiply}

/* =========================================================
   Single product page
   ========================================================= */
.ts-single{padding-bottom:90px}
.ts-p-hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;padding:36px 0 20px}
@media(max-width:880px){.ts-p-hero{grid-template-columns:1fr;gap:28px}}
.ts-p-gallery{position:sticky;top:90px}
@media(max-width:880px){.ts-p-gallery{position:static}}
.ts-p-gallery .woocommerce-product-gallery{background:#f5f5f5;border-radius:16px;padding:22px;margin:0}
.ts-p-gallery .woocommerce-product-gallery__image img{border-radius:10px;mix-blend-mode:multiply}
.ts-p-gallery .flex-control-thumbs{display:flex;gap:10px;margin-top:14px;padding:0;list-style:none}
.ts-p-gallery .flex-control-thumbs li{width:74px}
.ts-p-gallery .flex-control-thumbs img{border-radius:8px;background:#f5f5f5}
.ts-cat{font-family:'Poppins',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#0494D9;margin-bottom:12px}
.ts-cat a{color:inherit;text-decoration:none}
.ts-p-title{font-family:'Poppins',sans-serif;font-size:31px;font-weight:700;color:#1d1d1f;margin:0 0 14px;line-height:1.2}
.ts-p-short{font-size:15.5px;color:#333;margin-bottom:18px;line-height:1.6;max-width:52ch}
.ts-p-price{font-family:'Poppins',sans-serif;font-size:27px;font-weight:700;color:#1d1d1f;margin-bottom:22px}
.ts-p-price del{color:#9c9c9c;font-weight:400;font-size:18px;margin-left:8px}
.ts-p-price ins{text-decoration:none}
.ts-p-buy{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-bottom:14px}
.ts-p-buy form.cart{display:flex;gap:12px;align-items:stretch;margin:0}
.ts-p-buy .quantity{display:flex;align-items:center;border:1.5px solid #ededed;border-radius:10px;overflow:hidden}
.ts-p-buy .quantity input{width:58px;text-align:center;border:none;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;background:none}
.ts-p-buy .single_add_to_cart_button,.ts-p-buy button[type=submit]{background:#0494D9 !important;color:#fff !important;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;padding:14px 30px;border-radius:10px;border:none;box-shadow:none;text-transform:none;letter-spacing:0;transition:background .15s}
.ts-p-buy .single_add_to_cart_button:hover{background:#037bb6 !important}
.ts-quote{display:inline-flex;align-items:center;border:1.5px solid #ededed;color:#1d1d1f;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;padding:14px 22px;border-radius:10px;text-decoration:none;transition:border-color .15s,color .15s}
.ts-quote:hover{border-color:#0494D9;color:#0494D9}
.ts-p-stock{font-size:13.5px;color:#1f9d6b;display:flex;align-items:center;gap:8px}
.ts-p-stock .d{width:8px;height:8px;border-radius:50%;background:#1f9d6b;box-shadow:0 0 0 3px rgba(31,157,107,.18)}

.ts-ptabs{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid #ededed;border-bottom:1px solid #ededed;display:flex;gap:34px;margin-top:24px;overflow-x:auto;scrollbar-width:none}
.ts-ptabs::-webkit-scrollbar{display:none}
.ts-ptab{font-family:'Poppins',sans-serif;font-size:14px;font-weight:500;color:#9c9c9c;padding:16px 0;text-decoration:none;position:relative;white-space:nowrap}
.ts-ptab:hover,.ts-ptab.on{color:#1d1d1f}
.ts-ptab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#0494D9}

.ts-psec{padding:44px 0;border-bottom:1px solid #f0f0f0;scroll-margin-top:120px}
.ts-psec h2{font-family:'Poppins',sans-serif;font-size:23px;font-weight:700;color:#1d1d1f;margin:0 0 20px}
.ts-prose{font-size:15.5px;color:#333;line-height:1.75;max-width:80ch}
.ts-prose p{margin:0 0 14px}

.ts-spectable table{width:100%;border-collapse:collapse;font-size:14.5px;max-width:920px;border:1px solid #ededed;border-radius:12px;overflow:hidden}
.ts-spectable th,.ts-spectable td{text-align:left;padding:13px 18px;border-bottom:1px solid #ededed}
.ts-spectable tr:last-child th,.ts-spectable tr:last-child td{border-bottom:none}
.ts-spectable th{font-family:'Poppins',sans-serif;font-weight:600;color:#1d1d1f;width:34%;background:#f7f9fb}
.ts-spectable td{color:#333}
.ts-spectable p{margin:0}

.ts-related-sec .related>h2,.ts-related-sec h2{font-family:'Poppins',sans-serif;font-size:23px;font-weight:700;color:#1d1d1f;margin:0 0 22px}
.ts-related-sec .products{display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:24px !important;margin:0 !important}
@media(max-width:1024px){.ts-related-sec .products{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:520px){.ts-related-sec .products{grid-template-columns:1fr !important}}
.ts-related-sec .products .ts-card{text-align:center;display:flex;flex-direction:column}
/* single product: feature list sits below the buy CTA */
.ts-p-info .ts-p-short{margin-top:22px;padding-top:20px;border-top:1px solid #f0f0f0}
.ts-p-info .ts-p-short ul{margin:8px 0;padding-left:18px}
.ts-p-info .ts-p-short li{margin:5px 0}
/* single product: client Elementor content section renders full-width (for animated sections) */
.ts-content-sec{width:100%;margin:10px 0 0}
.ts-content-sec .elementor,.ts-content-sec .elementor-section,.ts-content-sec .e-con{max-width:100%}
/* single product: compact related grid (override Woodmart's tall stacked layout) */
.ts-related-sec .wd-products,.ts-related-sec ul.products{--wd-col-lg:4 !important;--wd-col-md:2 !important;--wd-col-sm:2 !important;display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:24px !important;margin:0 !important}
@media(max-width:1024px){.ts-related-sec .wd-products,.ts-related-sec ul.products{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:520px){.ts-related-sec .wd-products,.ts-related-sec ul.products{grid-template-columns:1fr !important}}
.ts-related-sec .wd-products>*,.ts-related-sec ul.products>*{width:auto !important;margin:0 !important;float:none !important}
.ts-related-sec{padding-top:24px}
/* single product: custom related grid (4-col) */
.ts-related-grid{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){.ts-related-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.ts-related-grid{grid-template-columns:1fr}}

/* ===== Single product: animated ACF feature sections ===== */
.ts-features{padding:20px 0 10px}
.ts-feature{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1780px;margin:0 auto;padding:64px clamp(20px,4vw,80px)}
.ts-feature.ts-media-right .ts-feature-media{order:2}
.ts-feature-media img{width:100%;height:auto;border-radius:16px;display:block;background:#f5f5f5}
.ts-feature-text h3{font-family:'Poppins',sans-serif;font-size:clamp(24px,3vw,32px);font-weight:700;color:#1d1d1f;margin:0 0 16px;line-height:1.18}
.ts-feature-text p{font-family:'Roboto',sans-serif;font-size:16.5px;color:#444;line-height:1.75;margin:0}
@media(max-width:860px){.ts-feature{grid-template-columns:1fr;gap:22px;padding:40px clamp(20px,5vw,40px)}.ts-feature.ts-media-right .ts-feature-media{order:0}}
.ts-datasheet{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;color:#0494D9;text-decoration:none}
.ts-datasheet:hover{color:#037bb6}
/* GSAP: hide feature pieces pre-animation only when GSAP will run */
.ts-anim-ready .ts-feature-media,.ts-anim-ready .ts-feature-text{will-change:transform,opacity}
.ts-feature-idx{display:inline-block;font-family:'Poppins',sans-serif;font-size:13px;font-weight:700;letter-spacing:.12em;color:#0494D9;margin-bottom:12px}

/* =========================================================
   PREMIUM product-page enhancements
   ========================================================= */
.single-product .ts-single{padding-bottom:0}
.ts-p-hero{padding:46px 0 60px}
.ts-p-gallery .woocommerce-product-gallery{background:linear-gradient(160deg,#fbfcfe,#eaf1f8);border-radius:20px;padding:36px;box-shadow:0 24px 60px -30px rgba(11,34,88,.30)}
.ts-p-gallery .woocommerce-product-gallery__image img{border-radius:12px}
.ts-p-title{font-size:clamp(26px,3.4vw,36px);letter-spacing:-.015em}
.ts-p-price{color:#0B2258}

/* feature sections — cinematic alternating bands + soft brand glow */
.ts-features{padding:0}
.ts-feature{position:relative;padding:88px clamp(20px,4vw,80px);gap:70px}
.ts-feature:nth-child(even){background:#f5f9fc}
.ts-feature-media{position:relative}
.ts-feature-media::before{content:"";position:absolute;inset:-10% -8%;background:radial-gradient(58% 58% at 50% 45%,rgba(4,148,217,.18),transparent 70%);filter:blur(24px);z-index:0}
.ts-feature-media img{position:relative;z-index:1;box-shadow:0 34px 70px -34px rgba(11,34,88,.38)}
.ts-feature-text h3{font-size:clamp(25px,3.1vw,35px);letter-spacing:-.015em;color:#0B2258}
.ts-feature-text p{font-size:17px;color:#495568}

/* tech specs — premium card */
.ts-specs-sec{padding:72px 0}
.ts-spectable table{box-shadow:0 16px 44px -30px rgba(11,34,88,.3)}
.ts-spectable tr:nth-child(even) th,.ts-spectable tr:nth-child(even) td{background:#fafcff}

/* related — spacing + divider */
.ts-related-sec{padding:74px 0 90px;border-top:1px solid #eef0f3}

/* sticky buy bar (conversion) */
.ts-buybar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.3) blur(10px);border-top:1px solid #e7ecf2;transform:translateY(115%);transition:transform .35s cubic-bezier(.22,1,.36,1);box-shadow:0 -10px 30px rgba(11,34,88,.08)}
.ts-buybar.show{transform:none}
.ts-buybar .in{max-width:1780px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:12px clamp(20px,4vw,80px)}
.ts-buybar .bn{font-family:'Poppins',sans-serif;font-weight:600;color:#1d1d1f;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.ts-buybar .bp{font-family:'Poppins',sans-serif;font-weight:700;color:#0B2258;margin-left:auto;font-size:16px;white-space:nowrap}
.ts-buybar .bbtn{background:#0494D9;color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;padding:12px 28px;border-radius:10px;border:none;cursor:pointer;transition:background .15s,transform .1s;white-space:nowrap}
.ts-buybar .bbtn:hover{background:#037bb6}.ts-buybar .bbtn:active{transform:scale(.97)}
@media(max-width:640px){.ts-buybar .bn{display:none}.ts-buybar .bp{margin-left:0}.ts-buybar .in{gap:12px}}
@media(prefers-reduced-motion:reduce){.ts-buybar{transition:none}}
/* feature images: standard contained size (not full-column height) */
.ts-feature-media{display:flex;align-items:center;justify-content:center}
.ts-feature-media img{max-height:400px;width:auto;max-width:100%;object-fit:contain}
.ts-feature-media::before{inset:0}
@media(max-width:860px){.ts-feature-media img{max-height:300px}}

/* ===== Premium product sections ===== */
.ts-hlrow{display:flex;flex-wrap:wrap;gap:28px;margin:22px 0 6px;padding:18px 0;border-top:1px solid #eef0f3;border-bottom:1px solid #eef0f3}
.ts-hl{display:flex;flex-direction:column}
.ts-hl-v{font-family:'Poppins',sans-serif;font-weight:700;font-size:22px;color:#0B2258;line-height:1}
.ts-hl-l{font-family:'Roboto',sans-serif;font-size:12.5px;color:#7c89a0;margin-top:5px}

.ts-trust{background:#f5f9fc;border-top:1px solid #eef0f3;border-bottom:1px solid #eef0f3;margin-top:6px}
.ts-trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1780px;margin:0 auto;padding:30px clamp(20px,4vw,80px)}
.ts-tb{display:flex;gap:13px;align-items:center}
.ts-tb .ic{width:42px;height:42px;flex:0 0 auto;border-radius:11px;background:#fff;border:1px solid #e5ebf3;display:grid;place-items:center;color:#0494D9}
.ts-tb .ic svg{width:22px;height:22px}
.ts-tb b{display:block;font-family:'Poppins',sans-serif;font-size:14px;color:#1d1d1f}
.ts-tb small{font-size:12.5px;color:#7c89a0}
@media(max-width:820px){.ts-trust-grid{grid-template-columns:repeat(2,1fr);gap:18px}}
@media(max-width:480px){.ts-trust-grid{grid-template-columns:1fr}}

.ts-video{padding:64px 0}
.ts-video-frame{max-width:1000px;margin:0 auto;border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -34px rgba(11,34,88,.4);background:#000;aspect-ratio:16/9}
.ts-video-frame iframe,.ts-video-frame video{width:100%;height:100%;display:block;border:0;object-fit:cover}

.ts-sec-sub{color:#7c89a0;margin:-8px 0 26px;font-size:15px}

.ts-faq{max-width:900px;border:1px solid #e7ecf2;border-radius:14px;overflow:hidden}
.ts-faq-item{border-bottom:1px solid #eef0f3}
.ts-faq-item:last-child{border-bottom:none}
.ts-faq-item summary{list-style:none;cursor:pointer;padding:18px 22px;font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;color:#1d1d1f;display:flex;justify-content:space-between;align-items:center;gap:16px}
.ts-faq-item summary::-webkit-details-marker{display:none}
.ts-faq-item summary:hover{color:#0494D9}
.ts-faq-ic{width:16px;height:16px;position:relative;flex:0 0 auto}
.ts-faq-ic::before,.ts-faq-ic::after{content:"";position:absolute;background:#0494D9;transition:transform .25s}
.ts-faq-ic::before{top:7px;left:0;width:16px;height:2px}
.ts-faq-ic::after{top:0;left:7px;width:2px;height:16px}
.ts-faq-item[open] .ts-faq-ic::after{transform:scaleY(0)}
.ts-faq-a{padding:0 22px 20px;color:#4a5568;font-size:15px;line-height:1.7}

.ts-ctaband{background:radial-gradient(1000px 400px at 80% -20%,rgba(4,148,217,.5),transparent 60%),linear-gradient(160deg,#0B2258,#0d1b3d);color:#fff;margin-top:10px}
.ts-cta-in{max-width:1780px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:54px clamp(20px,4vw,80px);flex-wrap:wrap}
.ts-cta-in h2{color:#fff;font-family:'Poppins',sans-serif;font-size:clamp(22px,2.6vw,30px);margin:0 0 8px}
.ts-cta-in p{color:#c7d4ec;margin:0;max-width:60ch;font-size:15.5px}
.ts-cta-btn{background:#0494D9;color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:15.5px;padding:15px 34px;border-radius:12px;text-decoration:none;white-space:nowrap;transition:background .15s,transform .12s}
.ts-cta-btn:hover{background:#0aa5ee;transform:translateY(-2px);color:#fff}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ========== PRODUCT PAGE v2 — balanced width, full-width bands, prominent, animated ========== */
.ts-pwrap{width:100%;max-width:1360px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.ts-band{padding:66px 0}
.ts-band.ts-trust{padding:0}
.ts-h2{font-family:'Poppins',sans-serif;font-size:clamp(22px,2.6vw,30px);font-weight:700;color:#0B2258;margin:0 0 22px;letter-spacing:-.01em}
.ts-center{text-align:center}

/* hero: balanced, gallery fits screen */
.ts-single .ts-p-hero{grid-template-columns:1.02fr .98fr;gap:48px;padding:40px 0 30px}
.ts-p-gallery .woocommerce-product-gallery{padding:26px;max-width:560px;margin-inline:auto}
.ts-p-gallery .woocommerce-product-gallery__image img{max-height:460px;width:auto;margin:0 auto;object-fit:contain}
.ts-p-info{max-width:600px}
.ts-p-title{font-size:clamp(24px,2.8vw,33px)}

/* trust — prominent cards */
.ts-trust{background:linear-gradient(180deg,#f4f9fd,#eef4fb);border-top:1px solid #e6eef7;border-bottom:1px solid #e6eef7}
.ts-trust-grid{padding:26px 0}
.ts-tb{background:#fff;border:1px solid #e7eef6;border-radius:14px;padding:16px 18px;box-shadow:0 10px 30px -22px rgba(11,34,88,.35);transition:transform .2s,box-shadow .2s}
.ts-tb:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(11,34,88,.4)}
.ts-tb .ic{width:46px;height:46px;background:#eaf5fc;border-color:#d5ecfa}
.ts-tb b{font-size:14.5px}

/* alternating band backgrounds */
.ts-cross-band{background:#fff}
.ts-specs-band{background:linear-gradient(180deg,#f6f9fc,#fff)}
.ts-faq-band{background:#f6f9fc}
.ts-related-band{background:#fff;border-top:1px solid #eef0f3}

/* tech specs — full width, prominent, 2-column on wide */
.ts-specs-band .ts-spectable{max-width:100%}
.ts-specs-band .ts-spectable table{width:100%;font-size:15px;border:1px solid #e5ecf4;border-radius:14px;overflow:hidden;box-shadow:0 18px 46px -30px rgba(11,34,88,.3);display:grid;grid-template-columns:1fr 1fr}
.ts-specs-band .ts-spectable tr{display:grid;grid-template-columns:minmax(140px,40%) 1fr;border-bottom:1px solid #eef0f3}
.ts-specs-band .ts-spectable th,.ts-specs-band .ts-spectable td{padding:15px 20px}
.ts-specs-band .ts-spectable th{background:#f7fafd;font-size:14px}
@media(max-width:820px){.ts-specs-band .ts-spectable table{grid-template-columns:1fr}}

/* FAQ full width */
.ts-faq{max-width:100%}

/* related/cross premium cards + hover */
.ts-related-grid .ts-card{background:#fff;border:1px solid #eef0f3;border-radius:14px;transition:transform .22s,box-shadow .22s,border-color .22s;overflow:hidden}
.ts-related-grid .ts-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px -28px rgba(11,34,88,.35);border-color:#dcebf8}
.ts-related-grid .ts-card .ts-panel{border-radius:0}

/* feature image contained + hover zoom */
.ts-feature-media img{max-height:400px;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.ts-feature:hover .ts-feature-media img{transform:scale(1.03)}
.ts-features .ts-feature{max-width:1360px;padding-left:clamp(20px,4vw,56px);padding-right:clamp(20px,4vw,56px)}

/* buttons hover polish */
.ts-p-buy .single_add_to_cart_button{box-shadow:0 12px 26px -14px rgba(4,148,217,.7);transition:background .15s,transform .12s,box-shadow .2s}
.ts-p-buy .single_add_to_cart_button:hover{transform:translateY(-2px)}
.ts-cta-btn{box-shadow:0 14px 30px -14px rgba(4,148,217,.7)}

@media(max-width:880px){.ts-single .ts-p-hero{grid-template-columns:1fr}.ts-p-gallery .woocommerce-product-gallery{max-width:440px}}

/* ========== PRODUCT v3: full-width + premium buy box + quote modal ========== */
body.single-product main.wd-content-layout{display:block !important;max-width:100% !important;width:100% !important;margin:0 !important;padding:0 !important}
.ts-pwrap{width:100%;max-width:1780px;margin:0 auto;padding:0 clamp(20px,4vw,80px)}
.ts-features .ts-feature{max-width:1780px;padding-left:clamp(20px,4vw,80px);padding-right:clamp(20px,4vw,80px)}
.ts-single .ts-p-hero{grid-template-columns:1.05fr .95fr;gap:56px}
.ts-p-info{max-width:640px}

/* reveal: visible by default (JS animates); never hides content if JS fails */
.reveal{opacity:1;transform:none;transition:none}

/* premium buy box */
.ts-buybox{border:1px solid #e7eef6;border-radius:16px;padding:22px 24px;margin:8px 0 18px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 18px 44px -30px rgba(11,34,88,.28)}
.ts-buybox .ts-p-price{margin:0 0 14px}
.ts-p-buy{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin:0 0 12px}
.ts-p-buy form.cart{display:flex;gap:12px;align-items:stretch;margin:0;flex-wrap:wrap}
.ts-p-buy .quantity{display:flex;align-items:center;border:1.5px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff}
.ts-p-buy .quantity .qty{width:54px;text-align:center;border:none;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;background:none}
.ts-p-buy .single_add_to_cart_button{background:#0494D9 !important;color:#fff !important;font-family:'Poppins',sans-serif !important;font-weight:700 !important;font-size:15.5px !important;padding:15px 34px !important;border-radius:12px !important;border:none !important;box-shadow:0 14px 30px -14px rgba(4,148,217,.75);transition:transform .12s,background .15s !important;text-transform:none !important;letter-spacing:0 !important}
.ts-p-buy .single_add_to_cart_button:hover{transform:translateY(-2px)}
.ts-quote{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #e2e8f0;background:#fff;color:#0B2258;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;padding:15px 26px;border-radius:12px;cursor:pointer;transition:border-color .15s,color .15s,transform .12s}
.ts-quote:hover{border-color:#0494D9;color:#0494D9;transform:translateY(-2px)}

/* quote modal */
.ts-qscrim{position:fixed;inset:0;background:rgba(11,22,45,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .25s;z-index:100000}
.ts-qscrim.show{opacity:1;pointer-events:auto}
.ts-qmodal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);width:min(460px,92vw);background:#fff;border-radius:18px;padding:30px 28px;z-index:100001;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 40px 90px -30px rgba(11,34,88,.5)}
.ts-qmodal.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.ts-qx{position:absolute;top:12px;right:16px;background:none;border:none;font-size:26px;line-height:1;color:#9aa7bd;cursor:pointer}
.ts-qmodal h3{font-family:'Poppins',sans-serif;font-size:22px;color:#0B2258;margin:0 0 6px}
.ts-qsub{color:#68758c;font-size:14px;margin:0 0 18px}
.ts-qmodal form{display:flex;flex-direction:column;gap:11px}
.ts-qmodal input,.ts-qmodal textarea{border:1.5px solid #e2e8f0;border-radius:10px;padding:12px 14px;font-family:'Roboto',sans-serif;font-size:14.5px;width:100%;box-sizing:border-box}
.ts-qmodal input:focus,.ts-qmodal textarea:focus{outline:none;border-color:#0494D9}
.ts-qsubmit{background:#0494D9;color:#fff;border:none;border-radius:11px;padding:14px;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;cursor:pointer;transition:background .15s}
.ts-qsubmit:hover{background:#037bb6}
.ts-qmsg{font-size:13.5px;min-height:18px}
.ts-qmsg.ok{color:#1f9d6b}.ts-qmsg.err{color:#d64545}
.ts-details-band .ts-faq-a img{max-width:100%;height:auto;border-radius:10px}
.ts-details-band .ts-faq-a{color:#4a5568}

/* ========== PRODUCT v4: full-width specs + premium buy box + richer modal ========== */
/* Tech Specs: FULL WIDTH like FAQ */
.ts-specs-band .ts-spectable{max-width:100% !important}
.ts-specs-band .ts-spectable table{max-width:100% !important;width:100% !important;display:grid;grid-template-columns:1fr 1fr;border:1px solid #e5ecf4;border-radius:16px;overflow:hidden;box-shadow:0 18px 46px -30px rgba(11,34,88,.28)}
.ts-specs-band .ts-spectable tr{display:grid;grid-template-columns:minmax(150px,38%) 1fr;border-bottom:1px solid #eef0f3;border-right:1px solid #eef0f3}
.ts-specs-band .ts-spectable th{background:#f5f9fd;font-size:14.5px;color:#0B2258}
.ts-specs-band .ts-spectable th,.ts-specs-band .ts-spectable td{padding:16px 22px}
@media(max-width:820px){.ts-specs-band .ts-spectable table{grid-template-columns:1fr}}

/* Premium buy box: stepper + buttons */
.ts-p-buy .quantity{border:1.6px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff;height:54px}
.ts-p-buy .quantity .qty{width:52px;height:52px;font-size:16px}
.ts-p-buy .quantity .minus,.ts-p-buy .quantity .plus,.ts-p-buy .quantity .wd-minus,.ts-p-buy .quantity .wd-plus,.ts-p-buy .quantity button{width:44px;height:52px;display:grid;place-items:center;background:#f7fafd;color:#0B2258;font-size:20px;border:none;cursor:pointer;transition:background .15s;line-height:1}
.ts-p-buy .quantity .minus:hover,.ts-p-buy .quantity .plus:hover,.ts-p-buy .quantity .wd-minus:hover,.ts-p-buy .quantity .wd-plus:hover,.ts-p-buy .quantity button:hover{background:#e7f4fc;color:#0494D9}
.ts-p-buy .single_add_to_cart_button{height:54px;display:inline-flex;align-items:center;gap:9px;background:linear-gradient(135deg,#0aa5ee,#0378b3) !important;box-shadow:0 16px 34px -14px rgba(4,148,217,.8);font-size:16px !important;flex:1 1 auto;justify-content:center;min-width:190px}
.ts-p-buy .single_add_to_cart_button::before{content:"";width:19px;height:19px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 5h2l1.4 11A2 2 0 0 0 9.4 18h8a2 2 0 0 0 2-1.6L21 8H7' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 5h2l1.4 11A2 2 0 0 0 9.4 18h8a2 2 0 0 0 2-1.6L21 8H7' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.ts-quote{height:54px;gap:8px}
.ts-quote::before{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z' stroke='white' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z' stroke='white' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}

/* richer quote modal head */
.ts-qhead{display:flex;gap:14px;align-items:center;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #eef0f3}
.ts-qthumb{width:56px;height:56px;border-radius:12px;object-fit:cover;background:#f5f5f5;flex:0 0 auto}
.ts-qhi{display:flex;flex-direction:column;gap:3px}
.ts-qhi strong{font-family:'Poppins',sans-serif;font-size:14.5px;color:#1d1d1f;line-height:1.3}
.ts-qhi span{font-family:'Poppins',sans-serif;font-weight:700;color:#0B2258;font-size:14px}
.ts-details-band{padding-top:34px}

/* ===== Sales pass: rating, WhatsApp, estimator, reviews ===== */

/* hero rating row */
.ts-p-rate{display:inline-flex;align-items:center;gap:9px;margin:-4px 0 14px;text-decoration:none}
.ts-p-rate .star-rating{font-size:15px;color:#f5a623;margin:0}
.ts-p-rate span{font-family:'Poppins',sans-serif;font-size:13px;color:#5a6270;font-weight:500}
.ts-p-rate:hover span{color:#0494D9}

/* WhatsApp buy-box button */
.ts-wa-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:12px;padding:13px 18px;border-radius:12px;background:#fff;color:#128C3E;font-family:'Poppins',sans-serif;font-weight:700;font-size:14.5px;text-decoration:none;border:1.5px solid #25D366;transition:background .18s,color .18s,transform .18s,box-shadow .18s}
.ts-wa-btn .ts-wa-ic{display:inline-flex;width:22px;height:22px}
.ts-wa-btn .ts-wa-ic svg{width:100%;height:100%}
.ts-wa-btn:hover{background:#25D366;color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,211,102,.28)}

/* floating WhatsApp */
.ts-wa-float{position:fixed;right:20px;bottom:20px;z-index:940;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(37,211,102,.45);transition:transform .2s,box-shadow .2s;animation:tswapop .4s cubic-bezier(.22,1,.36,1) both}
.ts-wa-float svg{width:30px;height:30px}
.ts-wa-float:hover{transform:scale(1.08);box-shadow:0 14px 32px rgba(37,211,102,.55)}
@keyframes tswapop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
body.single-product .ts-wa-float{bottom:88px}

/* ===== Savings estimator ===== */
.ts-est-band{background:linear-gradient(180deg,#f6fbfe 0%,#eef6fb 100%)}
.ts-est{max-width:1180px;margin:0 auto}
.ts-est-head{text-align:center;margin-bottom:30px}
.ts-est-head .ts-h2{margin-bottom:6px}
.ts-est-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:34px;align-items:stretch}
.ts-est-controls{background:#fff;border:1px solid #e4edf3;border-radius:18px;padding:30px 30px 34px;box-shadow:0 10px 30px rgba(11,34,88,.05)}
.ts-est-lab{display:block;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:600;color:#5a6270;letter-spacing:.01em}
.ts-est-billval{font-family:'Poppins',sans-serif;font-weight:800;font-size:34px;color:#0B2258;margin:6px 0 20px;letter-spacing:-.5px}
.ts-est-billval span{color:#0494D9}
.ts-est-controls input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:8px;background:linear-gradient(90deg,#0494D9,#5ec6ef);outline:none;cursor:pointer}
.ts-est-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:3px solid #0494D9;box-shadow:0 3px 10px rgba(4,148,217,.4);cursor:pointer;transition:transform .15s}
.ts-est-controls input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}
.ts-est-controls input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid #0494D9;box-shadow:0 3px 10px rgba(4,148,217,.4);cursor:pointer}
.ts-est-scale{display:flex;justify-content:space-between;margin-top:9px;font-family:'Poppins',sans-serif;font-size:12px;color:#9aa3b0}
.ts-est-sys{margin-top:22px;padding-top:18px;border-top:1px dashed #d9e5ee;font-family:'Poppins',sans-serif;font-size:13.5px;color:#5a6270;display:flex;align-items:center;gap:8px}
.ts-est-sys strong{color:#0B2258}
.ts-est-sysdot{width:9px;height:9px;border-radius:50%;background:#28c76f;box-shadow:0 0 0 4px rgba(40,199,111,.16);flex:none}
.ts-est-results{display:flex;flex-direction:column;gap:14px}
.ts-est-card{background:#fff;border:1px solid #e4edf3;border-radius:16px;padding:20px 22px}
.ts-est-primary{background:linear-gradient(135deg,#0B2258 0%,#123a86 100%);border:none;padding:28px 30px;box-shadow:0 16px 40px rgba(11,34,88,.22);position:relative;overflow:hidden}
.ts-est-primary::after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(4,148,217,.5),transparent 70%)}
.ts-est-primary .ts-est-k{color:rgba(255,255,255,.72)}
.ts-est-k{display:block;font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:#5a6270;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.ts-est-v{font-family:'Poppins',sans-serif;font-weight:800;font-size:40px;color:#fff;letter-spacing:-.5px;line-height:1;position:relative;z-index:1}
.ts-est-v b{font-weight:800}
.ts-est-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ts-est-row .ts-est-card{padding:18px 16px;text-align:center}
.ts-est-v2{font-family:'Poppins',sans-serif;font-weight:800;font-size:22px;color:#0B2258;line-height:1.1}
.ts-est-cta{margin-top:4px}
.ts-est-btn{width:100%;padding:15px 20px;border:none;border-radius:12px;background:linear-gradient(135deg,#0494D9,#0277b8);color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:15px;cursor:pointer;transition:transform .18s,box-shadow .18s}
.ts-est-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(4,148,217,.35)}
.ts-est-fine{margin-top:20px;text-align:center;font-family:'Poppins',sans-serif;font-size:12px;color:#9aa3b0;line-height:1.5}

/* ===== Reviews ===== */
.ts-rev-summary{display:flex;align-items:center;gap:24px;padding:24px 28px;background:#f7f9fb;border:1px solid #e9eef3;border-radius:16px;margin-bottom:26px;flex-wrap:wrap}
.ts-rev-score{display:flex;align-items:baseline;gap:4px}
.ts-rev-num{font-family:'Poppins',sans-serif;font-weight:800;font-size:46px;color:#0B2258;line-height:1}
.ts-rev-out{font-family:'Poppins',sans-serif;font-size:16px;color:#9aa3b0;font-weight:600}
.ts-rev-meta{display:flex;flex-direction:column;gap:5px}
.ts-rev-meta .star-rating{font-size:17px;color:#f5a623;margin:0}
.ts-rev-count{font-family:'Poppins',sans-serif;font-size:13.5px;color:#5a6270}
.ts-rev-empty{font-family:'Poppins',sans-serif;color:#5a6270;margin-bottom:22px}
.ts-reviews #reviews #comments>h2{display:none}
.ts-reviews ol.commentlist{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:16px}
.ts-reviews ol.commentlist li{background:#fff;border:1px solid #e9eef3;border-radius:14px;padding:20px 22px}
.ts-reviews .comment-text{margin-left:0}
.ts-reviews .comment_container{display:flex;gap:14px}
.ts-reviews .comment_container img.avatar{position:static;width:44px;height:44px;border-radius:50%;margin:0;border:none;padding:0}
.ts-reviews p.meta{font-family:'Poppins',sans-serif;font-size:13px;color:#8a93a0;margin:2px 0 8px}
.ts-reviews .comment-text .star-rating{font-size:13px;color:#f5a623;margin-bottom:8px}
.ts-reviews #review_form_wrapper{background:#f7f9fb;border:1px solid #e9eef3;border-radius:16px;padding:26px 28px;margin-top:6px}
.ts-reviews #review_form_wrapper .comment-reply-title{font-family:'Poppins',sans-serif;font-weight:700;font-size:19px;color:#0B2258}
.ts-reviews #review_form_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.ts-reviews #review_form_wrapper textarea{width:100%;border:1px solid #dbe3ea;border-radius:10px;padding:12px 14px;font-family:'Poppins',sans-serif;font-size:14px;background:#fff}
.ts-reviews #review_form_wrapper textarea:focus,.ts-reviews #review_form_wrapper input:focus{outline:none;border-color:#0494D9;box-shadow:0 0 0 3px rgba(4,148,217,.14)}
.ts-reviews #review_form_wrapper .form-submit input[type=submit]{background:linear-gradient(135deg,#0494D9,#0277b8);color:#fff;border:none;border-radius:11px;padding:13px 26px;font-family:'Poppins',sans-serif;font-weight:700;font-size:14.5px;cursor:pointer;transition:transform .18s,box-shadow .18s}
.ts-reviews #review_form_wrapper .form-submit input[type=submit]:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(4,148,217,.32)}

@media(max-width:900px){
  .ts-est-grid{grid-template-columns:1fr;gap:20px}
  .ts-est-v{font-size:34px}
  .ts-est-billval{font-size:28px}
}
@media(max-width:560px){
  .ts-est-row{grid-template-columns:1fr;gap:10px}
  .ts-est-row .ts-est-card{display:flex;align-items:center;justify-content:space-between;text-align:left}
  .ts-rev-summary{gap:16px;padding:20px}
}

/* ===== v5: full-width hero, spec grid, spacious trust, premium reviews ===== */

/* hero — remove right-side dead space, let info fill its track */
.ts-single .ts-p-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:58px;align-items:start}
.ts-p-info{max-width:none}
.ts-p-info .ts-p-short{max-width:820px}
.ts-buybox{padding:26px 30px}
.ts-hlrow{gap:40px}
@media(max-width:880px){.ts-single .ts-p-hero{grid-template-columns:1fr}}

/* trust badges — more spacious */
.ts-trust-grid{gap:22px;padding:36px 0}
.ts-tb{padding:22px 24px;gap:16px}
.ts-tb .ic{width:52px;height:52px}
.ts-tb .ic svg{width:26px;height:26px}
.ts-tb b{font-size:15.5px;margin-bottom:3px}
.ts-tb small{font-size:13px}

/* ===== Tech Specs — genuine full-width 2-column grid ===== */
.ts-specgrid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e5ecf4;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 18px 46px -30px rgba(11,34,88,.28)}
.ts-specrow{display:grid;grid-template-columns:minmax(150px,42%) 1fr;align-items:stretch;border-bottom:1px solid #eef2f7}
.ts-specrow:nth-child(odd){border-right:1px solid #eef2f7}
.ts-specrow:nth-last-child(-n+2){border-bottom:none}
.ts-spec-k{display:flex;align-items:center;padding:18px 24px;background:#f5f9fd;border-right:1px solid #eef2f7;font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;color:#0B2258;letter-spacing:-.01em}
.ts-spec-v{display:flex;align-items:center;padding:18px 24px;font-family:'Roboto',sans-serif;font-size:15px;color:#2b2f36}
@media(max-width:820px){
  .ts-specgrid{grid-template-columns:1fr}
  .ts-specrow{grid-template-columns:minmax(140px,44%) 1fr;border-right:none!important;border-bottom:1px solid #eef2f7!important}
  .ts-specrow:last-child{border-bottom:none!important}
}
.ts-datasheet{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;color:#0494D9;text-decoration:none}
.ts-datasheet:hover{color:#0277b8;text-decoration:underline}

/* ===== Reviews — premium ===== */
.ts-reviews #reviews>h2,.ts-reviews .woocommerce-Reviews-title,.ts-reviews #comments>h2,.ts-reviews h2#reply-title+*,.ts-reviews .woocommerce-noreviews{display:none}
.ts-reviews #comments{margin:0}
.ts-reviews{max-width:920px}
.ts-reviews #review_form_wrapper{padding:30px 32px}
.ts-reviews #review_form_wrapper .comment-reply-title{margin:0 0 18px;font-size:20px}
.ts-reviews .comment-form-rating{margin:0 0 20px}
.ts-reviews .comment-form-rating label{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;color:#0B2258;margin-bottom:8px}
/* star selector rendered as gold stars */
.ts-reviews p.stars{margin:0}
.ts-reviews p.stars>span{display:inline-flex;gap:6px}
.ts-reviews p.stars a{position:relative;display:inline-block;width:30px;height:30px;font-size:0!important;text-indent:0}
.ts-reviews p.stars a::before,.ts-reviews p.stars a::after{content:"\2605"!important;position:absolute;inset:0;font-size:28px;line-height:30px;text-align:center;color:#dfe4ea!important;transition:color .12s}
.ts-reviews p.stars a:hover::before,.ts-reviews p.stars a:has(~ a:hover)::before{color:#f5a623!important}
.ts-reviews p.stars.selected a.active::before,.ts-reviews p.stars.selected a:has(~ a.active)::before{color:#f5a623!important}
.ts-reviews p.stars.selected a:not(.active):not(:has(~ a.active))::before{color:#dfe4ea!important}
.ts-reviews .comment-form-comment label,.ts-reviews .comment-form-author label,.ts-reviews .comment-form-email label{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;color:#0B2258;margin-bottom:7px}
.ts-reviews .comment-notes,.ts-reviews .comment-form-cookies-consent{font-size:12.5px;color:#8a93a0}

/* ===== v6: in-column trust strip + details, sale badge ===== */

/* sale badge next to price */
.ts-p-save{display:inline-block;margin-left:12px;vertical-align:2px;font-family:'Poppins',sans-serif;font-weight:700;font-size:12.5px;color:#c81e1e;background:#fdecec;border:1px solid #f6cccc;border-radius:8px;padding:5px 10px;letter-spacing:.01em}

/* trust strip — flat, inside buy column, spans full column width (no boxes) */
.ts-truststrip{display:grid;grid-template-columns:1fr 1fr;gap:16px 26px;margin:24px 0 4px;padding:22px 0 2px;border-top:1px solid #eef0f3}
.ts-ts-item{display:flex;align-items:center;gap:13px}
.ts-ts-item .ic{width:42px;height:42px;flex:0 0 auto;border-radius:11px;background:#eaf5fc;border:1px solid #d5ecfa;display:grid;place-items:center;color:#0494D9}
.ts-ts-item .ic svg{width:22px;height:22px}
.ts-ts-item b{display:block;font-family:'Poppins',sans-serif;font-size:13.5px;color:#1d1d1f;line-height:1.25}
.ts-ts-item small{font-size:12px;color:#7c89a0}
@media(max-width:480px){.ts-truststrip{grid-template-columns:1fr}}

/* product details accordion — in column, beneath trust */
.ts-p-details{margin-top:24px;padding-top:26px;border-top:1px solid #eef0f3}
.ts-p-details-h{font-family:'Poppins',sans-serif;font-size:16.5px;font-weight:700;color:#0B2258;margin:0 0 14px;letter-spacing:-.01em}
.ts-p-details .ts-faq-item{border:1px solid #ececf1;border-radius:12px;margin-bottom:10px}
.ts-p-details .ts-faq-item summary{font-size:14.5px;padding:14px 16px}
.ts-p-details .ts-faq-a{padding:0 16px 14px}

/* ===== v7: full-width kW stats band + restore trust band (fix overflow) ===== */
.ts-stats-band{padding:46px 0;background:linear-gradient(180deg,#fbfdff,#f4f8fc);border-top:1px solid #eef0f3;border-bottom:1px solid #eef0f3}
.ts-statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.ts-stat{position:relative;display:flex;flex-direction:column;gap:9px;padding:6px 8px}
.ts-stat + .ts-stat::before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);height:48px;width:1px;background:#e3eaf2}
.ts-stat-v{font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(28px,3vw,42px);color:#0B2258;line-height:1;letter-spacing:-.5px}
.ts-stat-l{font-family:'Roboto',sans-serif;font-size:13.5px;color:#7c89a0}
@media(max-width:700px){.ts-statgrid{grid-template-columns:repeat(2,1fr);gap:30px 24px}.ts-stat:nth-child(odd)::before{display:none}}

/* trust band — constrain to pwrap so the 4th badge never clips */
.ts-band.ts-trust{padding:0}
.ts-trust-grid{max-width:none!important;margin:0!important;padding:38px 0!important;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:820px){.ts-trust-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:480px){.ts-trust-grid{grid-template-columns:1fr!important}}

/* v8: price relocated directly beneath title */
.ts-p-price-top{margin:12px 0 16px}
.single-product .ts-buybox{padding-top:22px}

/* ===== Phase 2 (batch 1): size recommendation, social proof, verified badge ===== */

/* estimator — ideal system size recommendation */
.ts-est-rec{margin-top:20px;padding:16px 18px;border-radius:12px;background:linear-gradient(135deg,#eaf5fc,#f4fbff);border:1px solid #d5ecfa}
.ts-est-rec-k{display:block;font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#0277b8;margin-bottom:7px}
.ts-est-rec-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ts-est-rec-v{font-family:'Poppins',sans-serif;font-weight:800;font-size:26px;color:#0B2258;line-height:1}
.ts-est-rec-v b{font-weight:800}
.ts-est-rec-cmp{font-family:'Poppins',sans-serif;font-size:12.5px;font-weight:600;padding:4px 11px;border-radius:20px}
.ts-est-rec-cmp.ok{color:#127a37;background:#e5f7ec}
.ts-est-rec-cmp.warn{color:#a15c00;background:#fdf1dd}

/* social-proof counters band */
.ts-social-band{padding:62px 0;background:linear-gradient(135deg,#0B2258 0%,#123a86 100%)}
.ts-social-band .ts-h2{text-align:center;color:#fff;margin-bottom:34px}
.ts-social-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.ts-social{position:relative;display:flex;flex-direction:column;gap:9px;padding:8px}
.ts-social + .ts-social::before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);height:56px;width:1px;background:rgba(255,255,255,.16)}
.ts-social-v{font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(32px,3.4vw,48px);color:#fff;line-height:1;letter-spacing:-.5px}
.ts-social-l{font-family:'Roboto',sans-serif;font-size:14px;color:#b9c7e0}
@media(max-width:700px){.ts-social-grid{grid-template-columns:repeat(2,1fr);gap:36px 24px}.ts-social:nth-child(odd)::before{display:none}}

/* verified-buyer badge in reviews */
.ts-reviews .woocommerce-review__verified,.ts-reviews em.verified{display:inline-block;margin-left:8px;font-family:'Poppins',sans-serif;font-style:normal;font-size:11px;font-weight:700;color:#127a37;background:#e5f7ec;border:1px solid #bfe8cd;border-radius:20px;padding:2px 9px;vertical-align:middle}

/* ===== Phase 2 (batch 2): product Q&A ===== */
.ts-qa-band{background:linear-gradient(180deg,#fff,#f7fafd)}
.ts-qa-list{max-width:900px;margin:0 0 30px;display:grid;gap:14px}
.ts-qa-item{background:#fff;border:1px solid #e9eef3;border-radius:14px;padding:20px 22px}
.ts-qa-q,.ts-qa-a{display:flex;gap:12px;align-items:flex-start}
.ts-qa-a{margin-top:12px;padding-top:12px;border-top:1px dashed #e6ecf2}
.ts-qa-q p,.ts-qa-a p{margin:0;font-family:'Roboto',sans-serif;font-size:15px;color:#2b2f36;line-height:1.6}
.ts-qa-q p{font-weight:600;color:#0B2258}
.ts-qa-badge{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-family:'Poppins',sans-serif;font-weight:800;font-size:13px;color:#fff;background:#0494D9}
.ts-qa-badge.a{background:#28c76f}
.ts-qa-empty{font-family:'Poppins',sans-serif;color:#5a6270;margin:0 0 26px}
.ts-qa-form{max-width:900px;background:#fff;border:1px solid #e9eef3;border-radius:16px;padding:26px 28px}
.ts-qa-form h3{font-family:'Poppins',sans-serif;font-weight:700;font-size:19px;color:#0B2258;margin:0 0 16px}
.ts-qa-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.ts-qa-form input,.ts-qa-form textarea{width:100%;border:1px solid #dbe3ea;border-radius:10px;padding:12px 14px;font-family:'Poppins',sans-serif;font-size:14px;background:#fff}
.ts-qa-form textarea{margin-bottom:14px;resize:vertical}
.ts-qa-form input:focus,.ts-qa-form textarea:focus{outline:none;border-color:#0494D9;box-shadow:0 0 0 3px rgba(4,148,217,.14)}
.ts-qa-submit{background:linear-gradient(135deg,#0494D9,#0277b8);color:#fff;border:none;border-radius:11px;padding:13px 26px;font-family:'Poppins',sans-serif;font-weight:700;font-size:14.5px;cursor:pointer;transition:transform .18s,box-shadow .18s}
.ts-qa-submit:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(4,148,217,.32)}
.ts-qa-submit:disabled{opacity:.6;cursor:default;transform:none}
.ts-qa-msg{margin-top:12px;font-family:'Poppins',sans-serif;font-size:13.5px}
.ts-qa-msg.ok{color:#127a37}.ts-qa-msg.err{color:#c81e1e}
@media(max-width:560px){.ts-qa-fields{grid-template-columns:1fr}}

/* ===== photo reviews ===== */
.ts-reviews .comment-form-photos{margin:0 0 18px}
.ts-reviews .comment-form-photos label{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;color:#0B2258;margin-bottom:7px}
.ts-reviews .comment-form-photos input[type=file]{font-family:'Poppins',sans-serif;font-size:13px}
.ts-reviews .ts-photo-note{display:block;margin-top:5px;font-family:'Poppins',sans-serif;font-size:12px;color:#8a93a0}
.ts-review-photos{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.ts-review-photos a{display:block;width:76px;height:76px;border-radius:10px;overflow:hidden;border:1px solid #e5ecf4;transition:transform .15s,box-shadow .15s}
.ts-review-photos a:hover{transform:translateY(-2px);box-shadow:0 8px 20px -8px rgba(11,34,88,.35)}
.ts-review-photos img{width:100%;height:100%;object-fit:cover;display:block}

/* ===== v9 polish batch ===== */

/* buy box — full-width stacked buttons (qty on its own row) */
.ts-p-buy{flex-direction:column;align-items:stretch;gap:12px}
.ts-p-buy form.cart{flex-direction:column;align-items:stretch;gap:12px;width:100%}
.ts-p-buy .quantity{align-self:flex-start}
.ts-p-buy .single_add_to_cart_button{width:100%!important;min-width:0!important;flex:none!important}
/* Get a Quote — premium navy secondary with glow */
.ts-quote{width:100%;background:linear-gradient(135deg,#0B2258,#1c477f)!important;color:#fff!important;border:none!important;box-shadow:0 15px 32px -16px rgba(11,34,88,.75);font-weight:700!important}
.ts-quote:hover{transform:translateY(-2px);color:#fff!important;border:none!important;box-shadow:0 20px 42px -16px rgba(11,34,88,.85)}
.ts-quote::before{background:currentColor}

/* estimator + Q&A submit buttons — match the add-to-cart glow */
.ts-est-btn,.ts-qa-submit{background:linear-gradient(135deg,#0aa5ee,#0378b3)!important;box-shadow:0 16px 34px -14px rgba(4,148,217,.8)!important}
.ts-est-btn:hover,.ts-qa-submit:hover{transform:translateY(-2px);box-shadow:0 20px 42px -14px rgba(4,148,217,.9)!important}

/* trust badges — align icon to top so wrapped headings line up (desktop + mobile) */
.ts-tb{align-items:flex-start}
.ts-tb .ic{margin-top:1px}
.ts-tb>div{display:flex;flex-direction:column;gap:2px}

/* mobile: 2 products per row on shop + cross-sell */
@media(max-width:560px){
  .ts-grid{grid-template-columns:1fr 1fr!important;gap:14px}
  .ts-cross-band .ts-related-grid{grid-template-columns:1fr 1fr!important;gap:14px}
  .woocommerce.tax-product_cat ul.products,.woocommerce.post-type-archive-product ul.products{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important;float:none!important}
  .woocommerce.tax-product_cat ul.products li.product,.woocommerce.post-type-archive-product ul.products li.product{width:auto!important;margin:0!important;float:none!important}
}

/* related products — horizontal slider, 2 per view on mobile / 4 on desktop */
.ts-related-band .ts-related-grid{display:flex;grid-template-columns:none;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:12px;scroll-padding-left:2px}
.ts-related-band .ts-related-grid .ts-card{flex:0 0 calc(50% - 8px);scroll-snap-align:start}
@media(min-width:900px){.ts-related-band .ts-related-grid .ts-card{flex:0 0 calc(25% - 12px)}}
.ts-related-band .ts-related-grid::-webkit-scrollbar{height:6px}
.ts-related-band .ts-related-grid::-webkit-scrollbar-track{background:#f0f3f7;border-radius:6px}
.ts-related-band .ts-related-grid::-webkit-scrollbar-thumb{background:#cdd8e4;border-radius:6px}

/* review stars — fix overlapping ::after (was hiding hover/selected colour) + selected state */
.ts-reviews p.stars a{cursor:pointer}
.ts-reviews p.stars a::after{content:none!important}
.ts-reviews p.stars a.ts-on::before{color:#f5a623!important}

/* star hover (JS-driven, robust) */
.ts-reviews p.stars a.ts-hot::before{color:#f5a623!important}

/* ===== v10: Q&A + Reviews two-column (form left / list right), full-width form when empty ===== */
.ts-reviews.ts-two,.ts-reviews.ts-one{max-width:none}

/* Q&A */
.ts-qa-wrap{display:flex;flex-wrap:wrap;gap:36px;align-items:flex-start}
.ts-qa-wrap .ts-qa-form{margin:0;max-width:none;flex:2 1 0;min-width:0}
.ts-qa-wrap .ts-qa-list{margin:0;max-width:none;flex:3 1 0;min-width:0}
.ts-qa-wrap.ts-one .ts-qa-form{flex:1 1 100%}
@media(max-width:760px){.ts-qa-wrap{gap:22px}.ts-qa-wrap .ts-qa-form,.ts-qa-wrap .ts-qa-list{flex:1 1 100%}}

/* Reviews */
.ts-reviews.ts-two #reviews{display:flex;flex-wrap:wrap;gap:36px;align-items:flex-start}
.ts-reviews.ts-two #review_form_wrapper{order:1;flex:2 1 0;min-width:0;margin:0}
.ts-reviews.ts-two #comments{order:2;flex:3 1 0;min-width:0;margin:0}
.ts-reviews.ts-two ol.commentlist{margin-bottom:0}
@media(max-width:760px){.ts-reviews.ts-two #reviews{gap:22px}.ts-reviews.ts-two #review_form_wrapper,.ts-reviews.ts-two #comments{flex:1 1 100%}}

/* ===== Shop hero carousel (reference-style) ===== */
.ts-hero{position:relative;overflow:hidden;background:#0B2258}
.ts-hero-track{position:relative;height:clamp(360px,56vw,600px)}
.ts-hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease;background:var(--bg);display:flex}
.ts-hero-slide.is-active{opacity:1;visibility:visible;z-index:1}
.ts-hero-ph{position:absolute;top:14px;right:16px;font-family:'Poppins',sans-serif;font-weight:600;font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.04em}
.ts-hero-inner{width:100%;display:flex;align-items:center}
.ts-hero-cap{max-width:620px;color:#fff;padding:40px 0}
.ts-hero-eyebrow{display:inline-block;font-family:'Poppins',sans-serif;font-weight:600;font-size:13px;letter-spacing:.14em;color:rgba(255,255,255,.82);margin-bottom:14px}
.ts-hero-title{font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(30px,5vw,56px);line-height:1.05;letter-spacing:-.02em;margin:0 0 14px;color:#fff}
.ts-hero-sub{font-family:'Roboto',sans-serif;font-size:clamp(15px,1.7vw,19px);color:rgba(255,255,255,.9);margin:0 0 26px}
.ts-hero-btn{display:inline-block;background:#0264FA;color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;padding:13px 30px;border-radius:6px;text-decoration:none;transition:background .15s,transform .15s}
.ts-hero-btn:hover{background:#0356d6;transform:translateY(-1px);color:#fff}
.ts-hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border:none;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.ts-hero-arrow:hover{background:rgba(255,255,255,.3)}
.ts-hero-arrow.prev{left:20px}.ts-hero-arrow.next{right:20px}
.ts-hero-dots{position:absolute;left:0;right:0;bottom:22px;z-index:3;display:flex;gap:10px;justify-content:center}
.ts-hero-dot{width:9px;height:9px;border-radius:50%;border:none;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:background .15s,width .2s}
.ts-hero-dot.is-active{background:#fff;width:26px;border-radius:6px}
@media(max-width:640px){.ts-hero-arrow{display:none}.ts-hero-cap{padding:24px 0}}

/* ===== Shop brand/video section ===== */
.ts-brand{padding:70px 0;background:#fff;border-top:1px solid #eef0f3}
.ts-brand-head{margin-bottom:26px}
.ts-brand-h{font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(24px,3vw,34px);color:#0B2258;margin:6px 0 0;letter-spacing:-.01em}
.ts-brand-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}
.ts-brand-film{position:relative;display:block;border-radius:18px;overflow:hidden;min-height:340px;background:linear-gradient(135deg,#0B2258,#123a86);text-decoration:none;box-shadow:0 24px 60px -34px rgba(11,34,88,.5)}
.ts-brand-ph{position:absolute;top:14px;left:16px;font-family:'Poppins',sans-serif;font-size:11px;color:rgba(255,255,255,.5)}
.ts-brand-cap{position:absolute;left:22px;bottom:20px;font-family:'Poppins',sans-serif;font-weight:700;font-size:18px;color:#fff}
.ts-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;transition:transform .2s}
.ts-play::before{content:"";border-left:18px solid #0B2258;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:4px}
.ts-brand-film:hover .ts-play{transform:translate(-50%,-50%) scale(1.08)}
.ts-brand-tiles{display:grid;grid-template-rows:1fr 1fr;gap:22px}
.ts-brand-tile{background:#f5f8fc;border:1px solid #e7eef6;border-radius:18px;padding:26px;display:flex;flex-direction:column;justify-content:center;transition:transform .2s,box-shadow .2s}
.ts-brand-tile:hover{transform:translateY(-3px);box-shadow:0 18px 44px -30px rgba(11,34,88,.4)}
.ts-brand-tile h3{font-family:'Poppins',sans-serif;font-weight:700;font-size:19px;color:#0B2258;margin:0 0 6px}
.ts-brand-tile p{font-family:'Roboto',sans-serif;font-size:14.5px;color:#5a6270;margin:0}
@media(max-width:820px){.ts-brand-grid{grid-template-columns:1fr}.ts-brand-film{min-height:240px}}

/* ===== Shop: two single banners ===== */
.ts-banners{padding:26px 0 0}
.ts-banners-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ts-bnr{position:relative;display:flex;align-items:flex-end;min-height:260px;border-radius:18px;overflow:hidden;background:var(--bg);text-decoration:none;box-shadow:0 22px 54px -34px rgba(11,34,88,.5);transition:transform .2s,box-shadow .2s}
.ts-bnr:hover{transform:translateY(-3px);box-shadow:0 30px 64px -34px rgba(11,34,88,.6)}
.ts-bnr-cap{position:relative;z-index:1;padding:28px 30px;color:#fff}
.ts-bnr-eyebrow{display:inline-block;font-family:'Poppins',sans-serif;font-weight:700;font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.85);margin-bottom:8px}
.ts-bnr-title{font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(22px,2.6vw,30px);color:#fff;margin:0 0 6px;letter-spacing:-.01em}
.ts-bnr-sub{font-family:'Roboto',sans-serif;font-size:14.5px;color:rgba(255,255,255,.9);margin:0 0 12px}
.ts-bnr-link{font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;color:#fff}
@media(max-width:760px){.ts-banners-grid{grid-template-columns:1fr}.ts-bnr{min-height:200px}}

/* ===== Shop: section head (video/news) ===== */
.ts-sec-head{margin-bottom:22px}
.ts-sec-h{font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(24px,3vw,34px);color:#0B2258;margin:6px 0 0;letter-spacing:-.01em}

/* ===== Shop: video section ===== */
.ts-videosec{padding:64px 0}
.ts-videosec-frame{position:relative;display:block;border-radius:20px;overflow:hidden;min-height:clamp(300px,42vw,520px);background:var(--bg);box-shadow:0 30px 70px -38px rgba(11,34,88,.55)}
.ts-videosec-frame .ts-brand-ph{position:absolute;top:14px;left:16px}
.ts-videosec .ts-play{width:80px;height:80px}
.ts-videosec .ts-play::before{border-left-width:22px;border-top-width:13px;border-bottom-width:13px}
.ts-videosec-frame:hover .ts-play{transform:translate(-50%,-50%) scale(1.08)}

/* ===== Shop: news section ===== */
.ts-news{padding:0 0 74px}
.ts-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ts-news-card{display:flex;flex-direction:column;background:#fff;border:1px solid #eef0f3;border-radius:16px;overflow:hidden;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.ts-news-card:hover{transform:translateY(-4px);box-shadow:0 24px 54px -30px rgba(11,34,88,.4);border-color:#dcebf8}
.ts-news-img{position:relative;display:block;height:180px;background:var(--bg)}
.ts-news-img .ts-brand-ph{position:absolute;top:10px;left:12px;font-size:10px}
.ts-news-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px}
.ts-news-date{font-family:'Roboto',sans-serif;font-size:12.5px;color:#8a93a0}
.ts-news-title{font-family:'Poppins',sans-serif;font-weight:700;font-size:16.5px;color:#0B2258;line-height:1.35;margin:0}
.ts-news-more{font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;color:#0264FA;margin-top:4px}
@media(max-width:900px){.ts-news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ts-news-grid{grid-template-columns:1fr}}

/* ===== Shop reference-fidelity pass (matches tecno-mobile.com/pak structure) ===== */
/* near full-screen hero like the reference 100vh video slider */
.ts-hero-track{height:min(92vh,880px)}
.ts-hero-cap{max-width:720px}

/* section titles = reference .phoneListTitle: centered, uppercase, bold */
.ts-seclabel{display:block;text-align:center;font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(20px,2.4vw,30px);letter-spacing:.02em;color:#111;text-transform:uppercase;margin:0 auto 32px}
.ts-sec-head{text-align:center}
.ts-sec-h,.ts-brand-h{display:none}

/* two single banners = full-bleed, stacked full-width (reference phoneBannerList) */
.ts-banners{padding:0}
.ts-banners .ts-wrap{max-width:none;margin:0;padding:0}

/* Featured YouTube video (shop — replaces old two banners) */
.ts-ytsec{padding:10px 0 44px}
.ts-ytsec-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#0B2258;box-shadow:0 30px 70px -38px rgba(11,34,88,.55)}
.ts-ytsec-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Image-only hero slides */
.ts-hero-slide.has-img{background-size:cover;background-position:center}
.ts-hero-imglink{position:absolute;inset:0;z-index:2}

/* Real mp4 in the ts-videosec frame (before news) */
.ts-videosec-frame--video{background:#0B2258}
.ts-videosec-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ===== Buy Now / product-detail (reference-style, TSI brand) ===== */
.pak-pd-media{display:flex;gap:14px;align-items:flex-start}
.pak-pd-thumbs{display:flex;flex-direction:column;gap:10px;flex:0 0 84px}
.pak-pd-thumb{width:84px;height:84px;padding:6px;border:1px solid #dfe5ee;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .2s,transform .2s}
.pak-pd-thumb img{width:100%;height:100%;object-fit:contain}
.pak-pd-thumb:hover{transform:translateY(-2px)}
.pak-pd-thumb.is-on{border-color:#0494D9;box-shadow:0 0 0 1px #0494D9}
.pak-pd-stage{flex:1 1 auto;min-width:0;aspect-ratio:1/1;display:grid;place-items:center;background:linear-gradient(135deg,#fafcff,#fff 65%);border-radius:14px;overflow:hidden}
.pak-pd-stage img{width:100%;height:100%;object-fit:contain}
@media(max-width:1024px){.pak-pd-thumbs{flex-basis:64px}.pak-pd-thumb{width:64px;height:64px}}
@media(max-width:600px){.pak-pd-media{flex-direction:column-reverse}.pak-pd-thumbs{flex-direction:row;flex-wrap:wrap;flex-basis:auto}.pak-pd-stage{width:100%}}

.pak-pd-purchase{margin:8px 0 0}
.pak-pd-purchase .single_add_to_cart_button{display:none !important}
.pak-pd-purchase form.cart{display:flex;align-items:center;gap:14px;margin:0}
.pak-pd-purchase .quantity{display:flex;align-items:center}

.pak-action-cards{display:grid;gap:14px;margin-top:20px}
.pak-action-card{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:16px;padding:16px 18px;border:1px solid #cbdcff;border-radius:16px;background:linear-gradient(110deg,#f9fbff,#fff);text-decoration:none}
.pak-action-card--store{border-color:#ccebd5;background:linear-gradient(110deg,#fbfffc,#fff)}
.pak-action-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#0494D9}
.pak-action-icon svg{width:26px;height:26px}
.pak-action-card--store .pak-action-icon{background:#17a43a}
.pak-action-copy{display:flex;flex-direction:column;gap:8px}
.pak-action-copy>span:last-child{color:#273142;font-size:.95rem;line-height:1.45;max-width:42ch}
.pak-action-cards .pak-action-button{display:inline-flex;justify-content:center;align-items:center;align-self:flex-start;min-width:180px;min-height:46px;padding:0 24px;border:0 !important;border-radius:8px;background:#0494D9 !important;color:#fff !important;font-size:1rem;font-weight:700;font-family:'Poppins',sans-serif;cursor:pointer;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;text-transform:none;letter-spacing:0}
.pak-action-cards .pak-action-button:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(4,148,217,.25);background:#0378B0 !important;color:#fff !important}
.pak-action-cards .pak-action-card--store .pak-action-button{background:#17a43a !important}
.pak-action-cards .pak-action-card--store .pak-action-button:hover{background:#128a30 !important;box-shadow:0 8px 18px rgba(23,164,58,.25)}
.pak-action-button--static{pointer-events:none}
.pak-secondary-actions{display:flex;gap:12px;margin-top:14px}
.pak-secondary-actions .pak-sec{flex:1;min-height:46px;display:inline-flex;justify-content:center;align-items:center;border:1px solid #cbd4e1;border-radius:8px;background:#fff;color:#253044;font-weight:600;font-family:'Poppins',sans-serif;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.pak-secondary-actions .pak-sec:hover{border-color:#0494D9;color:#0494D9;background:#f7faff}
.pak-highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.pak-highlight{display:flex;align-items:center;gap:10px}
.pak-highlight-ic{flex:none;width:34px;height:34px;border:1px dashed #9ba9bc;border-radius:8px}
.pak-highlight-tx{display:flex;flex-direction:column;line-height:1.2}
.pak-highlight-tx b{color:#0B2258;font-size:.95rem}
.pak-highlight-tx small{color:#68758a;font-size:.78rem;margin-top:2px}
@media(max-width:1024px){.pak-action-card{grid-template-columns:44px 1fr}.pak-action-icon{width:44px;height:44px}.pak-highlights{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pak-action-copy>span:last-child{max-width:none}.pak-action-button{min-width:0;width:100%}}
.ts-banners-grid{grid-template-columns:1fr;gap:0}
.ts-bnr{min-height:clamp(300px,34vw,460px);border-radius:0}
.ts-bnr-cap{padding:0 clamp(20px,6vw,90px)}
@media(max-width:760px){.ts-banners-grid{grid-template-columns:1fr}.ts-bnr{min-height:240px}}

/* reference button blue #287DFF; news links #0064fe */
.ts-hero-btn,.ts-learn{background:#287DFF!important;border:none!important}
.ts-hero-btn:hover,.ts-learn:hover{background:#1e6ae0!important}
.ts-news-more{color:#0064fe!important}

/* ===== v11: reference-token fidelity (from tecno-mobile main-min.css values) ===== */
/* Learn More = reference .pagebtn/.learnMore: #0264fa default, #287dff hover, ~5px radius, ~36px tall */
.ts-learn,.ts-hero-btn{background:#0264fa!important;color:#fff!important;border:none!important;border-radius:5px!important}
.ts-learn{height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 26px;font-family:'Poppins',sans-serif;font-weight:500;font-size:15px;line-height:1;transition:background .3s linear}
.ts-learn:hover,.ts-hero-btn:hover{background:#287dff!important;color:#fff!important;transform:none}

/* Section titles = reference .phoneListTitle: centered, UPPERCASE, light weight, large */
.ts-seclabel{font-weight:500!important;font-size:clamp(26px,3.33vw,48px)!important;letter-spacing:0!important;text-transform:uppercase;text-align:center;margin:0 auto 34px!important;color:#111}

/* Product cards: overflow-clip panel + image zoom on hover (reference .phoneItem:hover img) */
.ts-grid .ts-card .ts-panel,.ts-related-grid .ts-card .ts-panel{overflow:hidden}
.ts-grid .ts-card .ts-panel img,.ts-related-grid .ts-card .ts-panel img{transition:transform .3s linear}
.ts-grid .ts-card:hover .ts-panel img,.ts-related-grid .ts-card:hover .ts-panel img{transform:scale(1.08)}

/* Card title = reference .title-slogan .title (centered, regular weight) */
.ts-grid .ts-cname{font-family:'Poppins',sans-serif;font-weight:500;text-align:center}

/* ===== v12: reference-style NEWS (image left + accordion list right) ===== */
.ts-news-head{text-align:center;margin-bottom:34px}
.ts-news-head .ts-seclabel{margin-bottom:6px!important}
.ts-news-all{display:inline-block;font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;color:#0064fe}
.ts-news2{display:grid;grid-template-columns:.98fr 1fr;gap:56px;align-items:center}
.ts-news2-media{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 24px 60px -34px rgba(11,34,88,.45)}
.ts-news2-img{position:absolute;inset:0;background:var(--bg);opacity:0;transition:opacity .35s linear}
.ts-news2-img.is-active{opacity:1}
.ts-news2-img .ts-brand-ph{position:absolute;top:12px;left:14px}
.ts-news2-list{display:flex;flex-direction:column}
.ts-news2-item{border-bottom:1px solid #cfd6de;cursor:pointer}
.ts-news2-item:last-child{border-bottom:none}
.ts-news2-titlerow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0}
.ts-news2-title{font-family:'Poppins',sans-serif;font-weight:500;font-size:19px;color:#111;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-news2-item.is-active .ts-news2-title{color:#0B2258}
.ts-news2-arrow{flex:none;width:11px;height:11px;border-right:2px solid #98a3b3;border-bottom:2px solid #98a3b3;transform:rotate(-45deg);transition:transform .3s,border-color .3s}
.ts-news2-item.is-active .ts-news2-arrow{transform:rotate(45deg);border-color:#0264fa}
.ts-news2-info{max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .3s ease}
.ts-news2-item.is-active .ts-news2-info{max-height:220px;opacity:1;padding-bottom:22px}
.ts-news2-date{font-family:'Roboto',sans-serif;font-size:13px;color:#8a93a0}
.ts-news2-sub{font-family:'Roboto',sans-serif;font-size:15px;color:#5a6270;margin:8px 0 10px;line-height:1.55}
.ts-news2 .ts-news-more{color:#0064fe;font-family:'Poppins',sans-serif;font-weight:500;font-size:14px}
@media(max-width:820px){.ts-news2{grid-template-columns:1fr;gap:22px}.ts-news2-media{aspect-ratio:16/9}}

/* v12b: news title/image are now links */
.ts-news2-img{display:block;text-decoration:none}
.ts-news2-title{text-decoration:none;transition:color .2s}
.ts-news2-item:hover .ts-news2-title{color:#0B2258}

/* ===== v13: product-detail spark-style — sticky product bar + KV hero ===== */
html{scroll-behavior:smooth}
#ts-buy{scroll-margin-top:76px}
/* sticky product bar: hidden until scrolled past the hero (JS toggles .on) */
.ts-pbar{position:sticky;top:0;z-index:9990;background:#fff;border-bottom:1px solid #eee;transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .3s ease,opacity .3s ease}
.ts-pbar.on{transform:none!important;opacity:1!important;pointer-events:auto!important}
.ts-pbar-in{display:flex;align-items:center;justify-content:space-between;height:56px}
.ts-pbar-name{font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;color:#0B2258}
.ts-pbar-right{display:flex;align-items:center;gap:24px}
.ts-pbar-tab{font-family:'Poppins',sans-serif;font-size:14px;color:#333;transition:color .2s}
.ts-pbar-tab:hover{color:#287DFF}
.ts-pbar-buy{display:inline-flex;align-items:center;height:34px;padding:0 18px;background:#287DFF;color:#fff!important;border-radius:5px;font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;transition:background .3s}
.ts-pbar-buy:hover{background:#0264fa}
@media(max-width:600px){.ts-pbar-tab{display:none}}

/* KV hero */
.ts-kv{position:relative;background:#0B2258;background-image:linear-gradient(180deg,rgba(6,18,46,.15),rgba(6,18,46,.72)),var(--kv,linear-gradient(135deg,#0B2258,#0494D9));background-size:cover;background-position:center;color:#fff;overflow:hidden}
.ts-kv-inner{min-height:min(74vh,620px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:80px 5%}
.ts-kv-cat{font-family:'Poppins',sans-serif;font-size:13px;letter-spacing:.14em;text-transform:uppercase;opacity:.85;margin-bottom:14px}
.ts-kv-cat a{color:#cfe6ff}
.ts-kv-title{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(34px,5.4vw,68px);line-height:1.05;margin:0;color:#fff}
.ts-kv-tag{font-family:'Poppins',sans-serif;font-weight:300;font-size:clamp(16px,2vw,24px);margin:16px 0 0;opacity:.92}
.ts-kv-cta{display:inline-flex;align-items:center;height:44px;padding:0 34px;margin-top:28px;background:#287DFF;color:#fff!important;border-radius:6px;font-family:'Poppins',sans-serif;font-weight:500;font-size:16px;transition:background .3s,transform .2s;box-shadow:0 10px 30px -10px rgba(40,125,255,.7)}
.ts-kv-cta:hover{background:#0264fa;transform:translateY(-1px)}
.ts-kv-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,6vw,90px);margin-top:44px}
.ts-kv-stat{display:flex;flex-direction:column;align-items:center}
.ts-kv-stat-m{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(26px,3.4vw,44px);line-height:1;color:#fff}
.ts-kv-stat-d{font-family:'Poppins',sans-serif;font-size:14px;opacity:.8;margin-top:8px;max-width:150px;line-height:1.35}
.ts-kv-ph{position:absolute;top:14px;left:16px;background:rgba(255,255,255,.14);color:#fff}
@media(max-width:600px){.ts-kv-inner{min-height:auto;padding:60px 6%}.ts-kv-stats{gap:26px}}

/* KV owns the H1 now — hide the duplicate title/category in the buy column */
.ts-p-hero .ts-cat{display:block}
.ts-p-hero .ts-p-title{display:block}

/* ===== v14: Learn page spark visual language — split hero + bento grid + big faint titles ===== */
/* split light KV (overrides v13 navy centred hero) */
.ts-kv{background:linear-gradient(160deg,#eef4fd 0%,#dfeaf9 55%,#eaf1fb 100%)!important;color:#0B2258!important}
.ts-kv-inner{display:grid!important;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px;min-height:min(78vh,640px);padding:70px 5% 60px;text-align:left!important}
.ts-kv-copy{display:flex;flex-direction:column;align-items:flex-start}
.ts-kv-cat{opacity:1;color:#5b6b8c!important;margin-bottom:12px}
.ts-kv-cat a{color:#5b6b8c}
.ts-kv-title{color:#0B2258!important;text-align:left;font-size:clamp(34px,4.6vw,62px)}
.ts-kv-tag{color:#33456b!important;opacity:1;margin-top:12px}
.ts-kv-stats{justify-content:flex-start!important;gap:clamp(20px,3vw,52px)!important;margin-top:30px!important}
.ts-kv-stat{align-items:flex-start}
.ts-kv-stat-m{color:#0264fa!important}
.ts-kv-stat-d{color:#5b6b8c!important;opacity:1;text-align:left}
.ts-kv-cta{margin-top:30px}
.ts-kv-media{position:relative;display:flex;align-items:center;justify-content:center;min-height:320px}
.ts-kv-media img{max-width:100%;max-height:520px;object-fit:contain;filter:drop-shadow(0 30px 50px rgba(11,34,88,.25))}
.ts-kv-media .ts-brand-ph{position:static;background:rgba(11,34,88,.06);color:#5b6b8c}
@media(max-width:820px){.ts-kv-inner{grid-template-columns:1fr;text-align:center!important}.ts-kv-copy{align-items:center}.ts-kv-stats{justify-content:center!important}.ts-kv-media{order:-1;min-height:220px}}

/* big faint section titles + band */
.ts-featband{background:#f5f7fb;padding:clamp(44px,6vw,96px) 0}
.ts-bighead{margin-bottom:34px}
.ts-bigtitle{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(40px,7vw,104px);line-height:.98;letter-spacing:-.01em;color:#dbe3ef;text-transform:uppercase;margin:0}
.ts-bigsub{font-family:'Poppins',sans-serif;font-weight:500;font-size:clamp(16px,2vw,26px);color:#0264fa;margin:6px 0 0}

/* bento mosaic */
.ts-bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:14px;grid-auto-flow:dense}
.ts-bento-cell{position:relative;grid-column:span 1;grid-row:span 1;border-radius:16px;overflow:hidden;background:#0B2258;background-image:linear-gradient(180deg,rgba(6,18,46,.05),rgba(6,18,46,.66)),var(--img);background-size:cover;background-position:center;transition:transform .3s ease}
.ts-bento-cell[data-noimg]{background-image:linear-gradient(150deg,#0b3b8f,#0264fa 60%,#37a6ff)}
.ts-bento-cell:nth-child(3n)[data-noimg]{background-image:linear-gradient(150deg,#0B2258,#123f8f)}
.ts-bento-cell:nth-child(4n)[data-noimg]{background-image:linear-gradient(150deg,#0494D9,#0264fa)}
.ts-bento-cell:hover{transform:translateY(-3px)}
.ts-b-lg{grid-column:span 2;grid-row:span 2}
.ts-b-wide{grid-column:span 2}
.ts-b-tall{grid-row:span 2}
.ts-bento-cap{position:absolute;left:20px;right:20px;bottom:18px;display:flex;flex-direction:column;gap:4px}
.ts-bento-h{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(15px,1.3vw,20px);color:#fff;line-height:1.25}
.ts-bento-t{font-family:'Roboto',sans-serif;font-size:13px;color:rgba(255,255,255,.85);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-b-lg .ts-bento-h{font-size:clamp(20px,1.8vw,28px)}
@media(max-width:820px){.ts-bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.ts-b-lg{grid-column:span 2;grid-row:span 2}.ts-b-wide{grid-column:span 2}.ts-b-tall{grid-row:span 1}}

/* ===== v15: Learn page — full-bleed chrome strip + immersive spotlight/media bands ===== */
/* strip Woodmart chrome so sections run edge-to-edge like the reference */
.ts-learn-page .wd-page-title,.ts-learn-page .woodmart-breadcrumbs,.ts-learn-page .title-wrapper,.ts-learn-page nav.woocommerce-breadcrumb,.ts-learn-page .wc-breadcrumb{display:none!important}
.ts-learn-page .container,.ts-learn-page .row.content-page-wrapper,.ts-learn-page .content-area,.ts-learn-page main.site-main,.ts-learn-page .col-lg-9,.ts-learn-page .col-lg-12{max-width:none!important;width:100%!important;padding-left:0!important;padding-right:0!important;margin:0!important;flex:0 0 100%!important}
.ts-learn-page .sidebar-container,.ts-learn-page .widget-area{display:none!important}
.ts-learn-page .single-product div.product,.ts-learn-page .ts-single-wrap{margin:0!important;padding:0!important}
.ts-learn-page .site-content{padding-top:0!important}
.ts-learn-page .ts-pwrap{width:90%;max-width:1300px;margin:0 auto}

/* hero a touch taller/edge-to-edge */
.ts-kv-inner{min-height:min(84vh,680px)}

/* immersive full-bleed spotlight band */
.ts-spot{position:relative;color:#fff;background:#0B2258;background-image:linear-gradient(180deg,rgba(6,18,46,.28),rgba(6,18,46,.72)),var(--img);background-size:cover;background-position:center}
.ts-spot[data-noimg]{background-image:linear-gradient(135deg,#06255e 0%,#0264fa 55%,#37a6ff 100%)}
.ts-spot-inner{width:90%;max-width:1300px;margin:0 auto;min-height:min(78vh,620px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:80px 0}
.ts-spot-ey{font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:#bcd6ff}
.ts-spot-h{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(30px,4.2vw,58px);line-height:1.05;margin:14px 0 0;max-width:16ch}
.ts-spot-b{font-family:'Roboto',sans-serif;font-size:clamp(15px,1.4vw,19px);line-height:1.6;margin:18px 0 0;max-width:52ch;color:rgba(255,255,255,.9)}
.ts-spot-cta{display:inline-flex;align-items:center;height:46px;padding:0 34px;margin-top:30px;background:#fff;color:#0B2258!important;border-radius:6px;font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;transition:transform .2s,background .3s}
.ts-spot-cta:hover{background:#eaf2ff;transform:translateY(-1px)}

/* media split band */
.ts-mediaband{background:#fff;padding:clamp(44px,6vw,96px) 0}
.ts-media-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,64px);align-items:center}
.ts-media-fig{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:#0B2258;background-image:linear-gradient(180deg,rgba(6,18,46,.05),rgba(6,18,46,.5)),var(--img);background-size:cover;background-position:center;box-shadow:0 28px 60px -34px rgba(11,34,88,.5)}
.ts-media-fig[data-noimg]{background-image:linear-gradient(140deg,#0494D9,#0264fa)}
.ts-media-fig .ts-brand-ph{position:absolute;top:14px;left:16px;background:rgba(255,255,255,.16);color:#fff}
.ts-media-h{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(26px,3vw,44px);line-height:1.1;color:#0B2258;margin:0}
.ts-media-b{font-family:'Roboto',sans-serif;font-size:clamp(15px,1.4vw,18px);line-height:1.65;color:#4a5568;margin:16px 0 0;max-width:50ch}
.ts-media-cta{display:inline-block;margin-top:22px;font-family:'Poppins',sans-serif;font-weight:500;font-size:15px;color:#0264fa}
.ts-media-cta:hover{color:#287dff}
@media(max-width:820px){.ts-media-in{grid-template-columns:1fr}}

/* bento placeholder label */
.ts-bento-ph{position:absolute;top:14px;left:16px;font-family:'Poppins',sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7)}

/* ===== Elementor "Learn More" template — sticky product sub-nav (Section 1) ===== */
/* Full-bleed breakout so the bar + hero banner span the whole viewport width. */
.elementor-element-ts1nav,.elementor-element-tshero01{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.elementor-element-tshBanner img{width:100%;display:block}
.elementor-element-ts1nav{position:-webkit-sticky;position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid #eee}
.tsi-subnav{display:flex;align-items:center;justify-content:space-between;max-width:1300px;margin:0 auto;padding:12px 20px;font-family:'Poppins',sans-serif}
.tsi-sntitle{font-weight:600;font-size:17px;color:#0B2258}
.tsi-snr{display:flex;align-items:center;gap:26px}
.tsi-buynow{background:#0494D9;color:#fff !important;font-weight:600;font-size:15px;line-height:1;padding:11px 22px;border-radius:6px;text-decoration:none;transition:background .2s}
.tsi-buynow:hover{background:#0378B0;color:#fff !important}
.tsi-snlink{font-weight:500;font-size:15px;color:#0B2258;text-decoration:none;transition:color .2s}
.tsi-snlink.is-active{color:#0494D9;font-weight:600}
.tsi-snlink:hover{color:#0494D9}
@media(max-width:600px){.tsi-snr{gap:14px}.tsi-sntitle{font-size:15px}.tsi-snlink{display:none}}

/* ===== v13: Shop — full-bleed clean featured video + edge-to-edge image banners ===== */
/* Featured video at the very top: edge-to-edge, no border/radius, no chrome.
   iframe is over-scanned (118%) inside a clipped 16:9 box so YouTube's logo/title
   bleed off-screen, and pointer-events are killed so no controls/hover UI ever show. */
.ts-ythero{position:relative;width:100%;margin:0;padding:0;line-height:0;background:#000}
.ts-ythero-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000}
.ts-ythero-frame iframe{position:absolute;top:50%;left:50%;width:118%;height:118%;transform:translate(-50%,-50%);border:0;pointer-events:none}
.ts-ythero-guard{position:absolute;inset:0;z-index:2}

/* Two client banners: full-width, stacked, edge-to-edge, no gaps/rounding */
.ts-imgbands{display:block;width:100%;margin:0;padding:0;font-size:0}
.ts-imgband{display:block;width:100%;line-height:0}
.ts-imgband img{display:block;width:100%;height:auto}

/* Pre-news mp4: show the WHOLE frame (no cropping) — video defines its own height */
.ts-videosec-frame--video{min-height:0;background:#000;border-radius:20px;overflow:hidden}
.ts-videosec-frame--video .ts-videosec-video{position:static;inset:auto;width:100%;height:auto;object-fit:contain;display:block}
@media(max-width:760px){.ts-videosec-frame--video{border-radius:14px}}

/* ===== v14: Shop — let the full NOVA posters fit the cards cleanly (no grey box, no multiply) ===== */
/* Posters are portrait 430x538 marketing artwork. Match the card image area to that shape
   and let the poster fill it edge-to-edge, so it reads as an intentional card instead of a
   dark rectangle floating in a padded grey square. */
.ts-grid .ts-card .ts-panel,
.ts-related-grid .ts-card .ts-panel{
  aspect-ratio:430/538;      /* match poster shape -> no letterbox */
  padding:0;
  background:#0a1a34;         /* dark navy so any hairline edge blends with the artwork */
  border-radius:12px;
}
.ts-grid .ts-card .ts-panel img,
.ts-related-grid .ts-card .ts-panel img{
  width:100%;height:100%;
  max-width:none;max-height:none;
  object-fit:cover;          /* ratios match -> fills fully, nothing cropped */
  mix-blend-mode:normal;     /* stop the multiply blend muddying the dark posters */
}
.ts-related-grid .ts-card .ts-panel{border-radius:0}

/* ===== Homepage product slider (reuses shop .ts-card styling) ===== */
.ts-cardslider{position:relative;max-width:1780px;margin:0 auto;padding:0 clamp(20px,4vw,80px)}
.ts-grid--slider{display:flex!important;grid-template-columns:none!important;gap:clamp(14px,2vw,26px);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:10px}
.ts-grid--slider::-webkit-scrollbar{height:6px}
.ts-grid--slider::-webkit-scrollbar-track{background:#eef2f7;border-radius:6px}
.ts-grid--slider::-webkit-scrollbar-thumb{background:#cdd8e4;border-radius:6px}
.ts-grid--slider .ts-card{flex:0 0 clamp(230px,24vw,290px);scroll-snap-align:start}
.ts-cs-arrow{position:absolute;top:40%;transform:translateY(-50%);z-index:4;width:44px;height:44px;border:none;border-radius:50%;background:#0264fa;color:#fff;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 12px 26px -12px rgba(2,100,250,.6);transition:background .15s}
.ts-cs-arrow:hover{background:#287dff}
.ts-cs-arrow.prev{left:6px}.ts-cs-arrow.next{right:6px}
@media(max-width:600px){.ts-cs-arrow{display:none}}

/* Single product card via [tsi_product] fills its container (e.g. an Elementor carousel slide) */
.ts-grid--single{grid-template-columns:minmax(0,1fr)!important}
.ts-grid--single .ts-card{width:100%}
/* Visually hidden H1 for SEO. Add class "tsi-sr-only" to a Heading widget set to H1. */
.tsi-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ===== Tecno-mobile style product showcase ([tsi_products_showcase]) ===== */
.tsi-showcase{display:grid;grid-template-columns:repeat(var(--tsi-cols,3),1fr);gap:clamp(16px,2vw,30px);max-width:1780px;margin:0 auto;padding:0 clamp(20px,4vw,80px);font-family:'Poppins',sans-serif}
.tsi-sc-card{display:block;background:#fff;text-decoration:none;text-align:center;transition:box-shadow .3s}
.tsi-sc-card:hover{box-shadow:0 34px 60px -34px rgba(11,34,88,.28)}
.tsi-sc-media{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:#fff;overflow:hidden}
.tsi-sc-media img{max-width:82%;max-height:82%;width:auto;height:auto;object-fit:contain;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.tsi-sc-card:hover .tsi-sc-media img{transform:scale(1.09)}
.tsi-sc-body{display:block;padding:22px 18px 30px}
.tsi-sc-title{display:block;font-weight:500;color:#0B2258;font-size:clamp(1.2rem,2vw,1.6rem);margin:0 0 10px;letter-spacing:-.01em}
.tsi-sc-swap{position:relative;display:block;min-height:1.6em}
.tsi-sc-tag,.tsi-sc-more{position:absolute;left:0;right:0;top:0;margin:0;font-family:'Roboto',sans-serif;font-size:clamp(.9rem,1.2vw,1.02rem);transition:opacity .3s}
.tsi-sc-tag{color:#5a6b82;opacity:1}
.tsi-sc-more{color:#0494D9;font-weight:600;opacity:0}
.tsi-sc-card:hover .tsi-sc-tag{opacity:0}
.tsi-sc-card:hover .tsi-sc-more{opacity:1}
@media(max-width:900px){.tsi-showcase{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tsi-showcase{grid-template-columns:1fr}}

/* ============================================================
   Single product — gallery thumbnail slider + premium buy box
   (added: vertical thumb slider, Get a Quote card, qty + Add to Cart row)
   ============================================================ */
.pak-pd-rail{display:flex;flex-direction:column;gap:8px;flex:0 0 84px;min-height:0}
.pak-pd-rail .pak-pd-thumbs{flex:1 1 auto;min-height:0}
.pak-pd-rail.has-slider .pak-pd-thumbs{overflow-y:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-right:2px}
.pak-pd-rail.has-slider .pak-pd-thumbs::-webkit-scrollbar{width:0;height:0;display:none}
.pak-pd-navarrow{flex:0 0 auto;height:30px;width:100%;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dfe5ee;border-radius:10px;background:#fff;color:#0B2258;cursor:pointer;font-size:12px;line-height:1;transition:background .15s,color .15s,border-color .15s}
.pak-pd-navarrow:hover{background:#e7f4fc;color:#0494D9;border-color:#bfe0f4}
.pak-pd-navarrow[disabled]{opacity:.32;cursor:default;background:#fff;color:#0B2258;border-color:#dfe5ee}
@media(max-width:1024px){.pak-pd-rail{flex-basis:64px}}
@media(max-width:600px){.pak-pd-navarrow{display:none}.pak-pd-rail{flex-basis:auto}.pak-pd-rail .pak-pd-thumbs{overflow:visible}}

/* Premium action cards (Buy Now + Get a Quote) */
.pak-action-card{transition:transform .18s,box-shadow .2s,border-color .2s}
.pak-action-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px -22px rgba(11,34,88,.4)}
.pak-action-card--quote{grid-template-columns:52px 1fr;width:100%;text-align:left;-webkit-appearance:none;appearance:none;font-family:'Poppins',sans-serif;border-color:#c9d6ef;background:linear-gradient(110deg,#f7f9ff,#fff);cursor:pointer}
.pak-action-card--quote .pak-action-icon{background:#0B2258}
.pak-action-cards .pak-action-card--quote .pak-action-button{background:#0B2258 !important}
.pak-action-cards .pak-action-card--quote:hover .pak-action-button{background:#0a1c47 !important}
@media(max-width:1024px){.pak-action-card--quote{grid-template-columns:44px 1fr}}

/* Quantity + Add to Cart on one premium row */
.pak-addrow{display:flex;align-items:stretch;gap:12px;margin-top:18px;flex-wrap:wrap}
.pak-addrow form.cart{flex:0 0 auto}
.pak-addrow .pak-addcart{flex:1 1 auto;min-width:200px;height:54px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;background:linear-gradient(135deg,#0aa5ee,#0378b3);color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 16px 34px -14px rgba(4,148,217,.8);transition:transform .12s,box-shadow .2s}
.pak-addrow .pak-addcart:hover{transform:translateY(-2px);box-shadow:0 20px 40px -16px rgba(4,148,217,.85)}
.pak-addrow .pak-addcart::before{content:"";width:19px;height:19px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h2l1.4 11A2 2 0 0 0 9.4 18h8a2 2 0 0 0 2-1.6L21 8H7' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h2l1.4 11A2 2 0 0 0 9.4 18h8a2 2 0 0 0 2-1.6L21 8H7' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
@media(max-width:600px){.pak-addrow{flex-direction:column}.pak-addrow form.cart,.pak-addrow .pak-addcart{width:100%}.pak-addrow .pak-addcart{min-width:0}.pak-addrow form.cart .quantity{align-self:flex-start}}

/* Fixes: quantity beside Add to Cart (theme forces form.cart width:100%); no uppercase on quote card */
.pak-addrow{flex-wrap:nowrap}
.pak-addrow form.cart{width:auto !important;flex:0 0 auto !important;margin:0}
.pak-addrow .pak-addcart{min-width:150px}
.pak-action-card--quote,.pak-action-card--quote .pak-action-copy>span:last-child{text-transform:none}
@media(max-width:600px){.pak-addrow{flex-wrap:wrap}.pak-addrow form.cart{width:100% !important}}

/* form.cart stretches as a block flex-item; display:contents lets the quantity sit inline next to Add to Cart */
.pak-addrow form.cart{display:contents}
.pak-addrow .quantity{flex:0 0 auto;margin:0}
@media(max-width:600px){.pak-addrow form.cart{display:flex}.pak-addrow .quantity{align-self:flex-start}}

/* Reliable side-by-side: grid row (auto quantity + flexible Add to Cart); hidden links are ignored by grid */
.pak-addrow{display:grid !important;grid-template-columns:auto 1fr;align-items:stretch;gap:12px;flex-wrap:nowrap}
.pak-addrow form.cart{display:flex !important;width:auto !important;min-width:0;margin:0}
.pak-addrow .pak-addcart{width:auto;min-width:0}
@media(max-width:600px){.pak-addrow{grid-template-columns:1fr}.pak-addrow .quantity{justify-self:start}}

/* ============================================================
   Buy-box cards polish + quote modal + gallery viewer (2026-09-13 v2)
   ============================================================ */
/* Buy Now + Get a Quote: identical layout, full-width buttons */
.pak-action-cards .pak-action-button{width:100%;min-width:0;align-self:stretch;box-sizing:border-box}
.pak-action-copy{min-width:0;flex:1 1 auto}
.pak-action-copy>span:last-child{max-width:none;text-align:left;font-weight:400}
.pak-action-card--quote{align-items:center;text-align:left;font-weight:400}

/* Quote modal: wider, close pinned top-right (off the image), Send = header blue */
.ts-qmodal{width:min(600px,94vw);padding:34px 34px 30px}
.ts-qx{top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:#f1f4f9;display:grid;place-items:center;font-size:22px;color:#5b6b83;z-index:5;padding:0}
.ts-qx:hover{background:#e3e9f2;color:#0B2258}
.ts-qhead{padding-right:46px}
.ts-qsubmit{background:#0494D9 !important;color:#fff !important;font-family:'Poppins',sans-serif !important;font-weight:600 !important;border-radius:11px !important;text-transform:none !important;letter-spacing:0 !important}
.ts-qsubmit:hover{background:#037bb6 !important}
@media(max-width:600px){.ts-qmodal{padding:28px 20px 22px}.ts-qx{top:10px;right:10px}}

/* Gallery stage: hover nav arrows + zoom button, hover magnify */
.pak-pd-stage{position:relative}
.pak-pd-stage img{transition:transform .3s ease;will-change:transform}
.pak-pd-stage.is-zooming img{transition:transform .05s ease}
.pak-pd-stnav,.pak-pd-zoom{position:absolute;z-index:4;border:none;background:rgba(11,34,88,.5);color:#fff;cursor:pointer;display:grid;place-items:center;opacity:0;transition:opacity .2s,background .2s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:0}
.pak-pd-stage:hover .pak-pd-stnav,.pak-pd-stage:hover .pak-pd-zoom,.pak-pd-stnav:focus-visible,.pak-pd-zoom:focus-visible{opacity:1}
.pak-pd-stnav{top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;font-size:26px;line-height:1}
.pak-pd-stnav.prev{left:12px}.pak-pd-stnav.next{right:12px}
.pak-pd-zoom{top:12px;right:12px;width:40px;height:40px;border-radius:11px}
.pak-pd-zoom svg{width:20px;height:20px}
.pak-pd-stnav:hover,.pak-pd-zoom:hover{background:#0494D9}
@media(hover:none){.pak-pd-stnav,.pak-pd-zoom{opacity:1;background:rgba(11,34,88,.42)}}

/* Lightbox */
.pak-lb{position:fixed;inset:0;z-index:100050;background:rgba(8,15,30,.93);display:flex;align-items:center;justify-content:center}
.pak-lb[hidden]{display:none}
.pak-lb-stage{max-width:88vw;max-height:74vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pak-lb-img{max-width:88vw;max-height:74vh;object-fit:contain;cursor:zoom-in;transition:transform .2s ease;border-radius:8px}
.pak-lb-img.is-zoom{cursor:zoom-out;transition:transform .05s ease}
.pak-lb-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
.pak-lb-close:hover{background:rgba(255,255,255,.26)}
.pak-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:32px;line-height:1;cursor:pointer;display:grid;place-items:center}
.pak-lb-nav.prev{left:24px}.pak-lb-nav.next{right:24px}
.pak-lb-nav:hover{background:rgba(255,255,255,.26)}
.pak-lb-count{position:absolute;top:24px;left:50%;transform:translateX(-50%);color:#e4ebf6;font-family:'Poppins',sans-serif;font-size:14px;letter-spacing:1px}
.pak-lb-thumbs{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;max-width:92vw;overflow-x:auto;padding:6px}
.pak-lb-thumb{flex:0 0 auto;width:56px;height:56px;border-radius:8px;border:2px solid transparent;background:#fff;padding:4px;cursor:pointer}
.pak-lb-thumb img{width:100%;height:100%;object-fit:contain}
.pak-lb-thumb.is-on{border-color:#0494D9}
@media(max-width:600px){.pak-lb-stage,.pak-lb-img{max-width:96vw;max-height:64vh}.pak-lb-nav{width:44px;height:44px;font-size:26px}.pak-lb-nav.prev{left:8px}.pak-lb-nav.next{right:8px}.pak-lb-close{top:10px;right:12px}.pak-lb-thumb{width:46px;height:46px}}

/* Theme forces button{position:relative} — restore absolute for overlay controls */
.pak-pd-stnav,.pak-pd-zoom,.pak-lb-close,.pak-lb-nav,.pak-lb-count,.pak-lb-thumbs{position:absolute !important}
.ts-qx{position:absolute !important}

/* Theme button styles were painting overlay controls white — force colours */
.pak-pd-stnav,.pak-pd-zoom{background:rgba(11,34,88,.55) !important;color:#fff !important}
.pak-pd-stnav:hover,.pak-pd-zoom:hover{background:#0494D9 !important}
@media(hover:none){.pak-pd-stnav,.pak-pd-zoom{background:rgba(11,34,88,.62) !important}}
.pak-lb-close,.pak-lb-nav{background:rgba(255,255,255,.14) !important;color:#fff !important}
.pak-lb-close:hover,.pak-lb-nav:hover{background:rgba(255,255,255,.28) !important}
.pak-pd-navarrow[hidden]{display:none !important}

/* ============================================================
   Product page fixes v3 (2026-09-13): mobile gallery, quote icon, qty, related slider, card buttons
   ============================================================ */
/* Force the action-card icons to stay perfect circles (grid was stretching them) */
.pak-action-icon{align-self:center !important;flex:0 0 auto;width:52px !important;height:52px !important;aspect-ratio:1 !important;border-radius:50% !important}
.pak-action-icon svg{width:26px;height:26px}
@media(max-width:1024px){.pak-action-icon{width:44px !important;height:44px !important}.pak-action-icon svg{width:22px;height:22px}}

/* Mobile gallery: image on top, horizontal thumbnail strip below, no vertical arrow bars */
@media(max-width:600px){
  .pak-pd-media{flex-direction:column;gap:12px}
  .pak-pd-stage{order:1}
  .pak-pd-rail{order:2;flex-direction:row;flex-basis:auto;width:100%;gap:8px;min-height:0}
  .pak-pd-navarrow{display:none !important}
  .pak-pd-rail .pak-pd-thumbs{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;max-height:none !important;gap:10px;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px}
  .pak-pd-rail .pak-pd-thumbs::-webkit-scrollbar{display:none;height:0}
  .pak-pd-thumb{flex:0 0 auto;width:64px;height:64px}
}

/* Mobile: quantity box full width above Add to Cart */
@media(max-width:600px){
  .pak-addrow{grid-template-columns:1fr}
  .pak-addrow form.cart{width:100%}
  .pak-addrow .quantity{width:100% !important;justify-self:stretch;box-sizing:border-box}
  .pak-addrow .quantity .qty{flex:1 1 auto;width:auto}
}

/* Card action buttons should never clip — wrap instead of overflowing the card */
.ts-acts{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 12px;padding:0 12px;width:100%;box-sizing:border-box}
.ts-learn,.ts-specs{white-space:nowrap}
.ts-related-grid .ts-card,.ts-grid--slider .ts-card{overflow:visible}

/* Related products: proper slider with arrows + dots */
.ts-rel{position:relative}
.ts-rel-arrow{position:absolute !important;top:38%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;border:1px solid #e2e8f0;background:#fff !important;color:#0B2258 !important;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 12px 26px -12px rgba(11,34,88,.4);transition:background .15s,color .15s,border-color .15s,opacity .15s}
.ts-rel-arrow.prev{left:-8px}.ts-rel-arrow.next{right:-8px}
.ts-rel-arrow:hover{background:#0494D9 !important;color:#fff !important;border-color:#0494D9}
.ts-rel-arrow[disabled]{opacity:.35;cursor:default;background:#fff !important;color:#0B2258 !important}
.ts-rel-arrow[hidden]{display:none !important}
.ts-rel-dots{display:flex;justify-content:center;gap:8px;margin-top:22px}
.ts-rel-dots[hidden]{display:none !important}
.ts-rel-dot{width:9px;height:9px;border-radius:50%;border:none;background:#cfd8e4;cursor:pointer;padding:0;transition:background .18s,width .18s}
.ts-rel-dot.is-on{background:#0494D9;width:26px;border-radius:5px}
/* hide the raw scrollbar now that dots drive it */
.ts-related-band .ts-related-grid{scrollbar-width:none;padding-bottom:0}
.ts-related-band .ts-related-grid::-webkit-scrollbar{display:none;height:0}
@media(max-width:600px){.ts-rel-arrow{width:38px;height:38px;font-size:21px}.ts-rel-arrow.prev{left:-4px}.ts-rel-arrow.next{right:-4px}}

/* Fix: mobile gallery stage must not stretch (flex:1 was blowing it up) */
@media(max-width:600px){
  .pak-pd-media{flex-direction:column-reverse !important;gap:12px;max-width:100%}
  .pak-pd-stage{order:0 !important;flex:0 0 auto !important;width:100% !important;aspect-ratio:1/1;min-width:0}
  .pak-pd-rail{order:0 !important;flex-direction:row;flex-basis:auto;width:100%;max-width:100%}
}

/* Fix mobile grid blowout: 1fr track expands to min-content — cap with minmax(0,1fr) */
@media(max-width:880px){
  .ts-single .ts-p-hero{grid-template-columns:minmax(0,1fr) !important}
  .ts-p-hero .ts-p-gallery,.ts-p-hero .ts-p-info{min-width:0;max-width:100%}
}

/* Hide Woodmart's built-in Buy Now button (we have our own Buy Now card) */
.pak-pd-purchase .wd-buy-now-btn,.pak-addrow .wd-buy-now-btn{display:none !important}

/* Related dots: small round circles (theme button styles were making them big squares) */
.ts-rel-dot{width:10px !important;height:10px !important;min-width:0 !important;min-height:0 !important;padding:0 !important;border:none !important;border-radius:50% !important;background:#cfd8e4 !important;box-shadow:none !important;line-height:0 !important;cursor:pointer;transition:background .18s,transform .18s}
.ts-rel-dot.is-on{background:#0B2258 !important;transform:scale(1.15)}
.ts-rel-dot:hover{background:#0494D9 !important}
/* Zoom icon size, and remove the (empty) zoom button on touch — tapping the image opens the lightbox */
.pak-pd-zoom svg{width:20px !important;height:20px !important}
@media(hover:none){.pak-pd-zoom{display:none !important}}

/* Zoom button icon via mask (inline SVG rendered at 0 width) */
.pak-pd-zoom::before{content:"";display:block;width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/contain no-repeat}

/* Zoom icon as a layered background (child width was being zeroed) */
.pak-pd-zoom::before{display:none !important}
.pak-pd-zoom{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/20px 20px no-repeat, rgba(11,34,88,.55) !important}
.pak-pd-zoom:hover{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/20px 20px no-repeat, #0494D9 !important}

/* Highlight the active thumbnail clearly (normal gallery + lightbox) */
.pak-pd-thumb.is-on{border-color:#0494D9 !important;box-shadow:0 0 0 2px #0494D9 !important}
.pak-lb-thumb.is-on{border-color:#0494D9 !important;box-shadow:0 0 0 2px #0494D9}

/* ===== Showcase v2: Learn More + Tech Specs, always shown on touch, tighter mobile ===== */
.tsi-sc-media{cursor:pointer}
.tsi-sc-title{text-decoration:none}
.tsi-sc-swap{position:relative;display:grid;justify-items:center;min-height:1.7em}
.tsi-sc-tag,.tsi-sc-more,.tsi-sc-specs{position:static !important;left:auto !important;right:auto !important;top:auto !important}
.tsi-sc-tag{grid-area:1/1;opacity:1;margin:0;transition:opacity .3s}
.tsi-sc-acts{grid-area:1/1;display:flex;gap:20px;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.tsi-sc-more,.tsi-sc-specs{font-family:'Roboto',sans-serif;font-size:clamp(.9rem,1.2vw,1.02rem);text-decoration:none;white-space:nowrap;opacity:1}
.tsi-sc-more{color:#0494D9;font-weight:600}
.tsi-sc-specs{color:#0B2258;font-weight:500}
.tsi-sc-more:hover,.tsi-sc-specs:hover{text-decoration:underline}
.tsi-sc-card:hover .tsi-sc-tag{opacity:0}
.tsi-sc-card:hover .tsi-sc-acts{opacity:1;pointer-events:auto}
@media(hover:none),(max-width:768px){.tsi-sc-tag{opacity:0}.tsi-sc-acts{opacity:1;pointer-events:auto}}
@media(max-width:560px){.tsi-showcase{gap:6px;padding:0 14px}.tsi-sc-body{padding:12px 12px 16px}.tsi-sc-title{font-size:1.3rem;margin-bottom:5px}.tsi-sc-media img{max-width:74%;max-height:74%}}

/* Showcase mobile: kill the wasted square whitespace — image fills width, auto height, tighter padding */
@media(max-width:560px){
  .tsi-sc-media{aspect-ratio:auto;min-height:0}
  .tsi-sc-media img{max-width:100% !important;max-height:64vh !important;width:100%;height:auto;object-fit:contain}
  .tsi-sc-body{padding:8px 12px 14px}
  .tsi-sc-title{margin-bottom:3px}
  .tsi-sc-swap{min-height:1.5em}
}

/* Showcase mobile: square photos have big background margins — crop to a compact landscape frame */
@media(max-width:560px){
  .tsi-sc-media{aspect-ratio:4/3;overflow:hidden;min-height:0}
  .tsi-sc-media img{width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;object-fit:cover}
}

/* Showcase mobile: keep the ORIGINAL square layout/size, image fills it (cover) so no margin whitespace, tighter padding */
@media(max-width:560px){
  .tsi-sc-media{aspect-ratio:1/1 !important;overflow:hidden}
  .tsi-sc-media img{width:100% !important;height:100% !important;max-width:100% !important;max-height:100% !important;object-fit:cover}
  .tsi-sc-body{padding:8px 12px 12px}
  .tsi-sc-title{margin-bottom:4px}
}

/* Showcase images fill the frame on desktop too */
.tsi-sc-media img{max-width:100% !important;max-height:100% !important;width:100%;height:100%;object-fit:cover}

/* YouTube hero: crop more of the title/logo chrome so it just plays cleanly */
.ts-ythero-frame iframe{width:132% !important;height:132% !important}

/* Homepage shortcode cards: reveal Learn More / Tech Specs on hover (desktop), like the old showcase */
@media(hover:hover) and (min-width:769px){
  .ts-lp .ts-grid .ts-card .ts-acts{opacity:0;transition:opacity .28s ease}
  .ts-lp .ts-grid .ts-card:hover .ts-acts{opacity:1}
}

/* Homepage shortcode cards: one per row on mobile */
@media(max-width:768px){.ts-lp .ts-grid{grid-template-columns:1fr !important}}

/* ============================================================
   Buy page layout (client 2026-09-14): 60/40, cards in a row, qty above add-to-cart, more spacing, 3 big thumbs
   ============================================================ */
@media(min-width:881px){
  .ts-single .ts-p-hero{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) !important;gap:46px}
}
@media(min-width:601px){
  .pak-action-cards{grid-template-columns:1fr 1fr !important;gap:16px}
  .pak-action-card{grid-template-columns:42px 1fr;gap:12px;padding:16px 16px}
  .pak-action-icon{width:42px !important;height:42px !important}
  .pak-action-copy>span:last-child{font-size:.86rem;line-height:1.4}
}
.pak-addrow{display:flex !important;flex-direction:column;gap:14px;grid-template-columns:none !important;margin-top:20px}
.pak-addrow form.cart{width:100%}
.pak-addrow .quantity{display:flex !important;width:100% !important;box-sizing:border-box}
.pak-addrow .quantity .qty{flex:1 1 auto;width:auto}
.pak-addrow .pak-addcart{width:100%;min-width:0}
.ts-buybox{padding:30px 32px}
.pak-action-cards{margin-top:22px}
.ts-p-info .ts-p-title{margin-bottom:6px}
.pak-highlights{margin-top:26px}
.ts-wa-btn{margin-top:16px}
.pak-pd-rail{position:relative}
.pak-pd-rail.has-slider .pak-pd-navarrow{position:absolute;left:0;right:0;width:100%;height:30px;z-index:3;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:0 2px 8px -4px rgba(11,34,88,.4)}
.pak-pd-rail.has-slider .pak-pd-navarrow.up{top:0}
.pak-pd-rail.has-slider .pak-pd-navarrow.down{bottom:0}
.pak-pd-thumb{padding:6px}

/* Thumbnails must keep their set size (no flex-shrink) so 3 fill the image height and the rest scroll */
.pak-pd-thumb{flex:0 0 auto;box-sizing:border-box}

/* Revert: Buy Now / Get a Quote back to stacked full-width cards (the row layout was cramped) */
.pak-action-cards{grid-template-columns:1fr !important}
.pak-action-card{grid-template-columns:52px 1fr !important;gap:16px;padding:16px 18px;text-align:left}
.pak-action-icon{width:52px !important;height:52px !important}
.pak-action-copy>span:last-child{font-size:.95rem !important;line-height:1.45 !important}
@media(max-width:1024px){.pak-action-card{grid-template-columns:44px 1fr !important}.pak-action-icon{width:44px !important;height:44px !important}}

/* ============================================================
   Buy page tweaks (client 2026-09-14 pm):
   white thumbs, bigger title, medium (not full-width) action buttons,
   tighter card gap, more space after quote + quantity
   ============================================================ */
/* 1. Thumbnails: theme paints <button> grey (#f3f3f3) — force clean white */
.pak-pd-thumb{background:#fff !important}

/* 2. Larger product title */
.ts-p-title{font-size:clamp(30px,3.6vw,42px) !important}

/* 3. BUY NOW / GET A QUOTE: medium buttons hugging their text (not full width),
      stacked left with the description underneath */
.pak-action-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.pak-action-cards .pak-action-button{width:auto !important;min-width:0 !important;align-self:flex-start !important;padding:11px 32px !important;font-size:.95rem}
.pak-action-copy>span:last-child{margin:0 !important}
/* pull the two cards closer + trim padding */
.pak-action-cards{grid-template-columns:1fr !important;gap:10px !important;margin-top:18px !important}
.pak-action-card{padding:14px 16px !important;gap:14px}

/* 4. More breathing room after Get-a-Quote and after the quantity / add-to-cart row */
.pak-addrow{margin-top:28px !important;margin-bottom:10px}
.pak-highlights{margin-top:34px !important}

/* Buy page (2026-09-14 pm-2): more gap between the two cards + bigger, cleanly round icons */
.pak-action-cards{gap:18px !important}
.pak-action-icon{width:60px !important;height:60px !important;min-width:60px;aspect-ratio:1 !important;border-radius:50% !important}
.pak-action-icon svg{width:30px !important;height:30px !important}
.pak-action-card{grid-template-columns:60px 1fr !important;gap:18px}
@media(max-width:1024px){.pak-action-card{grid-template-columns:54px 1fr !important}.pak-action-icon{width:54px !important;height:54px !important;min-width:54px}.pak-action-icon svg{width:27px !important;height:27px !important}}

/* Buy page (2026-09-14 pm-3): consistent icon<->button rhythm + more spacing.
   Flatten the copy wrapper (display:contents) so icon, button and description
   become direct grid cells: icon centres on the BUTTON row (row 1) and the
   description sits below it (row 2), giving identical spacing in both cards
   no matter how many lines the description runs to. */
.pak-action-cards{gap:28px !important}
.pak-action-card{display:grid !important;grid-template-columns:60px 1fr !important;column-gap:24px !important;row-gap:12px !important;align-items:center !important;padding:22px 26px !important;text-align:left}
.pak-action-copy{display:contents !important}
.pak-action-icon{grid-column:1 !important;grid-row:1 !important;align-self:center !important}
.pak-action-cards .pak-action-button{grid-column:2 !important;grid-row:1 !important;justify-self:start;width:auto !important;min-width:0 !important;margin:0 !important}
.pak-action-copy>span:last-child{grid-column:2 !important;grid-row:2 !important;align-self:start;margin:0 !important}
@media(max-width:1024px){.pak-action-card{grid-template-columns:54px 1fr !important;column-gap:20px !important}}

/* Buy page (2026-09-14 pm-4): full-page spacing/format audit fixes
   ---------------------------------------------------------------- */
/* Breadcrumb subnav uses .ts-pwrap (not .ts-wrap) on the single-product page,
   so it never got the flex layout — crumb + "Compare Models" collapsed inline.
   Give it the same row treatment: crumb left, Compare Models pushed right. */
.ts-subnav .ts-pwrap{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:18px}
.ts-subnav .ts-crumb a{color:#9c9c9c;text-decoration:none;transition:color .15s}
.ts-subnav .ts-crumb a:hover{color:#0494D9}
@media(max-width:600px){.ts-subnav .ts-pwrap{min-height:0;padding-top:12px;padding-bottom:12px}}

/* Shop hub H1 + intro (SEO, 2026-09-14) */
.ts-shophead{max-width:820px;margin:6px auto 30px;text-align:center}
.ts-shophead .ts-shopintro{margin-left:auto;margin-right:auto}
.ts-shoph1{font-family:'Poppins',sans-serif;font-size:clamp(26px,3.2vw,38px);font-weight:800;color:#0B2258;letter-spacing:-.02em;margin:0 0 12px;line-height:1.15}
.ts-shopintro{font-family:'Roboto',sans-serif;font-size:clamp(15px,1.3vw,16.5px);line-height:1.6;color:#4a5568;margin:0}
@media(max-width:600px){.ts-shophead{margin:4px 0 22px}}

/* ============================================================
   Premium Cart & Checkout (2026-09-17)
   ============================================================ */
.woocommerce-cart .woocommerce,.woocommerce-checkout .woocommerce{max-width:1160px;margin-left:auto;margin-right:auto}

/* Primary CTAs (proceed to checkout / place order) = brand gradient, full width */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order{
  background:linear-gradient(135deg,#0aa5ee,#0378b3)!important;color:#fff!important;border:none!important;
  border-radius:12px!important;font-family:'Poppins',sans-serif!important;font-weight:700!important;font-size:16px!important;
  text-transform:none!important;letter-spacing:0!important;padding:16px 28px!important;width:100%!important;display:block!important;text-align:center!important;
  box-shadow:0 16px 34px -14px rgba(4,148,217,.75)!important;transition:transform .12s,box-shadow .2s,background .2s!important}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #place_order:hover{transform:translateY(-2px)!important;box-shadow:0 22px 44px -16px rgba(4,148,217,.85)!important;background:linear-gradient(135deg,#0aa5ee,#02669c)!important}

/* Secondary buttons (apply coupon / update cart) = clean outline */
.woocommerce-cart .coupon button[name="apply_coupon"],
.woocommerce-cart .actions button[name="update_cart"]{
  background:#fff!important;color:#0B2258!important;border:1.5px solid #e7eef6!important;border-radius:10px!important;
  font-family:'Poppins',sans-serif!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;
  padding:13px 22px!important;box-shadow:none!important;transition:border-color .15s,color .15s}
.woocommerce-cart .coupon button[name="apply_coupon"]:hover,
.woocommerce-cart .actions button[name="update_cart"]:hover{border-color:#0494D9!important;color:#0494D9!important}

/* ---- CART ---- */
.woocommerce-cart table.cart{border:none!important;background:transparent!important}
.woocommerce-cart table.cart thead th{border:none!important;text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-family:'Poppins',sans-serif;color:#6b7688;font-weight:600;padding:0 12px 14px!important;background:transparent!important}
.woocommerce-cart table.cart tbody td{border:none!important;border-top:1px solid #eef0f3!important;padding:20px 12px!important;vertical-align:middle;background:transparent!important}
.woocommerce-cart table.cart .product-thumbnail img{width:74px;height:74px;object-fit:contain;border:1px solid #eef0f3;border-radius:14px;background:#fff;padding:6px}
.woocommerce-cart td.product-name a{font-family:'Poppins',sans-serif;font-weight:600;color:#0B2258!important;text-decoration:none;font-size:15.5px}
.woocommerce-cart td.product-price,.woocommerce-cart td.product-subtotal{color:#0B2258;font-weight:600}
.woocommerce-cart td.product-remove a.remove{color:#c0392b!important;font-size:20px;width:26px;height:26px;line-height:24px;border-radius:50%}
.woocommerce-cart td.product-remove a.remove:hover{background:#fdecea!important}
.woocommerce-cart .quantity{display:inline-flex;align-items:center;border:1.6px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff}
.woocommerce-cart .quantity input.qty{width:50px;height:44px;text-align:center;border:none;background:none;font-family:'Poppins',sans-serif;font-weight:600}
.woocommerce-cart .quantity button,.woocommerce-cart .quantity .minus,.woocommerce-cart .quantity .plus{width:40px;height:44px;background:#f7fafd!important;border:none!important;color:#0B2258!important;cursor:pointer;font-size:18px}
.woocommerce-cart .quantity button:hover,.woocommerce-cart .quantity .minus:hover,.woocommerce-cart .quantity .plus:hover{background:#e7f4fc!important;color:#0494D9!important}
.woocommerce-cart .cart .actions{padding-top:22px!important}
.woocommerce-cart .coupon input.input-text{border:1.5px solid #e2e8f0!important;border-radius:10px!important;padding:12px 14px!important;min-width:190px}
.woocommerce-cart .cart-collaterals{margin-top:32px;width:100%}
.woocommerce-cart .cart_totals{float:none!important;width:100%!important;max-width:470px;margin-left:auto;border:1px solid #e7eef6;border-radius:18px;padding:26px 28px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 24px 50px -34px rgba(11,34,88,.35)}
.woocommerce-cart .cart_totals h2{font-family:'Poppins',sans-serif;color:#0B2258;font-size:20px;margin:0 0 14px;text-transform:none;letter-spacing:-.01em}
.woocommerce-cart .cart_totals table{border:none!important}
.woocommerce-cart .cart_totals table th,.woocommerce-cart .cart_totals table td{border:none!important;border-top:1px solid #eef0f3!important;padding:14px 0!important;font-size:15px}
.woocommerce-cart .cart_totals .order-total .amount{color:#0B2258;font-size:22px;font-family:'Poppins',sans-serif}
.woocommerce-cart .wc-proceed-to-checkout{padding-top:8px!important}

/* ---- CHECKOUT ---- */
.woocommerce-checkout h3,.woocommerce-checkout #order_review_heading{font-family:'Poppins',sans-serif!important;color:#0B2258!important;letter-spacing:-.01em}
.woocommerce-checkout .form-row label{font-family:'Poppins',sans-serif;font-weight:500;color:#3a4353;font-size:14px}
.woocommerce-checkout .input-text,.woocommerce-checkout select,.woocommerce-checkout textarea,
.woocommerce-checkout form .form-row input.input-text,.woocommerce-checkout .select2-selection{
  border:1.5px solid #e2e8f0!important;border-radius:10px!important;padding:13px 14px!important;font-size:15px!important;background:#fff!important;box-shadow:none!important;min-height:48px;transition:border-color .15s,box-shadow .15s}
.woocommerce-checkout .input-text:focus,.woocommerce-checkout select:focus,.woocommerce-checkout textarea:focus{border-color:#0494D9!important;box-shadow:0 0 0 3px rgba(4,148,217,.15)!important;outline:none}
.woocommerce-checkout .checkout-order-review,.woocommerce-checkout #order_review{background:linear-gradient(180deg,#fff,#fbfdff)!important;border:1px solid #e7eef6!important;border-radius:18px!important;padding:26px!important;box-shadow:0 24px 50px -34px rgba(11,34,88,.35)!important}
.woocommerce-checkout #order_review_heading{margin:0 0 16px!important}
.woocommerce-checkout .woocommerce-checkout-review-order-table{border:none!important}
.woocommerce-checkout .woocommerce-checkout-review-order-table th,.woocommerce-checkout .woocommerce-checkout-review-order-table td{border:none!important;border-top:1px solid #eef0f3!important;padding:14px 6px!important}
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount{color:#0B2258;font-size:20px;font-family:'Poppins',sans-serif}
.woocommerce-checkout #payment{background:transparent!important}
.woocommerce-checkout #payment ul.payment_methods{border:1px solid #e7eef6!important;border-radius:14px;background:#fff;padding:14px 16px!important;margin:0 0 18px!important}
.woocommerce-checkout #payment ul.payment_methods li{padding:6px 0}
.woocommerce-checkout #payment div.payment_box{background:#f4f8fc!important;border-radius:10px}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:#f4f8fc!important}
.woocommerce-checkout #payment div.form-row.place-order{padding:0!important}
@media(min-width:993px){.woocommerce-checkout .checkout-order-review{position:sticky;top:20px}}

/* Cart remove: theme adds an icon pseudo on top of the "×" text (double mark) — force a single clean × */
.woocommerce-cart td.product-remove a.remove{font-size:0!important;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.woocommerce-cart td.product-remove a.remove::before{content:"\00d7"!important;font-size:22px!important;line-height:1;color:#c0392b!important;font-family:Arial,Helvetica,sans-serif!important;background:none!important}
.woocommerce-cart td.product-remove a.remove::after{content:none!important;display:none!important}

/* ============================================================
   Cart v2 (2026-09-17): two-column layout like reference
   (products card left, summary card right) + page title
   ============================================================ */
.woocommerce-cart .cart-content-wrapper{
  display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px 30px;align-items:start;
  max-width:1180px;margin-left:auto;margin-right:auto}
.woocommerce-cart .cart-content-wrapper>.woocommerce-notices-wrapper{grid-column:1 / -1}
.woocommerce-cart .cart-content-wrapper::before{
  content:"Shopping Cart";grid-column:1 / -1;font-family:'Poppins',sans-serif;
  font-size:clamp(24px,3vw,34px);font-weight:800;color:#0B2258;letter-spacing:-.02em;line-height:1.1;margin-bottom:2px}

/* products in a bordered card */
.woocommerce-cart form.woocommerce-cart-form{
  grid-column:1;border:1px solid #e7eef6;border-radius:18px;background:#fff;
  padding:6px 24px 22px;box-shadow:0 24px 50px -34px rgba(11,34,88,.30);margin:0}
.woocommerce-cart form.woocommerce-cart-form table.cart tbody td{padding:18px 12px!important}
.woocommerce-cart form.woocommerce-cart-form .cart .actions{padding:20px 0 6px!important}

/* summary card in the right column, sticky */
.woocommerce-cart .cart-content-wrapper>.cart_totals{
  grid-column:2;position:sticky;top:20px;width:100%!important;max-width:none!important;margin:0!important}

/* keep coupon input + buttons tidy inside the card on one row */
.woocommerce-cart .coupon{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap}

@media(max-width:860px){
  .woocommerce-cart .cart-content-wrapper{grid-template-columns:1fr}
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-content-wrapper>.cart_totals{grid-column:1}
  .woocommerce-cart .cart-content-wrapper>.cart_totals{position:static;margin-top:8px!important}
}

/* ============================================================
   Cart v3 (2026-09-17): wider container + premium spacing
   ============================================================ */
/* Woodmart caps page content at ~1180px .container — widen it on the cart page only */
.woocommerce-cart .content-layout-wrapper.container{max-width:min(1400px,94vw)!important}

.woocommerce-cart .cart-content-wrapper{max-width:none;grid-template-columns:minmax(0,1fr) 384px;gap:26px 44px}
.woocommerce-cart .cart-content-wrapper::before{font-size:clamp(26px,3vw,38px);margin-bottom:8px}

/* products card — roomier, cleaner */
.woocommerce-cart form.woocommerce-cart-form{padding:16px 36px 30px;border-radius:22px}
.woocommerce-cart form.woocommerce-cart-form table.cart thead th{font-size:12.5px;padding:10px 14px 20px!important}
.woocommerce-cart form.woocommerce-cart-form table.cart tbody td{padding:26px 14px!important;border-top:1px solid #eef2f7!important}
.woocommerce-cart table.cart .product-thumbnail img{width:92px;height:92px;border-radius:16px;box-shadow:0 12px 26px -16px rgba(11,34,88,.45)}
.woocommerce-cart td.product-name a{font-size:17px}
.woocommerce-cart td.product-price,.woocommerce-cart td.product-subtotal{font-size:15.5px}
.woocommerce-cart table.cart tbody tr:hover td{background:#fafcff!important}
.woocommerce-cart .quantity input.qty{height:48px;width:56px}
.woocommerce-cart .quantity button,.woocommerce-cart .quantity .minus,.woocommerce-cart .quantity .plus{height:48px;width:44px}
.woocommerce-cart .cart .actions{padding:26px 0 6px!important;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.woocommerce-cart .coupon{display:inline-flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0}
.woocommerce-cart .coupon input.input-text{height:50px;min-width:230px}
.woocommerce-cart .coupon button[name="apply_coupon"],.woocommerce-cart .actions button[name="update_cart"]{height:50px;padding:0 26px!important;display:inline-flex;align-items:center;justify-content:center}

/* summary card — larger, premium, sticky with a trust line */
.woocommerce-cart .cart-content-wrapper>.cart_totals{padding:32px 32px 30px!important;border-radius:22px!important;box-shadow:0 30px 60px -34px rgba(11,34,88,.4)}
.woocommerce-cart .cart_totals h2{font-size:21px;margin:0 0 18px}
.woocommerce-cart .cart_totals table th,.woocommerce-cart .cart_totals table td{padding:16px 0!important;font-size:15.5px}
.woocommerce-cart .cart_totals .order-total th,.woocommerce-cart .cart_totals .order-total .amount{font-size:16px}
.woocommerce-cart .cart_totals .order-total .amount{font-size:25px}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{padding:17px 28px!important;font-size:16.5px!important;margin-top:8px}
.woocommerce-cart .wc-proceed-to-checkout::after{content:"Secure checkout \00b7 encrypted payment";display:block;text-align:center;margin-top:14px;padding-top:14px;border-top:1px solid #eef2f7;font-family:'Poppins',sans-serif;font-size:12.5px;letter-spacing:.02em;color:#8a93a3}

@media(max-width:992px){
  .woocommerce-cart .cart-content-wrapper{grid-template-columns:1fr;gap:20px}
  .woocommerce-cart .cart-content-wrapper>form.woocommerce-cart-form,
  .woocommerce-cart .cart-content-wrapper>.cart_totals{grid-column:1}
  .woocommerce-cart .cart-content-wrapper>.cart_totals{position:static;margin-top:6px!important}
}

/* Cart v3 fix: lift the inner .woocommerce 1160 cap on cart (container now drives width) + stop table overflow */
.woocommerce-cart .woocommerce{max-width:none!important}
.woocommerce-cart table.cart{min-width:0!important;width:100%!important;table-layout:auto}
.woocommerce-cart form.woocommerce-cart-form{overflow:visible}

/* Cart v3: fix coupon/update row (Woodmart wraps them in .cart-actions which was shrinking) */
.woocommerce-cart td.actions{display:block!important;padding:26px 0 6px!important}
.woocommerce-cart .cart-actions{display:flex!important;width:100%!important;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.woocommerce-cart .cart-actions .coupon{display:flex!important;align-items:center;gap:12px;flex-wrap:nowrap;margin:0;flex:0 1 auto}
.woocommerce-cart .cart-actions .coupon input.input-text{width:260px!important;min-width:0!important;flex:0 0 auto;margin:0}
.woocommerce-cart .cart-actions .coupon button[name="apply_coupon"]{flex:0 0 auto}
.woocommerce-cart .cart-actions button[name="update_cart"]{flex:0 0 auto;margin-left:auto}
@media(max-width:520px){
  .woocommerce-cart .cart-actions,.woocommerce-cart .cart-actions .coupon{flex-wrap:wrap}
  .woocommerce-cart .cart-actions .coupon input.input-text{width:100%!important}
  .woocommerce-cart .cart-actions button[name="update_cart"]{margin-left:0;width:100%}
}

/* Cart v3 tune: more room for products column, no clip, tidy update-cart */
.woocommerce-cart .cart-content-wrapper{grid-template-columns:minmax(0,1fr) 340px!important;gap:24px 32px!important}
.woocommerce-cart form.woocommerce-cart-form{padding:16px 28px 28px!important}
.woocommerce-cart .woocommerce,.woocommerce-cart .cart-content-wrapper,.woocommerce-cart form.woocommerce-cart-form,.woocommerce-cart .cart-actions{overflow:visible!important}
.woocommerce-cart td.actions{text-align:left!important}
.woocommerce-cart td.product-subtotal{padding-right:6px!important;white-space:nowrap}
.woocommerce-cart .cart-actions button[name="update_cart"]{margin-left:auto!important}
@media(min-width:993px){.woocommerce-cart .cart-actions{flex-wrap:nowrap!important}}

/* Cart v3 definitive fix: fixed table layout with explicit column widths so it always fits its column */
.woocommerce-cart table.cart{table-layout:fixed!important;width:100%!important}
.woocommerce-cart table.cart .product-remove{width:44px!important}
.woocommerce-cart table.cart .product-thumbnail{width:108px!important;text-align:center}
.woocommerce-cart table.cart .product-price{width:120px!important}
.woocommerce-cart table.cart .product-quantity{width:172px!important}
.woocommerce-cart table.cart .product-subtotal{width:130px!important;white-space:nowrap}
.woocommerce-cart table.cart .product-name{width:auto!important;white-space:normal;word-break:break-word}

/* Cart v3: the fixed-table layout is DESKTOP-only — revert to Woodmart's responsive stacked layout on mobile/tablet */
@media(max-width:992px){
  .woocommerce-cart table.cart{table-layout:auto!important;width:100%!important}
  .woocommerce-cart table.cart .product-remove,
  .woocommerce-cart table.cart .product-thumbnail,
  .woocommerce-cart table.cart .product-price,
  .woocommerce-cart table.cart .product-quantity,
  .woocommerce-cart table.cart .product-subtotal,
  .woocommerce-cart table.cart .product-name{width:auto!important;white-space:normal!important;word-break:normal!important}
}

/* Cart v3: mobile quantity stepper was collapsing (flex-shrunk) — pin sane sizes */
@media(max-width:992px){
  .woocommerce-cart .product-quantity .quantity{display:inline-flex!important;width:auto!important;min-width:154px!important;flex:0 0 auto!important;overflow:visible!important}
  .woocommerce-cart .product-quantity .quantity .qty,.woocommerce-cart .product-quantity .quantity input{width:56px!important;flex:0 0 auto!important}
  .woocommerce-cart .product-quantity .quantity .minus,.woocommerce-cart .product-quantity .quantity .plus,.woocommerce-cart .product-quantity .quantity button{width:46px!important;height:46px!important;flex:0 0 auto!important}
  .woocommerce-cart .product-thumbnail img{width:110px!important;height:auto!important}
}

/* ============================================================
   Cart v4 (2026-09-17): FIX summary card — Woodmart's .cart-totals-inner
   adds its own 25px padding on top of mine (double padding) which
   crushed the button to ~160px and wrapped "Proceed to checkout" to 4 lines.
   ============================================================ */
.woocommerce-cart .cart-content-wrapper{grid-template-columns:minmax(0,1fr) 384px!important}
/* card visual lives on .cart_totals; padding lives ONCE on the inner wrapper */
.woocommerce-cart .cart-content-wrapper>.cart_totals{padding:0!important;border:1px solid #e7eef6!important;border-radius:20px!important;background:linear-gradient(180deg,#fff,#fbfdff)!important;box-shadow:0 30px 60px -34px rgba(11,34,88,.4)!important;overflow:hidden}
.woocommerce-cart .cart_totals .cart-totals-inner{padding:30px!important;margin:0!important;border:none!important;background:transparent!important}
.woocommerce-cart .cart_totals h2{font-size:20px!important;margin:0 0 18px!important;padding:0!important}
.woocommerce-cart .cart_totals table{margin:0!important;width:100%!important}
.woocommerce-cart .cart_totals table th{text-align:left!important;font-weight:500;color:#3a4353}
.woocommerce-cart .cart_totals table td{text-align:right!important}
.woocommerce-cart .cart_totals table th,.woocommerce-cart .cart_totals table td{padding:15px 0!important;border-top:1px solid #eef2f7!important}
.woocommerce-cart .cart_totals .order-total th,.woocommerce-cart .cart_totals .order-total td{border-top:1px solid #e7eef6!important}
/* button: full width, ONE line, sensible padding */
.woocommerce-cart .wc-proceed-to-checkout{padding:8px 0 0!important;margin:0}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{width:100%!important;padding:16px 16px!important;font-size:16px!important;white-space:nowrap!important;line-height:1.2!important}
.woocommerce-cart .wc-proceed-to-checkout::after{white-space:nowrap;font-size:12px;margin-top:14px;padding-top:14px}

/* Cart v4: mobile actions (coupon + update) — desktop flex was leaking; stack full-width, no wrap */
@media(max-width:992px){
  .woocommerce-cart td.actions{display:block!important;padding:18px 0 4px!important}
  .woocommerce-cart .cart-actions{display:block!important;width:100%!important;border:none!important}
  .woocommerce-cart .cart-actions .coupon{display:block!important;width:100%!important;border:none!important;margin:0 0 12px!important;padding:0!important}
  .woocommerce-cart .cart-actions .coupon input.input-text{width:100%!important;min-width:0!important;margin:0 0 10px!important}
  .woocommerce-cart .cart-actions .coupon button[name="apply_coupon"]{width:100%!important;white-space:nowrap!important}
  .woocommerce-cart .cart-actions button[name="update_cart"]{width:100%!important;margin:0!important;white-space:nowrap!important}
}

/* ============================================================
   Cart v5 (2026-09-17): bespoke MOBILE item cards (override Woodmart's
   responsive stacked table which fought every desktop rule)
   ============================================================ */
@media(max-width:992px){
  .woocommerce-cart form.woocommerce-cart-form{padding:14px!important}
  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody{display:block!important;width:100%!important;table-layout:auto!important}
  .woocommerce-cart table.cart thead{display:none!important}

  /* each product = a clean card */
  .woocommerce-cart table.cart tr.cart_item{
    display:grid!important;grid-template-columns:88px 1fr!important;
    grid-template-areas:"img name" "img price" "qty qty" "sub sub"!important;
    column-gap:16px;row-gap:6px;align-items:center;
    border:1px solid #eef2f7!important;border-radius:16px;padding:16px 16px 14px!important;margin:0 0 14px!important;position:relative;width:100%!important}
  .woocommerce-cart tr.cart_item>td{display:block!important;border:none!important;padding:0!important;margin:0!important;width:auto!important;text-align:left!important;white-space:normal!important}
  .woocommerce-cart tr.cart_item>td::before{display:none!important}
  .woocommerce-cart tr.cart_item .product-thumbnail{grid-area:img}
  .woocommerce-cart tr.cart_item .product-thumbnail img{width:88px!important;height:88px!important;margin:0!important}
  .woocommerce-cart tr.cart_item .product-name{grid-area:name;align-self:end}
  .woocommerce-cart tr.cart_item .product-name a{font-size:16px}
  .woocommerce-cart tr.cart_item .product-price{grid-area:price;align-self:start;color:#6b7688;font-size:14.5px}
  .woocommerce-cart tr.cart_item .product-price::before{content:"Unit price: ";color:#9aa3b2}
  .woocommerce-cart tr.cart_item .product-quantity{grid-area:qty;margin-top:8px!important}
  .woocommerce-cart tr.cart_item .product-subtotal{grid-area:sub;display:flex!important;justify-content:space-between;align-items:center;border-top:1px solid #eef2f7!important;padding-top:12px!important;margin-top:8px!important;font-weight:700;color:#0B2258;font-size:16px}
  .woocommerce-cart tr.cart_item .product-subtotal::before{content:"Subtotal";font-weight:500;color:#6b7688;font-size:14px}
  .woocommerce-cart tr.cart_item .product-remove{position:absolute!important;top:10px;right:10px;margin:0!important}
  .woocommerce-cart .product-quantity .quantity{display:inline-flex!important;min-width:154px!important;width:auto!important}

  /* actions row (coupon + update) full width, stacked cleanly */
  .woocommerce-cart table.cart tr:not(.cart_item){display:block!important;width:100%!important}
  .woocommerce-cart td.actions{display:block!important;width:100%!important;padding:6px 0 0!important}
  .woocommerce-cart .cart-actions{display:block!important;width:100%!important;border:none!important}
  .woocommerce-cart .cart-actions .coupon{display:block!important;width:100%!important;border:none!important;margin:0 0 12px!important;padding:0!important}
  .woocommerce-cart .cart-actions .coupon input.input-text{width:100%!important;min-width:0!important;margin:0 0 10px!important}
  .woocommerce-cart .cart-actions .coupon button[name="apply_coupon"],
  .woocommerce-cart .cart-actions button[name="update_cart"]{width:100%!important;margin:0!important;white-space:nowrap!important}
}

/* Cart v5 ROOT FIX: the 2-col grid !important was overriding the mobile 1-col rule,
   collapsing column 1 to 0px and crushing everything. Force single column on mobile. */
@media(max-width:992px){
  .woocommerce-cart .cart-content-wrapper{grid-template-columns:1fr!important;gap:20px!important}
  .woocommerce-cart .cart-content-wrapper>form.woocommerce-cart-form,
  .woocommerce-cart .cart-content-wrapper>.cart_totals{grid-column:1!important;width:100%!important}
}

/* Cart v5 polish: compact mobile card + restore my price/subtotal labels */
@media(max-width:992px){
  .woocommerce-cart tr.cart_item{row-gap:4px!important;padding:16px!important;column-gap:14px!important}
  .woocommerce-cart tr.cart_item .product-name{align-self:center}
  .woocommerce-cart tr.cart_item .product-name a{font-size:16.5px;line-height:1.3}
  .woocommerce-cart tr.cart_item .product-price{align-self:center}
  .woocommerce-cart tr.cart_item .product-price::before{display:inline!important;content:"Unit price: ";color:#9aa3b2;font-weight:400}
  .woocommerce-cart tr.cart_item .product-quantity{margin-top:12px!important}
  .woocommerce-cart tr.cart_item .product-subtotal{margin-top:12px!important;padding-top:14px!important}
  .woocommerce-cart tr.cart_item .product-subtotal::before{display:inline-block!important;content:"Subtotal"}
  /* the thumbnail spans the name+price rows; center it against them */
  .woocommerce-cart tr.cart_item .product-thumbnail{align-self:center}
}

/* Cart v6 (2026-09-17): fix desktop coupon/update overlap + mobile full-width stepper */
@media(min-width:993px){
  .woocommerce-cart .cart-actions{gap:20px!important}
  .woocommerce-cart .cart-actions .coupon{flex:0 0 auto!important;width:auto!important;max-width:none!important;overflow:visible!important}
  .woocommerce-cart .cart-actions .coupon input.input-text{width:240px!important}
  .woocommerce-cart .cart-actions button[name="update_cart"]{flex:0 0 auto!important;margin-left:0!important}
}
@media(max-width:992px){
  .woocommerce-cart .product-quantity .quantity{display:flex!important;width:100%!important;min-width:0!important}
  .woocommerce-cart .product-quantity .quantity .qty,.woocommerce-cart .product-quantity .quantity input.qty{flex:1 1 auto!important;width:auto!important;text-align:center}
  .woocommerce-cart .product-quantity .quantity .minus,.woocommerce-cart .product-quantity .quantity .plus,.woocommerce-cart .product-quantity .quantity button{flex:0 0 56px!important;width:56px!important}
}

/* Cart v6: clip mobile stepper buttons to the rounded container */
@media(max-width:992px){
  .woocommerce-cart .product-quantity .quantity{overflow:hidden!important;border:1.6px solid #e2e8f0!important;border-radius:12px!important}
  .woocommerce-cart .product-quantity .quantity .minus,
  .woocommerce-cart .product-quantity .quantity .plus,
  .woocommerce-cart .product-quantity .quantity button{border-radius:0!important;box-shadow:none!important;margin:0!important}
}

/* Cart v6 fix: qty input uses class .input-text (not .qty) — make it flex-fill so + isn't clipped */
@media(max-width:992px){
  .woocommerce-cart .product-quantity{width:100%!important}
  .woocommerce-cart .product-quantity .quantity{display:flex!important;width:100%!important;max-width:none!important;min-width:0!important}
  .woocommerce-cart .product-quantity .quantity input.input-text,
  .woocommerce-cart .product-quantity .quantity input.qty,
  .woocommerce-cart .product-quantity .quantity .qty{flex:1 1 auto!important;width:auto!important;min-width:0!important}
}

/* Cart v7 (2026-09-17): bigger product name + uniform image/text spacing */
/* Desktop: larger name, a touch bigger image, even gap */
@media(min-width:993px){
  .woocommerce-cart td.product-name a{font-size:19px!important;line-height:1.35}
  .woocommerce-cart table.cart .product-thumbnail{width:118px!important}
  .woocommerce-cart table.cart .product-thumbnail img{width:88px!important;height:88px!important}
  .woocommerce-cart td.product-thumbnail{padding-left:18px!important;padding-right:20px!important}
  .woocommerce-cart td.product-name{padding-left:8px!important}
}
/* Mobile: bigger title + clear gap between image and text */
@media(max-width:992px){
  .woocommerce-cart tr.cart_item{grid-template-columns:92px 1fr!important;column-gap:22px!important;padding:18px 18px 16px!important}
  .woocommerce-cart tr.cart_item .product-name a{font-size:19px!important;line-height:1.3}
  .woocommerce-cart tr.cart_item .product-thumbnail img{width:92px!important;height:92px!important}
  .woocommerce-cart tr.cart_item .product-price{font-size:15px}
}

/* Cart v7: keep the product name clear of the absolute × on mobile */
@media(max-width:992px){
  .woocommerce-cart tr.cart_item .product-name{padding-right:36px!important}
}

/* Cart v7 fix: give × its own grid column (top-right) so it never overlaps the name */
@media(max-width:992px){
  .woocommerce-cart tr.cart_item{
    grid-template-columns:92px 1fr auto!important;
    grid-template-areas:"img name remove" "img price price" "qty qty qty" "sub sub sub"!important}
  .woocommerce-cart tr.cart_item .product-remove{position:static!important;grid-area:remove;align-self:start;justify-self:end;margin:0!important;padding-left:8px!important}
  .woocommerce-cart tr.cart_item .product-name{padding-right:0!important;align-self:center}
}

/* Cart v7 final: 2-col grid, × absolute top-right, name wraps clear of × */
@media(max-width:992px){
  .woocommerce-cart tr.cart_item{
    grid-template-columns:92px 1fr!important;
    grid-template-areas:"img name" "img price" "qty qty" "sub sub"!important}
  .woocommerce-cart tr.cart_item .product-remove{position:absolute!important;top:12px;right:12px;grid-area:auto!important;margin:0!important;z-index:2}
  .woocommerce-cart tr.cart_item .product-name{padding-right:40px!important;align-self:center}
  .woocommerce-cart tr.cart_item .product-name,
  .woocommerce-cart tr.cart_item .product-name a{white-space:normal!important;overflow-wrap:anywhere}
}

/* Cart v7 FINAL-2: beat Woodmart's high-specificity cart rules for the mobile ×/name overlap */
@media(max-width:992px){
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item td.product-name{padding-right:46px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item td.product-remove{position:absolute!important;top:12px!important;right:14px!important;grid-area:auto!important;z-index:5;width:auto!important;padding:0!important}
}

/* Cart v8: image column must FIT Woodmart's 100px thumbnail (was 88px → image overflowed onto the name) */
@media(max-width:992px){
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item{grid-template-columns:112px minmax(0,1fr)!important;column-gap:20px!important}
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item td.product-thumbnail{grid-area:img;width:112px!important;max-width:112px!important;padding:0!important;margin:0!important;overflow:hidden;justify-self:start;align-self:start}
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item td.product-thumbnail img{width:100px!important;height:100px!important;max-width:100px!important;margin:0!important;display:block}
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item td.product-name{padding-left:0!important}
}

/* ============================================================
   Custom Checkout (2026-09-17): two-column premium template
   ============================================================ */
.woocommerce-checkout .content-layout-wrapper.container{max-width:min(1280px,94vw)!important}

/* top steps */
.ts-co-steps{display:flex;align-items:center;gap:14px;max-width:1200px;margin:0 auto 26px;font-family:'Poppins',sans-serif}
.ts-co-step{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:#9aa3b2;font-weight:600;font-size:15px}
.ts-co-step .ts-co-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e7eef6;color:#6b7688;font-size:14px;font-weight:700}
.ts-co-step.is-done{color:#0B2258}.ts-co-step.is-done .ts-co-num{background:#0B2258;color:#fff}
.ts-co-step.is-on{color:#0B2258}.ts-co-step.is-on .ts-co-num{background:#0494D9;color:#fff}
.ts-co-line{flex:0 0 44px;height:2px;background:#e2e8f0}
.ts-co-secure{margin-left:auto;display:inline-flex;align-items:center;gap:7px;color:#17a43a;font-weight:600;font-size:14px}
.ts-co-secure svg{width:18px;height:18px}

/* full-width checkout page (uncap Woodmart's centered containers) */
body.woocommerce-checkout main.wd-content-layout,
body.woocommerce-checkout main.wd-content-layout.container{max-width:100%!important;width:100%!important;padding-left:clamp(16px,3.5vw,72px)!important;padding-right:clamp(16px,3.5vw,72px)!important}
body.woocommerce-checkout .wd-content-area,
body.woocommerce-checkout .woocommerce,
body.woocommerce-checkout article.entry-content{max-width:100%!important;width:100%!important}

/* grid + cards — centered, a touch wider than the default container */
.ts-co-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,440px);gap:30px;align-items:start;max-width:1300px;margin:0 auto}
.ts-co-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.ts-co-side{position:sticky;top:20px;display:flex;flex-direction:column;gap:16px;min-width:0}
.ts-co-card{background:#fff;border:1px solid #e7eef6;border-radius:18px;padding:26px 28px;box-shadow:0 24px 50px -36px rgba(11,34,88,.32)}
.ts-co-h{font-family:'Poppins',sans-serif;font-size:19px;font-weight:700;color:#0B2258;margin:0 0 18px;letter-spacing:-.01em}

/* strip WooCommerce's own boxes (cards now come from .ts-co-card) */
.woocommerce-checkout .ts-co-card #order_review,
.woocommerce-checkout .ts-co-card .checkout-order-review,
.woocommerce-checkout .ts-co-payment #payment{background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;padding:0!important;margin:0!important}

/* billing/shipping fields */
.ts-checkout #customer_details .col-1,.ts-checkout #customer_details .col-2{width:auto;float:none}
/* main "Shipping Information" title is replaced by the Contact/Delivery sub-headings */
.ts-checkout .woocommerce-billing-fields>h3{display:none!important}
.ts-checkout #ship-to-different-address,.ts-checkout .woocommerce-additional-fields>h3{font-family:'Poppins',sans-serif;color:#0B2258;font-size:19px;font-weight:700;margin:0 0 16px}
.ts-checkout .woocommerce-billing-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px;align-items:start}
.ts-checkout .woocommerce-billing-fields__field-wrapper .form-row{margin:0 0 18px;padding:0;min-width:0;width:auto!important;max-width:none!important;float:none!important}
.ts-checkout .form-row-wide{grid-column:1 / -1}
.ts-checkout .form-row-first{grid-column:1}
.ts-checkout .form-row-last{grid-column:2}
/* Bulletproof column + order by field ID/class.
   WooCommerce re-renders address fields client-side (locale JS), scrambling DOM order and
   stripping position classes — so we pin BOTH grid-column and CSS order here; order wins
   regardless of the DOM sequence the JS ends up producing. */
.ts-checkout .ts-fieldgroup-h{order:1}
.ts-checkout #billing_first_name_field{grid-column:1!important;order:2}
.ts-checkout #billing_email_field{grid-column:2!important;order:3}
.ts-checkout #billing_phone_field{grid-column:1/-1!important;order:4}
.ts-checkout .ts-fieldgroup-h--delivery{order:5}
.ts-checkout #billing_country_field{grid-column:1!important;order:6}
.ts-checkout #billing_city_field{grid-column:2!important;order:7}
.ts-checkout #billing_state_field{grid-column:1!important;order:8}
.ts-checkout #billing_postcode_field{grid-column:2!important;order:9}
.ts-checkout #billing_address_1_field{grid-column:1/-1!important;order:10}
/* Section sub-headings injected before Full Name and Country */
.ts-checkout .ts-fieldgroup-h{grid-column:1/-1;font-family:'Poppins',sans-serif;font-weight:700;font-size:15px;color:#0B2258;letter-spacing:.01em;display:flex;align-items:center;gap:10px;margin:0 0 14px}
.ts-checkout .ts-fieldgroup-h::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#e7eef6,transparent)}
.ts-checkout .ts-fieldgroup-h--delivery{margin-top:12px}
.ts-checkout .form-row label{font-family:'Poppins',sans-serif;font-weight:500;color:#3a4353;font-size:13.5px;margin-bottom:6px;display:block;line-height:1.3}
.ts-checkout .form-row .required{color:#0494D9;border:none;text-decoration:none}
.ts-checkout .form-row label .optional{color:#94a3b8;font-weight:400;font-size:12.5px;font-style:normal!important;vertical-align:baseline!important;line-height:1.3;position:relative;top:0}
.ts-checkout .input-text,.ts-checkout select,.ts-checkout .select2-selection{border:1.5px solid #e2e8f0!important;border-radius:10px!important;padding:12px 14px!important;min-height:48px;font-size:15px!important;background:#fff!important;box-shadow:none!important}
.ts-checkout .input-text:focus,.ts-checkout select:focus,.ts-checkout textarea:focus{border-color:#0494D9!important;box-shadow:0 0 0 3px rgba(4,148,217,.15)!important;outline:none}
.ts-checkout .select2-container--default .select2-selection--single{height:48px!important;display:flex;align-items:center}

/* payment */
.ts-co-payment ul.payment_methods{list-style:none;margin:0 0 16px!important;padding:0!important;border:none!important;display:flex;flex-direction:column;gap:12px}
body.woocommerce-checkout .ts-co-payment ul.payment_methods li{border:1.5px solid #e7eef6;border-radius:12px;padding:18px 20px!important;margin:0!important;background:#fff;transition:border-color .15s,box-shadow .15s}
.ts-co-payment ul.payment_methods li label{font-family:'Poppins',sans-serif;font-weight:600;color:#0B2258;margin:0;display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;cursor:pointer}
.ts-co-payment ul.payment_methods li label img{width:auto!important;max-width:112px;height:26px;object-fit:contain;margin:0!important}
.ts-co-payment .payment_box{background:#f4f8fc!important;border-radius:10px;margin:14px 0 0!important;padding:14px 18px!important;font-size:14px;line-height:1.5;color:#4a5568}
.ts-co-payment .payment_box p{margin:0}
.ts-co-payment .payment_box::before{display:none!important}
.ts-co-payment #place_order{width:100%!important;margin-top:6px!important;background:linear-gradient(135deg,#0aa5ee,#0378b3)!important;color:#fff!important;border:none!important;border-radius:12px!important;font-family:'Poppins',sans-serif!important;font-weight:700!important;font-size:16.5px!important;padding:17px 24px!important;box-shadow:0 16px 34px -14px rgba(4,148,217,.75)!important;text-transform:none!important;letter-spacing:0!important;transition:transform .12s,box-shadow .2s}
.ts-co-payment #place_order:hover{transform:translateY(-2px);box-shadow:0 22px 44px -16px rgba(4,148,217,.85)!important}
.ts-co-payment .woocommerce-terms-and-conditions-wrapper{margin-bottom:14px;font-size:13.5px}

/* order summary */
.ts-co-summary .shop_table{border:none!important;width:100%;margin:0}
.ts-co-summary .shop_table th,.ts-co-summary .shop_table td{border:none!important;border-top:1px solid #eef2f7!important;padding:13px 0!important;font-size:14.5px;color:#3a4353}
.ts-co-summary .shop_table thead th{border-top:none!important;text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;color:#8a93a3;font-family:'Poppins',sans-serif;padding-top:0!important}
.ts-co-summary .cart_item .product-name{color:#0B2258;font-weight:500}
.ts-co-summary .cart_item .product-total{text-align:right;color:#0B2258;font-weight:600}
.ts-co-summary .order-total th{font-family:'Poppins',sans-serif;color:#0B2258;font-size:16px}
.ts-co-summary .order-total .amount{font-family:'Poppins',sans-serif;color:#0B2258;font-size:22px}
.ts-co-summary .cart-subtotal td,.ts-co-summary .shipping td,.ts-co-summary .tax-total td{text-align:right}

/* promo / coupon inside order summary */
.ts-co-coupon{margin-top:18px;padding-top:18px;border-top:1px solid #eef2f7}
.ts-co-coupon-label{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;color:#0B2258;margin:0 0 9px}
.ts-co-coupon-form{display:flex;gap:10px;margin:0}
.ts-co-coupon-form .ts-co-coupon-input{flex:1 1 auto;min-width:0;width:auto!important;border:1.5px solid #e2e8f0!important;border-radius:10px!important;padding:11px 14px!important;min-height:46px;font-size:14.5px!important;background:#fff!important}
.ts-co-coupon-form .ts-co-coupon-input:focus{border-color:#0494D9!important;box-shadow:0 0 0 3px rgba(4,148,217,.15)!important;outline:none}
.ts-co-coupon-form .ts-co-coupon-btn{flex:0 0 auto;background:#0B2258!important;color:#fff!important;border:none!important;border-radius:10px!important;font-family:'Poppins',sans-serif!important;font-weight:600!important;font-size:14.5px!important;padding:0 22px!important;min-height:46px;cursor:pointer;white-space:nowrap;transition:background .15s}
.ts-co-coupon-form .ts-co-coupon-btn:hover{background:#0494D9!important}
.ts-co-coupon-form .ts-co-coupon-btn[disabled]{opacity:.6;cursor:default}
.ts-co-coupon-notice{margin-top:10px;font-size:13px}
.ts-co-coupon-notice .woocommerce-error,.ts-co-coupon-notice .woocommerce-message{margin:0!important;padding:10px 12px!important;border-radius:8px;font-size:13px;list-style:none}
.ts-co-coupon-notice .woocommerce-error{background:#fdecea;color:#9b2c22}
.ts-co-coupon-notice .woocommerce-message{background:#eaf7ee;color:#1b7a37}

/* trust badges */
.ts-co-trust{display:flex;justify-content:space-around;gap:8px;background:#fff;border:1px solid #e7eef6;border-radius:14px;padding:15px 12px;box-shadow:0 24px 50px -40px rgba(11,34,88,.3)}
.ts-co-trust-i{display:inline-flex;align-items:center;gap:7px;font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;color:#4a5568;text-align:center}
.ts-co-trust-i svg{width:18px;height:18px;color:#17a43a;flex:0 0 auto}

@media(max-width:900px){
  .ts-co-grid{grid-template-columns:1fr;gap:18px}
  .ts-co-side{position:static;order:-1}
  .ts-checkout .woocommerce-billing-fields__field-wrapper{grid-template-columns:1fr}
  .ts-checkout .form-row-first,.ts-checkout .form-row-last{grid-column:1}
  /* phone: everything full-width in separate rows on mobile */
  .ts-checkout #billing_first_name_field,.ts-checkout #billing_email_field,.ts-checkout #billing_phone_field,
  .ts-checkout #billing_country_field,.ts-checkout #billing_city_field,.ts-checkout #billing_state_field,
  .ts-checkout #billing_postcode_field,.ts-checkout #billing_address_1_field{grid-column:1/-1!important}
  .ts-co-steps{flex-wrap:wrap;gap:10px}.ts-co-secure{margin-left:0;width:100%}
}

/* Checkout order summary — Shopify-style line item (image + title + full-width qty) */
.ts-co-summary table.woocommerce-checkout-review-order-table{border-collapse:separate;border-spacing:0}
.ts-co-summary thead{display:none}
.ts-co-summary .cart_item td.wd-checkout-prod{
  display:grid;
  grid-template-columns:66px 1fr auto;
  grid-template-areas:"img title remove" "img sku price" "qty qty qty";
  column-gap:15px;row-gap:7px;align-items:start;
  border:none!important;border-top:1px solid #eef2f7!important;padding:18px 0!important}
.ts-co-summary .cart_item:first-child td.wd-checkout-prod{border-top:none!important;padding-top:2px!important}
/* flatten Woodmart's nested wrappers so children join the grid */
.ts-co-summary .wd-checkout-prod-cont,.ts-co-summary .wd-checkout-prod-title{display:contents}
/* image */
.ts-co-summary .wd-checkout-prod-img{grid-area:img;width:66px}
.ts-co-summary .wd-checkout-prod-img a{display:block;line-height:0}
.ts-co-summary .wd-checkout-prod-img img{width:66px;height:66px;object-fit:cover;border-radius:12px;border:1px solid #e7eef6;background:#f7fafd}
/* title */
.ts-co-summary .cart-product-label-link{grid-area:title;text-decoration:none;align-self:center}
.ts-co-summary .wd-checkout-prod-title .cart-product-label{font-family:'Poppins',sans-serif;font-weight:600;color:#0B2258;font-size:16.5px;text-decoration:none;line-height:1.3;letter-spacing:-.01em}
.ts-co-summary .cart-product-label-link:hover .cart-product-label{color:#0494D9}
/* sku */
.ts-co-summary .wd-product-sku{grid-area:sku;font-size:12px;color:#8a93a3;margin:0;align-self:center}
.ts-co-summary .wd-product-sku .wd-label{color:#aab2bf}
/* price */
.ts-co-summary .wd-checkout-prod-total,.ts-co-summary .cart_item .product-total{grid-area:price;text-align:right;color:#0B2258;font-weight:700;font-family:'Poppins',sans-serif;font-size:15.5px;white-space:nowrap;align-self:center}
/* remove × (top-right) */
.ts-co-summary .wd-checkout-remove-btn-wrapp{grid-area:remove;justify-self:end}
.ts-co-summary a.remove.wd-checkout-remove-btn{position:static!important;width:24px;height:24px;font-size:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#f4f6f9}
.ts-co-summary a.remove.wd-checkout-remove-btn::before{content:"\00d7";font-size:16px;font-family:Arial,sans-serif;color:#8a93a3}
.ts-co-summary a.remove.wd-checkout-remove-btn:hover{background:#fdecea}
.ts-co-summary a.remove.wd-checkout-remove-btn:hover::before{color:#c0392b}
/* full-width quantity stepper */
.ts-co-summary .cart_item .quantity{grid-area:qty;display:flex;align-items:stretch;width:100%;max-width:none;border:1.4px solid #e2e8f0;border-radius:11px;overflow:hidden;background:#fff;height:44px;margin-top:2px}
.ts-co-summary .cart_item .quantity input.qty,.ts-co-summary .cart_item .quantity input.input-text{flex:1 1 auto;width:auto;min-width:0;height:100%;text-align:center;border:none!important;background:none!important;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;color:#0B2258}
.ts-co-summary .cart_item .quantity .minus,.ts-co-summary .cart_item .quantity .plus,.ts-co-summary .cart_item .quantity button{flex:0 0 52px;height:100%;background:#f7fafd!important;border:none!important;color:#0B2258!important;cursor:pointer;font-size:19px;line-height:1;display:grid;place-items:center;transition:background .15s,color .15s}
.ts-co-summary .cart_item .quantity .minus:hover,.ts-co-summary .cart_item .quantity .plus:hover{background:#e7f4fc!important;color:#0494D9!important}

/* Order notes collapsed behind a link */
.ts-checkout .woocommerce-additional-fields{margin-top:4px}
.ts-checkout .woocommerce-additional-fields[data-ts-notes]>h3{display:none!important}
.ts-checkout .ts-notes-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:none;padding:2px 0;cursor:pointer;font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;color:#0494D9}
.ts-checkout .ts-notes-toggle:hover{color:#0378b3}
.ts-checkout .ts-notes-toggle .ts-notes-ic{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e7f4fc;color:#0494D9;font-size:16px;line-height:1}
.ts-checkout .ts-notes-toggle .ts-opt{color:#94a3b8;font-weight:400;font-size:12.5px}
.ts-checkout .woocommerce-additional-fields__field-wrapper{margin-top:14px}

@media(max-width:900px){
  .ts-co-steps{margin-bottom:18px}
  body.woocommerce-checkout main.wd-content-layout,body.woocommerce-checkout main.wd-content-layout.container{padding-left:14px!important;padding-right:14px!important}
}

/* ===== Homepage showcase slider ([tsi_products_showcase slider="yes"]) ===== */
.ts-showcase-slider{position:relative}
.ts-showcase-slider .ts-grid.ts-sc-track{display:flex!important;grid-template-columns:none!important;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:30px;margin:0;padding:6px 2px;-ms-overflow-style:none;scrollbar-width:none}
.ts-showcase-slider .ts-grid.ts-sc-track::-webkit-scrollbar{display:none}
.ts-showcase-slider .ts-sc-track>.ts-card{flex:0 0 calc((100% - (var(--ts-sc-cols,3) - 1) * 30px) / var(--ts-sc-cols,3));scroll-snap-align:start}
/* nav buttons */
.ts-showcase-slider .ts-sc-nav{position:absolute;top:44%;transform:translateY(-50%);z-index:6;width:50px;height:50px;border-radius:50%;background:#fff;border:1px solid #e7eef6;box-shadow:0 14px 34px -14px rgba(11,34,88,.4);display:grid;place-items:center;cursor:pointer;color:#0B2258;transition:background .15s,color .15s,border-color .15s,opacity .2s}
.ts-showcase-slider .ts-sc-nav:hover{background:#0494D9;color:#fff;border-color:#0494D9}
.ts-showcase-slider .ts-sc-nav svg{width:22px;height:22px}
.ts-showcase-slider .ts-sc-prev{left:-8px}
.ts-showcase-slider .ts-sc-next{right:-8px}
.ts-showcase-slider .ts-sc-nav[disabled]{opacity:0;pointer-events:none}
/* dots */
.ts-showcase-slider .ts-sc-dots{display:flex;justify-content:center;align-items:center;gap:9px;margin-top:22px}
.ts-showcase-slider .ts-sc-dots button{-webkit-appearance:none;appearance:none;flex:0 0 auto;width:9px!important;height:9px!important;min-width:0!important;min-height:0!important;max-width:none!important;padding:0!important;margin:0!important;border:none!important;border-radius:50%!important;background:#d5deea!important;box-shadow:none!important;cursor:pointer;line-height:0;transition:width .2s ease,background .2s ease}
.ts-showcase-slider .ts-sc-dots button:hover{background:#b9c6d8!important}
.ts-showcase-slider .ts-sc-dots button.is-on{background:#0494D9!important;width:28px!important;border-radius:6px!important}
@media(max-width:1024px){
  .ts-showcase-slider .ts-grid.ts-sc-track{gap:24px}
  .ts-showcase-slider .ts-sc-track>.ts-card{flex-basis:calc((100% - 24px)/2)}
}
@media(max-width:640px){
  .ts-showcase-slider .ts-grid.ts-sc-track{gap:16px}
  .ts-showcase-slider .ts-sc-track>.ts-card{flex-basis:86%}
  .ts-showcase-slider .ts-sc-nav{display:none}
}

/* ===== JA Solar catalogue (products page) — cards reuse Nova .ts-grid/.ts-card styling ===== */
.ts-catalogue{padding:16px 0 8px}
.ts-cat-head{margin:0 0 30px;text-align:center}
.ts-cat-logo{height:44px;width:auto;max-width:200px;display:block;margin:0 auto 16px;object-fit:contain}
.ts-cat-h{font-family:'Poppins',sans-serif;font-size:clamp(26px,3.2vw,32px);font-weight:800;color:#0B2258;letter-spacing:-.01em;margin:0 0 10px}
.ts-cat-sub{color:#5a6472;font-size:15px;line-height:1.6;margin:0 auto;max-width:720px}
.ts-catalogue .ts-acts{margin:0 8px}
/* JA Solar are product shots (not full-bleed posters): clean white panel, image contained (no navy, no upscaling/pixelation) */
.ts-catalogue .ts-card .ts-panel{background:#fff;padding:20px}
.ts-catalogue .ts-card:hover .ts-panel{background:#fafbfc}
.ts-catalogue .ts-card .ts-panel img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:normal}
@media(max-width:520px){.ts-cat-h{font-size:24px}}

/* ===== Policy pages: distinguish in-content links (brand blue + underline) ===== */
body.page-id-3 .elementor-widget-text-editor a,
body.page-id-31849 .elementor-widget-text-editor a,
body.page-id-32942 .elementor-widget-text-editor a,
body.page-id-32943 .elementor-widget-text-editor a,
body.page-id-32945 .elementor-widget-text-editor a,
body.page-id-32946 .elementor-widget-text-editor a{color:#0494D9!important;text-decoration:underline!important;text-underline-offset:2px}
body.page-id-3 .elementor-widget-text-editor a:hover,
body.page-id-31849 .elementor-widget-text-editor a:hover,
body.page-id-32942 .elementor-widget-text-editor a:hover,
body.page-id-32943 .elementor-widget-text-editor a:hover,
body.page-id-32945 .elementor-widget-text-editor a:hover,
body.page-id-32946 .elementor-widget-text-editor a:hover{color:#0378b3!important}
