/*
Theme Name:  TheTechVA
Theme URI:   https://thetechva.com
Description: Digital Operations, Marketing & Technology consultancy site for Maleikha Zaire Jackson (MJ). Elementor-editable, SEO/AEO-optimized.
Author:      Maleikha Zaire Jackson
Version:     5.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License:     Private
Text Domain: thetechva
*/

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500&family=Lato:wght@300;400;500;600;700&display=swap');

:root {
  --ttva-bg:           #F6F1E7;
  --ttva-surface:      #FFFDF8;
  --ttva-ink:          #2E2419;
  --ttva-ink-soft:     #5A4F42;
  --ttva-ink-muted:    #8C8171;
  --ttva-green:        #6B7A4F;
  --ttva-green-lt:     #8A9A6B;
  --ttva-green-pale:   #E4E8D6;
  --ttva-gold:         #BE6A3A;
  --ttva-border:       #E3DCC9;
  --ttva-tag-bg:       #EFE8D8;
  --ttva-font-display: 'Fraunces', Georgia, serif;
  --ttva-font-body:    'Lato', system-ui, sans-serif;
  --ttva-font-mono:    'Lato', system-ui, sans-serif;
  --ttva-radius-sm: 6px; --ttva-radius-md: 14px; --ttva-radius-lg: 24px; --ttva-radius-xl: 40px;
  --ttva-shadow: 0 2px 16px rgba(46,36,25,.08);
  --ttva-shadow-hover: 0 10px 36px rgba(46,36,25,.15);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; max-width: 100%; }
body {
  font-family: var(--ttva-font-body) !important; background-color: var(--ttva-bg) !important; color: var(--ttva-ink) !important;
  font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; margin: 0; padding: 0;
  word-wrap: break-word; overflow-wrap: break-word;
}
a { color: var(--ttva-green); transition: color .2s; }
a:hover { color: var(--ttva-green-lt); }
img { max-width: 100%; height: auto; }
h1,h2,h3,h4,h5,h6 { font-family: var(--ttva-font-display) !important; font-weight: 600 !important; line-height: 1.1 !important; letter-spacing: -.02em; color: var(--ttva-ink); margin: 0 0 .75em; }
h1 { font-size: clamp(40px, 6vw, 72px); letter-spacing: -.025em; }
h2 { font-size: clamp(28px, 4vw, 48px); }
h3 { font-size: clamp(22px, 2.8vw, 32px); }
p { font-family: var(--ttva-font-body); font-weight: 300; color: var(--ttva-ink-soft); line-height: 1.78; margin: 0 0 1em; }

body, .site, .site-content, #page, #content, .elementor-page, .elementor-location-single, main#main { background-color: var(--ttva-bg) !important; }

.elementor-widget-heading .elementor-heading-title { font-family: var(--ttva-font-display) !important; font-weight: 600 !important; line-height: 1.1 !important; letter-spacing: -.02em; color: var(--ttva-ink); }
.elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-widget-text-editor li { font-family: var(--ttva-font-body) !important; font-weight: 300; color: var(--ttva-ink-soft); line-height: 1.78; }
.elementor-widget-button .elementor-button { font-family: var(--ttva-font-body) !important; font-weight: 500 !important; letter-spacing: .02em; transition: all .25s ease; }
.elementor-widget-accordion .elementor-accordion-item { border: 1px solid var(--ttva-border) !important; border-radius: var(--ttva-radius-md) !important; margin-bottom: 10px !important; overflow: hidden; }
.elementor-widget-accordion .elementor-tab-title, .elementor-widget-accordion .elementor-accordion-title { font-family: var(--ttva-font-body) !important; font-weight: 600 !important; font-size: 15.5px !important; color: var(--ttva-ink) !important; padding: 18px 22px !important; }
.elementor-widget-accordion .elementor-tab-content, .elementor-widget-accordion .elementor-accordion-content { font-family: var(--ttva-font-body) !important; font-weight: 300; color: var(--ttva-ink-soft) !important; line-height: 1.75 !important; font-size: 14.5px !important; padding: 0 22px 20px !important; }

.elementor-section-wrap, .e-con-inner { padding-left: 0; padding-right: 0; }
.site-main, #main, .entry-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
.site-header, #masthead, .site-footer, #colophon { display: none !important; }

.ttva-bg-light { background-color: var(--ttva-bg) !important; }
.ttva-bg-white { background-color: var(--ttva-surface) !important; }
.ttva-bg-dark  { background-color: var(--ttva-ink) !important; }
.ttva-bg-gradient { background: linear-gradient(135deg, var(--ttva-green) 0%, var(--ttva-ink) 100%) !important; }
.ttva-bg-dark .elementor-heading-title, .ttva-bg-dark h1,.ttva-bg-dark h2,.ttva-bg-dark h3,.ttva-bg-dark h4 { color: #fff !important; }
.ttva-bg-dark p, .ttva-bg-dark .elementor-widget-text-editor p { color: rgba(255,255,255,.7) !important; }
.ttva-bg-gradient .elementor-heading-title, .ttva-bg-gradient h1,.ttva-bg-gradient h2 { color: #fff !important; }
.ttva-bg-gradient p, .ttva-bg-gradient .elementor-widget-text-editor p { color: rgba(255,255,255,.75) !important; }
.ttva-bg-gradient em { color: var(--ttva-gold) !important; }

.ttva-eyebrow .elementor-heading-title { font-family: var(--ttva-font-mono) !important; font-size: 11px !important; letter-spacing: .18em !important; text-transform: uppercase !important; color: var(--ttva-green) !important; font-weight: 500 !important; }
.ttva-display .elementor-heading-title { font-family: var(--ttva-font-display) !important; font-weight: 600 !important; letter-spacing: -.025em !important; line-height: 1.05 !important; }
.ttva-display em, .ttva-italic em { color: var(--ttva-green); font-style: italic; }

.ttva-stat .elementor-heading-title { font-family: var(--ttva-font-display) !important; font-size: 44px !important; font-weight: 600 !important; color: var(--ttva-ink) !important; line-height: 1 !important; }
.ttva-stat-green .elementor-heading-title { font-family: var(--ttva-font-display) !important; font-size: 44px !important; font-weight: 600 !important; color: var(--ttva-green) !important; line-height: 1 !important; }

.ttva-card { background: var(--ttva-surface) !important; border-radius: var(--ttva-radius-lg) !important; border: 1px solid var(--ttva-border) !important; transition: transform .3s ease, box-shadow .3s ease, border-color .3s !important; position: relative; overflow: hidden; }
.ttva-card::after { content: ''; position: absolute; bottom: 0; left: 0; height: 3px; width: 0; background: linear-gradient(90deg, var(--ttva-green), var(--ttva-gold)); transition: width .3s ease; }
.ttva-card:hover { transform: translateY(-5px) !important; box-shadow: var(--ttva-shadow-hover) !important; border-color: transparent !important; }
.ttva-card:hover::after { width: 100%; }
.ttva-card-dark { background: var(--ttva-ink) !important; border-radius: var(--ttva-radius-lg) !important; position: relative; overflow: hidden; transition: transform .3s, box-shadow .3s !important; }
.ttva-card-dark::after { content: ''; position: absolute; bottom: 0; left: 0; height: 3px; width: 0; background: linear-gradient(90deg, var(--ttva-gold), var(--ttva-green-lt)); transition: width .3s; }
.ttva-card-dark:hover { transform: translateY(-5px) !important; box-shadow: var(--ttva-shadow-hover) !important; }
.ttva-card-dark:hover::after { width: 100%; }
.ttva-card-dark .elementor-heading-title, .ttva-card-dark h1,.ttva-card-dark h2,.ttva-card-dark h3,.ttva-card-dark h4 { color: #fff !important; }
.ttva-card-dark p, .ttva-card-dark .elementor-widget-text-editor p { color: rgba(255,255,255,.65) !important; }

.ttva-highlight { background: var(--ttva-bg) !important; border: 1px solid var(--ttva-border) !important; border-radius: var(--ttva-radius-md) !important; }

.ttva-btn-primary .elementor-button { background: var(--ttva-ink) !important; color: #E8C27A !important; font-weight: 700 !important; border: 2px solid var(--ttva-ink) !important; border-radius: var(--ttva-radius-xl) !important; transition: all .25s !important; }
.ttva-btn-primary .elementor-button:hover { background: var(--ttva-green) !important; border-color: var(--ttva-green) !important; color: #fff !important; transform: translateY(-2px) !important; }
.ttva-btn-outline .elementor-button { background: transparent !important; color: var(--ttva-ink) !important; border: 1.5px solid var(--ttva-border) !important; border-radius: var(--ttva-radius-xl) !important; transition: all .25s !important; }
.ttva-btn-outline .elementor-button:hover { border-color: var(--ttva-ink) !important; transform: translateY(-2px) !important; }
.ttva-btn-white .elementor-button { background: #fff !important; color: var(--ttva-ink) !important; border: 2px solid #fff !important; border-radius: var(--ttva-radius-xl) !important; font-weight: 700 !important; transition: all .25s !important; }
.ttva-btn-white .elementor-button:hover { background: var(--ttva-gold) !important; border-color: var(--ttva-gold) !important; }

.ttva-cta-banner { border-radius: var(--ttva-radius-lg) !important; overflow: hidden !important; }
.ttva-cta-banner .elementor-heading-title, .ttva-cta-banner h1,.ttva-cta-banner h2 { color: #fff !important; }
.ttva-cta-banner em { color: var(--ttva-gold) !important; }
.ttva-cta-banner p, .ttva-cta-banner .elementor-widget-text-editor p { color: rgba(255,255,255,.85) !important; }

.ttva-footer { background: var(--ttva-ink) !important; }
.ttva-footer .elementor-heading-title, .ttva-footer h4 { color: #fff !important; }
.ttva-footer p, .ttva-footer .elementor-widget-text-editor p { color: rgba(255,255,255,.5) !important; }
.ttva-footer a { color: rgba(255,255,255,.5) !important; }
.ttva-footer a:hover { color: #fff !important; }

.ttva-nav { position: sticky !important; top: 0 !important; z-index: 9999 !important; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; background: rgba(249,247,244,.94) !important; border-bottom: 1px solid var(--ttva-border) !important; }
.ttva-fallback-nav .ttva-nav-inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ttva-fallback-nav .ttva-nav-logo { font-family: var(--ttva-font-display); font-size: 22px; font-weight: 600; letter-spacing: -.01em; color: var(--ttva-ink); text-decoration: none; flex-shrink: 0; }
.ttva-fallback-nav .ttva-nav-logo span { color: var(--ttva-green); }
.ttva-fallback-nav .ttva-nav-list { display: flex !important; align-items: center !important; gap: 32px !important; list-style: none !important; margin: 0 !important; padding: 0 !important; flex: 1 1 auto; justify-content: center; }
.ttva-fallback-nav .ttva-nav-list li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ttva-fallback-nav .ttva-nav-list li a { font-family: var(--ttva-font-body) !important; font-size: 13.5px !important; font-weight: 500 !important; color: var(--ttva-ink-soft) !important; text-decoration: none !important; white-space: nowrap !important; transition: color .2s !important; display: inline-block !important; padding: 4px 0 !important; }
.ttva-fallback-nav .ttva-nav-list a:hover { color: var(--ttva-ink) !important; }
.ttva-fallback-nav .ttva-nav-cta { font-family: var(--ttva-font-body); font-size: 13px; font-weight: 700; background: var(--ttva-ink); color: #E8C27A; padding: 9px 22px; border-radius: var(--ttva-radius-xl); text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; flex-shrink: 0; }
.ttva-fallback-nav .ttva-nav-cta:hover { background: var(--ttva-green); color: #fff; }
.ttva-fallback-nav .ttva-nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 40px; height: 40px; padding: 0; margin: 0; background: transparent; border: none; cursor: pointer; flex-shrink: 0; }
.ttva-fallback-nav .ttva-nav-toggle span { display: block; width: 22px; height: 2px; margin: 0 auto; background: var(--ttva-ink); border-radius: 2px; transition: transform .25s ease, opacity .25s ease; }
.ttva-fallback-nav.ttva-nav-open .ttva-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ttva-fallback-nav.ttva-nav-open .ttva-nav-toggle span:nth-child(2) { opacity: 0; }
.ttva-fallback-nav.ttva-nav-open .ttva-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 900px) {
  .ttva-fallback-nav .ttva-nav-toggle { display: flex; }
  .ttva-fallback-nav .ttva-nav-list { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 0 !important; position: absolute; top: 100%; left: 0; right: 0; background: var(--ttva-surface); border-bottom: 1px solid var(--ttva-border); box-shadow: var(--ttva-shadow-hover); max-height: 0; overflow: hidden; opacity: 0; transition: max-height .3s ease, opacity .25s ease; padding: 0 24px !important; }
  .ttva-fallback-nav.ttva-nav-open .ttva-nav-list { max-height: 500px; opacity: 1; padding: 8px 24px 16px !important; }
  .ttva-fallback-nav .ttva-nav-list li { width: 100%; border-bottom: 1px solid var(--ttva-border); }
  .ttva-fallback-nav .ttva-nav-list li:last-child { border-bottom: none; }
  .ttva-fallback-nav .ttva-nav-list li a { display: block !important; padding: 14px 4px !important; font-size: 15px !important; }
  .ttva-fallback-nav .ttva-nav-cta { padding: 8px 16px; font-size: 12.5px; }
}
@media (max-width: 480px) {
  .ttva-fallback-nav .ttva-nav-inner { padding: 0 16px; }
  .ttva-fallback-nav .ttva-nav-logo { font-size: 19px; }
  .ttva-fallback-nav .ttva-nav-cta { padding: 7px 12px; font-size: 11.5px; }
}

@keyframes ttva-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .5; transform: scale(1.4); } }
@keyframes ttva-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.ttva-float { animation: ttva-float 5s ease-in-out infinite; }

/* Philosophy / pull-quote block */
.ttva-pullquote { border-left: 4px solid var(--ttva-green); }
.ttva-pullquote p { font-family: var(--ttva-font-display) !important; font-style: italic; font-size: 22px !important; color: var(--ttva-ink) !important; line-height: 1.5 !important; }

@media (max-width: 768px) {
  h1 { font-size: 38px; } h2 { font-size: 30px; } h3 { font-size: 24px; }
  .ttva-stat .elementor-heading-title, .ttva-stat-green .elementor-heading-title { font-size: 40px !important; }
}
