/* Gtech Electric — new-design system. Mirrors tokens from ui_kits/website/standalone (2026-07-23). */

/* Self-hosted Montserrat (variable font, weights 100–900 + italic 400–600), same 10
   subset files + unicode-ranges as the source mockup itself. This was missing entirely
   until now — every --gt-font reference sitewide was silently falling back to the
   browser's generic sans-serif, which is why bold weights looked off and nothing quite
   matched the reference design's actual typeface. */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/0f2acf7d-f359-4cec-a59d-3fdb3be54f10.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/6fd97d4d-4ba7-4722-868a-7756ec38511d.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/691d17b9-4c41-4d3e-be71-870e3e81105f.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/7b177c16-fba1-432e-89b3-1bba88ea71e9.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/2c151c39-addb-47d4-b66f-3bbbd544da5a.woff2') format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400 600;font-display:swap;src:url('../fonts/5a833845-11a9-40e6-b222-15c1f6204c61.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400 600;font-display:swap;src:url('../fonts/d1f58a0b-8165-4fdc-9222-79133f6fb9a0.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400 600;font-display:swap;src:url('../fonts/239c318f-d6b7-4a2c-bb45-7cf7e2e4f554.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400 600;font-display:swap;src:url('../fonts/2f54e26d-2214-435e-be95-b87cd6a5ab4f.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400 600;font-display:swap;src:url('../fonts/9d3afe4f-f801-4437-bcff-6716ddc04bde.woff2') format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}

:root{
	--gt-canvas:#F5F1EA;
	--gt-canvas-deep:#EFE8DA;
	--gt-carbon:#0E0E10;
	--gt-carbon-deep:#08080A;
	--gt-accent:#FF4D2E;
	--gt-accent-dark:#E23F22;
	--gt-white:#FFFFFF;
	--gt-warm-grey:#6E6859;
	--gt-border:#DCD4C0;
	--gt-border-inverse:rgba(255,255,255,.1);
	--gt-font:'Montserrat',sans-serif;
	--gt-ease:cubic-bezier(.4,0,.2,1);
	--gt-dur-fast:200ms;
	--gt-dur-medium:350ms;
	--gt-dur-slow:800ms;
	--gt-radius-btn:999px;
	--gt-radius-card:16px;
	--gt-radius-tile:24px;
	--gt-radius-media:20px;
	--gt-container-max:1480px;
	--gt-container-pad:40px;
}
@media (max-width:1180px){:root{--gt-container-pad:32px;}}
@media (max-width:700px){:root{--gt-container-pad:20px;}}

.gt-wrap{max-width:var(--gt-container-max);margin:0 auto;padding:0 var(--gt-container-pad);box-sizing:border-box;}
.gt-section{padding:120px 0;}
.gt-section.gt-section-tight{padding:80px 0;}
@media (max-width:980px){.gt-section{padding:72px 0 !important;}}
@media (max-width:700px){.gt-section{padding:56px 0 !important;}}

/* Eyebrow / SectionLabel */
.gt-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:6px 14px;border-radius:var(--gt-radius-btn);background:var(--gt-white);border:1px solid var(--gt-border);font-family:var(--gt-font);font-size:11px;font-weight:700;letter-spacing:2px;color:var(--gt-warm-grey);text-transform:uppercase;}
.gt-eyebrow::before{content:'';width:6px;height:6px;border-radius:999px;background:var(--gt-accent);flex-shrink:0;}
.gt-eyebrow.gt-eyebrow-inverse{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:var(--gt-accent);}

/* Headings */
.gt-h1,.gt-h2,.gt-h3{margin:0;font-family:var(--gt-font);font-weight:900;color:var(--gt-carbon);letter-spacing:-2px;}
.gt-h1{font-size:clamp(52px,5.6vw,92px);line-height:.95;}
.gt-h2{font-size:clamp(40px,5vw,72px);line-height:.95;letter-spacing:-2px;}
.gt-h3{font-size:clamp(28px,2.6vw,40px);line-height:1.05;letter-spacing:-1px;}
.gt-accent{font-style:italic;font-weight:400;color:var(--gt-accent);}
.gt-inverse{color:var(--gt-canvas);}
.gt-text-secondary{color:var(--gt-warm-grey);}

/* Buttons */
.gt-btn{font-family:var(--gt-font);font-weight:700;font-size:13px;letter-spacing:.5px;border:1px solid transparent;cursor:pointer;border-radius:var(--gt-radius-btn);display:inline-flex;align-items:center;gap:14px;white-space:nowrap;padding:14px 22px;text-decoration:none;transition:transform var(--gt-dur-medium) var(--gt-ease),background var(--gt-dur-fast) var(--gt-ease),color var(--gt-dur-fast) var(--gt-ease),box-shadow var(--gt-dur-medium) var(--gt-ease);}
.gt-btn-icon{width:38px;height:38px;border-radius:999px;flex-shrink:0;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin:-8px -8px -8px 0;}
.gt-btn-primary{background:var(--gt-carbon);color:var(--gt-canvas);border-color:var(--gt-carbon);}
.gt-btn-primary .gt-btn-icon{background:var(--gt-accent);color:var(--gt-canvas);}
.gt-btn-primary:hover{background:var(--gt-accent);color:var(--gt-canvas);border-color:var(--gt-accent);transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.15);}
.gt-btn-accent{background:var(--gt-accent);color:var(--gt-carbon);border-color:var(--gt-accent);}
.gt-btn-accent .gt-btn-icon{background:var(--gt-carbon);color:var(--gt-accent);}
.gt-btn-accent:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.15);}
.gt-btn-outline{background:transparent;color:var(--gt-carbon);border-color:var(--gt-carbon);}
.gt-btn-outline .gt-btn-icon{background:var(--gt-accent);color:var(--gt-canvas);}
.gt-btn-outline:hover{background:var(--gt-carbon);color:var(--gt-canvas);border-color:var(--gt-carbon);}
.gt-btn-outline.gt-on-dark{color:#fff;border-color:rgba(255,255,255,.5);}
.gt-btn-outline.gt-on-dark:hover{background:#fff;color:var(--gt-carbon);}

/* Hero — height follows the real banner's 1920x900 (2.13:1) ratio so background-size:cover
   doesn't have to over-zoom; bounded so it stays sensible on very wide/narrow viewports. */
.gt-hero{position:relative;overflow:hidden;aspect-ratio:1920/1180;min-height:520px;max-height:720px;display:flex;align-items:center;background:var(--gt-carbon);background-position:center;background-size:cover;}
.gt-hero::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,rgba(10,10,11,.97) 0%,rgba(10,10,11,.94) 38%,rgba(10,10,11,.55) 62%,rgba(10,10,11,.15) 100%);}
.gt-hero-bg{position:absolute;inset:0;z-index:0;width:100%;height:110%;background-size:cover;background-position:center;}
.gt-hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,rgba(10,10,11,.82) 0%,rgba(10,10,11,.58) 42%,rgba(10,10,11,.22) 68%,rgba(10,10,11,.1) 100%);}
.gt-hero-content{position:relative;z-index:2;width:100%;}
.gt-hero-kicker{font-family:var(--gt-font);font-size:12px;letter-spacing:4px;font-weight:700;color:var(--gt-canvas);opacity:.7;margin-bottom:18px;text-transform:uppercase;}
.gt-hero-title{max-width:640px;}
.gt-hero-desc{margin-top:20px;font-size:15px;line-height:1.55;color:var(--gt-canvas);opacity:.85;max-width:440px;}
.gt-hero-actions{margin-top:28px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
@media (max-width:980px){.gt-hero{aspect-ratio:auto;min-height:520px;max-height:none;}}
@media (max-width:700px){.gt-hero{min-height:460px;}.gt-hero-title{max-width:100%;}}
.gt-hero > .e-con-inner,.gt-hero > .elementor-container,.gt-hero > .elementor-widget-wrap{position:relative;z-index:2;}

/* Section wrappers with backgrounds, matching the mockup's alternating canvas tones */
.gt-bg-canvas{background:var(--gt-canvas);}
.gt-bg-canvas-deep{background:var(--gt-canvas-deep);}
.gt-bg-dark{background:var(--gt-carbon);color:var(--gt-canvas);}

/* Proof strip (dark trust-metrics row) */
.gt-proof-strip{background:var(--gt-carbon);color:var(--gt-canvas);padding:32px 0;border-top:1px solid #1a1a1a;border-bottom:1px solid #1a1a1a;}
.gt-proof-grid{max-width:var(--gt-container-max);margin:0 auto;padding:0 var(--gt-container-pad);display:grid;grid-template-columns:repeat(5,1fr);gap:24px;box-sizing:border-box;}
.gt-trust-metric{font-family:var(--gt-font);color:var(--gt-canvas);display:flex;flex-direction:column;gap:4px;border-left:1px solid rgba(255,255,255,.08);padding-left:24px;}
.gt-trust-metric:first-child{border-left:none;padding-left:0;}
.gt-trust-metric .gt-tm-value{font-family:var(--gt-font);font-size:32px;font-weight:900;letter-spacing:-1px;line-height:1;}
.gt-trust-metric .gt-tm-label{font-size:12px;opacity:.65;letter-spacing:1px;text-transform:uppercase;font-weight:600;}
@media (max-width:980px){.gt-proof-grid{grid-template-columns:repeat(3,1fr);gap:16px 24px;}.gt-trust-metric{border-left:none !important;padding-left:0 !important;}}
@media (max-width:700px){.gt-proof-grid{grid-template-columns:repeat(2,1fr);}}

/* Buttons used as HTML widgets (compound: label + trailing icon circle) */
.gt-btn span:first-child{display:inline-block;}

/* FilterPill */
.gt-pill{font-family:var(--gt-font);font-size:12px;font-weight:700;letter-spacing:.5px;padding:8px 16px;border-radius:var(--gt-radius-btn);cursor:pointer;border:1px solid var(--gt-border);background:transparent;color:var(--gt-carbon);text-decoration:none;display:inline-block;transition:background var(--gt-dur-fast) var(--gt-ease),color var(--gt-dur-fast) var(--gt-ease),border-color var(--gt-dur-fast) var(--gt-ease);}
.gt-pill:hover{background:var(--gt-carbon);color:var(--gt-canvas);border-color:var(--gt-carbon);}
.gt-pill.gt-pill-active{background:var(--gt-carbon);color:var(--gt-canvas);border-color:var(--gt-carbon);}

/* ── Category card (CategoryCard match) ──────────────────────────────────
   Scoped under .wd-cat (the wrapper class WoodMart adds to every category
   card using the "default" design) so this applies everywhere that design
   is used, consistently, without touching any other card/design variant. */
.wd-cat .wd-cat-inner{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--gt-radius-tile) !important;overflow:hidden;background:var(--gt-white);border:1px solid var(--gt-border);box-shadow:0 1px 0 rgba(255,255,255,.4) inset;transition:transform var(--gt-dur-medium) var(--gt-ease),box-shadow var(--gt-dur-medium) var(--gt-ease);}
.wd-cat .wd-cat-inner:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(0,0,0,.12);}
.wd-cat .wd-cat-thumb{position:absolute;inset:0;margin:0;padding:0;z-index:0;}
.wd-cat .wd-cat-thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(14,14,16,.78) 100%);pointer-events:none;z-index:1;}
.wd-cat .wd-cat-thumb .category-image{display:block;width:100%;height:100%;}
.wd-cat .wd-cat-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--gt-dur-slow) var(--gt-ease);}
.wd-cat .wd-cat-inner:hover .wd-cat-thumb img{transform:scale(1.06);}

.wd-cat .wd-cat-count{position:absolute;top:18px;left:18px;z-index:2;margin:0;padding:6px 12px;border-radius:var(--gt-radius-btn);background:rgba(255,255,255,.85);backdrop-filter:blur(6px);font-family:var(--gt-font);font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;line-height:1;}
.wd-cat .wd-cat-count a{color:var(--gt-carbon);text-decoration:none;}

/* WoodMart's native "cat-design-default" CSS hides .wd-cat-content/.wd-cat-count by
   default (translateY(100%), opacity:0) and only reveals them on hover — a
   reveal-on-hover pattern that conflicts with this design, where the content must
   always be visible. Force-reset those properties so our own styling always wins. */
.cat-design-default .wd-cat-content,
.cat-design-default:hover .wd-cat-content{transform:none !important;}
.cat-design-default .wd-cat-count,
.cat-design-default:hover .wd-cat-count{opacity:1 !important;transform:none !important;}
.cat-design-default .wd-entities-title{position:static !important;bottom:auto !important;}

.wd-cat .wd-cat-content{position:absolute !important;inset-inline:24px !important;left:24px;right:24px;bottom:24px !important;z-index:2;color:var(--gt-canvas);font-family:var(--gt-font);margin:0;padding:0 !important;text-align:start;}
.wd-cat .wd-cat-content .gt-cat-sub{color:var(--gt-canvas);}
.wd-cat .gt-cat-bottom-row{display:flex;justify-content:space-between;align-items:end;gap:12px;}
.wd-cat .wd-cat-content .wd-entities-title{margin:0;font-family:var(--gt-font);font-size:32px;font-weight:900;letter-spacing:-1px;line-height:1;color:var(--gt-canvas);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.wd-cat .gt-cat-arrow{width:40px;height:40px;border-radius:999px;background:var(--gt-accent);color:var(--gt-canvas);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;flex-shrink:0;transition:transform var(--gt-dur-medium) var(--gt-ease);}
.wd-cat .wd-cat-inner:hover .gt-cat-arrow{transform:translateX(6px);}
/* Long category names ("Led Outdoor Lights") + a full subcategory-list line together
   grew taller than the card on narrow mobile widths and rode up over the top-left
   product-count pill. Clamp the sub-line to 1 row, tighten padding/font size, and cap
   title line-height so the whole content block always fits under the pill. */
@media (max-width:700px){
  .wd-cat .wd-cat-content{inset-inline:16px !important;left:16px;right:16px;bottom:16px !important;}
  .wd-cat .wd-cat-content .wd-entities-title{font-size:20px;line-height:1.05;-webkit-line-clamp:2;}
  .wd-cat .wd-cat-content .gt-cat-sub{-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis;}
  .wd-cat .gt-cat-arrow{width:30px;height:30px;font-size:14px;}
}

/* Category card sub-heading (real subcategory list, e.g. "Downlights · Panel Lights · Linear · Wall Lights") */
.gt-cat-sub{font-family:var(--gt-font);font-size:11px;font-weight:700;letter-spacing:1.5px;opacity:.8;text-transform:uppercase;margin-bottom:4px;color:inherit;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}

/* ── Product card (ProductCard match) ─────────────────────────────────────
   Entirely new class names (.gt-product-*) so none of WoodMart's own
   .product-element-top/-bottom, .fade-in-block or .wd-hover-with-fade CSS
   (which hides content until hover — see the category-card note above)
   ever applies here. Real WooCommerce/WoodMart functionality (AJAX add to
   cart, wishlist, hover-image swap, sale badge) is untouched underneath. */
.gt-product-card{display:flex;flex-direction:column;height:100%;border-radius:var(--gt-radius-card);overflow:hidden;background:var(--gt-white);border:1px solid var(--gt-border);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 8px 24px rgba(60,40,15,.06);transition:transform var(--gt-dur-medium) var(--gt-ease),box-shadow var(--gt-dur-medium) var(--gt-ease);}
/* WoodMart's own "wd-hover-with-fade" JS state adds a competing translateY(-5px) rule
   scoped to .product-wrapper (same element as .gt-product-card) once its hover-ready
   class kicks in — force this design's own lift/shadow to always win instead. */
.gt-product-card:hover{transform:translateY(-8px) !important;box-shadow:0 28px 52px rgba(60,40,15,.14),0 4px 12px rgba(60,40,15,.08) !important;z-index:5;}

.gt-product-media{position:relative;aspect-ratio:1/1;background:var(--gt-white);overflow:hidden;}
.gt-product-image-link{display:block;width:100%;height:100%;}
.gt-product-image-link:focus{outline:none;}
.gt-product-image-link:focus-visible{outline:2px solid var(--gt-accent);outline-offset:-2px;}
.gt-product-title a:focus{outline:none;}
.gt-product-title a:focus-visible{outline:2px solid var(--gt-accent);outline-offset:2px;}
.gt-product-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--gt-ease);}
.gt-product-card:hover .gt-product-media img{transform:scale(1.06);}
/* Real second-image hover swap (woodmart_hover_image) sits absolutely over the first, matching the same box. */
.gt-product-media .hover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

.gt-product-tag{position:absolute;top:12px;left:12px;z-index:2;padding:4px 10px;border-radius:var(--gt-radius-btn);background:rgba(14,14,16,.85);color:var(--gt-canvas);font-family:var(--gt-font);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;line-height:1.6;}

/* Wishlist heart — deliberately hidden until hover, matching the reference design (this one IS an intentional reveal, not the native bug). */
.gt-product-wishlist{position:absolute;right:12px;top:12px;z-index:2;opacity:0;transition:opacity .25s;}
.gt-product-card:hover .gt-product-wishlist{opacity:1;}
.gt-product-wishlist .wd-wishlist-btn{margin:0;}
.gt-product-wishlist .wd-wishlist-btn a{width:36px;height:36px;border-radius:999px;background:var(--gt-white);box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;transition:background var(--gt-dur-fast) var(--gt-ease),transform var(--gt-dur-fast) var(--gt-ease),color var(--gt-dur-fast) var(--gt-ease);}
.gt-product-wishlist .wd-wishlist-btn a:hover,
.gt-product-wishlist .wd-wishlist-btn a.added{background:var(--gt-accent);color:var(--gt-canvas);transform:scale(1.08);}
.gt-product-wishlist .wd-wishlist-btn a:focus{outline:none;}
.gt-product-wishlist .wd-wishlist-btn a:focus-visible{outline:2px solid var(--gt-accent);outline-offset:2px;}

/* Native sale/new badges: keep visible but move to avoid clashing with our own top-left category tag. */
.gt-product-media .product-labels{top:12px;left:auto;right:56px;z-index:2;}

.gt-product-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1;}
.gt-product-title{font-family:var(--gt-font);font-size:14px;font-weight:700;letter-spacing:-.3px;line-height:1.3;color:var(--gt-carbon);}
.gt-product-title a{color:inherit;text-decoration:none;}
/* WoodMart's own product-loop CSS sets a font-weight directly on the h3.wd-entities-title
   element (and the <a> inside it) via a same-or-higher-specificity rule, which otherwise
   beats the weight set on this wrapping .gt-product-title div. Force it explicitly. */
.gt-product-title,
.gt-product-title .wd-entities-title,
.gt-product-title a{font-weight:700 !important;}
.gt-product-sub{font-family:var(--gt-font);font-size:12px;color:var(--gt-warm-grey);line-height:1.4;}
.gt-product-footer{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--gt-border);}
.gt-product-price{font-family:var(--gt-font);font-size:15px;font-weight:800;color:var(--gt-carbon);}
.gt-product-price,
.gt-product-price .woocommerce-Price-amount,
.gt-product-price bdi,
.gt-product-price ins,
.gt-product-price ins .woocommerce-Price-amount{font-weight:800 !important;}
.gt-product-price .star-rating{display:none;}
.gt-product-price ins{text-decoration:none;}
.gt-product-price del{opacity:.5;font-size:.85em;margin-inline-end:4px;font-weight:600 !important;}

/* Real add-to-cart link, restyled into a plain circular "+" (text hidden, keeps its
   ajax_add_to_cart classes/data-attributes so WooCommerce's own JS still works). */
.gt-product-add{flex-shrink:0;}
.gt-product-add .add-to-cart-loop{position:relative;display:flex !important;width:40px !important;height:40px !important;min-width:40px !important;min-height:40px !important;max-width:40px !important;max-height:40px !important;border-radius:999px !important;background:var(--gt-carbon) !important;padding:0 !important;overflow:hidden;box-sizing:border-box !important;line-height:1 !important;transition:background var(--gt-dur-fast) var(--gt-ease),transform var(--gt-dur-fast) var(--gt-ease);}
.gt-product-add .add-to-cart-loop:hover{background:var(--gt-accent) !important;transform:scale(1.08);}
.gt-product-add .add-to-cart-loop:focus{outline:none;}
.gt-product-add .add-to-cart-loop:focus-visible{outline:2px solid var(--gt-accent);outline-offset:2px;}
.gt-product-add .add-to-cart-loop span,
.gt-product-add .add-to-cart-loop .added_to_cart{font-size:0 !important;}
.gt-product-add .add-to-cart-loop::after{content:'+';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--gt-canvas);font-size:20px;font-weight:600;font-family:var(--gt-font);line-height:1;}
.gt-product-add .add-to-cart-loop.loading::after{content:'';width:12px;height:12px;margin:auto;border-radius:999px;border:2px solid rgba(255,255,255,.4);border-top-color:var(--gt-canvas);animation:gt-spin .6s linear infinite;}
@keyframes gt-spin{to{transform:rotate(360deg);}}

/* FeaturedStory (product spotlight, 2-col) */
.gt-feat-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:72px;align-items:center;}
.gt-feat-grid.gt-reverse{grid-template-columns:1fr 1.2fr;}
.gt-feat-grid.gt-reverse .gt-feat-media{order:2;}
.gt-feat-grid.gt-reverse .gt-feat-copy{order:1;}
.gt-feat-media{position:relative;aspect-ratio:5/4;border-radius:var(--gt-radius-media);overflow:hidden;background:linear-gradient(180deg,#f1ead7 0%,#e8dfc5 55%,#ddd0aa 100%);display:flex;align-items:center;justify-content:center;}
.gt-feat-media img{max-width:68%;max-height:68%;object-fit:contain;filter:drop-shadow(0 24px 40px rgba(60,40,15,.3));}
.gt-feat-tag{position:absolute;top:20px;left:20px;padding:7px 14px;background:rgba(255,255,255,.92);border-radius:999px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--gt-carbon);text-transform:uppercase;}
.gt-feat-kicker{font-size:12px;font-weight:700;letter-spacing:3px;color:var(--gt-warm-grey);text-transform:uppercase;margin-bottom:20px;}
.gt-feat-desc{margin-top:22px;font-size:16px;line-height:1.6;color:var(--gt-warm-grey);max-width:420px;}
.gt-feat-specs{margin-top:22px;display:flex;flex-direction:column;gap:10px;}
.gt-feat-spec{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--gt-warm-grey);font-weight:600;}
.gt-feat-spec::before{content:'';width:4px;height:4px;background:var(--gt-accent);border-radius:999px;flex-shrink:0;}
@media (max-width:980px){.gt-feat-grid,.gt-feat-grid.gt-reverse{grid-template-columns:1fr;}.gt-feat-grid .gt-feat-media,.gt-feat-grid.gt-reverse .gt-feat-media{order:1;}.gt-feat-grid .gt-feat-copy,.gt-feat-grid.gt-reverse .gt-feat-copy{order:2;}}

/* WhySection / FeatureRow */
.gt-why-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;margin-top:28px;align-items:end;}
.gt-why-aside{border-left:1px solid var(--gt-border);padding-left:32px;}
.gt-why-aside p{margin:0;font-size:17px;line-height:1.6;color:var(--gt-warm-grey);}
.gt-why-aside p b{color:var(--gt-carbon);}
.gt-why-badges{margin-top:24px;display:flex;gap:8px;flex-wrap:wrap;}
.gt-why-badge{padding:7px 14px;border-radius:999px;border:1px solid var(--gt-border);font-size:11px;font-weight:700;letter-spacing:1px;color:var(--gt-carbon);background:var(--gt-white);}
.gt-feature-row{display:grid;grid-template-columns:80px 1fr 1.2fr 1fr;gap:40px;align-items:start;padding:48px 0;border-top:1px solid var(--gt-border);}
.gt-feature-row:first-of-type{border-top:none;}
.gt-feature-row:last-of-type{border-bottom:1px solid var(--gt-border);}
.gt-feature-row svg{width:40px;height:40px;}
.gt-fr-kicker{font-size:12px;letter-spacing:3px;font-weight:700;color:var(--gt-warm-grey);margin-bottom:14px;text-transform:uppercase;}
.gt-fr-title{margin:0;font-family:var(--gt-font);font-weight:900;font-size:clamp(28px,2.6vw,40px);line-height:1.05;letter-spacing:-1px;color:var(--gt-carbon);}
.gt-fr-desc{margin:0;font-size:15px;line-height:1.65;color:var(--gt-warm-grey);}
.gt-fr-stats{display:flex;flex-direction:column;gap:12px;}
.gt-fr-stat{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--gt-border);}
.gt-fr-stat:last-child{border-bottom:none;padding-bottom:0;}
.gt-fr-stat-n{font-size:28px;font-weight:900;color:var(--gt-carbon);letter-spacing:-1px;white-space:nowrap;}
.gt-fr-stat-l{font-size:11px;color:var(--gt-warm-grey);font-weight:600;letter-spacing:.5px;text-transform:uppercase;text-align:right;}
@media (max-width:980px){.gt-why-intro{grid-template-columns:1fr;}.gt-why-aside{border-left:none;padding-left:0;margin-top:24px;}.gt-feature-row{grid-template-columns:1fr;gap:16px;padding:32px 0;}}

/* ComparisonSection */
.gt-compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.gt-compare-card{background:var(--gt-white);border-radius:var(--gt-radius-card);border:1px solid var(--gt-border);padding:28px;display:flex;flex-direction:column;}
.gt-compare-card.gt-featured{border:2px solid var(--gt-accent);}
.gt-compare-label{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gt-warm-grey);margin-bottom:16px;}
.gt-compare-card.gt-featured .gt-compare-label{color:var(--gt-accent);}
.gt-compare-media{aspect-ratio:1/1;border-radius:var(--gt-radius-media);overflow:hidden;background:var(--gt-canvas-deep);margin-bottom:16px;}
.gt-compare-media img{width:100%;height:100%;object-fit:cover;}
.gt-compare-name{font-size:16px;font-weight:700;color:var(--gt-carbon);margin-bottom:6px;}
.gt-compare-price{font-size:20px;font-weight:800;color:var(--gt-carbon);margin-bottom:16px;}
.gt-compare-points{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;}
.gt-compare-point{font-size:13px;color:var(--gt-warm-grey);display:flex;gap:8px;align-items:center;}
.gt-compare-point::before{content:'';width:4px;height:4px;border-radius:999px;background:var(--gt-accent);flex-shrink:0;}
.gt-compare-cta{margin-top:auto;}
@media (max-width:980px){.gt-compare-grid{grid-template-columns:1fr;}}

/* ReassuranceStrip */
.gt-reassure-strip{background:var(--gt-canvas);border-top:1px solid var(--gt-border);border-bottom:1px solid var(--gt-border);padding:24px 0;}
.gt-reassure-row{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;}
.gt-reassure-item{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--gt-carbon);}
.gt-reassure-item::before{content:'';width:5px;height:5px;border-radius:999px;background:var(--gt-accent);}

/* FAQ / Accordion */
.gt-faq{font-family:var(--gt-font);}
.gt-faq-item{border-bottom:1px solid var(--gt-border);}
.gt-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;}
.gt-faq-q span:first-child{font-size:17px;font-weight:700;color:var(--gt-carbon);letter-spacing:-.2px;}
.gt-faq-icon{flex-shrink:0;width:28px;height:28px;border-radius:999px;border:1px solid var(--gt-border);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--gt-carbon);transition:transform var(--gt-dur-medium) var(--gt-ease);}
.gt-faq-item.open .gt-faq-icon{transform:rotate(45deg);}
.gt-faq-a{max-height:0;overflow:hidden;transition:max-height var(--gt-dur-medium) var(--gt-ease);}
.gt-faq-item.open .gt-faq-a{max-height:240px;}
.gt-faq-a p{margin:0 0 22px;font-size:15px;line-height:1.6;color:var(--gt-warm-grey);max-width:640px;}

/* FinalCTA (dark, radial glow) */
.gt-cta-dark{position:relative;min-height:420px;display:flex;align-items:center;overflow:hidden;background:var(--gt-carbon);}
.gt-cta-glow{position:absolute;left:65%;top:40%;transform:translate(-50%,-50%);width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(255,77,46,.14) 0%,transparent 60%);pointer-events:none;}
.gt-cta-inner{position:relative;z-index:1;text-align:center;width:100%;padding:80px 0;}
.gt-cta-inner .gt-h2{max-width:780px;margin:0 auto;color:var(--gt-canvas);}
.gt-cta-actions{margin-top:36px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* Shop / Journal section headers (used before the theme-default widgets) */
.gt-shop-head,.gt-journal-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px;flex-wrap:wrap;gap:24px;}
.gt-shop-head p, .gt-shop-desc{margin:0;font-size:15px;line-height:1.55;color:var(--gt-warm-grey);max-width:380px;}
.gt-bestseller-head-wrap{margin-top:96px;}
@media (max-width:980px){.gt-bestseller-head-wrap{margin-top:56px;}}
@media (max-width:700px){.gt-bestseller-head-wrap{margin-top:40px;}}

/* OrderSection (bundle builder) */
.gt-order{position:relative;background:var(--gt-carbon);color:var(--gt-canvas);overflow:hidden;padding:100px 0;}
.gt-order-glow{position:absolute;left:70%;top:40%;transform:translate(-50%,-50%);width:1000px;height:1000px;border-radius:50%;background:radial-gradient(circle,rgba(255,77,46,.14) 0%,transparent 60%);pointer-events:none;}
.gt-order-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.gt-order-copy p{margin-top:22px;font-size:16px;line-height:1.55;opacity:.75;max-width:460px;}
.gt-order-trust{margin-top:28px;display:flex;gap:20px;flex-wrap:wrap;}
.gt-order-trust span{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.8;}
.gt-order-card{background:rgba(255,255,255,.04);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:28px;}
.gt-order-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.gt-order-row-title{font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.gt-order-cities{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px;}
.gt-order-city{padding:8px 14px;border-radius:999px;background:transparent;color:var(--gt-canvas);border:1px solid rgba(255,255,255,.18);font-family:var(--gt-font);font-size:12px;font-weight:700;cursor:pointer;}
.gt-order-city.active{background:var(--gt-accent);color:var(--gt-carbon);border-color:var(--gt-accent);}
.gt-order-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px;}
.gt-order-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;background:transparent;border:1px solid rgba(255,255,255,.1);cursor:pointer;text-align:left;color:var(--gt-canvas);font-family:var(--gt-font);}
.gt-order-item.active{background:rgba(255,255,255,.09);border-color:var(--gt-accent);}
.gt-order-item img{width:44px;height:44px;border-radius:10px;object-fit:contain;background:#f1ead7;flex-shrink:0;}
.gt-order-item-name{font-size:12px;font-weight:700;}
.gt-order-item-price{font-size:10px;opacity:.6;}
.gt-order-check{width:18px;height:18px;border-radius:4px;border:1.5px solid rgba(255,255,255,.3);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;margin-left:auto;}
.gt-order-item.active .gt-order-check{background:var(--gt-accent);border-color:var(--gt-accent);color:var(--gt-carbon);}
.gt-order-total-row{display:flex;justify-content:space-between;align-items:baseline;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);margin-bottom:18px;}
.gt-order-total-label{font-size:11px;opacity:.55;letter-spacing:1px;text-transform:uppercase;font-weight:600;}
.gt-order-total-value{font-size:36px;font-weight:900;letter-spacing:-1px;margin-top:4px;}
.gt-order-cta{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 8px 18px 24px;background:var(--gt-accent);color:var(--gt-carbon);border:none;border-radius:999px;cursor:pointer;font-family:var(--gt-font);font-size:14px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;}
.gt-order-cta .gt-btn-icon{background:var(--gt-carbon);color:var(--gt-accent);}
.gt-order-note{margin-top:12px;font-size:11px;opacity:.55;text-align:center;letter-spacing:.5px;}
@media (max-width:980px){.gt-order-grid{grid-template-columns:1fr;}.gt-order-pick{grid-template-columns:1fr;}}

/* ── Footer (rebuild of cms_block 128, output via [gt_site_footer] shortcode) ── */
/* footer.php wraps this in the theme's own boxed .container.main-footer (max-width +
   side gutters) — not an Elementor context, so break out of it with a plain CSS
   full-bleed technique (margin pulls to the viewport edge, padding pushes the visible
   content back in) rather than WoodMart's Elementor-only wd-section-stretch class. */
.gt-footer{background:var(--gt-carbon);color:var(--gt-canvas);font-family:var(--gt-font);padding-top:80px;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);box-sizing:border-box;}
.gt-footer a{color:inherit;}
.gt-footer-top{padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.14);display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:32px;}
.gt-footer-wordmark{font-family:var(--gt-font);font-weight:900;font-size:clamp(64px,10vw,160px);letter-spacing:-6px;line-height:.85;}
.gt-footer-tagline{max-width:360px;font-size:14px;line-height:1.55;opacity:.65;}
.gt-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;padding:56px 0;}
.gt-footer-label{font-size:12px;letter-spacing:2px;font-weight:700;margin-bottom:16px;opacity:.55;text-transform:uppercase;}
.gt-footer-phone a{font-size:20px;font-weight:700;text-decoration:none;}
.gt-footer-meta{margin-top:8px;font-size:13px;opacity:.6;line-height:1.6;margin-bottom:24px;}
.gt-footer-meta a{text-decoration:none;}
.gt-footer-meta a:hover{color:var(--gt-accent);}
.gt-footer-socials{display:flex;gap:8px;}
.gt-social{width:36px;height:36px;border-radius:999px;border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background var(--gt-dur-fast) var(--gt-ease),border-color var(--gt-dur-fast) var(--gt-ease);}
.gt-social:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.32);}
.gt-footer-links{display:flex;flex-direction:column;gap:12px;}
.gt-footer-links a{font-size:14px;opacity:.85;text-decoration:none;}
.gt-footer-links a:hover{opacity:1;color:var(--gt-accent);}
.gt-footer-bottom{padding:24px 0;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:12px;opacity:.55;}
.gt-footer-legal{display:flex;gap:18px;}
.gt-footer-legal a{text-decoration:none;}
.gt-footer-legal a:hover{opacity:.8;}
.gt-footer-badges{display:flex;gap:8px;}
.gt-footer-badges span{padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);font-size:10px;font-weight:700;letter-spacing:1px;}
@media (max-width:980px){.gt-footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:700px){.gt-footer{padding-top:56px;}.gt-footer-grid{grid-template-columns:1fr;gap:32px;padding:40px 0;}.gt-footer-bottom{flex-direction:column;align-items:flex-start;}}

/* ── Header restyle (native WoodMart Header Builder, "Header gtech") ─────
   Restyles only — logo/menu/search/wishlist/cart/account/burger elements
   are all still WoodMart's own real, functional widgets. */
.gt-announce-bar{background:var(--gt-carbon);color:var(--gt-canvas);font-family:var(--gt-font);}
.gt-announce-inner{max-width:1480px;margin:0 auto;padding:9px 40px;display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:1px;font-weight:500;}
.gt-announce-dot{width:6px;height:6px;border-radius:999px;background:var(--gt-accent);box-shadow:0 0 8px var(--gt-accent);flex-shrink:0;}
.gt-announce-text{opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media (max-width:700px){.gt-announce-inner{padding:8px 20px;font-size:11px;}}

/* Sticky main header row: translucent cream + blur, matching the design's
   canvas-tinted glass nav rather than WoodMart's default opaque white. */
.whb-header .whb-general-header{background:rgba(245,241,234,.9) !important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
.whb-header .woodmart-nav-link{font-family:var(--gt-font) !important;font-weight:500;}
.whb-header .woodmart-nav-link:hover,
.whb-header .current-menu-item > .woodmart-nav-link{color:var(--gt-accent) !important;}
.whb-header .wd-nav[class*="wd-style-underline"] .nav-link-text::after{background-color:var(--gt-accent) !important;}
.whb-header .wd-tools-icon:hover .wd-tools-icon-wrapper{color:var(--gt-accent) !important;}

/* "Find a store" / "Shop now" header buttons (WHB Button elements) */
a.gt-header-btn-ghost{border-radius:999px !important;font-family:var(--gt-font) !important;font-weight:600 !important;letter-spacing:.3px;}
a.gt-header-btn-ghost:hover{background:var(--gt-carbon) !important;border-color:var(--gt-carbon) !important;color:var(--gt-canvas) !important;}
a.gt-header-btn-shop{border-radius:999px !important;font-family:var(--gt-font) !important;font-weight:700 !important;letter-spacing:.3px;background:var(--gt-carbon) !important;border-color:var(--gt-carbon) !important;color:var(--gt-canvas) !important;}
a.gt-header-btn-shop:hover{background:var(--gt-accent) !important;border-color:var(--gt-accent) !important;}
@media (max-width:980px){a.gt-header-btn-ghost{display:none !important;}}

/* WoodMart's native "Section Title" widget (wd_title) is used as the sub-heading above
   each curated product grouping on the Fans/Lighting/etc. collection layouts (e.g.
   "Premium Fans", "Stylo Deco", "Shop by Category" siblings) — its default weight (500)
   reads noticeably weaker than every bold heading around it once those were bumped to
   match the design system. Bring it in line, sitewide, wherever this widget appears. */
.woodmart-title-container.title{font-weight:800 !important;color:var(--gt-carbon) !important;margin-bottom:24px !important;}
