/*
Theme Name: ThugStitch Streetwear
Theme URI: https://thugstitch.store
Author: ThugStitch
Author URI: https://thugstitch.store
Description: Bold streetwear-focused WordPress theme for ThugStitch. Souled-Store-inspired layout. WooCommerce-ready, Elementor-friendly, with editable section template parts and full Theme Builder support via Elementor Pro.
Version: 1.1.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thugstitch
Tags: e-commerce, fashion, streetwear, woocommerce, elementor, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root{
  --ts-ink:#0a0a0a;
  --ts-ink-soft:#1a1a1a;
  --ts-cream:#f5f1ea;
  --ts-cream-2:#ece6d9;
  --ts-red:#e63946;
  --ts-gold:#d4a72c;
  --ts-grey:#8a8a8a;
  --ts-grey-line:#dcd6c8;

  --ts-f-display:'Anton','Impact',sans-serif;
  --ts-f-body:'DM Sans',system-ui,sans-serif;
  --ts-f-mono:'JetBrains Mono',monospace;

  --ts-maxw:1320px;
}

/* ============================================================
   2. BASE RESET
   ============================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--ts-f-body);
  background:var(--ts-cream);
  color:var(--ts-ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  margin:0;padding:0;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2}
p{margin:0 0 1em}

.ts-wrap{max-width:var(--ts-maxw);margin:0 auto;padding:0 24px}
.ts-screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);
  height:1px;margin:-1px;overflow:hidden;padding:0;
  position:absolute !important;width:1px;word-wrap:normal !important;
}

/* ============================================================
   3. ANNOUNCEMENT BAR
   ============================================================ */
.ts-announce{
  background:var(--ts-ink);color:var(--ts-cream);
  font-family:var(--ts-f-mono);font-size:12px;
  letter-spacing:.15em;text-transform:uppercase;
  padding:10px 0;overflow:hidden;
}
.ts-announce-track{
  display:flex;gap:60px;white-space:nowrap;
  animation:ts-marquee 30s linear infinite;
  width:max-content;
}
.ts-announce-track span::before{content:"✦";color:var(--ts-red);margin-right:14px}
@keyframes ts-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============================================================
   4. HEADER
   ============================================================ */
.ts-header{
  background:var(--ts-cream);
  border-bottom:1px solid var(--ts-grey-line);
  position:sticky;top:0;z-index:9999;
}
.ts-header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 0;gap:24px;
}
.ts-logo{
  font-family:var(--ts-f-display);
  font-size:30px;letter-spacing:.04em;
  display:flex;align-items:center;gap:12px;
  color:var(--ts-ink);flex-shrink:0;
}
.ts-logo-img{height:46px;width:auto;object-fit:contain;display:block}
/* Header: blend logo's white background into the cream header */
.ts-header .ts-logo-img{mix-blend-mode:multiply}
.ts-logo-text{display:flex;align-items:center;gap:8px;line-height:1}
.ts-logo .ts-dot{width:10px;height:10px;background:var(--ts-red);display:inline-block;transform:translateY(-6px)}

.ts-main-nav{display:flex;gap:36px;list-style:none;padding:0;margin:0}
.ts-main-nav li{position:relative}
.ts-main-nav a{
  font-family:var(--ts-f-mono);font-size:12px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  position:relative;padding:6px 0;
  transition:color .2s;color:var(--ts-ink);
}
.ts-main-nav a:hover{color:var(--ts-red)}
.ts-main-nav a::after{
  content:"";position:absolute;left:0;bottom:0;
  width:0;height:2px;background:var(--ts-red);
  transition:width .3s ease;
}
.ts-main-nav a:hover::after{width:100%}
.ts-main-nav .sub-menu{
  position:absolute;top:100%;left:0;min-width:200px;
  background:var(--ts-cream);border:1px solid var(--ts-grey-line);
  padding:12px 0;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:all .25s;list-style:none;
}
.ts-main-nav li:hover > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.ts-main-nav .sub-menu a{padding:8px 18px;display:block;font-size:11px}
.ts-main-nav .sub-menu a::after{display:none}

.ts-icons{display:flex;align-items:center;gap:22px}
.ts-icons button,.ts-icons a{
  display:grid;place-items:center;
  transition:transform .2s,color .2s;
  color:var(--ts-ink);background:none;border:none;cursor:pointer;
}
.ts-icons > a:not(.ts-cart-pill):hover,.ts-icons button:hover{transform:scale(1.1);color:var(--ts-red)}
.ts-icons svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7}
.ts-cart-pill{
  background:var(--ts-ink) !important;color:var(--ts-cream) !important;
  padding:8px 14px;
  font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.12em;
  display:inline-flex !important;align-items:center;gap:8px;
  text-transform:uppercase;transition:background .2s;
}
.ts-cart-pill:hover{background:var(--ts-red) !important}
.ts-cart-pill .ts-count{background:var(--ts-red);color:#fff;font-size:10px;padding:1px 6px;line-height:1.4}
.ts-menu-btn{display:none}
.ts-mobile-nav{
  position:fixed;top:0;right:-100%;width:85%;max-width:380px;height:100vh;
  background:var(--ts-cream);z-index:10000;
  transition:right .3s ease;
  padding:24px;overflow-y:auto;
  box-shadow:-10px 0 30px rgba(0,0,0,.15);
}
.ts-mobile-nav.is-open{right:0}
.ts-mobile-nav-close{position:absolute;top:18px;right:18px;font-size:30px;color:var(--ts-ink)}
.ts-mobile-nav ul{list-style:none;padding:60px 0 0;margin:0}
.ts-mobile-nav li a{
  display:block;padding:16px 0;
  border-bottom:1px solid var(--ts-grey-line);
  font-family:var(--ts-f-mono);font-size:13px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ts-ink);
}
.ts-mobile-nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9998;opacity:0;visibility:hidden;transition:all .3s}
.ts-mobile-nav-overlay.is-open{opacity:1;visibility:visible}

/* ============================================================
   5. HERO
   ============================================================ */
.ts-hero{
  background:var(--ts-ink);color:var(--ts-cream);
  position:relative;overflow:hidden;
  min-height:640px;display:flex;align-items:center;
}
.ts-hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 80% 30%,rgba(230,57,70,.25),transparent 50%),
    radial-gradient(circle at 10% 90%,rgba(212,167,44,.15),transparent 60%);
  pointer-events:none;
}
.ts-hero-grid{
  display:grid;grid-template-columns:1.1fr .9fr;
  gap:60px;align-items:center;
  position:relative;z-index:2;width:100%;
  padding:80px 0;
}
.ts-hero-tag{
  font-family:var(--ts-f-mono);font-size:12px;
  letter-spacing:.3em;text-transform:uppercase;
  color:var(--ts-gold);margin-bottom:24px;
  display:flex;align-items:center;gap:12px;
}
.ts-hero-tag::before{content:"";width:40px;height:1px;background:var(--ts-gold)}
.ts-hero h1{
  font-family:var(--ts-f-display);
  font-size:clamp(54px,8vw,128px);
  line-height:1;letter-spacing:-.01em;
  margin:0 0 28px;text-transform:uppercase;color:var(--ts-cream);
}
.ts-hero h1 .ts-accent{color:var(--ts-red);font-style:italic;display:inline-block;transform:skewX(-6deg);padding:0 .15em}
.ts-hero h1 .ts-line{display:block;padding:.05em 0}
.ts-hero p.ts-lede{font-size:17px;max-width:460px;color:#c8c0b3;margin-bottom:36px}
.ts-hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.ts-btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:18px 28px;
  font-family:var(--ts-f-mono);font-size:12px;
  font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  transition:all .25s;border:1.5px solid currentColor;cursor:pointer;
}
.ts-btn-primary{background:var(--ts-red);color:#fff;border-color:var(--ts-red)}
.ts-btn-primary:hover{background:transparent;color:var(--ts-red)}
.ts-btn-ghost{color:var(--ts-cream)}
.ts-btn-ghost:hover{background:var(--ts-cream);color:var(--ts-ink)}
.ts-btn .ts-arrow{transition:transform .25s}
.ts-btn:hover .ts-arrow{transform:translateX(4px)}

.ts-hero-visual{position:relative;height:540px}
.ts-hero-card{position:absolute;background:linear-gradient(135deg,#2a2a2a,#0a0a0a);border:1px solid #2a2a2a}
.ts-hero-card.ts-c1{width:75%;height:90%;top:0;right:0;background-size:cover;background-position:center}
.ts-hero-card.ts-c2{width:50%;height:50%;bottom:0;left:0;background-size:cover;z-index:3}
.ts-hero-stamp{
  position:absolute;bottom:-20px;right:-20px;
  width:130px;height:130px;
  background:var(--ts-red);color:#fff;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--ts-f-display);font-size:24px;
  text-transform:uppercase;text-align:center;line-height:1;
  z-index:5;animation:ts-spin 20s linear infinite;padding:14px;
}
@keyframes ts-spin{to{transform:rotate(360deg)}}

/* ============================================================
   6. TRUST BAR
   ============================================================ */
.ts-trust{background:var(--ts-ink-soft);color:var(--ts-cream);border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a}
.ts-trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.ts-trust-cell{
  padding:24px;text-align:center;border-right:1px solid #2a2a2a;
  font-family:var(--ts-f-mono);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:12px;
}
.ts-trust-cell:last-child{border-right:none}
.ts-trust-cell strong{color:var(--ts-gold);font-weight:700}

/* ============================================================
   7. SECTION HEADS
   ============================================================ */
.ts-section{padding:90px 0}
.ts-section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:48px;border-bottom:2px solid var(--ts-ink);padding-bottom:18px;
}
.ts-eyebrow{
  font-family:var(--ts-f-mono);font-size:11px;
  letter-spacing:.25em;text-transform:uppercase;
  color:var(--ts-red);margin-bottom:8px;
}
.ts-section-title{
  font-family:var(--ts-f-display);
  font-size:clamp(40px,5vw,64px);
  text-transform:uppercase;line-height:.95;
  margin:0;color:var(--ts-ink);
}
.ts-view-all{
  font-family:var(--ts-f-mono);font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:10px;
  padding-bottom:4px;border-bottom:1.5px solid var(--ts-ink);
  transition:color .2s,border-color .2s;
}
.ts-view-all:hover{color:var(--ts-red);border-color:var(--ts-red)}

/* ============================================================
   8. CATEGORY GRID
   ============================================================ */
.ts-cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.ts-cat-card{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--ts-ink);color:#fff;cursor:pointer;transition:transform .3s;display:block}
.ts-cat-card:hover{transform:translateY(-6px)}
.ts-cat-card .ts-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s ease;filter:saturate(.9) contrast(1.05)}
.ts-cat-card:hover .ts-bg{transform:scale(1.08)}
.ts-cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent 55%)}
.ts-cat-card .ts-label{position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:2;display:flex;justify-content:space-between;align-items:flex-end}
.ts-cat-card .ts-label h3{font-family:var(--ts-f-display);font-size:28px;text-transform:uppercase;letter-spacing:.02em;line-height:1;margin:0;color:#fff}
.ts-cat-card .ts-label .ts-count{font-family:var(--ts-f-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.ts-cat-card .ts-badge{position:absolute;top:14px;left:14px;background:var(--ts-red);color:#fff;padding:4px 10px;font-family:var(--ts-f-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;z-index:2}

/* ============================================================
   9. PRODUCT GRID
   ============================================================ */
.ts-prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.ts-prod{display:flex;flex-direction:column}
.ts-prod-img{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--ts-cream-2);margin-bottom:14px;display:block}
.ts-prod-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s,opacity .3s}
.ts-prod:hover .ts-prod-img img{transform:scale(1.06)}
.ts-prod-tag{position:absolute;top:12px;left:12px;background:var(--ts-ink);color:var(--ts-cream);padding:4px 10px;font-family:var(--ts-f-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;z-index:2}
.ts-prod-tag.ts-new{background:var(--ts-red)}
.ts-prod-tag.ts-hot{background:var(--ts-gold);color:var(--ts-ink)}
.ts-prod-tag.ts-sale{background:var(--ts-red)}
.ts-prod-wish{position:absolute;top:12px;right:12px;width:36px;height:36px;background:rgba(255,255,255,.95);display:grid;place-items:center;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;z-index:3}
.ts-prod:hover .ts-prod-wish{opacity:1;transform:translateY(0)}
.ts-prod-quick{position:absolute;bottom:0;left:0;right:0;background:var(--ts-ink);color:var(--ts-cream);text-align:center;padding:14px;font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;transform:translateY(100%);transition:transform .3s;display:block;cursor:pointer}
.ts-prod:hover .ts-prod-quick{transform:translateY(0)}
.ts-prod-name{font-weight:500;font-size:14px;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts-prod-name a{color:var(--ts-ink)}
.ts-prod-meta{display:flex;justify-content:space-between;align-items:center}
.ts-prod-price{font-family:var(--ts-f-mono);font-weight:700;font-size:14px;color:var(--ts-ink)}
.ts-prod-price del{color:var(--ts-grey);font-weight:400;margin-right:6px}
.ts-prod-price ins{text-decoration:none;color:var(--ts-red)}
.ts-prod-rating{font-family:var(--ts-f-mono);font-size:11px;color:var(--ts-grey)}
.ts-prod-rating::before{content:"★";color:var(--ts-gold);margin-right:4px}

/* ============================================================
   10. DROP BANNER
   ============================================================ */
.ts-drop-banner{background:var(--ts-red);color:#fff;padding:60px 0;position:relative;overflow:hidden}
.ts-drop-banner::before{
  content:"FRIDAY FRIDAY FRIDAY FRIDAY FRIDAY FRIDAY FRIDAY FRIDAY";
  position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);
  font-family:var(--ts-f-display);
  font-size:clamp(80px,16vw,240px);
  white-space:nowrap;opacity:.08;letter-spacing:.05em;pointer-events:none;
}
.ts-drop-banner .ts-wrap{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2;gap:40px;flex-wrap:wrap}
.ts-drop-banner h2{font-family:var(--ts-f-display);font-size:clamp(42px,5vw,72px);text-transform:uppercase;line-height:1;letter-spacing:.01em;margin:0;color:#fff}
.ts-drop-banner p{font-family:var(--ts-f-mono);font-size:13px;letter-spacing:.15em;text-transform:uppercase;margin:8px 0 0;color:#fff}
.ts-drop-banner .ts-btn{border-color:#fff;color:#fff}
.ts-drop-banner .ts-btn:hover{background:#fff;color:var(--ts-red)}

/* ============================================================
   11. DUAL CARDS
   ============================================================ */
.ts-dual{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ts-dual-card{position:relative;aspect-ratio:4/5;overflow:hidden;color:#fff;cursor:pointer;display:block}
.ts-dual-card .ts-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s}
.ts-dual-card:hover .ts-bg{transform:scale(1.05)}
.ts-dual-card::after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,rgba(0,0,0,.6),transparent 60%)}
.ts-dual-card .ts-content{position:absolute;left:36px;bottom:36px;z-index:2}
.ts-dual-card .ts-eyebrow{color:var(--ts-gold);margin-bottom:6px}
.ts-dual-card h3{font-family:var(--ts-f-display);font-size:clamp(36px,4vw,56px);text-transform:uppercase;line-height:.95;margin:0 0 18px;max-width:380px;color:#fff}
.ts-dual-card .ts-btn{border-color:#fff;color:#fff;padding:12px 22px;font-size:11px}
.ts-dual-card .ts-btn:hover{background:#fff;color:var(--ts-ink)}

/* ============================================================
   12. TESTIMONIALS
   ============================================================ */
.ts-testi{background:var(--ts-ink);color:var(--ts-cream);padding:90px 0}
.ts-testi .ts-section-head{border-color:var(--ts-cream)}
.ts-testi .ts-section-title{color:var(--ts-cream)}
.ts-testi .ts-eyebrow{color:var(--ts-gold)}
.ts-testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ts-testi-card{border:1px solid #2a2a2a;padding:36px;position:relative;transition:background .3s,border-color .3s}
.ts-testi-card:hover{background:var(--ts-ink-soft);border-color:var(--ts-red)}
.ts-testi-card::before{content:"\201C";position:absolute;top:10px;left:24px;font-family:var(--ts-f-display);font-size:80px;color:var(--ts-red);line-height:1}
.ts-testi-card p{margin:48px 0 24px;font-size:15px;line-height:1.65;color:#d1cbb9}
.ts-testi-card .ts-who{display:flex;align-items:center;gap:14px}
.ts-testi-card .ts-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--ts-red),var(--ts-gold));display:grid;place-items:center;font-family:var(--ts-f-display);font-size:18px;color:#fff}
.ts-testi-card .ts-name{font-family:var(--ts-f-mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase}
.ts-testi-card .ts-name span{display:block;color:var(--ts-grey);font-size:10px;margin-top:2px}

/* ============================================================
   13. NEWSLETTER
   ============================================================ */
.ts-news{background:var(--ts-cream-2);padding:90px 0;text-align:center}
.ts-news h2{font-family:var(--ts-f-display);font-size:clamp(40px,5vw,68px);text-transform:uppercase;line-height:1;margin:0 0 18px;color:var(--ts-ink)}
.ts-news h2 .ts-accent{color:var(--ts-red)}
.ts-news p{max-width:480px;margin:0 auto 32px;color:#5a5448}
.ts-news-form{display:flex;max-width:520px;margin:0 auto;border:2px solid var(--ts-ink)}
.ts-news-form input{flex:1;padding:18px 20px;border:none;background:transparent;font-family:var(--ts-f-mono);font-size:13px;letter-spacing:.05em;outline:none}
.ts-news-form button{background:var(--ts-ink);color:var(--ts-cream);padding:0 28px;font-family:var(--ts-f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:background .2s;border:none;cursor:pointer}
.ts-news-form button:hover{background:var(--ts-red)}

/* ============================================================
   14. FOOTER
   ============================================================ */
.ts-footer{background:var(--ts-ink);color:var(--ts-cream);padding:72px 0 24px}
.ts-foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.ts-foot-brand .ts-logo{color:var(--ts-cream);margin-bottom:18px}
.ts-foot-brand .ts-logo-text{color:var(--ts-cream)}
.ts-foot-brand .ts-logo-img{filter:invert(1) hue-rotate(180deg) contrast(1.05);mix-blend-mode:screen}
.ts-foot-brand p{color:#a5a092;font-size:14px;line-height:1.7;max-width:300px;margin-bottom:20px}
.ts-socials{display:flex;gap:10px}
.ts-socials a{width:36px;height:36px;border:1px solid #2a2a2a;display:grid;place-items:center;transition:all .2s;color:var(--ts-cream)}
.ts-socials a:hover{background:var(--ts-red);border-color:var(--ts-red)}
.ts-socials svg{width:16px;height:16px;fill:currentColor}
.ts-foot-col h4{font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--ts-gold);margin:0 0 20px}
.ts-foot-col ul{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0;padding:0}
.ts-foot-col a{font-size:14px;color:#c8c0b3;transition:color .2s,padding-left .2s;display:inline-block}
.ts-foot-col a:hover{color:var(--ts-cream);padding-left:6px}
.ts-foot-bot{border-top:1px solid #2a2a2a;padding-top:24px;display:flex;justify-content:space-between;align-items:center;font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#a5a092;flex-wrap:wrap;gap:16px}
.ts-pay-icons{display:flex;gap:8px;align-items:center}
.ts-pay-icons span{background:#1a1a1a;color:var(--ts-cream);padding:6px 10px;font-size:10px;letter-spacing:.1em}

/* ============================================================
   15. CONTENT PAGES (single, page, archive, search, 404)
   ============================================================ */
.ts-page-wrap{max-width:var(--ts-maxw);margin:0 auto;padding:60px 24px;min-height:50vh}
.ts-page-title{font-family:var(--ts-f-display);font-size:clamp(40px,6vw,80px);text-transform:uppercase;line-height:.95;margin-bottom:32px;color:var(--ts-ink)}
.ts-page-content{font-size:16px;line-height:1.7;max-width:780px}
.ts-page-content h2{font-family:var(--ts-f-display);font-size:36px;text-transform:uppercase;margin:32px 0 16px}
.ts-page-content h3{font-family:var(--ts-f-display);font-size:28px;text-transform:uppercase;margin:24px 0 12px}
.ts-page-content a{color:var(--ts-red);border-bottom:1px solid var(--ts-red)}
.ts-page-content a:hover{color:var(--ts-ink);border-color:var(--ts-ink)}
.ts-page-content img{margin:24px 0}
.ts-page-content blockquote{border-left:4px solid var(--ts-red);padding-left:24px;margin:24px 0;font-style:italic;font-size:18px;color:var(--ts-ink-soft)}

.ts-post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.ts-post-card{background:#fff;border:1px solid var(--ts-grey-line);transition:transform .25s,border-color .25s}
.ts-post-card:hover{transform:translateY(-4px);border-color:var(--ts-ink)}
.ts-post-card .ts-thumb{aspect-ratio:16/10;background:var(--ts-cream-2);overflow:hidden}
.ts-post-card .ts-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ts-post-card:hover .ts-thumb img{transform:scale(1.05)}
.ts-post-card .ts-post-body{padding:24px}
.ts-post-card h3{font-family:var(--ts-f-display);font-size:22px;text-transform:uppercase;line-height:1.1;margin-bottom:10px}
.ts-post-card .ts-post-meta{font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ts-grey);margin-bottom:12px}
.ts-post-card p{font-size:14px;color:var(--ts-ink-soft);line-height:1.6}

.ts-breadcrumbs{font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ts-grey);margin-bottom:32px}
.ts-breadcrumbs a{color:var(--ts-ink);transition:color .2s}
.ts-breadcrumbs a:hover{color:var(--ts-red)}
.ts-breadcrumbs .ts-bc-sep{margin:0 8px;color:var(--ts-grey-line)}
.ts-breadcrumbs [aria-current="page"]{color:var(--ts-grey)}

.ts-search-form{display:flex;max-width:600px;border:2px solid var(--ts-ink);margin:0 auto 48px}
.ts-search-form input{flex:1;padding:14px 18px;border:none;background:transparent;font-family:var(--ts-f-mono);outline:none}
.ts-search-form button{background:var(--ts-ink);color:var(--ts-cream);padding:0 24px;font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:none;cursor:pointer}
.ts-search-form button:hover{background:var(--ts-red)}

.ts-404{text-align:center;padding:120px 24px;min-height:60vh}
.ts-404 .ts-big{font-family:var(--ts-f-display);font-size:clamp(120px,20vw,280px);line-height:1;color:var(--ts-red);margin:0}
.ts-404 h1{font-family:var(--ts-f-display);font-size:48px;text-transform:uppercase;margin:24px 0 16px}
.ts-404 p{max-width:500px;margin:0 auto 32px;color:var(--ts-ink-soft)}

/* ============================================================
   16. WOOCOMMERCE COMPATIBILITY
   ============================================================ */
.woocommerce ul.products li.product .button{background:var(--ts-ink) !important;color:#fff !important;border-radius:0 !important;font-family:var(--ts-f-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;padding:12px 18px !important}
.woocommerce ul.products li.product .button:hover{background:var(--ts-red) !important}
.woocommerce ul.products li.product .price{font-family:var(--ts-f-mono) !important;font-weight:700 !important;color:var(--ts-ink) !important}
.woocommerce ul.products li.product .price ins{color:var(--ts-red) !important;text-decoration:none}
.woocommerce ul.products li.product h2.woocommerce-loop-product__title{font-family:var(--ts-f-body) !important;font-size:14px !important;font-weight:500 !important;text-transform:none !important}
.woocommerce span.onsale{background:var(--ts-red) !important;border-radius:0 !important;font-family:var(--ts-f-mono);font-size:10px;letter-spacing:.15em}

/* ============================================================
   17. RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .ts-cat-grid{grid-template-columns:repeat(3,1fr)}
  .ts-prod-grid{grid-template-columns:repeat(3,1fr)}
  .ts-foot-grid{grid-template-columns:1fr 1fr;gap:36px}
  .ts-main-nav{gap:24px}
  .ts-main-nav a{font-size:11px}
  .ts-post-list{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .ts-main-nav{display:none}
  .ts-menu-btn{display:grid;place-items:center;width:32px;height:32px;color:var(--ts-ink)}
  .ts-menu-btn svg{width:24px;height:24px;stroke:currentColor;stroke-width:2;fill:none}
  .ts-hero-grid{grid-template-columns:1fr;gap:40px;padding:60px 0}
  .ts-hero-visual{height:420px;order:-1}
  .ts-trust-grid{grid-template-columns:1fr 1fr}
  .ts-trust-cell:nth-child(2){border-right:none}
  .ts-trust-cell:nth-child(-n+2){border-bottom:1px solid #2a2a2a}
  .ts-cat-grid{grid-template-columns:repeat(2,1fr)}
  .ts-prod-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .ts-dual{grid-template-columns:1fr}
  .ts-testi-grid{grid-template-columns:1fr}
  .ts-foot-grid{grid-template-columns:1fr}
  .ts-section{padding:60px 0}
  .ts-section-head{flex-direction:column;align-items:flex-start;gap:16px}
  .ts-news-form{flex-direction:column;border:none}
  .ts-news-form input{border:2px solid var(--ts-ink);margin-bottom:10px}
  .ts-news-form button{padding:16px;border:2px solid var(--ts-ink)}
  .ts-cart-pill .ts-label-text{display:none}
  .ts-logo{font-size:24px}
  .ts-logo-img{height:38px}
  .ts-post-list{grid-template-columns:1fr}
}

/* ============================================================
   18. SCROLL ANIMATIONS
   ============================================================ */
.ts-fade-up{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.2,.7,.2,1)}
.ts-fade-up.ts-in{opacity:1;transform:translateY(0)}

/* ============================================================
   19. ELEMENTOR COMPATIBILITY HELPERS
   ============================================================ */
/* Hide WP admin bar offset on canvas templates */
body.elementor-template-canvas{margin-top:0 !important}
body.elementor-template-canvas .ts-announce,
body.elementor-template-canvas .ts-header,
body.elementor-template-canvas .ts-footer{display:none}

/* Elementor content edit width helper */
.elementor-section.elementor-section-stretched{position:relative;width:100%}
