/*
Theme Name: AccountantTermoSud
Theme URI: https://theaccountant.it
Author: The Accountant
Description: TermoSud — Design premium per grande impresa appaltatrice. Costruzioni, Impianti, Logistica, Casa & Decor.
Version: 2.0.0
Text Domain: accountant-termosud
*/

/* ── Google Fonts ─────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&display=swap');

/* ── CSS Variables ────────────────────────────────────────────────────────── */
:root {
    /* Brand colors */
    --charcoal:      #1C1917;
    --charcoal-2:    #292524;
    --charcoal-3:    #44403C;
    --gold:          #C9A96E;
    --gold-light:    #DFC08E;
    --gold-dark:     #A07840;
    --cream:         #F9F6F1;
    --cream-2:       #F0EBE3;
    --cream-border:  #E2D9CC;
    --white:         #FFFFFF;
    --text:          #1C1917;
    --text-muted:    #78716C;
    --text-light:    #A8A29E;

    /* Semantic */
    --bg:            var(--cream);
    --surface:       var(--white);
    --border:        var(--cream-border);
    --shadow:        0 1px 8px rgba(28,25,23,.07), 0 2px 20px rgba(28,25,23,.05);
    --shadow-lg:     0 8px 40px rgba(28,25,23,.15);
    --shadow-gold:   0 4px 20px rgba(201,169,110,.25);

    /* Layout */
    --max-w:         1320px;
    --radius:        6px;
    --radius-lg:     12px;
}

/* ── Reset ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 15px; line-height: 1.65; color: var(--text);
    background: var(--bg); -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; }

/* ── Layout ──────────────────────────────────────────────────────────────── */
.ts-wrap { max-width: var(--max-w); margin: 0 auto; padding: 0 32px; }
.site-content { min-height: 60vh; }

/* ── TOP BAR ─────────────────────────────────────────────────────────────── */
.ts-topbar {
    background: var(--charcoal);
    color: rgba(255,255,255,.5);
    font-size: 12px; letter-spacing: .2px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
}
.ts-topbar .ts-wrap {
    display: flex; align-items: center;
    justify-content: space-between; gap: 16px;
}
.ts-topbar-left { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.ts-topbar-right { display: flex; gap: 20px; align-items: center; }
.ts-topbar-left a,
.ts-topbar-right a { color: rgba(255,255,255,.5); transition: color .15s; }
.ts-topbar-left a:hover,
.ts-topbar-right a:hover { color: var(--gold); }
.ts-tb-item { display: flex; align-items: center; gap: 6px; }
.ts-tb-item svg { width: 13px; height: 13px; flex-shrink: 0; }
.ts-topbar-badge {
    background: var(--gold); color: var(--charcoal);
    font-size: 10px; font-weight: 700; padding: 2px 10px;
    border-radius: 2px; letter-spacing: .8px; text-transform: uppercase;
}

/* ── HEADER ──────────────────────────────────────────────────────────────── */
.site-header {
    background: var(--charcoal-2);
    position: sticky; top: 0; z-index: 500;
    border-bottom: 1px solid rgba(255,255,255,.06);
    box-shadow: 0 2px 24px rgba(0,0,0,.35);
}
.ts-header-inner {
    max-width: var(--max-w); margin: 0 auto; padding: 0 32px;
    display: flex; align-items: center; gap: 28px; height: 76px;
}

/* Brand */
.ts-brand {
    display: flex; align-items: center; gap: 14px;
    flex-shrink: 0; text-decoration: none;
}
.ts-brand-mark {
    width: 46px; height: 46px;
    background: var(--gold);
    border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ts-brand-mark svg { width: 26px; height: 26px; color: var(--charcoal); }
.ts-brand-name {
    font-family: 'Playfair Display', serif;
    font-size: 22px; font-weight: 700;
    color: var(--white); letter-spacing: -.3px; line-height: 1.1;
}
.ts-brand-sub {
    font-size: 10px; color: rgba(255,255,255,.4);
    letter-spacing: 1.8px; text-transform: uppercase; margin-top: 2px;
}

/* Nav */
.ts-nav { flex: 1; display: flex; justify-content: center; }
.ts-nav ul { display: flex; gap: 0; }
.ts-nav ul li a {
    display: block; padding: 10px 16px;
    font-size: 12px; font-weight: 600; letter-spacing: .8px;
    text-transform: uppercase; color: rgba(255,255,255,.6);
    border-radius: 4px; transition: all .18s;
    position: relative;
}
.ts-nav ul li a::after {
    content: ''; position: absolute; bottom: 4px; left: 16px; right: 16px;
    height: 1px; background: var(--gold); transform: scaleX(0);
    transition: transform .2s; transform-origin: center;
}
.ts-nav ul li a:hover { color: var(--white); }
.ts-nav ul li a:hover::after { transform: scaleX(1); }
.ts-nav ul li.current-menu-item > a { color: var(--gold); }

/* Header actions */
.ts-header-actions {
    display: flex; align-items: center; gap: 8px; flex-shrink: 0;
}
.ts-header-btn {
    display: flex; align-items: center; gap: 6px;
    color: rgba(255,255,255,.6); font-size: 12px; font-weight: 500;
    padding: 8px 10px; border-radius: 4px; transition: all .18s;
    letter-spacing: .3px;
}
.ts-header-btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.ts-header-btn:hover { color: var(--white); background: rgba(255,255,255,.07); }
.ts-header-btn.cart-btn {
    background: var(--gold); color: var(--charcoal);
    padding: 8px 16px; font-weight: 700;
    border-radius: 4px;
}
.ts-header-btn.cart-btn:hover { background: var(--gold-light); color: var(--charcoal); }

/* Search bar */
.ts-search-wrap { max-width: 340px; flex: 1; }
.ts-search-wrap .search-form {
    display: flex; align-items: center;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 4px; padding: 0 12px; gap: 8px;
    transition: border-color .18s;
}
.ts-search-wrap .search-form:focus-within {
    border-color: var(--gold);
}
.ts-search-wrap .search-field {
    flex: 1; background: transparent; border: none; outline: none;
    padding: 9px 0; font-size: 13px; color: var(--white); font-family: inherit;
}
.ts-search-wrap .search-field::placeholder { color: rgba(255,255,255,.35); }
.ts-search-wrap .search-submit {
    background: none; border: none; color: rgba(255,255,255,.4);
    cursor: pointer; padding: 0; display: flex; transition: color .15s;
}
.ts-search-wrap .search-submit:hover { color: var(--gold); }
.ts-search-wrap .search-submit svg { width: 15px; height: 15px; }

/* ── HERO ─────────────────────────────────────────────────────────────────── */
.ts-hero {
    background: var(--charcoal);
    position: relative; overflow: hidden;
    padding: 100px 0 88px;
}

/* Architectural grid pattern */
.ts-hero::before {
    content: '';
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(201,169,110,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,169,110,.04) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
}
/* Gold corner accent */
.ts-hero::after {
    content: '';
    position: absolute; top: 0; right: 0;
    width: 520px; height: 520px;
    background: radial-gradient(ellipse at top right, rgba(201,169,110,.12) 0%, transparent 65%);
    pointer-events: none;
}

.ts-hero-inner {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 1fr 420px; gap: 64px; align-items: center;
}

/* Hero content */
.ts-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    color: var(--gold); font-size: 11px; font-weight: 600;
    letter-spacing: 2px; text-transform: uppercase;
    margin-bottom: 24px;
}
.ts-hero-eyebrow::before {
    content: ''; width: 32px; height: 1px; background: var(--gold);
}
.ts-hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: 60px; font-weight: 700; line-height: 1.06;
    letter-spacing: -1px; color: var(--white);
    margin-bottom: 24px;
}
.ts-hero h1 em {
    font-style: italic; color: var(--gold);
    font-weight: 400;
}
.ts-hero-desc {
    font-size: 16px; color: rgba(255,255,255,.55);
    line-height: 1.75; max-width: 520px; margin-bottom: 40px;
}
.ts-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* Buttons */
.ts-btn-gold {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--gold); color: var(--charcoal);
    padding: 14px 30px; border-radius: var(--radius);
    font-weight: 700; font-size: 14px; letter-spacing: .3px;
    border: none; transition: all .2s;
    box-shadow: 0 4px 16px rgba(201,169,110,.35);
}
.ts-btn-gold:hover {
    background: var(--gold-light); transform: translateY(-1px);
    box-shadow: 0 6px 24px rgba(201,169,110,.45); color: var(--charcoal);
}
.ts-btn-ghost {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.8);
    padding: 13px 28px; border-radius: var(--radius);
    font-weight: 500; font-size: 14px;
    transition: all .2s;
}
.ts-btn-ghost:hover {
    border-color: var(--gold); color: var(--gold);
}
.ts-btn-outline-dark {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1px solid var(--cream-border); color: var(--text);
    padding: 12px 24px; border-radius: var(--radius);
    font-weight: 500; font-size: 14px; transition: all .2s;
    background: var(--white);
}
.ts-btn-outline-dark:hover {
    border-color: var(--gold); color: var(--gold-dark);
}
.ts-btn-dark {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--charcoal); color: var(--white);
    padding: 13px 28px; border-radius: var(--radius);
    font-weight: 600; font-size: 14px; transition: all .2s;
}
.ts-btn-dark:hover { background: var(--charcoal-3); color: var(--gold); }

/* Hero stats panel */
.ts-hero-panel {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(201,169,110,.18);
    border-radius: var(--radius-lg);
    padding: 32px;
    backdrop-filter: blur(8px);
}
.ts-hero-panel-title {
    font-size: 10px; font-weight: 700; letter-spacing: 2px;
    text-transform: uppercase; color: var(--gold);
    margin-bottom: 24px; padding-bottom: 16px;
    border-bottom: 1px solid rgba(201,169,110,.15);
}
.ts-stat-row {
    display: flex; align-items: center; gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
}
.ts-stat-row:last-child { border-bottom: none; padding-bottom: 0; }
.ts-stat-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(201,169,110,.12);
    border-radius: var(--radius);
    display: flex; align-items: center; justify-content: center;
}
.ts-stat-icon svg { width: 20px; height: 20px; color: var(--gold); }
.ts-stat-num {
    font-family: 'Playfair Display', serif;
    font-size: 26px; font-weight: 700; color: var(--white);
    line-height: 1;
}
.ts-stat-lbl { font-size: 11px; color: rgba(255,255,255,.45); margin-top: 2px; letter-spacing: .2px; }

/* ── TRUST BAR ────────────────────────────────────────────────────────────── */
.ts-trustbar {
    background: var(--charcoal-2);
    border-bottom: 1px solid rgba(255,255,255,.06);
    padding: 14px 0;
    overflow: hidden;
}
.ts-trustbar-inner {
    display: flex; align-items: center; gap: 0;
    justify-content: space-around; flex-wrap: wrap;
}
.ts-trust-item {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 20px;
    color: rgba(255,255,255,.45); font-size: 12px; font-weight: 500;
    letter-spacing: .3px; white-space: nowrap;
    border-right: 1px solid rgba(255,255,255,.07);
    transition: color .18s;
}
.ts-trust-item:last-child { border-right: none; }
.ts-trust-item:hover { color: var(--gold); }
.ts-trust-item svg { width: 14px; height: 14px; color: var(--gold); flex-shrink: 0; }

/* ── SECTION COMMON ────────────────────────────────────────────────────────── */
.ts-section { padding: 80px 0; }
.ts-section-sm { padding: 56px 0; }
.ts-section-header { margin-bottom: 52px; }
.ts-section-header.centered { text-align: center; }
.ts-eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 11px; font-weight: 700; letter-spacing: 2px;
    text-transform: uppercase; color: var(--gold);
    margin-bottom: 12px;
}
.ts-eyebrow::before {
    content: ''; width: 24px; height: 1px; background: var(--gold);
}
.ts-eyebrow.centered::before { display: none; }
.ts-eyebrow.centered::after { content: ''; width: 24px; height: 1px; background: var(--gold); }
.ts-section-title {
    font-family: 'Playfair Display', serif;
    font-size: 38px; font-weight: 700; line-height: 1.15;
    color: var(--text); letter-spacing: -.5px;
}
.ts-section-title em { font-style: italic; color: var(--gold-dark); }
.ts-section-title.light { color: var(--white); }
.ts-section-sub {
    font-size: 16px; color: var(--text-muted);
    line-height: 1.7; margin-top: 12px; max-width: 580px;
}
.ts-section-sub.light { color: rgba(255,255,255,.5); }
.ts-section-sub.wide { max-width: 720px; }

/* ── SERVICES ─────────────────────────────────────────────────────────────── */
.ts-services-bg { background: var(--white); }

.ts-services-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
    background: var(--border);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.ts-service-card {
    background: var(--white);
    padding: 36px 32px;
    transition: all .22s;
    position: relative;
    cursor: default;
}
.ts-service-card::before {
    content: ''; position: absolute;
    left: 0; top: 0; bottom: 0; width: 3px;
    background: var(--gold); transform: scaleY(0);
    transition: transform .22s; transform-origin: bottom;
}
.ts-service-card:hover { background: var(--cream); }
.ts-service-card:hover::before { transform: scaleY(1); }
.ts-service-icon {
    width: 54px; height: 54px;
    background: var(--charcoal);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 20px; transition: background .22s;
}
.ts-service-icon svg { width: 26px; height: 26px; color: var(--gold); }
.ts-service-card:hover .ts-service-icon { background: var(--gold); }
.ts-service-card:hover .ts-service-icon svg { color: var(--charcoal); }
.ts-service-title {
    font-family: 'Playfair Display', serif;
    font-size: 18px; font-weight: 600; color: var(--text);
    margin-bottom: 10px; line-height: 1.3;
}
.ts-service-desc { font-size: 13px; color: var(--text-muted); line-height: 1.65; }
.ts-service-ateco {
    display: inline-block; margin-top: 16px;
    font-size: 10px; font-weight: 700; letter-spacing: .8px;
    text-transform: uppercase; color: var(--gold-dark);
    border-bottom: 1px solid var(--gold);
    padding-bottom: 1px;
}

/* ── PROJECT GALLERY ─────────────────────────────────────────────────────── */
.ts-projects-bg { background: var(--charcoal); }

.ts-projects-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    margin-top: 48px;
}
.ts-project-card {
    position: relative; overflow: hidden;
    aspect-ratio: 4/3;
    cursor: pointer;
}
.ts-project-card .ts-project-img {
    width: 100%; height: 100%;
    background-size: cover; background-position: center;
    transition: transform .6s cubic-bezier(.25,.46,.45,.94);
}
.ts-project-card:hover .ts-project-img { transform: scale(1.06); }

/* Project card fallback gradients (used only when inline background-image fails) */
.ts-project-card:nth-child(1) .ts-project-img:not([style]) {
    background: linear-gradient(160deg, #2c1f0e 0%, #5c3a1a 40%, #3d2810 100%);
}
.ts-project-card:nth-child(2) .ts-project-img:not([style]) {
    background: linear-gradient(160deg, #0e1a2c 0%, #1a3050 40%, #0e2040 100%);
}
.ts-project-card:nth-child(3) .ts-project-img:not([style]) {
    background: linear-gradient(160deg, #1a1a1a 0%, #3a2f22 40%, #2a1f12 100%);
}
.ts-project-card:nth-child(4) .ts-project-img:not([style]) {
    background: linear-gradient(160deg, #1a1008 0%, #4a3418 40%, #2a1e0a 100%);
}
.ts-project-card:nth-child(5) .ts-project-img:not([style]) {
    background: linear-gradient(160deg, #0c1c1a 0%, #163328 40%, #0c2018 100%);
}
.ts-project-card:nth-child(6) .ts-project-img:not([style]) {
    background: linear-gradient(160deg, #1a100a 0%, #3c2814 40%, #2a1a0c 100%);
}

/* Architectural line overlay */
.ts-project-card .ts-project-img::after {
    content: '';
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(201,169,110,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,169,110,.06) 1px, transparent 1px);
    background-size: 40px 40px;
}

.ts-project-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(28,25,23,.9) 0%, rgba(28,25,23,.2) 55%, transparent 100%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 28px;
    transition: background .3s;
}
.ts-project-card:hover .ts-project-overlay {
    background: linear-gradient(to top, rgba(28,25,23,.95) 0%, rgba(28,25,23,.4) 60%, rgba(201,169,110,.1) 100%);
}
.ts-project-cat {
    font-size: 10px; font-weight: 700; letter-spacing: 2px;
    text-transform: uppercase; color: var(--gold);
    margin-bottom: 6px; opacity: 0;
    transform: translateY(8px);
    transition: all .3s .05s;
}
.ts-project-card:hover .ts-project-cat { opacity: 1; transform: translateY(0); }
.ts-project-name {
    font-family: 'Playfair Display', serif;
    font-size: 20px; font-weight: 600; color: var(--white);
    line-height: 1.25;
}
.ts-project-detail {
    font-size: 12px; color: rgba(255,255,255,.55);
    margin-top: 6px; opacity: 0;
    transform: translateY(6px);
    transition: all .3s .1s;
}
.ts-project-card:hover .ts-project-detail { opacity: 1; transform: translateY(0); }

/* Projects CTA bar */
.ts-projects-cta {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 40px; padding-top: 32px;
    border-top: 1px solid rgba(255,255,255,.08);
}
.ts-projects-cta p {
    font-size: 14px; color: rgba(255,255,255,.45);
}

/* ── CATEGORIES ───────────────────────────────────────────────────────────── */
.ts-categories-bg { background: var(--cream-2); }

.ts-cat-scroll {
    display: flex; gap: 10px; overflow-x: auto;
    padding-bottom: 4px; margin-bottom: 36px;
    scrollbar-width: none;
}
.ts-cat-scroll::-webkit-scrollbar { display: none; }
.ts-cat-pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 16px; border-radius: 100px;
    font-size: 12px; font-weight: 600; letter-spacing: .3px;
    white-space: nowrap; cursor: pointer; transition: all .18s;
    border: 1px solid var(--border);
    background: var(--white); color: var(--text-muted);
    text-decoration: none;
}
.ts-cat-pill:hover,
.ts-cat-pill.active {
    background: var(--charcoal); color: var(--white);
    border-color: var(--charcoal);
}
.ts-cat-pill .count {
    background: var(--cream-2); color: var(--text-muted);
    font-size: 10px; padding: 1px 6px; border-radius: 10px;
    transition: all .18s;
}
.ts-cat-pill:hover .count,
.ts-cat-pill.active .count {
    background: rgba(255,255,255,.15); color: rgba(255,255,255,.7);
}

/* Category grid (top categories) */
.ts-cat-grid {
    display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
    margin-bottom: 48px;
}
.ts-cat-tile {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px 14px;
    text-align: center; transition: all .2s;
    text-decoration: none; display: block;
}
.ts-cat-tile:hover {
    border-color: var(--gold);
    box-shadow: var(--shadow-gold);
    transform: translateY(-2px);
}
.ts-cat-tile-icon {
    width: 44px; height: 44px; margin: 0 auto 10px;
    background: var(--cream-2); border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s;
}
.ts-cat-tile-icon svg { width: 22px; height: 22px; color: var(--charcoal-3); transition: color .2s; }
.ts-cat-tile:hover .ts-cat-tile-icon { background: var(--charcoal); }
.ts-cat-tile:hover .ts-cat-tile-icon svg { color: var(--gold); }
.ts-cat-tile-name {
    font-size: 11px; font-weight: 600; color: var(--text);
    line-height: 1.3; letter-spacing: .1px;
}
.ts-cat-tile-count {
    font-size: 10px; color: var(--text-light); margin-top: 4px;
}

/* ── PRODUCTS GRID ────────────────────────────────────────────────────────── */
.ts-products-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 24px;
}
.ts-products-count { font-size: 13px; color: var(--text-muted); }

/* WooCommerce product grid override */
.woocommerce .products,
.woocommerce-page .products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 18px !important;
    list-style: none !important;
    margin: 0 !important; padding: 0 !important;
    float: none !important; clear: both !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: var(--white) !important;
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border) !important;
    overflow: hidden !important;
    box-shadow: var(--shadow) !important;
    transition: all .22s !important;
    display: flex !important; flex-direction: column !important;
    padding: 0 !important; margin: 0 !important;
    float: none !important; width: auto !important;
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    box-shadow: var(--shadow-lg) !important;
    transform: translateY(-3px) !important;
    border-color: var(--gold) !important;
}

/* Product image */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product .woocommerce-LoopProduct-link {
    flex: 1; display: flex; flex-direction: column;
}
.woocommerce ul.products li.product a:first-child img,
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img {
    width: 100% !important; height: 200px !important;
    object-fit: contain !important; object-position: center !important;
    background: var(--cream) !important;
    padding: 20px !important;
    border-bottom: 1px solid var(--border) !important;
    margin: 0 !important;
    transition: transform .3s !important;
}
.woocommerce ul.products li.product:hover img,
.woocommerce-page ul.products li.product:hover img {
    transform: scale(1.04) !important;
}

/* Sale badge */
.woocommerce ul.products li.product .onsale,
.woocommerce-page ul.products li.product .onsale {
    background: var(--gold) !important; color: var(--charcoal) !important;
    font-size: 9px !important; font-weight: 800 !important;
    padding: 3px 9px !important; border-radius: 2px !important;
    letter-spacing: .8px !important; text-transform: uppercase !important;
    top: 12px !important; left: 12px !important; right: auto !important;
    min-height: auto !important; min-width: auto !important; line-height: 1.5 !important;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce-page ul.products li.product h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important; font-weight: 600 !important;
    color: var(--text) !important;
    padding: 14px 16px 4px !important; margin: 0 !important;
    line-height: 1.45 !important;
    display: -webkit-box !important; -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important; overflow: hidden !important;
    min-height: 46px !important;
}

/* Price */
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
    padding: 2px 16px 10px !important;
    font-size: 15px !important; font-weight: 700 !important;
    color: var(--text) !important; display: block !important;
}
.woocommerce ul.products li.product .price ins,
.woocommerce-page ul.products li.product .price ins {
    text-decoration: none !important; color: var(--gold-dark) !important;
}
.woocommerce ul.products li.product .price del,
.woocommerce-page ul.products li.product .price del {
    color: var(--text-light) !important;
    font-size: 11px !important; font-weight: 400 !important;
    margin-right: 4px !important;
}

/* Add to cart button */
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce-page ul.products li.product a.button {
    display: block !important;
    width: calc(100% - 32px) !important;
    margin: 2px 16px 16px !important;
    padding: 9px 12px !important;
    background: var(--charcoal) !important;
    color: #fff !important; border: none !important;
    border-radius: var(--radius) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important; font-weight: 700 !important;
    text-align: center !important; cursor: pointer !important;
    transition: all .18s !important;
    text-transform: uppercase !important; letter-spacing: .8px !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover,
.woocommerce-page ul.products li.product a.button:hover {
    background: var(--gold) !important; color: var(--charcoal) !important;
}

/* WooCommerce shop page layout */
.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
    margin-bottom: 24px;
}
.woocommerce-products-header__title,
h1.page-title {
    font-family: 'Playfair Display', serif !important;
    font-size: 32px !important; font-weight: 700 !important;
    color: var(--text) !important; margin-bottom: 4px !important;
    letter-spacing: -.3px !important;
}
.woocommerce-result-count { font-size: 13px; color: var(--text-muted); }
.woocommerce-ordering select {
    border: 1px solid var(--border); border-radius: 4px;
    padding: 7px 12px; font-size: 13px; font-family: 'Inter', sans-serif;
    background: var(--white); color: var(--text); cursor: pointer;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
    display: flex; gap: 6px; list-style: none; padding: 0;
    margin: 48px 0; justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: var(--radius);
    border: 1px solid var(--border); font-size: 14px;
    background: var(--white); transition: all .15s; color: var(--text);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
    border-color: var(--gold); color: var(--gold-dark);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--charcoal); border-color: var(--charcoal);
    color: var(--white);
}

/* Single product */
.woocommerce div.product {
    background: var(--white); border-radius: var(--radius-lg);
    padding: 40px; box-shadow: var(--shadow); margin: 32px 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 56px;
}
.woocommerce div.product .product_title {
    font-family: 'Playfair Display', serif !important;
    font-size: 28px !important; font-weight: 700 !important;
    color: var(--text) !important; margin-bottom: 16px !important;
    line-height: 1.2 !important; letter-spacing: -.3px !important;
}
.woocommerce div.product p.price {
    font-size: 28px; font-weight: 700; color: var(--gold-dark);
    margin-bottom: 20px;
}
.woocommerce div.product .cart .single_add_to_cart_button {
    background: var(--charcoal) !important; color: #fff !important;
    border: none; padding: 14px 32px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important; font-weight: 700 !important;
    border-radius: var(--radius) !important; cursor: pointer;
    transition: all .18s; text-transform: uppercase !important;
    letter-spacing: .8px !important;
}
.woocommerce div.product .cart .single_add_to_cart_button:hover {
    background: var(--gold) !important; color: var(--charcoal) !important;
}

/* Breadcrumb */
.ts-breadcrumb {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    padding: 10px 0; font-size: 12px; color: var(--text-muted);
}
.ts-breadcrumb .ts-wrap { display: flex; align-items: center; gap: 6px; }
.ts-breadcrumb a { color: var(--text-muted); transition: color .15s; }
.ts-breadcrumb a:hover { color: var(--gold-dark); }
.ts-breadcrumb span { color: var(--text-light); }

/* ── WHY TERMOSUD ────────────────────────────────────────────────────────── */
.ts-why-bg { background: var(--white); }

.ts-why-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
    margin-top: 48px;
}
.ts-why-item {
    padding: 32px 24px;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    transition: all .22s;
}
.ts-why-item:hover {
    border-color: var(--gold);
    box-shadow: var(--shadow-gold);
    transform: translateY(-2px);
}
.ts-why-num {
    font-family: 'Playfair Display', serif;
    font-size: 44px; font-weight: 700;
    color: var(--cream-border); line-height: 1;
    margin-bottom: 12px;
    transition: color .22s;
}
.ts-why-item:hover .ts-why-num { color: var(--gold-light); }
.ts-why-title {
    font-family: 'Playfair Display', serif;
    font-size: 17px; font-weight: 600; color: var(--text);
    margin-bottom: 8px; line-height: 1.3;
}
.ts-why-desc { font-size: 13px; color: var(--text-muted); line-height: 1.65; }

/* ── CTA BANNER ──────────────────────────────────────────────────────────── */
.ts-cta-banner {
    background: var(--charcoal);
    padding: 64px 0;
    position: relative; overflow: hidden;
}
.ts-cta-banner::before {
    content: ''; position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(201,169,110,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,169,110,.05) 1px, transparent 1px);
    background-size: 48px 48px;
}
.ts-cta-inner {
    position: relative; z-index: 1;
    display: flex; align-items: center; justify-content: space-between; gap: 40px;
}
.ts-cta-text h2 {
    font-family: 'Playfair Display', serif;
    font-size: 34px; font-weight: 700; color: var(--white);
    line-height: 1.15; margin-bottom: 10px; letter-spacing: -.3px;
}
.ts-cta-text h2 em { font-style: italic; color: var(--gold); }
.ts-cta-text p { font-size: 15px; color: rgba(255,255,255,.5); }
.ts-cta-actions { display: flex; gap: 12px; flex-shrink: 0; }

/* ── CERTIFICATIONS FOOTER STRIP ─────────────────────────────────────────── */
.ts-certif-strip {
    background: var(--cream-2);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 18px 0;
}
.ts-certif-strip-inner {
    display: flex; align-items: center; justify-content: space-around;
    gap: 16px; flex-wrap: wrap;
}
.ts-certif-badge {
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; font-weight: 600; color: var(--charcoal-3);
    padding: 6px 16px;
}
.ts-certif-badge svg { width: 16px; height: 16px; color: var(--gold-dark); flex-shrink: 0; }

/* ── FOOTER ──────────────────────────────────────────────────────────────── */
.site-footer {
    background: var(--charcoal);
    color: rgba(255,255,255,.5);
    padding: 64px 0 0;
}
.ts-footer-grid {
    display: grid; grid-template-columns: 2.2fr 1fr 1fr 1.2fr; gap: 40px;
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}

/* Footer brand */
.ts-footer-logo {
    display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
}
.ts-footer-logo-mark {
    width: 42px; height: 42px; background: var(--gold);
    border-radius: 4px; display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ts-footer-logo-mark svg { width: 24px; height: 24px; color: var(--charcoal); }
.ts-footer-logo-name {
    font-family: 'Playfair Display', serif;
    font-size: 20px; font-weight: 700; color: var(--white);
}
.ts-footer-desc {
    font-size: 13px; line-height: 1.7; max-width: 300px;
    color: rgba(255,255,255,.4);
}
.ts-footer-ateco {
    margin-top: 16px; font-size: 10px;
    color: rgba(201,169,110,.6); letter-spacing: .5px;
}

/* Footer columns */
.ts-footer-col h5 {
    font-size: 10px; font-weight: 700; color: var(--white);
    text-transform: uppercase; letter-spacing: 2px; margin-bottom: 16px;
    padding-bottom: 12px; border-bottom: 1px solid rgba(201,169,110,.2);
}
.ts-footer-col ul li { margin-bottom: 10px; }
.ts-footer-col ul li a {
    font-size: 13px; color: rgba(255,255,255,.45);
    transition: color .15s; display: flex; align-items: center; gap: 6px;
}
.ts-footer-col ul li a:hover { color: var(--gold); }
.ts-footer-col ul li a svg { width: 12px; height: 12px; color: var(--gold); flex-shrink: 0; opacity: .7; }

/* Contact items */
.ts-footer-contact-item {
    display: flex; align-items: flex-start; gap: 10px;
    margin-bottom: 12px; font-size: 13px; color: rgba(255,255,255,.45);
}
.ts-footer-contact-item svg { width: 14px; height: 14px; color: var(--gold); flex-shrink: 0; margin-top: 2px; }
.ts-footer-contact-item a { color: rgba(255,255,255,.45); transition: color .15s; }
.ts-footer-contact-item a:hover { color: var(--gold); }

/* Footer bottom */
.ts-footer-bottom {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 0; font-size: 11px; color: rgba(255,255,255,.25);
    flex-wrap: wrap; gap: 8px;
}
.ts-footer-bottom span.accent { color: var(--gold); }

/* ── SHOP PAGE WRAPPER ───────────────────────────────────────────────────── */
.ts-shop-page-wrap {
    background: var(--cream);
    padding: 40px 0 64px;
}
.ts-shop-page-wrap .ts-wrap {
    display: grid; grid-template-columns: 1fr; gap: 28px;
}

/* ── ANIMATIONS ──────────────────────────────────────────────────────────── */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}
.ts-fade-in { animation: fadeInUp .5s ease-out both; }
.ts-fade-in-d1 { animation-delay: .1s; }
.ts-fade-in-d2 { animation-delay: .2s; }
.ts-fade-in-d3 { animation-delay: .3s; }

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
    .ts-hero h1 { font-size: 50px; }
    .ts-hero-inner { grid-template-columns: 1fr 360px; gap: 48px; }
    .ts-services-grid { grid-template-columns: repeat(2, 1fr); }
    .ts-cat-grid { grid-template-columns: repeat(4, 1fr); }
    .woocommerce .products, .woocommerce-page .products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 1024px) {
    .ts-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
    .ts-hero-inner { grid-template-columns: 1fr; }
    .ts-hero-panel { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .ts-hero-panel-title { grid-column: 1/-1; }
    .ts-projects-grid { grid-template-columns: repeat(2, 1fr); }
    .ts-why-grid { grid-template-columns: repeat(2, 1fr); }
    .ts-cta-inner { flex-direction: column; text-align: center; }
    .ts-cta-actions { justify-content: center; }
}
@media (max-width: 900px) {
    .ts-hero { padding: 64px 0 56px; }
    .ts-hero h1 { font-size: 40px; }
    .ts-services-grid { grid-template-columns: 1fr; gap: 1px; }
    .ts-cat-grid { grid-template-columns: repeat(3, 1fr); }
    .woocommerce .products, .woocommerce-page .products { grid-template-columns: repeat(2, 1fr) !important; }
    .woocommerce div.product { grid-template-columns: 1fr; }
    .ts-section-title { font-size: 30px; }
}
@media (max-width: 768px) {
    .ts-topbar .ts-wrap { flex-direction: column; gap: 6px; text-align: center; }
    .ts-topbar-left, .ts-topbar-right { justify-content: center; }
    .ts-nav { display: none; }
    .ts-search-wrap { max-width: 220px; }
    .ts-projects-grid { grid-template-columns: 1fr; }
    .ts-cat-grid { grid-template-columns: repeat(2, 1fr); }
    .ts-why-grid { grid-template-columns: 1fr; }
    .ts-footer-grid { grid-template-columns: 1fr; }
    .ts-trust-item:nth-child(n+5) { display: none; }
    .ts-certif-strip-inner { gap: 8px; }
}
@media (max-width: 480px) {
    .ts-wrap { padding: 0 16px; }
    .ts-hero h1 { font-size: 32px; }
    .ts-hero-cta { flex-direction: column; }
    .ts-hero-cta a { text-align: center; justify-content: center; }
    .ts-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .ts-section { padding: 48px 0; }
    .ts-section-title { font-size: 26px; }
    .woocommerce .products, .woocommerce-page .products { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
}

/* ── HOMEPAGE PRODUCTS FIX (no .woocommerce body class on homepage) ─────── */
/* Force 4-column grid on homepage without needing .woocommerce parent */
.ts-home-products ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 18px !important;
    list-style: none !important;
    margin: 0 !important; padding: 0 !important;
    float: none !important; clear: both !important;
}
.ts-home-products ul.products li.product {
    background: var(--white) !important;
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border) !important;
    overflow: hidden !important;
    box-shadow: var(--shadow) !important;
    transition: all .22s !important;
    display: flex !important; flex-direction: column !important;
    padding: 0 !important; margin: 0 !important;
    float: none !important; width: auto !important;
}
.ts-home-products ul.products li.product:hover {
    box-shadow: var(--shadow-lg) !important;
    transform: translateY(-3px) !important;
    border-color: var(--gold) !important;
}
/* Product image on homepage */
.ts-home-products ul.products li.product img {
    width: 100% !important; height: 200px !important;
    object-fit: contain !important; object-position: center !important;
    background: var(--cream) !important;
    padding: 20px !important;
    border-bottom: 1px solid var(--border) !important;
    margin: 0 !important;
}
/* Title on homepage */
.ts-home-products ul.products li.product h2,
.ts-home-products ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important; font-weight: 600 !important;
    color: var(--text) !important;
    padding: 14px 16px 4px !important; margin: 0 !important;
    line-height: 1.45 !important;
    display: -webkit-box !important; -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important; overflow: hidden !important;
    min-height: 46px !important;
}
/* Price on homepage */
.ts-home-products ul.products li.product .price {
    padding: 2px 16px 10px !important;
    font-size: 15px !important; font-weight: 700 !important;
    color: var(--text) !important; display: block !important;
}
.ts-home-products ul.products li.product .price ins {
    text-decoration: none !important; color: var(--gold-dark) !important;
}
.ts-home-products ul.products li.product .price del {
    color: var(--text-light) !important; font-size: 11px !important;
    font-weight: 400 !important; margin-right: 4px !important;
}
/* Add to cart on homepage */
.ts-home-products ul.products li.product .button,
.ts-home-products ul.products li.product a.button {
    display: block !important;
    width: calc(100% - 32px) !important;
    margin: 2px 16px 16px !important;
    padding: 9px 12px !important;
    background: var(--charcoal) !important;
    color: #fff !important; border: none !important;
    border-radius: var(--radius) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important; font-weight: 700 !important;
    text-align: center !important; cursor: pointer !important;
    transition: all .18s !important;
    text-transform: uppercase !important; letter-spacing: .8px !important;
}
.ts-home-products ul.products li.product .button:hover,
.ts-home-products ul.products li.product a.button:hover {
    background: var(--gold) !important; color: var(--charcoal) !important;
}
/* On sale badge */
.ts-home-products ul.products li.product .onsale {
    background: var(--gold) !important; color: var(--charcoal) !important;
    font-size: 9px !important; font-weight: 800 !important;
    padding: 3px 9px !important; border-radius: 2px !important;
    letter-spacing: .8px !important; text-transform: uppercase !important;
    top: 12px !important; left: 12px !important; right: auto !important;
    min-height: auto !important; min-width: auto !important; line-height: 1.5 !important;
}

/* Homepage responsive */
@media (max-width: 1200px) {
    .ts-home-products ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
    .ts-home-products ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
}
@media (max-width: 400px) {
    .ts-home-products ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
}

/* ── CATEGORY TILE ICONS — force SVG visibility ──────────────────────────── */
.ts-cat-tile-icon {
    width: 48px; height: 48px; margin: 0 auto 12px;
    background: var(--cream-2); border-radius: 10px;
    display: flex !important; align-items: center !important;
    justify-content: center !important;
    transition: background .2s;
    flex-shrink: 0;
    border: 1px solid var(--cream-border);
}
.ts-cat-tile-icon svg {
    width: 24px !important; height: 24px !important;
    display: block !important;
    stroke: #44403C !important;   /* explicit — no currentColor dependency */
    fill: none !important;
    stroke-width: 1.5px !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    flex-shrink: 0;
    transition: stroke .2s;
}
.ts-cat-tile:hover .ts-cat-tile-icon {
    background: var(--charcoal) !important;
    border-color: var(--charcoal) !important;
}
.ts-cat-tile:hover .ts-cat-tile-icon svg {
    stroke: #C9A96E !important;   /* gold on hover */
}

/* ── PREFERS REDUCED MOTION ──────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ── PAGE TEMPLATE (page.php) ────────────────────────────────────────────── */
.ts-page-main {
    background: var(--cream);
    min-height: 60vh;
    padding: 0 0 80px;
}
.ts-page-wrap {
    padding-top: 48px;
}
.ts-page-header {
    margin-bottom: 32px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border);
}
.ts-page-title {
    font-family: 'Playfair Display', serif;
    font-size: 38px;
    font-weight: 700;
    color: var(--charcoal);
    margin: 0;
}
.ts-page-content {
    max-width: 100%;
}

/* ── WOOCOMMERCE CART (classic shortcode) ────────────────────────────────── */
.woocommerce-cart .ts-page-main,
.woocommerce-checkout .ts-page-main,
.woocommerce-account .ts-page-main {
    background: var(--cream);
}

/* Cart table */
.woocommerce table.cart,
.woocommerce-page table.cart {
    width: 100%; border-collapse: collapse;
    background: var(--white); border-radius: var(--radius-lg);
    overflow: hidden; box-shadow: var(--shadow);
    margin-bottom: 32px;
}
.woocommerce table.cart th {
    background: var(--charcoal); color: var(--white);
    font-family: 'Inter', sans-serif; font-size: 11px;
    font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px;
    padding: 14px 16px; text-align: left;
}
.woocommerce table.cart td {
    padding: 16px; border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
.woocommerce table.cart tbody tr:last-child td { border-bottom: none; }
.woocommerce table.cart .product-thumbnail img {
    width: 80px; height: 80px; object-fit: contain;
    border-radius: var(--radius); border: 1px solid var(--border);
    background: var(--cream); padding: 8px;
}
.woocommerce table.cart .product-name a {
    font-weight: 600; color: var(--text); font-size: 14px;
    transition: color .15s;
}
.woocommerce table.cart .product-name a:hover { color: var(--gold); }
.woocommerce table.cart .product-price,
.woocommerce table.cart .product-subtotal {
    font-weight: 700; color: var(--charcoal); font-size: 15px;
}
.woocommerce table.cart .quantity input {
    width: 64px; padding: 6px 10px;
    border: 1px solid var(--border); border-radius: var(--radius);
    font-family: 'Inter', sans-serif; font-size: 14px;
    text-align: center; background: var(--white); color: var(--text);
}
.woocommerce table.cart a.remove {
    color: var(--text-light) !important;
    font-size: 18px; font-weight: 700;
    width: 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%; transition: all .15s;
}
.woocommerce table.cart a.remove:hover {
    background: #fee2e2; color: #dc2626 !important;
}

/* Cart actions */
.woocommerce .cart_totals {
    background: var(--white); border-radius: var(--radius-lg);
    box-shadow: var(--shadow); padding: 28px;
}
.woocommerce .cart_totals h2 {
    font-family: 'Playfair Display', serif; font-size: 22px;
    font-weight: 700; color: var(--charcoal);
    margin-bottom: 20px; padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
}
.woocommerce .cart_totals table {
    width: 100%; margin-bottom: 20px;
}
.woocommerce .cart_totals table th {
    font-size: 13px; color: var(--text-light); font-weight: 500;
    padding: 8px 0; text-align: left;
}
.woocommerce .cart_totals table td {
    font-size: 14px; font-weight: 600; color: var(--text);
    padding: 8px 0; text-align: right;
}
.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
    font-size: 18px; font-weight: 700; color: var(--charcoal);
    border-top: 2px solid var(--border); padding-top: 16px;
}
.woocommerce .wc-proceed-to-checkout .checkout-button {
    display: block; width: 100%; padding: 16px 24px;
    background: var(--gold); color: var(--charcoal) !important;
    font-family: 'Inter', sans-serif; font-size: 14px;
    font-weight: 700; text-align: center;
    border-radius: var(--radius); text-transform: uppercase;
    letter-spacing: 1px; transition: all .2s;
    border: none; cursor: pointer;
}
.woocommerce .wc-proceed-to-checkout .checkout-button:hover {
    background: var(--gold-dark); transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(201,169,110,.35);
}

/* Update cart button */
.woocommerce table.cart .actions button[name="update_cart"],
.woocommerce table.cart .actions .button {
    padding: 10px 20px;
    background: var(--charcoal); color: var(--white);
    border: none; border-radius: var(--radius);
    font-family: 'Inter', sans-serif; font-size: 12px;
    font-weight: 700; text-transform: uppercase; letter-spacing: .8px;
    cursor: pointer; transition: all .15s;
}
.woocommerce table.cart .actions button:hover,
.woocommerce table.cart .actions .button:hover {
    background: var(--gold); color: var(--charcoal);
}

/* Empty cart */
.woocommerce-cart-form ~ .cart-empty,
.woocommerce .cart-empty {
    text-align: center; padding: 60px 20px;
    font-size: 16px; color: var(--text-light);
}
.woocommerce .return-to-shop .button {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 24px; background: var(--charcoal); color: var(--white);
    border-radius: var(--radius); font-weight: 700; font-size: 13px;
    text-transform: uppercase; letter-spacing: .8px; transition: all .2s;
}
.woocommerce .return-to-shop .button:hover {
    background: var(--gold); color: var(--charcoal);
}

/* Cart notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-radius: var(--radius); padding: 14px 18px;
    margin-bottom: 20px; font-size: 14px;
    display: flex; align-items: center; gap: 12px;
}
.woocommerce-message { background: #f0fdf4; border-left: 4px solid #22c55e; color: #15803d; }
.woocommerce-info    { background: #eff6ff; border-left: 4px solid #3b82f6; color: #1d4ed8; }
.woocommerce-error   { background: #fef2f2; border-left: 4px solid #ef4444; color: #dc2626; }
.woocommerce-message a.button,
.woocommerce-info a.button {
    background: var(--charcoal); color: var(--white);
    padding: 7px 16px; border-radius: var(--radius);
    font-size: 12px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .6px;
    white-space: nowrap; margin-left: auto;
    transition: all .15s;
}
.woocommerce-message a.button:hover { background: var(--gold); color: var(--charcoal); }

/* ── WOOCOMMERCE CHECKOUT ─────────────────────────────────────────────────── */
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading { margin-bottom: 28px; }

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    float: none; width: 100%;
}
@media (min-width: 768px) {
    .woocommerce-checkout .col2-set {
        display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
    }
    .woocommerce-checkout .col2-set .col-1,
    .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading {
    font-family: 'Playfair Display', serif;
    font-size: 20px; font-weight: 700; color: var(--charcoal);
    margin-bottom: 20px;
}
.woocommerce-checkout form.checkout p label {
    font-size: 12px; font-weight: 600;
    color: var(--text-light); text-transform: uppercase; letter-spacing: .5px;
    display: block; margin-bottom: 6px;
}
.woocommerce-checkout form.checkout p input,
.woocommerce-checkout form.checkout p select,
.woocommerce-checkout form.checkout p textarea {
    width: 100%; padding: 10px 14px;
    border: 1px solid var(--border); border-radius: var(--radius);
    font-family: 'Inter', sans-serif; font-size: 14px; color: var(--text);
    background: var(--white); transition: border-color .15s;
}
.woocommerce-checkout form.checkout p input:focus,
.woocommerce-checkout form.checkout p select:focus {
    outline: none; border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(201,169,110,.15);
}
#place_order {
    width: 100%; padding: 16px 24px;
    background: var(--gold); color: var(--charcoal);
    font-family: 'Inter', sans-serif; font-size: 15px;
    font-weight: 800; border: none; border-radius: var(--radius);
    text-transform: uppercase; letter-spacing: 1px;
    cursor: pointer; transition: all .2s;
}
#place_order:hover {
    background: var(--gold-dark); transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(201,169,110,.35);
}

/* Cart layout: table left, totals right */
@media (min-width: 768px) {
    .woocommerce-cart .woocommerce {
        display: grid; grid-template-columns: 1fr; gap: 0;
    }
    .woocommerce-cart-form { grid-column: 1; }
}

/* ── WC NOTICES / FLASH MESSAGES ─────────────────────────────────────────── */
.woocommerce-notices-wrapper { margin-bottom: 24px; }

/* ── MY ACCOUNT PAGE ─────────────────────────────────────────────────────── */
.woocommerce-account .woocommerce {
    display: grid; gap: 32px;
}
@media (min-width: 768px) {
    .woocommerce-account .woocommerce {
        grid-template-columns: 240px 1fr;
    }
}
.woocommerce-account .woocommerce-MyAccount-navigation {
    background: var(--white); border-radius: var(--radius-lg);
    box-shadow: var(--shadow); padding: 8px;
    align-self: start;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: block; padding: 12px 16px; font-size: 14px;
    color: var(--text); font-weight: 500; transition: all .15s;
    border-radius: var(--radius);
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
    background: var(--charcoal); color: var(--white);
}
.woocommerce-account .woocommerce-MyAccount-content {
    background: var(--white); border-radius: var(--radius-lg);
    box-shadow: var(--shadow); padding: 28px;
}

/* ── CART HEADER COUNTER (AJAX live update) ───────────────────────────────── */
.ts-header-btn.cart-btn .cart-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 5px;
    background: var(--gold); color: var(--charcoal);
    font-size: 10px; font-weight: 800;
    border-radius: 9px; margin-left: 6px;
    transition: transform .2s;
}
.ts-header-btn.cart-btn .cart-count.bump { transform: scale(1.4); }
.ts-header-btn.cart-btn .cart-count.hidden { display: none; }
