/* ============================================================
   TAX SMART SERVICE — Luxury Redesign v2.0
   Palette: Navy / Gold / Teal / Off-white
   Fonts:   Playfair Display (headings) + Sora (body)
   ============================================================ */

@layer base {
    :root {
        /* ── Core Palette ─────────────────────────────────── */
        --navy:         #0F1419;
        --navy-dark:    #090D11;
        --navy-mid:     #1B3B6F;
        --navy-light:   #243B55;
        --gold:         #D4A574;
        --gold-dark:    #B8925E;
        --gold-light:   #E8C49A;
        --teal:         #00B4A6;
        --teal-dark:    #009E92;
        --teal-light:   #33C5BA;
        --offwhite:     #F8F7F5;
        --white:        #FFFFFF;
        --text:         #1A1D23;
        --muted:        #6B7280;
        --gray-100:     #F3F4F6;
        --gray-200:     #E5E7EB;
        --gray-300:     #D1D5DB;

        /* ── Typography ───────────────────────────────────── */
        --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
        --font-sans:    'Sora', system-ui, -apple-system, sans-serif;

        /* ── Radius ───────────────────────────────────────── */
        --r-sm:   4px;
        --r-md:   8px;
        --r-lg:   12px;
        --r-xl:   20px;
        --r-2xl:  32px;
        --r-full: 9999px;

        /* ── Shadows ──────────────────────────────────────── */
        --shadow-sm:   0 1px 3px rgba(0,0,0,0.08);
        --shadow-md:   0 4px 12px rgba(0,0,0,0.10);
        --shadow-lg:   0 8px 24px rgba(0,0,0,0.12);
        --shadow-xl:   0 20px 48px rgba(0,0,0,0.16);
        --shadow-gold: 0 4px 20px rgba(212,165,116,0.25);
        --shadow-teal: 0 4px 20px rgba(0,180,166,0.30);

        /* ── Transitions ──────────────────────────────────── */
        --t:     0.25s ease;
        --t-slow: 0.4s ease;

        /* ── Legacy aliases (keep inner pages working) ────── */
        --color-navy:      var(--navy);
        --color-navy-dark: var(--navy-dark);
        --color-teal:      var(--teal);
        --color-teal-dark: var(--teal-dark);
        --color-teal-lt:   var(--teal-light);
        --color-gold:      var(--gold);
        --color-gold-dark: var(--gold-dark);
        --color-white:     var(--white);
        --color-offwhite:  var(--offwhite);
        --color-gray-100:  var(--gray-100);
        --color-gray-200:  var(--gray-200);
        --color-text:      var(--text);
        --color-muted:     var(--muted);
        --color-blue:      var(--teal);
        --color-blue-lt:   var(--teal-light);
        --font-sans:       var(--font-sans);
        --radius-sm:  var(--r-sm);
        --radius-md:  var(--r-md);
        --radius-lg:  var(--r-lg);
        --radius-xl:  var(--r-xl);
        --radius-full:var(--r-full);
        --shadow-md:  var(--shadow-md);
        --shadow-lg:  var(--shadow-lg);
        --shadow-xl:  var(--shadow-xl);
        --transition: var(--t);
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; }

    html {
        scroll-behavior: smooth;
        -webkit-text-size-adjust: 100%;
        font-size: 16px;
    }

    body {
        font-family: var(--font-sans);
        font-size: 1rem;
        line-height: 1.75;
        color: var(--text);
        background: var(--white);
        -webkit-font-smoothing: antialiased;
    }

    h1, h2, h3, h4, h5, h6 {
        font-family: var(--font-display);
        line-height: 1.2;
        color: var(--navy);
        font-weight: 700;
        margin-top: 0;
    }

    h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); }
    h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
    h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
    h4 { font-size: 1.25rem; }
    h5 { font-size: 1.0625rem; }
    h6 { font-size: 0.875rem; text-transform: uppercase; letter-spacing: .08em; font-family: var(--font-sans); font-weight: 700; }

    p { margin-bottom: 1.25rem; }
    p:last-child { margin-bottom: 0; }

    a { color: var(--teal); text-decoration: none; transition: color var(--t); }
    a:hover { color: var(--teal-dark); }

    img, video { max-width: 100%; height: auto; display: block; }

    ul, ol { padding-left: 1.25rem; }
    li { margin-bottom: .25rem; }

    address { font-style: normal; }

    em, i { font-style: italic; }
}

@layer components {

/* ============================================================
   SKIP LINK
   ============================================================ */
.skip-link {
    position: absolute; top: -100px; left: 1rem; z-index: 9999;
    background: var(--white); color: var(--navy);
    padding: .5rem 1rem; border-radius: var(--r-md);
    font-weight: 600; font-size: .875rem;
    box-shadow: var(--shadow-md); transition: top .2s;
}
.skip-link:focus { top: 1rem; }

/* ============================================================
   LAYOUT
   ============================================================ */
.tss-container {
    width: 100%; max-width: 1200px;
    margin-inline: auto; padding-inline: 1.25rem;
}
@media (min-width: 768px) { .tss-container { padding-inline: 2rem; } }

.tss-section { padding-block: 5rem; }
.tss-section--lg { padding-block: 7rem; }
.tss-section--sm { padding-block: 3rem; }

.tss-section-header { text-align: center; max-width: 680px; margin-inline: auto; margin-bottom: 3.5rem; }
.tss-section-eyebrow {
    display: inline-block; font-family: var(--font-sans);
    font-size: .75rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--gold); margin-bottom: .875rem;
}
.tss-section-title { margin-bottom: 1rem; }
.tss-section-title em { color: var(--teal); font-style: italic; }
.tss-section-subtitle { color: var(--muted); font-size: 1.0625rem; line-height: 1.7; }

/* Dark section utility */
.tss-dark-section { background: var(--navy); }
.tss-dark-section .tss-section-title,
.tss-dark-section h2, .tss-dark-section h3 { color: var(--white); }
.tss-dark-section .tss-section-subtitle,
.tss-dark-section p { color: rgba(255,255,255,0.7); }
.tss-dark-section .tss-section-eyebrow { color: var(--gold); }

/* Dot-pattern overlay for dark sections */
.tss-pattern-bg {
    position: relative;
}
.tss-pattern-bg::before {
    content: '';
    position: absolute; inset: 0; pointer-events: none;
    background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
    background-size: 28px 28px;
    z-index: 0;
}
.tss-pattern-bg > * { position: relative; z-index: 1; }

/* Hidden utility */
.hidden { display: none !important; }
@media (min-width: 1024px) {
    .lg\:hidden      { display: none !important; }
    .lg\:inline-flex { display: inline-flex !important; }
}
.mt-4 { margin-top: 1rem; }

/* ============================================================
   BUTTONS
   ============================================================ */
.tss-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: .5rem; padding: .875rem 2rem;
    font-family: var(--font-sans); font-weight: 600; font-size: .9375rem;
    border-radius: var(--r-full);
    border: 2px solid transparent;
    cursor: pointer; text-decoration: none;
    transition: all var(--t);
    white-space: nowrap;
}

/* Primary — navy→teal gradient */
.tss-btn--primary {
    background: linear-gradient(135deg, var(--navy-mid) 0%, var(--teal) 100%);
    color: var(--white);
    box-shadow: 0 4px 16px rgba(0,180,166,0.30);
}
.tss-btn--primary:hover {
    background: linear-gradient(135deg, var(--navy) 0%, var(--teal-dark) 100%);
    color: var(--white);
    box-shadow: 0 6px 24px rgba(0,180,166,0.40);
    transform: translateY(-2px);
}

/* Gold — premium accent button */
.tss-btn--gold {
    background: transparent;
    color: var(--gold);
    border-color: var(--gold);
}
.tss-btn--gold:hover {
    background: var(--gold);
    color: var(--navy);
    box-shadow: var(--shadow-gold);
    transform: translateY(-2px);
}

/* Outline teal */
.tss-btn--outline {
    background: transparent;
    color: var(--teal);
    border-color: var(--teal);
}
.tss-btn--outline:hover {
    background: var(--teal);
    color: var(--white);
    transform: translateY(-2px);
}

/* Ghost — white outline for dark backgrounds */
.tss-btn--ghost {
    background: rgba(255,255,255,0.08);
    color: var(--white);
    border-color: rgba(255,255,255,0.35);
    backdrop-filter: blur(4px);
}
.tss-btn--ghost:hover {
    background: rgba(255,255,255,0.18);
    color: var(--white);
    border-color: rgba(255,255,255,0.6);
}

/* Sizes */
.tss-btn--sm  { padding: .5rem 1.25rem; font-size: .8125rem; }
.tss-btn--lg  { padding: 1rem 2.5rem;   font-size: 1rem; }
.tss-btn--full { display: flex; width: 100%; }

/* ============================================================
   TOP BAR
   ============================================================ */
.tss-topbar {
    background: var(--navy-dark);
    color: rgba(255,255,255,0.75);
    font-size: .8125rem;
    padding: .375rem 0;
    font-family: var(--font-sans);
}
.tss-topbar__inner {
    display: flex; align-items: center;
    justify-content: space-between;
    gap: 1rem; flex-wrap: wrap;
}
.tss-topbar__contact { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.tss-topbar__link {
    display: flex; align-items: center; gap: .375rem;
    color: rgba(255,255,255,0.75); font-weight: 500;
    transition: color var(--t);
}
.tss-topbar__link:hover { color: var(--gold); }
.tss-topbar__tagline { font-size: .75rem; opacity: .65; letter-spacing: .06em; }

/* ============================================================
   HEADER
   ============================================================ */
.tss-header {
    position: sticky; top: 0; z-index: 200;
    background: rgba(15, 20, 25, 0.96);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(212,165,116,0.15);
    transition: background var(--t), box-shadow var(--t);
}
.tss-header.scrolled {
    background: rgba(15, 20, 25, 0.98);
    box-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.tss-header__inner {
    display: flex; align-items: center;
    justify-content: space-between;
    gap: 1rem; height: 72px;
}

/* Logo */
.tss-header__logo a { display: flex; align-items: center; gap: .5rem; }
.tss-header__logo img,
.tss-header__logo .custom-logo { max-height: 48px; width: auto; }
.tss-logo-text { display: flex; flex-direction: column; text-decoration: none; }
.tss-logo-text__primary {
    font-family: var(--font-display); font-size: 1.25rem;
    font-weight: 700; color: var(--white); line-height: 1.1;
}
.tss-logo-text__tagline { font-size: .65rem; color: var(--gold); font-weight: 500; letter-spacing: .05em; }

/* Desktop Nav */
.tss-nav { display: none; }
@media (min-width: 1024px) { .tss-nav { display: block; } }

.tss-nav__menu {
    list-style: none; display: flex; align-items: center;
    gap: .25rem; margin: 0; padding: 0;
}
.tss-nav__menu li { position: relative; }
.tss-nav__menu a {
    display: block; padding: .5rem .875rem;
    font-weight: 500; font-size: .9rem;
    color: rgba(255,255,255,0.85);
    border-radius: var(--r-md);
    transition: color var(--t), background var(--t);
}
.tss-nav__menu a:hover,
.tss-nav__menu .current-menu-item > a,
.tss-nav__menu .current-page-ancestor > a {
    color: var(--gold);
    background: rgba(212,165,116,0.1);
}

/* Sub-menu */
.tss-nav__menu .sub-menu {
    position: absolute; top: calc(100% + 8px); left: 0;
    min-width: 220px;
    background: var(--navy); border: 1px solid rgba(212,165,116,0.15);
    border-radius: var(--r-lg); box-shadow: var(--shadow-xl);
    padding: .5rem; list-style: none; margin: 0;
    opacity: 0; pointer-events: none;
    transform: translateY(8px);
    transition: opacity var(--t), transform var(--t);
}
.tss-nav__menu li:hover > .sub-menu,
.tss-nav__menu li:focus-within > .sub-menu {
    opacity: 1; pointer-events: auto; transform: translateY(0);
}
.tss-nav__menu .sub-menu a { font-size: .875rem; border-radius: var(--r-sm); color: rgba(255,255,255,0.8); }
.tss-nav__menu .sub-menu a:hover { color: var(--gold); background: rgba(212,165,116,0.08); }

/* Header actions */
.tss-header__actions { display: flex; align-items: center; gap: .75rem; }

/* Cart */
.tss-cart-link {
    position: relative; display: flex; align-items: center;
    color: rgba(255,255,255,0.75); padding: .375rem;
    border-radius: var(--r-sm); transition: color var(--t);
}
.tss-cart-link:hover { color: var(--gold); }
.tss-cart-count {
    position: absolute; top: -4px; right: -4px;
    background: var(--gold); color: var(--navy);
    font-size: .65rem; font-weight: 800;
    width: 16px; height: 16px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}

/* Mobile toggle */
.tss-mobile-toggle {
    display: flex; flex-direction: column; gap: 5px;
    background: none; border: none; cursor: pointer;
    padding: .5rem; border-radius: var(--r-sm);
    transition: background var(--t);
}
.tss-mobile-toggle:hover { background: rgba(255,255,255,0.08); }
.tss-mobile-toggle__icon { display: flex; align-items: center; color: rgba(255,255,255,0.85); }

/* Icons */
.tss-icon { width: 20px; height: 20px; display: inline-block; flex-shrink: 0; }
.tss-icon--sm { width: 16px; height: 16px; }
.tss-icon--lg { width: 24px; height: 24px; }
.tss-icon--accent { color: var(--teal); }

/* Mobile menu */
.tss-mobile-menu {
    position: fixed; top: 0; right: -100%; width: min(340px, 100vw);
    height: 100dvh; overflow-y: auto;
    background: var(--navy);
    border-left: 1px solid rgba(212,165,116,0.15);
    box-shadow: -8px 0 32px rgba(0,0,0,0.4);
    z-index: 300; transition: right .35s cubic-bezier(.4,0,.2,1);
    display: flex; flex-direction: column;
}
.tss-mobile-menu.is-open { right: 0; }
.tss-mobile-menu__inner { padding: 5rem 1.5rem 2rem; display: flex; flex-direction: column; flex: 1; }
.tss-mobile-menu__nav { list-style: none; padding: 0; margin: 0 0 2rem; }
.tss-mobile-menu__nav li { border-bottom: 1px solid rgba(255,255,255,0.07); }
.tss-mobile-menu__nav a {
    display: block; padding: .875rem 0;
    color: rgba(255,255,255,0.85); font-weight: 500; font-size: 1.0625rem;
    transition: color var(--t), padding-left var(--t);
}
.tss-mobile-menu__nav a:hover { color: var(--gold); padding-left: 6px; }
.tss-mobile-menu__cta { margin-top: auto; display: flex; flex-direction: column; gap: .75rem; }
.tss-mobile-overlay {
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.6); backdrop-filter: blur(4px);
    z-index: 250; opacity: 0; pointer-events: none;
    transition: opacity var(--t);
}
.tss-mobile-overlay.is-open { opacity: 1; pointer-events: auto; }

/* ============================================================
   HERO — asymmetric split
   ============================================================ */
.tss-hero {
    background: var(--navy);
    position: relative; overflow: hidden;
    min-height: 92vh;
    display: flex; align-items: center;
}
.tss-hero__gradient {
    position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(ellipse 80% 70% at 70% 50%, rgba(27,59,111,0.7) 0%, transparent 70%),
                radial-gradient(ellipse 50% 60% at 10% 80%, rgba(0,180,166,0.12) 0%, transparent 60%);
}
.tss-hero__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    padding-block: 5rem;
    position: relative; z-index: 1;
}
@media (min-width: 1024px) {
    .tss-hero__layout { grid-template-columns: 1fr 1fr; align-items: center; gap: 5rem; }
}

.tss-hero__badge {
    display: inline-flex; align-items: center; gap: .5rem;
    background: rgba(212,165,116,0.12); border: 1px solid rgba(212,165,116,0.3);
    color: var(--gold); border-radius: var(--r-full);
    padding: .375rem 1rem; font-size: .8125rem; font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase;
    margin-bottom: 1.5rem;
}
.tss-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5.5vw, 4rem);
    font-weight: 900;
    color: var(--white);
    line-height: 1.1;
    margin-bottom: 1.5rem;
}
.tss-hero__title em { color: var(--gold); font-style: italic; }

.tss-hero__subtitle {
    font-size: 1.125rem;
    color: rgba(255,255,255,0.72);
    line-height: 1.7;
    margin-bottom: 2.5rem;
    max-width: 520px;
}
.tss-hero__actions {
    display: flex; gap: 1rem; flex-wrap: wrap;
    margin-bottom: 3rem;
}

/* Trust badges */
.tss-hero__trust {
    display: flex; flex-wrap: wrap; gap: 1rem;
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: 1.75rem;
}
.tss-hero__trust-item {
    display: flex; align-items: center; gap: .5rem;
    font-size: .8125rem; color: rgba(255,255,255,0.6); font-weight: 500;
}
.tss-hero__trust-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--teal); flex-shrink: 0;
}

/* Hero visual */
.tss-hero__visual {
    position: relative;
    display: flex; align-items: center; justify-content: center;
}
.tss-hero__image-wrap {
    position: relative; width: 100%; max-width: 520px;
    border-radius: var(--r-2xl); overflow: hidden;
    box-shadow: 0 32px 80px rgba(0,0,0,0.5), 0 0 0 1px rgba(212,165,116,0.15);
    aspect-ratio: 4/5;
    background: linear-gradient(135deg, var(--navy-mid) 0%, var(--navy-light) 100%);
}
.tss-hero__image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.tss-hero__image-placeholder {
    width: 100%; height: 100%;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 1rem;
    color: rgba(255,255,255,0.35);
}

/* Floating badge on hero image */
.tss-hero__float-badge {
    position: absolute; bottom: -1.5rem; left: -1.5rem;
    background: var(--white);
    border-radius: var(--r-xl);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--shadow-xl);
    display: flex; align-items: center; gap: 1rem;
    min-width: 200px;
}
.tss-hero__float-badge__icon {
    width: 48px; height: 48px; border-radius: var(--r-lg);
    background: linear-gradient(135deg, var(--navy-mid), var(--teal));
    display: flex; align-items: center; justify-content: center;
    color: var(--white); flex-shrink: 0;
}
.tss-hero__float-badge__label { font-size: .75rem; color: var(--muted); font-weight: 500; }
.tss-hero__float-badge__value { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--navy); line-height: 1; }

/* ============================================================
   TRUST BAR (stats)
   ============================================================ */
.tss-trust-bar {
    background: var(--navy-dark);
    border-top: 1px solid rgba(212,165,116,0.15);
    border-bottom: 1px solid rgba(212,165,116,0.15);
    padding-block: 2.5rem;
}
.tss-trust-bar__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem; text-align: center;
}
@media (min-width: 640px) { .tss-trust-bar__grid { grid-template-columns: repeat(4, 1fr); } }
.tss-trust-bar__item { display: flex; flex-direction: column; align-items: center; gap: .375rem; }
.tss-trust-bar__number {
    font-family: var(--font-display); font-size: 2.5rem;
    font-weight: 700; color: var(--gold); line-height: 1;
}
.tss-trust-bar__label { font-size: .8125rem; color: rgba(255,255,255,0.55); font-weight: 500; letter-spacing: .04em; }

/* ============================================================
   SERVICES GRID
   ============================================================ */
.tss-services-section { background: var(--offwhite); }

.tss-services-grid {
    display: grid; grid-template-columns: 1fr; gap: 1.5rem;
}
@media (min-width: 640px)  { .tss-services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tss-services-grid { grid-template-columns: repeat(3, 1fr); } }

.tss-service-card {
    background: var(--white);
    border-radius: var(--r-xl);
    border: 1px solid var(--gray-200);
    border-top: 3px solid var(--gold);
    padding: 2rem;
    display: flex; flex-direction: column;
    transition: box-shadow var(--t), transform var(--t), border-top-color var(--t);
    position: relative; overflow: hidden;
}
.tss-service-card::before {
    content: ''; position: absolute; top: 0; left: 0;
    width: 100%; height: 3px;
    background: linear-gradient(90deg, var(--gold), var(--teal));
    opacity: 0; transition: opacity var(--t);
}
.tss-service-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.tss-service-card:hover::before { opacity: 1; }

.tss-service-card__icon {
    width: 52px; height: 52px; margin-bottom: 1.25rem;
}
.tss-service-card__icon--default {
    background: linear-gradient(135deg, var(--navy-mid), var(--navy));
    border-radius: var(--r-lg);
    display: flex; align-items: center; justify-content: center;
    color: var(--gold);
}
.tss-service-card__title { font-size: 1.125rem; margin-bottom: .75rem; }
.tss-service-card__title a { color: var(--navy); transition: color var(--t); }
.tss-service-card__title a:hover { color: var(--teal-dark); }
.tss-service-card__excerpt { color: var(--muted); font-size: .9375rem; flex: 1; margin-bottom: 1.25rem; line-height: 1.65; }
.tss-service-card__link {
    display: inline-flex; align-items: center; gap: .375rem;
    font-size: .875rem; font-weight: 700;
    color: var(--teal-dark); margin-top: auto;
    transition: gap var(--t), color var(--t);
}
.tss-service-card__link:hover { color: var(--navy); gap: .625rem; }

.tss-section-cta { text-align: center; margin-top: 3rem; }
.tss-services-page__grid { margin-block: 3rem; }
.tss-services-page__empty { text-align: center; padding-block: 4rem; color: var(--muted); }
.tss-services-page__cta { margin-block: 3rem 4rem; }

/* ============================================================
   WHY CHOOSE US
   ============================================================ */
.tss-why-section { background: var(--white); }
.tss-why-grid {
    display: grid; grid-template-columns: 1fr; gap: 2rem;
}
@media (min-width: 768px) { .tss-why-grid { grid-template-columns: repeat(3, 1fr); } }

.tss-why-card {
    background: var(--offwhite);
    border-radius: var(--r-xl); padding: 2.5rem 2rem;
    border: 1px solid var(--gray-200);
    text-align: center;
    transition: box-shadow var(--t), transform var(--t);
}
.tss-why-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }

.tss-why-card__icon {
    width: 64px; height: 64px; border-radius: var(--r-xl);
    margin: 0 auto 1.5rem;
    background: linear-gradient(135deg, var(--navy-mid), var(--navy));
    display: flex; align-items: center; justify-content: center;
    color: var(--gold);
}
.tss-why-card__title { font-size: 1.1875rem; margin-bottom: .75rem; }
.tss-why-card__text { color: var(--muted); font-size: .9375rem; line-height: 1.7; }

/* ── Old why-section layout (kept for compat) ────────────── */
.tss-why-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 768px) { .tss-why-layout { grid-template-columns: 1fr 1fr; } }
.tss-feature-list { list-style: none; padding: 0; margin: 1.5rem 0 2rem; }
.tss-feature-list__item {
    display: flex; align-items: center; gap: .75rem;
    padding: .5rem 0; border-bottom: 1px solid var(--gray-100); font-weight: 500;
}
.tss-feature-list__item:last-child { border-bottom: none; }
.tss-why-image img { border-radius: var(--r-2xl); box-shadow: var(--shadow-xl); width: 100%; object-fit: cover; }
.tss-why-actions { margin-top: 1.5rem; }

/* ============================================================
   TESTIMONIALS CAROUSEL
   ============================================================ */
.tss-testimonials-section {
    background: var(--navy); position: relative; overflow: hidden;
}
.tss-testimonials-section .tss-section-eyebrow { color: var(--gold); }
.tss-testimonials-section .tss-section-title { color: var(--white); }

.tss-carousel {
    position: relative; overflow: hidden;
    border-radius: var(--r-xl);
}
.tss-carousel__track {
    display: flex; transition: transform .5s cubic-bezier(.4,0,.2,1);
    will-change: transform;
}
.tss-carousel__slide { min-width: 100%; padding: .25rem; }

.tss-testimonial-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(212,165,116,0.2);
    border-radius: var(--r-xl); padding: 2.5rem;
    margin: 0;
    position: relative;
}
.tss-testimonial-card__quote {
    font-family: var(--font-display); font-size: 5rem;
    color: var(--gold); opacity: .25;
    line-height: .8; margin-bottom: -.5rem;
    user-select: none;
}
.tss-testimonial-card__stars {
    display: flex; gap: 3px; margin-bottom: 1.25rem;
}
.tss-star--filled { color: var(--gold); }
.tss-star--empty  { color: rgba(255,255,255,0.2); }

.tss-testimonial-card__text {
    color: rgba(255,255,255,0.85); font-size: 1.0625rem;
    line-height: 1.75; margin-bottom: 1.75rem; font-style: italic;
}
.tss-testimonial-card__author { display: flex; align-items: center; gap: .875rem; }
.tss-testimonial-card__avatar {
    width: 48px; height: 48px; border-radius: 50%;
    object-fit: cover; border: 2px solid rgba(212,165,116,0.4);
    background: var(--navy-mid);
    display: flex; align-items: center; justify-content: center;
    color: var(--gold); font-family: var(--font-display); font-weight: 700;
    font-size: 1rem; flex-shrink: 0;
}
.tss-testimonial-card__author cite { font-style: normal; font-weight: 700; color: var(--white); font-size: .9375rem; display: block; }
.tss-testimonial-card__company { font-size: .8rem; color: var(--gold); }

/* Carousel navigation */
.tss-carousel__nav {
    display: flex; align-items: center; justify-content: center;
    gap: 1rem; margin-top: 2.5rem;
}
.tss-carousel__btn {
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(255,255,255,0.08); border: 1px solid rgba(212,165,116,0.25);
    color: rgba(255,255,255,0.8); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all var(--t);
}
.tss-carousel__btn:hover { background: var(--gold); border-color: var(--gold); color: var(--navy); }
.tss-carousel__dots { display: flex; gap: .5rem; }
.tss-carousel__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.25); border: none; cursor: pointer;
    transition: all var(--t); padding: 0;
}
.tss-carousel__dot.active { background: var(--gold); width: 24px; border-radius: var(--r-full); }

/* Grid fallback (when carousel isn't used) */
.tss-testimonials-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px)  { .tss-testimonials-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tss-testimonials-grid { grid-template-columns: repeat(3, 1fr); } }

/* ============================================================
   PRICING CARDS
   ============================================================ */
.tss-pricing-section { background: var(--offwhite); }

.tss-pricing-grid {
    display: grid; grid-template-columns: 1fr; gap: 2rem;
    align-items: start;
}
@media (min-width: 768px) { .tss-pricing-grid { grid-template-columns: repeat(3, 1fr); } }

.tss-pricing-card {
    background: var(--white);
    border-radius: var(--r-xl);
    border: 1px solid var(--gray-200);
    overflow: hidden;
    transition: box-shadow var(--t), transform var(--t);
}
.tss-pricing-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }

.tss-pricing-card--featured {
    background: var(--navy);
    border-color: rgba(212,165,116,0.3);
    transform: scale(1.03);
    box-shadow: 0 24px 60px rgba(0,0,0,0.25);
}
.tss-pricing-card--featured:hover { transform: scale(1.03) translateY(-4px); }

.tss-pricing-card__badge {
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: var(--navy); font-size: .75rem; font-weight: 800;
    letter-spacing: .1em; text-transform: uppercase;
    padding: .4rem 1rem; text-align: center;
}
.tss-pricing-card__body { padding: 2rem 2rem 2.5rem; }

.tss-pricing-card__tier {
    font-family: var(--font-sans); font-size: .75rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--muted); margin-bottom: .5rem;
}
.tss-pricing-card--featured .tss-pricing-card__tier { color: rgba(255,255,255,0.55); }

.tss-pricing-card__name {
    font-size: 1.375rem; margin-bottom: .5rem;
}
.tss-pricing-card--featured .tss-pricing-card__name { color: var(--white); }

.tss-pricing-card__desc {
    font-size: .9rem; color: var(--muted); margin-bottom: 1.75rem; line-height: 1.6;
}
.tss-pricing-card--featured .tss-pricing-card__desc { color: rgba(255,255,255,0.6); }

.tss-pricing-card__price {
    display: flex; align-items: flex-end; gap: .25rem;
    margin-bottom: 2rem;
}
.tss-pricing-card__currency {
    font-family: var(--font-display); font-size: 1.5rem;
    font-weight: 700; color: var(--navy); line-height: 1.4;
}
.tss-pricing-card--featured .tss-pricing-card__currency { color: var(--gold); }
.tss-pricing-card__amount {
    font-family: var(--font-display); font-size: 3.5rem;
    font-weight: 900; color: var(--navy); line-height: 1;
}
.tss-pricing-card--featured .tss-pricing-card__amount { color: var(--white); }
.tss-pricing-card__period { font-size: .875rem; color: var(--muted); padding-bottom: .375rem; }
.tss-pricing-card--featured .tss-pricing-card__period { color: rgba(255,255,255,0.5); }

.tss-pricing-card__features {
    list-style: none; padding: 0; margin: 0 0 2rem;
    border-top: 1px solid var(--gray-200); padding-top: 1.5rem;
}
.tss-pricing-card--featured .tss-pricing-card__features { border-top-color: rgba(255,255,255,0.1); }
.tss-pricing-card__features li {
    display: flex; align-items: flex-start; gap: .625rem;
    font-size: .9rem; padding: .5rem 0;
    border-bottom: 1px solid var(--gray-100); color: var(--text);
}
.tss-pricing-card--featured .tss-pricing-card__features li { color: rgba(255,255,255,0.8); border-bottom-color: rgba(255,255,255,0.07); }
.tss-pricing-card__features li:last-child { border-bottom: none; }
.tss-pricing-check { color: var(--teal); flex-shrink: 0; margin-top: .1rem; }
.tss-pricing-card--featured .tss-pricing-check { color: var(--gold); }

/* ============================================================
   HOW IT WORKS (process timeline)
   ============================================================ */
.tss-process-section { background: var(--white); }
.tss-process-grid {
    display: grid; grid-template-columns: 1fr; gap: 2rem;
    position: relative;
}
@media (min-width: 768px) {
    .tss-process-grid { grid-template-columns: repeat(4, 1fr); gap: 2rem; }
    .tss-process-grid::before {
        content: ''; position: absolute;
        top: 2.25rem; left: calc(12.5% + 1rem); right: calc(12.5% + 1rem);
        height: 2px;
        background: linear-gradient(90deg, var(--gold) 0%, var(--teal) 100%);
        z-index: 0;
    }
}
.tss-process-step {
    display: flex; flex-direction: column; align-items: center;
    text-align: center; position: relative; z-index: 1;
}
.tss-process-step__num {
    width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg, var(--navy-mid), var(--navy));
    border: 3px solid var(--gold);
    color: var(--gold); font-family: var(--font-display);
    font-size: 1.25rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.25rem; flex-shrink: 0;
    box-shadow: 0 0 0 6px rgba(212,165,116,0.12);
}
.tss-process-step__title { font-size: 1.0625rem; margin-bottom: .5rem; }
.tss-process-step__text { font-size: .875rem; color: var(--muted); line-height: 1.65; }

/* ============================================================
   BLOG / POSTS
   ============================================================ */
.tss-posts-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 640px)  { .tss-posts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tss-posts-grid--3col { grid-template-columns: repeat(3, 1fr); } }

.tss-post-card {
    background: var(--white); border: 1px solid var(--gray-200);
    border-radius: var(--r-xl); overflow: hidden;
    transition: box-shadow var(--t), transform var(--t);
    display: flex; flex-direction: column;
}
.tss-post-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.tss-post-card__image-wrap { display: block; overflow: hidden; aspect-ratio: 16/9; }
.tss-post-card__image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tss-post-card:hover .tss-post-card__image-wrap img { transform: scale(1.05); }
.tss-post-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.tss-post-card__date { font-size: .8125rem; color: var(--muted); margin-bottom: .5rem; display: block; }
.tss-post-card__title { font-size: 1.0625rem; margin-bottom: .75rem; }
.tss-post-card__title a { color: var(--navy); transition: color var(--t); }
.tss-post-card__title a:hover { color: var(--teal-dark); }
.tss-post-card__excerpt { color: var(--muted); font-size: .9rem; flex: 1; margin-bottom: 1rem; line-height: 1.65; }
.tss-post-card__link { font-size: .875rem; font-weight: 700; color: var(--teal-dark); display: inline-flex; align-items: center; gap: .25rem; margin-top: auto; transition: gap var(--t); }
.tss-post-card__link:hover { color: var(--navy); gap: .5rem; }

/* ============================================================
   CTA SECTION
   ============================================================ */
.tss-cta-section { padding-block: 6rem; background: var(--navy); position: relative; overflow: hidden; }
.tss-cta-section::before {
    content: ''; position: absolute; inset: 0;
    background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(27,59,111,0.6) 0%, transparent 70%);
    pointer-events: none;
}
.tss-cta-box {
    position: relative; z-index: 1;
    max-width: 760px; margin-inline: auto;
    text-align: center;
}
.tss-cta-box__eyebrow { color: var(--gold); margin-bottom: 1.25rem; }
.tss-cta-box__title {
    font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900; color: var(--white);
    margin-bottom: 1.25rem; line-height: 1.15;
}
.tss-cta-box__title em { color: var(--gold); font-style: italic; }
.tss-cta-box__subtitle { color: rgba(255,255,255,0.7); font-size: 1.0625rem; margin-bottom: 2.5rem; }
.tss-cta-box__actions {
    display: flex; align-items: center; justify-content: center;
    gap: 1rem; flex-wrap: wrap;
}

/* ============================================================
   FOOTER
   ============================================================ */
.tss-footer { background: var(--navy-dark); color: rgba(255,255,255,0.75); }
.tss-footer__main { padding-block: 5rem 4rem; }
.tss-footer__grid {
    display: grid; grid-template-columns: 1fr; gap: 3rem;
}
@media (min-width: 640px)  { .tss-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tss-footer__grid { grid-template-columns: 2fr 1fr 1fr 1.5fr; } }

.tss-footer__brand .custom-logo-link { display: inline-block; margin-bottom: 1rem; }
.tss-footer__brand .custom-logo { max-height: 56px; width: auto; }
.tss-footer__logo-text {
    font-family: var(--font-display); color: var(--white);
    font-size: 1.375rem; font-weight: 700;
    display: block; margin-bottom: 1rem; text-decoration: none;
    transition: color var(--t);
}
.tss-footer__logo-text:hover { color: var(--gold); }
.tss-footer__tagline { font-size: .9rem; color: rgba(255,255,255,0.55); line-height: 1.7; margin-bottom: 1.75rem; }
.tss-footer__social { display: flex; gap: .625rem; flex-wrap: wrap; }
.tss-social-link {
    width: 38px; height: 38px; border-radius: 50%;
    border: 1px solid rgba(212,165,116,0.25);
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,0.7); font-size: .75rem; font-weight: 800;
    text-decoration: none; transition: all var(--t); letter-spacing: .02em;
}
.tss-social-link:hover { background: var(--gold); border-color: var(--gold); color: var(--navy); }

.tss-footer__heading {
    font-family: var(--font-sans); font-size: .75rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--gold); margin-bottom: 1.25rem;
    padding-bottom: .625rem;
    border-bottom: 1px solid rgba(212,165,116,0.2);
}
.tss-footer__links { list-style: none; padding: 0; margin: 0; }
.tss-footer__links li { margin-bottom: .5rem; }
.tss-footer__links a {
    color: rgba(255,255,255,0.6); font-size: .9rem;
    transition: color var(--t), padding-left var(--t); display: inline-block;
}
.tss-footer__links a:hover { color: var(--gold); padding-left: 4px; }

.tss-footer__contact-list { list-style: none; padding: 0; margin: 0 0 1.25rem; }
.tss-footer__contact-list li {
    display: flex; align-items: flex-start; gap: .625rem;
    margin-bottom: .875rem; font-size: .9rem; color: rgba(255,255,255,0.65);
}
.tss-footer__contact-list a { color: rgba(255,255,255,0.65); transition: color var(--t); }
.tss-footer__contact-list a:hover { color: var(--gold); }
.tss-footer__hours { flex-direction: column; gap: .25rem; }

.tss-footer__bottom {
    border-top: 1px solid rgba(212,165,116,0.12);
    padding-block: 1.5rem;
    font-size: .8125rem;
}
.tss-footer__bottom-inner {
    display: flex; align-items: center;
    justify-content: space-between; gap: 1rem; flex-wrap: wrap;
}
.tss-footer__copyright { color: rgba(255,255,255,0.4); margin: 0; }
.tss-footer__copyright a { color: rgba(255,255,255,0.55); transition: color var(--t); }
.tss-footer__copyright a:hover { color: var(--gold); }
.tss-footer__legal { display: flex; gap: 1.5rem; }
.tss-footer__legal a { color: rgba(255,255,255,0.4); transition: color var(--t); }
.tss-footer__legal a:hover { color: var(--gold); }

/* ============================================================
   PAGE HERO (inner pages)
   ============================================================ */
.tss-main--page    { padding-block: 0 5rem; }
.tss-main--archive { padding-block: 3rem 5rem; }
.tss-main--single  { padding-block: 3rem 5rem; }
.tss-main--404     { padding-block: 6rem; }

.tss-page-hero {
    background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy-mid) 100%);
    color: var(--white); padding-block: 4rem 3rem; margin-bottom: 3.5rem;
    position: relative; overflow: hidden;
}
.tss-page-hero::after {
    content: ''; position: absolute; bottom: -1px; left: 0; right: 0;
    height: 60px;
    background: radial-gradient(ellipse 60% 100% at 30% 120%, rgba(0,180,166,0.15) 0%, transparent 70%);
}
.tss-page-hero__title {
    font-family: var(--font-display); color: var(--white);
    font-size: clamp(1.875rem, 4vw, 2.75rem); margin-bottom: .75rem;
}
.tss-page-hero__excerpt { color: rgba(255,255,255,0.75); font-size: 1.0625rem; max-width: 600px; margin: 0; }

/* Prose */
.tss-prose { max-width: 72ch; }
.tss-prose h2 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: .75rem; }
.tss-prose h3 { font-size: 1.25rem; margin-top: 2rem; margin-bottom: .5rem; }
.tss-prose p  { margin-bottom: 1.25rem; }
.tss-prose ul, .tss-prose ol { margin-bottom: 1.25rem; }

/* Page content */
.tss-page-article { }
.tss-page-content { max-width: 72ch; }
.tss-page-content h2 { margin-top: 2.5rem; }
.tss-page-content h3 { margin-top: 1.75rem; }
.tss-page-content p  { margin-bottom: 1.25rem; }
.tss-page-content img { border-radius: var(--r-md); }
.tss-page-content a  { text-decoration: underline; text-underline-offset: 3px; }

/* Post nav */
.tss-post-nav {
    display: flex; justify-content: space-between; gap: 1rem;
    margin-top: 3rem; padding-top: 2rem;
    border-top: 1px solid var(--gray-200);
}
.tss-post-nav a { display: flex; flex-direction: column; gap: .25rem; max-width: 45%; }
.tss-post-nav__next { text-align: right; margin-left: auto; }
.tss-post-nav a span:first-child { font-size: .8rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.tss-post-nav a span:last-child  { font-weight: 600; color: var(--navy); }

/* 404 */
.tss-404 { text-align: center; max-width: 540px; margin-inline: auto; }
.tss-404__number { font-family: var(--font-display); font-size: 8rem; font-weight: 900; color: var(--gray-200); line-height: 1; }
.tss-404__title  { font-size: 2rem; margin-bottom: 1rem; }
.tss-404__message { color: var(--muted); margin-bottom: 2rem; }
.tss-404__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-bottom: 3rem; }
.tss-no-results { padding-block: 4rem; text-align: center; }
.tss-no-results__title { font-size: 1.75rem; margin-bottom: 1rem; }

/* Archive layout */
.tss-archive-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .tss-archive-layout { grid-template-columns: 1fr 320px; } }
.tss-page-header { margin-bottom: 2.5rem; }
.tss-page-title { font-size: clamp(1.75rem, 4vw, 2.25rem); }

/* Single */
.tss-single-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .tss-single-layout { grid-template-columns: 1fr 300px; } }
.tss-single-header { margin-bottom: 2rem; }
.tss-single-title { font-size: clamp(1.75rem, 4vw, 2.5rem); margin-bottom: 1rem; }
.tss-single-meta { color: var(--muted); font-size: .875rem; display: flex; align-items: center; gap: .5rem; }
.tss-single-thumbnail { margin-bottom: 2rem; border-radius: var(--r-xl); overflow: hidden; }
.tss-single-thumbnail img { width: 100%; height: auto; }

/* ============================================================
   SERVICE SINGLE PAGE
   ============================================================ */
.tss-service-single__layout {
    display: grid; grid-template-columns: 1fr; gap: 3rem; padding-block: 3rem 5rem;
}
@media (min-width: 1024px) { .tss-service-single__layout { grid-template-columns: 1fr 300px; } }

.tss-service-single__cta {
    display: flex; flex-wrap: wrap; gap: 1rem; align-items: center;
    margin-top: 2.5rem; padding-top: 2.5rem; border-top: 1px solid var(--gray-200);
}
.tss-service-features {
    margin-top: 2.5rem; padding: 2rem;
    background: var(--offwhite); border-radius: var(--r-xl);
    border-left: 4px solid var(--gold);
}
.tss-service-features h2 { font-size: 1.25rem; margin-bottom: 1rem; }
.tss-icon--accent { color: var(--teal); }

/* Breadcrumb */
.tss-breadcrumb { font-size: .8125rem; color: rgba(255,255,255,0.6); margin-bottom: 1.25rem; }
.tss-breadcrumb a { color: rgba(255,255,255,0.7); text-decoration: none; transition: color var(--t); }
.tss-breadcrumb a:hover { color: var(--gold); }

/* Sidebar widgets */
.tss-sidebar { font-size: .9375rem; }
.tss-sidebar .widget { margin-bottom: 2.5rem; }
.widget-title {
    font-family: var(--font-sans); font-size: .75rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--navy); margin-bottom: 1rem;
    padding-bottom: .5rem; border-bottom: 2px solid var(--gold);
}
.tss-service-sidebar-widget {
    background: var(--offwhite); border-radius: var(--r-xl);
    padding: 1.5rem; margin-bottom: 1.5rem;
}
.tss-service-sidebar-widget .widget-title { color: var(--navy); }
.tss-service-sidebar-widget__list { list-style: none; padding: 0; margin: 0; }
.tss-service-sidebar-widget__list li { border-bottom: 1px solid var(--gray-200); margin-bottom: 0; }
.tss-service-sidebar-widget__list li:last-child { border-bottom: none; }
.tss-service-sidebar-widget__list a {
    display: flex; align-items: center; gap: .5rem;
    padding: .625rem 0; font-size: .9375rem; font-weight: 500;
    color: var(--text); text-decoration: none; transition: color var(--t), padding-left var(--t);
}
.tss-service-sidebar-widget__list a:hover { color: var(--teal-dark); padding-left: 4px; }
.tss-service-sidebar-widget__item--active a { color: var(--teal-dark); font-weight: 700; }

.tss-service-sidebar-widget--contact {
    background: linear-gradient(135deg, var(--navy-dark), var(--navy-mid));
}
.tss-service-sidebar-widget--contact .widget-title { color: var(--white); border-bottom-color: rgba(212,165,116,0.3); }
.tss-service-sidebar-widget--contact p { font-size: .9rem; color: rgba(255,255,255,0.65); margin-bottom: 1.25rem; }
.tss-service-sidebar-widget__phone,
.tss-service-sidebar-widget__email {
    display: flex; align-items: center; gap: .5rem;
    font-size: .9375rem; font-weight: 600; color: var(--gold);
    text-decoration: none; margin-bottom: .75rem; transition: color var(--t);
}
.tss-service-sidebar-widget__phone:hover,
.tss-service-sidebar-widget__email:hover { color: var(--white); }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.tss-contact-layout {
    display: grid; grid-template-columns: 1fr; gap: 3rem; padding-block: 0 2rem;
}
@media (min-width: 768px) { .tss-contact-layout { grid-template-columns: 1fr 1fr; align-items: start; } }
.tss-contact-info__list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.tss-contact-info__list li {
    display: flex; align-items: flex-start; gap: .875rem;
    padding: .875rem 0; border-bottom: 1px solid var(--gray-200);
}
.tss-contact-info__list li:last-child { border-bottom: none; }
.tss-contact-info__icon { font-size: 1.25rem; width: 2rem; flex-shrink: 0; padding-top: .1rem; }
.tss-contact-info__list strong { display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: .25rem; }
.tss-contact-info__list a, .tss-contact-info__list span, .tss-contact-info__list address { font-size: 1rem; color: var(--text); font-style: normal; }
.tss-contact-info__list a:hover { color: var(--teal-dark); }
.tss-contact-map__embed { margin-bottom: .75rem; }
.tss-contact-map__note { font-size: .875rem; color: var(--muted); margin: 0; }

/* ============================================================
   ABOUT PAGE (template-about.php)
   ============================================================ */

/* Intro section */
.tss-about-intro-section { padding: 5rem 0 3rem; }
.tss-about-intro-layout {
    display: grid; grid-template-columns: 1fr;
    gap: 3rem; align-items: start;
}
@media (min-width: 768px) {
    .tss-about-intro-layout { grid-template-columns: 1fr 1fr; }
}
.tss-about-intro-text h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: 1.25rem; }
.tss-about-intro-text p  { color: var(--muted); line-height: 1.8; margin-bottom: 1rem; }

/* Credential cards */
.tss-credential-card {
    display: flex; align-items: center; gap: 1rem;
    padding: 1rem 1.25rem;
    background: var(--offwhite); border: 1px solid var(--gray-200);
    border-radius: var(--r-lg); margin-bottom: .75rem;
}
.tss-credential-card__icon {
    width: 48px; height: 48px; border-radius: var(--r-md);
    background: linear-gradient(135deg, var(--navy-mid), var(--navy));
    color: var(--gold); display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.tss-credential-card strong { display: block; font-size: .9375rem; color: var(--navy); margin-bottom: .125rem; }
.tss-credential-card span  { font-size: .8125rem; color: var(--muted); }

/* Values section */
.tss-about-values-section { padding: 5rem 0; background: var(--offwhite); }
.tss-values-grid {
    display: grid; grid-template-columns: 1fr;
    gap: 1.5rem; margin-top: 3rem;
}
@media (min-width: 480px) { .tss-values-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .tss-values-grid { grid-template-columns: repeat(4, 1fr); } }
.tss-value-card {
    background: var(--white); border-radius: var(--r-xl);
    padding: 2rem 1.5rem; border: 1px solid var(--gray-200);
    border-top: 3px solid var(--gold); text-align: center;
}
.tss-value-card__num {
    font-family: var(--font-display); font-size: 2.5rem; font-weight: 700;
    color: var(--gold); opacity: .4; line-height: 1; margin-bottom: .75rem;
}
.tss-value-card__title { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }
.tss-value-card__desc  { font-size: .875rem; color: var(--muted); line-height: 1.6; margin: 0; }

/* Team section */
.tss-about-team-section { padding: 5rem 0; }
.tss-team-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; margin-top: 3rem; }
@media (min-width: 640px) { .tss-team-grid { grid-template-columns: repeat(2, 1fr); } }
.tss-team-card {
    display: flex; gap: 1.25rem; align-items: flex-start;
    background: var(--offwhite); border-radius: var(--r-xl);
    padding: 1.75rem; border: 1px solid var(--gray-200);
}
.tss-team-card__avatar {
    width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg, var(--navy-mid), var(--navy));
    color: var(--gold); font-family: var(--font-display); font-size: 1rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; letter-spacing: .05em;
}
.tss-team-card__name { font-size: 1.0625rem; margin-bottom: .25rem; }
.tss-team-card__role { font-size: .8125rem; font-weight: 600; color: var(--teal-dark); text-transform: uppercase; letter-spacing: .06em; margin-bottom: .75rem; }
.tss-team-card__bio { font-size: .9rem; color: var(--muted); line-height: 1.6; margin-bottom: 1rem; }
.tss-team-card__social { display: flex; gap: .5rem; }

.tss-social-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--gray-200); color: var(--navy);
    transition: background var(--t), color var(--t); flex-shrink: 0;
}
.tss-social-icon:hover { background: var(--teal); color: var(--white); }
.tss-social-icon svg { width: 16px; height: 16px; display: block; fill: currentColor; }

/* ============================================================
   SCROLL REVEAL ANIMATION
   ============================================================ */
.reveal {
    opacity: 0; transform: translateY(24px);
    transition: opacity .6s ease, transform .6s ease;
}
.reveal.revealed { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }

/* ============================================================
   SEARCH FORM
   ============================================================ */
.search-form { display: flex; max-width: 440px; margin-inline: auto; gap: .5rem; }
.search-field { flex: 1; padding: .625rem 1rem; border: 1px solid var(--gray-200); border-radius: var(--r-full); font-size: .9375rem; }
.search-submit {
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 600; font-size: .875rem;
    padding: .5rem 1.125rem; border-radius: var(--r-full);
    border: 2px solid var(--teal); background: var(--teal); color: var(--white); cursor: pointer; transition: all var(--t);
}
.search-submit:hover { background: var(--teal-dark); border-color: var(--teal-dark); }

/* ============================================================
   WOOCOMMERCE BASELINE
   ============================================================ */
.tss-main--woo { padding-block: 3rem 5rem; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--r-md); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
    border-radius: var(--r-full) !important; font-weight: 600 !important;
}
}
