/*
Theme Name: Tvast Technologies
Theme URI: https://tvast.in/
Author: Tvast Technologies
Author URI: https://tvast.in/
Description: Custom AI Agent & Workflow Automation Theme for Tvast Technologies. 100% Elementor & Gutenberg compatible with pre-seeded pages and custom styling.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: tvast
*/

/* ============================================================
   Tvast Technologies — site stylesheet
   Edit the variables below to re-theme the whole site.
   ============================================================ */
:root{
  /* Colors */
  --black:#000000;
  --primary:#17171c;          /* near-black CTA + footer */
  --ink:#212121;              /* body text */
  --deep-green:#003c33;       /* signature dark band */
  --dark-navy:#071829;        /* secondary dark band */
  --action-blue:#1863dc;      /* editorial links only */
  --focus-blue:#4c6ee6;       /* keyboard focus ring */
  --coral:#ff7759;            /* editorial taxonomy accent */
  --form-focus:#9b60aa;       /* input focus border */
  --error:#b30000;
  --canvas:#ffffff;
  --soft-stone:#eeece7;       /* warm card fill */
  --pale-green:#edfce9;
  --pale-blue:#f1f5ff;
  --muted:#93939f;
  --body-muted:#616161;
  --hairline:#d9d9dd;
  --border-light:#e5e7eb;
  --card-border:#f2f2f2;
  --on-dark:#ffffff;
  --on-dark-muted:rgba(255,255,255,.62);
  --border-on-dark:rgba(255,255,255,.18);

  /* Fonts */
  --font-display:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  --font-ui:"Inter",Arial,ui-sans-serif,system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  /* Type scale (mobile-first; desktop sizes set in media queries) */
  --fs-hero:clamp(44px,9vw,96px);
  --fs-product:clamp(36px,7vw,72px);
  --fs-section:clamp(28px,5vw,48px);
  --fs-card:clamp(24px,3.5vw,32px);
  --fs-feature:clamp(20px,2.5vw,24px);
  --fs-body-lg:18px;
  --fs-body:16px;
  --fs-button:14px;
  --fs-mono:14px;
  --fs-micro:12px;

  /* Spacing (8px base) */
  --space-xs:6px;
  --space-sm:8px;
  --space-md:12px;
  --space-lg:16px;
  --space-xl:24px;
  --space-xxl:32px;
  --space-3xl:40px;
  --space-4xl:56px;
  --space-5xl:64px;
  --space-section:80px;
  --container-max:1280px;
  --container-narrow:768px;
  --gutter:24px;

  /* Radii */
  --radius-xs:4px;
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:22px;
  --radius-pill:32px;

  /* Media gradients (media panels only — never buttons or page bg) */
  --gradient-green-depth:linear-gradient(160deg,#0a5c4e 0%,#003c33 45%,#03110f 100%);
  --gradient-particle-blue:radial-gradient(120% 120% at 20% 10%,#1e3f8f 0%,#0c2050 45%,#071829 100%);
  --gradient-ember:linear-gradient(135deg,#ff7759 0%,#e2482a 55%,#7c1a0e 100%);
  --gradient-cta-sky:linear-gradient(180deg,#f1f5ff 0%,#dfe8ff 55%,#c6d4fb 100%);
  --gradient-dawn:linear-gradient(150deg,#ffd9cf 0%,#ffad9b 55%,#ff7759 100%);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

  /* Motion */
  --motion-fast:120ms cubic-bezier(.2,0,.2,1);
  --motion-state:200ms cubic-bezier(.2,0,.2,1);
}

/* ---------- Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font:400 var(--fs-body)/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
a{color:var(--action-blue);text-decoration:underline;text-underline-offset:3px;transition:opacity var(--motion-fast)}
a:hover{opacity:.7}
:focus-visible{outline:2px solid var(--focus-blue);outline-offset:2px}
::selection{background:var(--pale-green)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--primary);color:var(--on-dark);padding:10px 20px;border-radius:0 0 var(--radius-sm) 0;z-index:99;text-decoration:none}
.skip-link:focus{left:0}

.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.container--narrow{max-width:var(--container-narrow)}
.section{padding-top:var(--space-section);padding-bottom:var(--space-section)}

/* ---------- Type roles ---------- */
.display{font-family:var(--font-display);font-weight:400;line-height:1.05;color:var(--black);text-wrap:balance}
.h-hero{font-size:var(--fs-hero);letter-spacing:-0.02em}
.h-product{font-size:var(--fs-product);letter-spacing:-0.02em}
.h-section{font-size:var(--fs-section);letter-spacing:-0.01em;line-height:1.15}
.h-card{font-size:var(--fs-card);letter-spacing:-0.01em;line-height:1.2}
.h-feature{font-size:var(--fs-feature);line-height:1.3;font-weight:400}
.lead{font-size:var(--fs-body-lg);line-height:1.4;color:var(--body-muted);max-width:56ch;text-wrap:pretty}
.mono-label{font:400 var(--fs-mono)/1.4 var(--font-mono);letter-spacing:.28px;text-transform:uppercase;color:var(--ink)}
.mono-label--coral{color:var(--coral)}
.mono-label--on-dark{color:var(--on-dark-muted)}
.text-muted{color:var(--body-muted)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font:500 var(--fs-button)/1.7 var(--font-ui);text-decoration:none;border-radius:var(--radius-pill);padding:10px 24px;border:1px solid transparent;cursor:pointer;transition:opacity var(--motion-fast)}
.btn:hover{opacity:.8}
.btn:active{opacity:.6}
.btn--primary{background:var(--primary);color:var(--on-dark)}
.btn--light{background:var(--canvas);color:var(--primary)}
.btn--outline{background:transparent;color:var(--primary);border-color:var(--primary)}
.btn--outline-light{background:transparent;color:var(--on-dark);border-color:var(--border-on-dark)}
.text-link{color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-size:var(--fs-button);font-weight:500}
.text-link:hover{opacity:.7}

/* ---------- Announcement bar ---------- */
.announce{background:var(--pale-green);text-align:center;padding:10px var(--gutter);font-size:var(--fs-mono)}
.announce a{color:var(--ink)}

/* ---------- Nav ---------- */
.site-nav{border-bottom:1px solid var(--card-border)}
.site-nav__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md) var(--space-xl);padding-top:var(--space-lg);padding-bottom:var(--space-lg)}
.wordmark{font-family:var(--font-display);font-size:24px;letter-spacing:-.02em;color:var(--black);text-decoration:none}
.wordmark:hover{opacity:1}
.site-nav__links{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-xl);list-style:none;margin:0;padding:0;order:3;width:100%}
.site-nav__links a{color:var(--ink);text-decoration:none;font-size:var(--fs-button);padding:6px 0}
.site-nav__links a:hover{text-decoration:underline;opacity:1}
.site-nav__links a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:2px}
.site-nav__cta{margin-left:auto}
@media (min-width:900px){
  .site-nav__inner{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-xl)}
  .site-nav__links{order:0;width:auto;justify-content:center}
  .site-nav__cta{justify-self:end;margin-left:0}
}

/* ---------- Hero ---------- */
.hero{padding-top:var(--space-4xl);padding-bottom:var(--space-section)}
.hero__grid{display:grid;gap:var(--space-3xl)}
.hero .lead{margin-top:var(--space-xl)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-lg);align-items:center;margin-top:var(--space-xxl)}
@media (min-width:1024px){
  .hero__grid{grid-template-columns:7fr 5fr;align-items:end}
}

/* ---------- Media cards (image stand-ins) ---------- */
.media-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:280px;display:flex;align-items:center;justify-content:center}
.media-card::after{content:"";position:absolute;inset:0;background-image:var(--grain);mix-blend-mode:soft-light;opacity:.45;pointer-events:none}
.media-card--thumb{border-radius:var(--radius-sm);min-height:200px}
.media-card--tall{min-height:380px}
.media-card svg{position:relative;width:56%;max-width:320px;height:auto}
.g-green{background:var(--gradient-green-depth)}
.g-blue{background:var(--gradient-particle-blue)}
.g-ember{background:var(--gradient-ember)}
.g-sky{background:var(--gradient-cta-sky)}
.g-dawn{background:var(--gradient-dawn)}

/* ---------- Trust strip ---------- */
.trust{padding-top:var(--space-5xl);padding-bottom:var(--space-5xl);border-top:1px solid var(--card-border)}
.trust__row{display:flex;flex-wrap:wrap;gap:var(--space-xl) var(--space-4xl);align-items:center;justify-content:center;margin-top:var(--space-xxl)}
.trust__row span{font-family:var(--font-display);font-size:20px;color:var(--muted);letter-spacing:-.01em}
.trust p{text-align:center}

/* ---------- Section heading ---------- */
.section-head{display:grid;gap:var(--space-lg);margin-bottom:var(--space-4xl)}
.section-head .lead{margin-top:var(--space-sm)}
@media (min-width:900px){
  .section-head--split{grid-template-columns:1fr 1fr;align-items:end}
  .section-head--split .lead{justify-self:end}
}

/* ---------- Capability cards (top rule, no box) ---------- */
.rule-grid{display:grid;gap:var(--space-3xl)}
.rule-card{border-top:1px solid var(--hairline);padding-top:var(--space-xl);display:grid;gap:var(--space-md);align-content:start}
.rule-card p{color:var(--body-muted);text-wrap:pretty}
@media (min-width:720px){.rule-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.rule-grid--3{grid-template-columns:1fr 1fr 1fr}}

/* ---------- Dark band ---------- */
.dark-band{background:var(--deep-green);color:var(--on-dark)}
.dark-band--navy{background:var(--dark-navy)}
.dark-band .display,.dark-band .h-feature{color:var(--on-dark)}
.dark-band p{color:var(--on-dark-muted)}
.dark-band .rule-card{border-top-color:var(--border-on-dark)}
.dark-band a.text-link{color:var(--on-dark)}

/* ---------- Cards ---------- */
.card{background:var(--canvas);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:var(--space-xxl)}
.card--stone{background:var(--soft-stone);border-color:transparent}
.card--dark-translucent{background:rgba(255,255,255,.06);border:1px solid var(--border-on-dark);color:var(--on-dark)}
.card-grid{display:grid;gap:var(--space-xl)}
@media (min-width:720px){.card-grid--2{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.card-grid--3{grid-template-columns:1fr 1fr 1fr}}

/* ---------- Service / product card ---------- */
.product-card{display:grid;gap:var(--space-lg);align-content:start;background:var(--soft-stone);border-radius:var(--radius-md);padding:var(--space-xxl)}
.product-card ul{list-style:none;padding:0;display:grid;gap:var(--space-sm)}
.product-card li{display:flex;gap:var(--space-md);color:var(--body-muted)}
.product-card li::before{content:"✓";color:var(--deep-green);flex:none}
.product-card .text-link{margin-top:var(--space-sm);justify-self:start}

/* ---------- Stats ---------- */
.stats{display:grid;gap:var(--space-3xl);border-top:1px solid var(--hairline);padding-top:var(--space-3xl)}
.stat b{display:block;font-family:var(--font-display);font-weight:400;font-size:clamp(40px,6vw,60px);letter-spacing:-.02em;color:var(--black)}
.stat span{color:var(--body-muted);font-size:var(--fs-body)}
.dark-band .stat b{color:var(--on-dark)}
.dark-band .stat span{color:var(--on-dark-muted)}
@media (min-width:720px){.stats{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.stats{grid-template-columns:repeat(4,1fr)}}

/* ---------- Timeline ---------- */
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:step}
.timeline li{counter-increment:step;position:relative;padding:var(--space-xxl) 0 var(--space-xxl) 72px;border-top:1px solid var(--hairline);display:grid;gap:var(--space-sm)}
.timeline li::before{content:"0" counter(step);position:absolute;left:0;top:var(--space-xxl);font:400 var(--fs-mono)/1.4 var(--font-mono);letter-spacing:.28px;color:var(--coral)}
.timeline li p{color:var(--body-muted);max-width:60ch;text-wrap:pretty}
.timeline .mono-label{color:var(--muted)}

/* ---------- Comparison table ---------- */
.compare-wrap{overflow-x:auto}
.compare{width:100%;border-collapse:collapse;min-width:640px}
.compare caption{text-align:left;padding-bottom:var(--space-lg)}
.compare th,.compare td{text-align:left;padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--hairline);font-weight:400;vertical-align:top}
.compare thead th{border-top:none;font:400 var(--fs-mono)/1.4 var(--font-mono);letter-spacing:.28px;text-transform:uppercase;color:var(--muted);padding-top:0}
.compare tbody th{color:var(--black)}
.compare td{color:var(--body-muted)}
.compare .col-us{background:var(--pale-green)}
.compare tbody tr:last-child th,.compare tbody tr:last-child td{border-bottom:1px solid var(--hairline)}

/* ---------- FAQ accordion ---------- */
.faq{display:grid}
.faq details{border-top:1px solid var(--hairline)}
.faq details:last-child{border-bottom:1px solid var(--hairline)}
.faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-xl);padding:var(--space-xl) 0;cursor:pointer;font-size:var(--fs-feature);color:var(--black);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-mono);color:var(--muted);flex:none}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 var(--space-xl);color:var(--body-muted);max-width:64ch;text-wrap:pretty}

/* ---------- Testimonials ---------- */
.quote-grid{display:grid;gap:var(--space-xl)}
.quote{background:var(--soft-stone);border-radius:var(--radius-md);padding:var(--space-xxl);display:grid;gap:var(--space-xl);align-content:space-between}
.quote blockquote{margin:0;font-size:var(--fs-body-lg);line-height:1.4;color:var(--ink);text-wrap:pretty}
.quote figcaption{color:var(--body-muted);font-size:var(--fs-mono)}
.quote figcaption b{display:block;font-weight:500;color:var(--black)}
@media (min-width:720px){.quote-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.quote-grid{grid-template-columns:1fr 1fr 1fr}}

/* ---------- Editorial / blog ---------- */
.post-grid{display:grid;gap:var(--space-3xl)}
.post-card{display:grid;gap:var(--space-lg);align-content:start;text-decoration:none;color:inherit}
.post-card:hover{opacity:1}
.post-card:hover .h-feature{text-decoration:underline;text-underline-offset:3px}
.post-card .h-feature{color:var(--black)}
.post-card p{color:var(--body-muted);text-wrap:pretty}
.post-meta{display:flex;gap:var(--space-lg);align-items:baseline}
.post-meta time{color:var(--muted);font-size:var(--fs-mono)}
@media (min-width:720px){.post-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.post-grid{grid-template-columns:1fr 1fr 1fr}}

.filter-row{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-4xl)}
.pill{display:inline-block;border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:6px 18px;font-size:var(--fs-button);color:var(--ink);text-decoration:none;transition:background var(--motion-fast)}
.pill:hover{background:var(--soft-stone);opacity:1}
.pill[aria-current="true"]{background:var(--primary);color:var(--on-dark);border-color:var(--primary)}

/* ---------- Article ---------- */
.article-header{padding-top:var(--space-4xl);padding-bottom:var(--space-4xl);display:grid;gap:var(--space-xl)}
.article-body{display:grid;gap:var(--space-xl);padding-bottom:var(--space-section)}
.article-body p,.article-body li{font-size:var(--fs-body-lg);line-height:1.6;color:var(--ink);max-width:68ch;text-wrap:pretty}
.article-body h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-card);letter-spacing:-.01em;margin-top:var(--space-xl);color:var(--black)}
.article-body ul{padding-left:1.2em;display:grid;gap:var(--space-sm)}

/* ---------- Forms ---------- */
.form-card{background:var(--canvas);border-radius:var(--radius-md);padding:var(--space-xxl);display:grid;gap:var(--space-xl);color:var(--ink)}
.form-row{display:grid;gap:var(--space-xl)}
@media (min-width:720px){.form-row--2{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:var(--space-xs)}
.field label{font-size:var(--fs-button);font-weight:500;color:var(--ink)}
.field .hint{font-size:var(--fs-micro);color:var(--muted)}
.field input,.field select,.field textarea{font:400 var(--fs-body)/1.5 var(--font-ui);color:var(--ink);background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius-xs);padding:12px 14px;width:100%}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--form-focus)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--form-focus)}
.checkline{display:flex;gap:var(--space-md);align-items:flex-start;font-size:var(--fs-button);color:var(--body-muted)}
.checkline input{width:16px;height:16px;margin-top:2px;accent-color:var(--deep-green)}
form .btn{justify-self:start;border:none}

/* ---------- CTA band ---------- */
.cta-band{border-radius:var(--radius-lg);overflow:hidden;position:relative;padding:var(--space-4xl) var(--space-xxl);display:grid;gap:var(--space-xl);justify-items:start}
.cta-band::after{content:"";position:absolute;inset:0;background-image:var(--grain);mix-blend-mode:soft-light;opacity:.4;pointer-events:none}
.cta-band>*{position:relative;z-index:1}
.cta-band .display{color:var(--black)}
.cta-band p{color:var(--ink)}
@media (min-width:900px){.cta-band{padding:var(--space-section) var(--space-5xl)}}

/* ---------- Footer ---------- */
.site-footer{background:var(--primary);color:var(--on-dark);margin-top:var(--space-section)}
.site-footer a{color:var(--on-dark);text-decoration:none}
.site-footer a:hover{text-decoration:underline;opacity:1}
.footer-top{display:grid;gap:var(--space-4xl);padding-top:var(--space-5xl);padding-bottom:var(--space-5xl)}
.footer-brand{display:grid;gap:var(--space-lg);align-content:start}
.footer-brand .wordmark{color:var(--on-dark)}
.footer-brand p{color:var(--on-dark-muted);max-width:34ch}
.footer-col{display:grid;gap:var(--space-md);align-content:start}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-md)}
.footer-col .mono-label{color:var(--coral)}
.footer-col address{font-style:normal;display:grid;gap:var(--space-md);color:var(--on-dark-muted)}
.footer-col address a{color:var(--on-dark)}
.social-row{display:flex;gap:var(--space-lg)}
.social-row a{display:inline-flex;padding:6px;border:1px solid var(--border-on-dark);border-radius:var(--radius-sm)}
.social-row svg{width:18px;height:18px;fill:var(--on-dark)}
.footer-bottom{border-top:1px solid var(--border-on-dark);padding-top:var(--space-xl);padding-bottom:var(--space-xl);display:flex;flex-wrap:wrap;gap:var(--space-lg) var(--space-xxl);justify-content:space-between;color:var(--on-dark-muted);font-size:var(--fs-mono)}
@media (min-width:900px){.footer-top{grid-template-columns:2fr 1fr 1fr 1.4fr}}

/* ---------- Utilities ---------- */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.stack-lg{display:grid;gap:var(--space-lg)}
.stack-xl{display:grid;gap:var(--space-xl)}
.mt-xl{margin-top:var(--space-xl)}
.mt-3xl{margin-top:var(--space-3xl)}
.mt-4xl{margin-top:var(--space-4xl)}
.two-col{display:grid;gap:var(--space-3xl)}
@media (min-width:900px){.two-col{grid-template-columns:1fr 1fr;align-items:start}}

/* WordPress Core Helpers */
.alignwide{max-width:var(--container-max);margin-left:auto;margin-right:auto}
.alignfull{max-width:100vw;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.screen-reader-text{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.wp-block-image img{height:auto;max-width:100%}
.elementor-section-wrap, .elementor-page{width:100%}
.elementor-template-full-width .container{max-width:100%}
