/*
Theme Name: TraceVanta
Theme URI: https://tracevanta.com/
Author: TraceVanta
Description: An original WordPress theme for a plain-English digital evidence and fraud tracing consultancy.
Version: 1.0.0
Requires at least: 6.0
Text Domain: tracevanta
*/
:root { --ink:#142033; --ink-soft:#26364e; --paper:#f7f4ee; --white:#fff; --brass:#c9a65b; --line:#ddd6ca; --muted:#667085; --whatsapp:#25d366; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",Arial,sans-serif; line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.tv-shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; }
.tv-eyebrow { color:#9d7a37; font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.tv-heading { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(2.5rem,5.2vw,5.1rem); font-weight:600; line-height:.95; letter-spacing:-.035em; }
.tv-subheading { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(2.1rem,3.5vw,3.4rem); font-weight:600; line-height:1; letter-spacing:-.025em; }
.tv-copy { color:var(--muted); font-size:1.06rem; max-width:63ch; }
.tv-button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 25px; border:1px solid var(--brass); background:var(--brass); color:var(--ink); cursor:pointer; font:700 .76rem/1 "DM Sans",Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; transition:background .2s,color .2s,transform .2s; }
.tv-button:hover,.tv-button:focus-visible { background:#e5c983; transform:translateY(-2px); }
.tv-button--light { background:transparent; border-color:#fff; color:#fff; }
.tv-button--light:hover,.tv-button--light:focus-visible { background:#fff; color:var(--ink); }
.tv-site-header { position:absolute; z-index:10; width:100%; color:#fff; border-bottom:1px solid rgba(255,255,255,.28); }
.tv-header-row { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.tv-brand { font-family:"Cormorant Garamond",Georgia,serif; font-size:2rem; font-weight:600; letter-spacing:-.04em; }
.tv-brand small { display:block; margin-top:-3px; font-family:"DM Sans",Arial,sans-serif; font-size:.56rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.tv-nav { display:flex; align-items:center; gap:22px; font-size:.73rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.tv-nav a:hover,.tv-nav a:focus-visible { color:#f5d890; }
.tv-menu-toggle { display:none; border:0; background:none; color:#fff; font:700 .72rem/1 "DM Sans",Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.tv-hero { min-height:760px; color:#fff; background:#111d2d url('assets/0914-tracevanta-hero-v1.png') center/cover no-repeat; display:flex; align-items:center; }
.tv-hero-content { width:min(665px,100%); padding:174px 0 92px; }
.tv-hero .tv-heading { max-width:11ch; }
.tv-hero .tv-copy { color:#f0f3f8; margin:25px 0 34px; font-size:1.14rem; }
.tv-intro { display:grid; grid-template-columns:1.05fr .95fr; gap:80px; padding:110px 0; align-items:end; }
.tv-intro .tv-copy { margin:20px 0 0; }
.tv-service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.tv-service { min-height:258px; padding:34px 28px; border-right:1px solid var(--line); background:var(--paper); }
.tv-service:last-child { border-right:0; }
.tv-service-number { color:#9d7a37; font:600 2rem/1 "Cormorant Garamond",Georgia,serif; }
.tv-service h3 { margin:36px 0 10px; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.75rem; font-weight:600; line-height:1; }
.tv-service p { margin:0; color:var(--muted); font-size:.94rem; }
.tv-process { padding:125px 0; background:#e9e4db; }
.tv-process-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:55px; }
.tv-step { padding:0 26px 0 0; margin-right:26px; border-right:1px solid #cfc5b4; }
.tv-step:last-child { margin-right:0; border-right:0; }
.tv-step span { display:block; color:#9d7a37; font:600 3.2rem/1 "Cormorant Garamond",Georgia,serif; }
.tv-step h3 { margin:17px 0 10px; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.7rem; line-height:1; }
.tv-step p { margin:0; color:#596579; font-size:.94rem; }
.tv-cases { padding:120px 0; background:#fff; }
.tv-cases-head { display:flex; align-items:end; justify-content:space-between; gap:35px; margin-bottom:50px; }
.tv-cases-note { max-width:40ch; margin:0; color:#758095; font-size:.82rem; }
.tv-case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.tv-case { padding:36px; background:#f4f1eb; border-top:4px solid var(--brass); }
.tv-case-label { color:#9d7a37; font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.tv-case h3 { margin:22px 0 16px; font-family:"Cormorant Garamond",Georgia,serif; font-size:2rem; font-weight:600; line-height:1; }
.tv-case p { margin:0 0 13px; color:#4d5b71; font-size:.94rem; }
.tv-case strong { color:var(--ink); }
.tv-expect { padding:110px 0; color:#fff; background:var(--ink); }
.tv-expect-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:92px; align-items:center; }
.tv-expect .tv-copy { color:#dbe2ec; }
.tv-expect-list { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.28); }
.tv-expect-list li { padding:23px 0; border-bottom:1px solid rgba(255,255,255,.28); font-size:1.03rem; }
.tv-expect-list strong { display:block; margin-bottom:3px; color:#f2d895; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.55rem; font-weight:600; }
.tv-faq { padding:120px 0; }
.tv-faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:start; }
.tv-faq details { border-top:1px solid var(--line); padding:20px 0; }
.tv-faq details:last-child { border-bottom:1px solid var(--line); }
.tv-faq summary { cursor:pointer; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.55rem; font-weight:600; }
.tv-faq p { margin:14px 0 0; color:var(--muted); }
.tv-final { padding:100px 0; text-align:center; background:#ded6c8; }
.tv-final .tv-copy { margin:18px auto 30px; }
.tv-site-footer { padding:50px 0; color:#cbd2dd; background:#101927; }
.tv-footer-row { display:flex; align-items:start; justify-content:space-between; gap:40px; }
.tv-footer-copy { max-width:44ch; color:#9ba7b9; font-size:.84rem; }
.tv-footer-nav { display:flex; flex-wrap:wrap; gap:16px 24px; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.tv-chat-wrap { position:fixed; right:24px; bottom:24px; z-index:100; }
.tv-chat-card { position:absolute; right:0; bottom:78px; width:min(345px,calc(100vw - 32px)); overflow:hidden; border:1px solid #d9d1c2; background:#fff; box-shadow:0 22px 60px rgba(9,18,31,.32); }
.tv-chat-card[hidden] { display:none; }
.tv-chat-head { display:flex; align-items:center; gap:12px; padding:16px; color:#fff; background:var(--ink); }
.tv-chat-avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.38); }
.tv-chat-name { margin:0; font-size:.88rem; font-weight:700; }
.tv-chat-title { margin:2px 0 0; color:#d7bc7e; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.tv-chat-close { margin-left:auto; border:0; background:transparent; color:#fff; cursor:pointer; font-size:1.3rem; }
.tv-chat-message { margin:0; padding:23px; color:#344158; background:#f5f2ec; font-size:.96rem; }
.tv-chat-action { width:100%; border:0; background:var(--whatsapp); color:#fff; cursor:pointer; padding:18px; font:700 .74rem/1 "DM Sans",Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.tv-chat-float { width:58px; height:58px; border:0; border-radius:50%; background:var(--whatsapp); color:#fff; cursor:pointer; box-shadow:0 12px 28px rgba(37,211,102,.34); font:700 .7rem/1 Arial,sans-serif; letter-spacing:.03em; }
@media (max-width:820px) { .tv-nav { display:none; } .tv-menu-toggle { display:block; } .tv-site-header.is-open .tv-nav { display:flex; position:absolute; top:86px; right:0; left:0; padding:24px 20px; background:var(--ink); flex-direction:column; align-items:flex-start; } .tv-hero { min-height:670px; background-position:62% center; } .tv-intro,.tv-expect-grid,.tv-faq-grid { grid-template-columns:1fr; gap:38px; } .tv-service-grid,.tv-process-grid,.tv-case-grid { grid-template-columns:1fr 1fr; } .tv-service:nth-child(2) { border-right:0; } .tv-service:nth-child(-n+2) { border-bottom:1px solid var(--line); } .tv-process-grid { gap:35px 0; } .tv-step:nth-child(2) { border-right:0; } .tv-step:nth-child(-n+2) { border-bottom:1px solid #cfc5b4; padding-bottom:24px; } .tv-step:nth-child(n+3) { padding-top:24px; } .tv-cases-head,.tv-footer-row { display:block; } .tv-cases-note { margin-top:16px; } .tv-footer-nav { margin-top:28px; } }
@media (max-width:560px) { .tv-shell { width:min(100% - 30px,1180px); } .tv-header-row { min-height:72px; } .tv-brand { font-size:1.7rem; } .tv-hero-content { padding:145px 0 72px; } .tv-hero .tv-heading { font-size:3.25rem; } .tv-service-grid,.tv-process-grid,.tv-case-grid { grid-template-columns:1fr; } .tv-service,.tv-service:nth-child(2),.tv-service:nth-child(3) { border-right:0; border-bottom:1px solid var(--line); } .tv-service:last-child { border-bottom:0; } .tv-step,.tv-step:nth-child(2) { margin:0; border-right:0; border-bottom:1px solid #cfc5b4; padding:0 0 24px; } .tv-step:nth-child(n+2) { padding-top:24px; } .tv-step:last-child { border-bottom:0; } .tv-cases,.tv-process,.tv-faq { padding:82px 0; } .tv-chat-wrap { right:15px; bottom:15px; } }
