﻿/*
Theme Name: Revotech Networks
Theme URI: https://revotech-networks.com/
Author: Revotech Networks (converted from Claude design)
Description: Custom theme converting the Revotech Networks redesign into WordPress. Dark navy + cyan brand system, Space Grotesk / Inter / JetBrains Mono type, scroll-reveal animations and a node-network hero canvas. Templates for the Our Team page (Homepage to follow).
Version: 0.5.2
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: revotech-networks
*/

/* ===================== BASE ===================== */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #0D1B2A; background: #fff; overflow-x: clip; }
img { max-width: 100%; }
a { color: inherit; }

:root {
  --accent:#00C2FF; --primary:#1A4FBA; --hero:#080F1E;
  --dark:#0D1A2E; --surface:#F2F5F9; --ink:#0D1B2A; --neutral:#8A9BB0;
}

/* ===================== KEYFRAMES ===================== */
@keyframes rv-pulse { 0%,100%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.12)} }
@keyframes rv-spin  { to { transform:rotate(360deg); } }

/* ===================== SCROLL REVEAL ===================== */
.rv-reveal { opacity:0; transform:translateY(40px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.rv-reveal.is-in { opacity:1; transform:none; }
.rv-reveal[data-rv="left"]  { transform:translate3d(-64px,16px,0) scale(.96); }
.rv-reveal[data-rv="right"] { transform:translate3d(64px,16px,0) scale(.96); }
.rv-reveal[data-rv="tilt"]  { transform:translate3d(0,70px,0) scale(.95); }
.rv-reveal[data-rv="tilt"].is-in { transform:none; }
@media (prefers-reduced-motion: reduce) { .rv-reveal { opacity:1!important; transform:none!important; transition:none!important; } }

/* ===================== HEADER ===================== */
.rvh-link { position:relative; transition:color .25s; white-space:nowrap; }
.rvh-link:hover { color:#fff!important; }
.rvh-link:after { content:""; position:absolute; left:0; bottom:-4px; height:2px; width:0; background:#00C2FF; transition:width .3s; }
.rvh-link:hover:after { width:100%; }
.rv-dd-caret { transition:transform .25s; }
.rv-dd:hover .rv-dd-caret { transform:rotate(180deg); }
.rv-dd:hover .rv-dd-menu { opacity:1!important; visibility:visible!important; transform:translateY(0)!important; }
.rv-dd-item:hover { background:rgba(0,194,255,.12)!important; color:#fff!important; }
.rvh-cta { transition:transform .25s, box-shadow .25s; }
.rvh-cta:hover { transform:translateY(-3px)!important; box-shadow:0 16px 40px -10px rgba(0,194,255,.6)!important; }
.rvh-phone { transition:color .2s; }
.rvh-phone:hover { color:#00C2FF!important; }

/* ===================== BUTTONS / CARDS ===================== */
.rv-btn-primary { transition:transform .25s, box-shadow .25s; }
.rv-btn-primary:hover { transform:translateY(-3px)!important; box-shadow:0 16px 40px -10px rgba(0,194,255,.6)!important; }
.rv-person { transition:transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
.rv-person:hover { transform:translateY(-5px)!important; border-color:rgba(0,194,255,.5)!important; box-shadow:0 20px 48px -22px rgba(0,194,255,.35)!important; }

/* ===================== FOOTER ===================== */
.rvf-link { transition:color .2s; }
.rvf-link:hover { color:#fff!important; }
.rvf-cta { transition:transform .25s, box-shadow .25s; }
.rvf-cta:hover { transform:translateY(-3px)!important; box-shadow:0 14px 36px -12px rgba(0,194,255,.6)!important; }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 880px) {
  .rv-hide-m { display:none!important; }
  .rv-grid-4 { grid-template-columns:1fr 1fr!important; }
  .rv-vals  { grid-template-columns:1fr!important; }
  .rvf-grid { grid-template-columns:1fr 1fr!important; gap:32px!important; }
}
@media (max-width: 520px) {
  .rv-grid-4 { grid-template-columns:1fr!important; }
  .rvf-grid  { grid-template-columns:1fr!important; }
}

/* ===== Top-of-page / WordPress admin-bar handling ===== */
html { background: #080F1E; }                 /* kills the white sliver above the fixed header */
body.admin-bar #rv-header { top: 32px; }      /* keep the fixed header below the logged-in admin bar */
@media screen and (max-width: 782px) { body.admin-bar #rv-header { top: 46px; } }



/* ===================== EDITABLE MENU (native rebuild) ===================== */
.rv-hide-m .rvh-link { color:rgba(255,255,255,.82); text-decoration:none; font-weight:500; font-size:15px; display:inline-flex; align-items:center; gap:6px; }
.rv-hide-m .rv-dd { position:relative; display:flex; align-items:center; }
.rv-hide-m .rv-dd-menu { position:absolute; top:100%; left:0; padding-top:16px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease, visibility .25s; z-index:200; }
.rv-hide-m .rv-dd-panel { min-width:230px; background:rgba(13,26,46,.97); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:8px; box-shadow:0 24px 60px -18px rgba(0,0,0,.7); display:flex; flex-direction:column; gap:1px; }
.rv-hide-m .rv-dd-item { display:block; padding:10px 13px; border-radius:9px; color:rgba(255,255,255,.78); text-decoration:none; font-size:14px; font-weight:500; white-space:nowrap; transition:background .2s, color .2s; }


/* ===================== NATIVE HOMEPAGE SECTIONS ===================== */
.rv-main{overflow-x:clip}
.rv-hero{position:relative;background:#080F1E;color:#fff;min-height:86vh;display:flex;flex-direction:column;justify-content:center;padding:170px 0 90px;overflow:hidden}
.rv-hero>*{position:relative;z-index:2}
.rv-hero #rv-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block}
.rv-hero .rv-hero-h1{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(44px,7vw,84px);line-height:1.03;letter-spacing:-.02em;margin:0;color:#fff}
.rv-hero .rv-hero-sub{font-size:clamp(17px,2vw,21px);line-height:1.6;color:rgba(255,255,255,.74);max-width:640px;margin:22px 0 34px}
.rv-section{padding:92px 0}
.rv-section .rv-eyebrow{font-family:'JetBrains Mono',monospace;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);font-size:14px}
.rv-section h2{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(34px,5vw,60px);letter-spacing:-.02em;line-height:1.06;margin:12px 0 0}
.rv-section .rv-lede{font-size:17px;line-height:1.6;color:#5a6b7e;max-width:680px;margin:16px 0 0}
.rv-dark{background:var(--dark);color:#fff}
.rv-dark h2{color:#fff}
.rv-dark .rv-lede{color:rgba(255,255,255,.66)}
.rv-card{background:linear-gradient(180deg,#ffffff,#f5f9fd);border:1px solid #e7ecf2;border-radius:20px;padding:30px;height:100%}
.rv-card h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:20px;color:var(--ink);margin:0 0 10px}
.rv-card p{font-size:14.5px;line-height:1.55;color:#5a6b7e;margin:0}
.rv-num{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:#00C2FF}
.rv-quote{background:#fff;border:1px solid #e7ecf2;border-radius:20px;padding:28px;height:100%}
.rv-quote p{font-size:15px;line-height:1.6;color:#33445a;margin:0 0 16px}
.rv-quote .rv-author{font-weight:700;color:var(--ink);font-size:14.5px}
.rv-quote .rv-meta{color:#8a9bb0;font-size:13px}
.rv-chip{display:block;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:20px 18px;color:#fff;text-decoration:none;font-weight:600;transition:background .25s,border-color .25s,transform .25s}
.rv-chip:hover{background:rgba(0,194,255,.12);border-color:rgba(0,194,255,.5);transform:translateY(-4px)}
.rv-svc-link{display:block;background:linear-gradient(180deg,#ffffff,#f5f9fd);border:1px solid #e7ecf2;border-radius:20px;padding:28px;height:100%;text-decoration:none;transition:transform .3s,border-color .3s,box-shadow .3s}
.rv-svc-link:hover{transform:translateY(-6px);border-color:rgba(0,194,255,.5);box-shadow:0 24px 60px -24px rgba(0,194,255,.4)}
.rv-svc-link h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:19px;color:var(--ink);margin:0 0 8px}
.rv-svc-link p{font-size:14px;line-height:1.55;color:#5a6b7e;margin:0}
.rv-cta-band{background:linear-gradient(135deg,#0D1A2E,#13294a);color:#fff;border-radius:28px;padding:60px 48px;text-align:center}
.rv-cta-band h2{color:#fff}



/* ===================== LAYOUT WIDTH (native rebuild) ===================== */
.rv-main .rv-section > *:not(.alignfull),
.rv-main .rv-hero > *:not(#rv-canvas){ max-width:1240px; margin-left:auto; margin-right:auto; }
.rv-main .rv-section,
.rv-main .rv-hero{ padding-left:24px; padding-right:24px; box-sizing:border-box; }
.rv-main .wp-block-columns{ gap:24px; flex-wrap:wrap; }
.rv-main .rv-section .wp-block-columns{ width:100%; }
@media(max-width:880px){ .rv-main .wp-block-columns{ flex-direction:column; } .rv-main .wp-block-column{ flex-basis:100%!important; } }



/* ============ HOMEPAGE v2 Ã¢â‚¬â€ match original design ============ */
.rv-hero, .rv-stats, .rv-dark { color:#fff; }
.rv-section .rv-eyebrow, .rv-section h2 { text-align:center; }
.rv-section .rv-lede { text-align:center; margin-left:auto; margin-right:auto; }
.rv-dark .rv-eyebrow { color:#00C2FF; }
.rv-dark h2 { color:#fff; }
.rv-dark .rv-lede { color:rgba(255,255,255,.62); }

/* Hero */
.rv-hero { min-height:92vh; justify-content:center; }
.rv-hero .rv-hero-inner { text-align:left; max-width:1240px; }
.rv-hero-h1 { max-width:780px; color:#fff; }
.rv-hero .rv-hero-sub { max-width:600px; margin-left:0; }
.rv-cyan { background:linear-gradient(120deg,#00C2FF,#5aa9ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.rv-badge { display:inline-flex; align-items:center; gap:9px; width:auto; font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; letter-spacing:.06em; color:#7fdcff; background:rgba(0,194,255,.08); border:1px solid rgba(0,194,255,.32); border-radius:999px; padding:8px 16px; margin-bottom:8px; }
.rv-badge::before { content:""; width:8px; height:8px; border-radius:50%; background:#00C2FF; box-shadow:0 0 10px #00C2FF; }

/* Buttons */
.rv-main .wp-block-button:not(.is-style-outline) .wp-block-button__link { background:linear-gradient(135deg,#1A4FBA,#00C2FF); color:#fff; border-radius:999px; padding:14px 26px; font-weight:600; box-shadow:0 10px 30px -10px rgba(0,194,255,.6); }
.rv-main .wp-block-button.rv-arrow .wp-block-button__link::after { content:" \2192"; font-weight:700; }
.rv-main .is-style-outline .wp-block-button__link { background:transparent; border:1px solid rgba(255,255,255,.4); color:#fff; border-radius:999px; padding:13px 25px; }

/* Stats bar */
.rv-stats { padding-top:0; padding-bottom:0; }
.rv-stats-row { gap:20px; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); padding:34px 0; margin:0 auto; }
.rv-stat { text-align:center; }
.rv-stat-v { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(32px,4vw,46px); color:#fff; line-height:1; }
.rv-stat-l { color:#8A9BB0; font-size:13.5px; margin-top:8px; }

/* Why cards (dark) */
.rv-wcard { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.09); border-radius:20px; padding:32px; height:100%; }
.rv-wcard .rv-num { display:block; font-family:'JetBrains Mono',monospace; color:#3f5573; font-size:13px; font-weight:700; margin-bottom:16px; }
.rv-wic { display:inline-flex; width:44px; height:44px; color:#00C2FF; }
.rv-wic svg { width:40px; height:40px; }
.rv-wcard h3 { color:#fff; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:20px; margin:10px 0 10px; }
.rv-wcard p { color:rgba(255,255,255,.6); font-size:14.5px; line-height:1.6; margin:0; }

/* Reviews */
.rv-quote { background:#fff; border:1px solid #e7ecf2; border-radius:20px; padding:28px; height:100%; box-shadow:0 12px 44px -26px rgba(13,27,42,.3); }
.rv-stars { color:#FBB315; letter-spacing:3px; font-size:16px; margin-bottom:14px; }
.rv-quote p { color:#33445a; font-size:14.5px; line-height:1.6; margin:0 0 18px; }
.rv-reviewer { display:flex; align-items:center; gap:12px; }
.rv-av { width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,#1A4FBA,#00C2FF); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; flex:none; }
.rv-rmeta { display:flex; flex-direction:column; line-height:1.3; }
.rv-rmeta b { color:var(--ink); font-size:14px; }
.rv-rmeta i { color:#8a9bb0; font-size:12.5px; font-style:normal; }

/* Process timeline (dark) */
.rv-timeline { position:relative; max-width:820px; margin-left:auto; margin-right:auto; }
.rv-timeline::before { content:""; position:absolute; left:28px; top:24px; bottom:40px; width:2px; background:linear-gradient(#1A4FBA,rgba(0,194,255,.12)); }
.rv-tstep { margin:0 0 4px!important; gap:22px; align-items:flex-start; }
.rv-tnode { position:relative; z-index:2; display:flex; width:56px; height:56px; border-radius:50%; background:#0D1A2E; border:2px solid rgba(0,194,255,.4); color:#00C2FF; align-items:center; justify-content:center; box-shadow:0 0 0 6px #0B1526; }
.rv-tnode svg { width:26px; height:26px; }
.rv-tstep .rv-num { color:#00C2FF; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:13px; margin:0 0 4px; }
.rv-tstep h3 { color:#fff; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:21px; margin:0 0 8px; }
.rv-tstep p { color:rgba(255,255,255,.6); font-size:15px; line-height:1.6; margin:0 0 26px; max-width:560px; }

/* Services */
.rv-svc { position:relative; display:block; background:#fff; border:1px solid #e7ecf2; border-radius:20px; padding:30px; height:100%; text-decoration:none; transition:transform .3s,border-color .3s,box-shadow .3s; }
.rv-svc:hover { transform:translateY(-6px); border-color:rgba(0,194,255,.5); box-shadow:0 26px 60px -26px rgba(0,194,255,.45); }
.rv-svc-ic { display:inline-flex; width:56px; height:56px; border-radius:15px; background:linear-gradient(135deg,#eaf2fc,#d8e8f9); color:#1A4FBA; align-items:center; justify-content:center; }
.rv-svc-ic svg { width:30px; height:30px; }
.rv-svc-no { position:absolute; top:30px; right:30px; font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:#c2cdda; }
.rv-svc h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:19px; color:var(--ink); margin:20px 0 8px; }
.rv-svc p { font-size:14px; line-height:1.55; color:#5a6b7e; margin:0; }
.rv-svc-more { display:inline-block; margin-top:16px; font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:600; color:var(--primary); }

/* Industries (dark) */
.rv-ind { display:flex; flex-direction:column; align-items:center; gap:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:30px 18px; text-decoration:none; transition:background .25s,border-color .25s,transform .25s; }
.rv-ind:hover { background:rgba(0,194,255,.1); border-color:rgba(0,194,255,.45); transform:translateY(-4px); }
.rv-ind-ic { display:inline-flex; width:52px; height:52px; border-radius:14px; background:rgba(0,194,255,.12); color:#00C2FF; align-items:center; justify-content:center; }
.rv-ind-ic svg { width:28px; height:28px; }
.rv-ind-name { color:#fff; font-weight:600; font-size:15px; }

/* Contact CTA */
.rv-cta-band { background:linear-gradient(135deg,#0D1A2E,#13294a); border:1px solid rgba(255,255,255,.08); border-radius:28px; padding:64px 48px; text-align:center; }
.rv-cta-band h2 { color:#fff; }
.rv-cta-sub { color:#c5d2e2; max-width:560px; margin:14px auto 28px; }



/* ============ HOMEPAGE v3 Ã¢â‚¬â€ motion ============ */
/* Scroll indicator */
.rv-scroll { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.3em; color:rgba(255,255,255,.5); display:flex; flex-direction:column; align-items:center; gap:10px; z-index:3; }
.rv-scroll span { width:1px; height:44px; background:linear-gradient(rgba(0,194,255,.9),transparent); transform-origin:top; animation:rv-scrolldn 2s ease-in-out infinite; }
@keyframes rv-scrolldn { 0%{opacity:0;transform:scaleY(.2)} 40%{opacity:1} 100%{opacity:0;transform:scaleY(1)} }

/* Stat suffix + count alignment */
.rv-stat-v { display:inline-flex; align-items:baseline; justify-content:center; }
.rv-suf { color:#00C2FF; }

/* Process timeline scroll-fill (replaces static line) */
.rv-timeline::before { display:none !important; }
.rv-tl-track { position:absolute; left:28px; top:24px; bottom:40px; width:2px; background:rgba(255,255,255,.1); }
.rv-tl-fill { position:absolute; left:28px; top:24px; width:2px; height:0; background:linear-gradient(#1A4FBA,#00C2FF); box-shadow:0 0 12px rgba(0,194,255,.6); transition:height .15s linear; z-index:1; }
.rv-tnode { transition:background .4s, border-color .4s, color .4s, box-shadow .4s; }

/* Keep reveal from clipping shadows */
.rv-main .rv-reveal { will-change:transform,opacity; }



/* ================= INNER PAGES (native rebuild of revotech.local) ================= */
.rv-pinner { max-width:1240px; margin:0 auto; padding:0 32px; position:relative; z-index:2; }
.rv-psec { padding:90px 0; }
.rv-psec.rv-dark, .rv-phero, .rv-cta-sec { color:#fff; }

/* Hero */
.rv-phero { position:relative; padding:78px 0 84px; overflow:hidden; }
.rv-phero #rv-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:1; }
.rv-badge2 { display:inline-flex; align-items:center; gap:9px; width:auto; background:rgba(0,194,255,.1); border:1px solid rgba(0,194,255,.3); color:#00C2FF; padding:8px 16px; border-radius:999px; font-size:13px; font-weight:600; font-family:'JetBrains Mono',monospace; }
.rv-badge2::before { content:""; width:7px; height:7px; border-radius:50%; background:#00C2FF; box-shadow:0 0 12px #00C2FF; }
.rv-ph1 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(36px,6vw,60px); line-height:1.04; letter-spacing:-.025em; color:#fff; margin:22px 0 0; max-width:780px; }
.rv-phsub { font-size:clamp(16px,2vw,20px); line-height:1.55; color:rgba(255,255,255,.72); margin:22px 0 0; max-width:620px; }
.rv-phsub.rv-center { margin-left:auto; margin-right:auto; }

/* Section headers */
.rv-pe { font-family:'JetBrains Mono',monospace; font-size:14px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin:0; }
.rv-pe-blue { color:#1A4FBA; }
.rv-pe-cyan { color:#00C2FF; }
.rv-ph2 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(30px,5vw,46px); letter-spacing:-.02em; line-height:1.06; margin:12px 0 0; }
.rv-dark .rv-ph2, .rv-cta-sec .rv-ph2 { color:#fff; }
.rv-center { text-align:center; }
.rv-psub { font-size:17px; line-height:1.6; color:#5a6b7e; margin:16px 0 0; max-width:680px; }
.rv-dark .rv-psub { color:rgba(255,255,255,.7); }

/* Feature cards */
.rv-psec .wp-block-columns { gap:20px; margin-top:40px; }
.rv-feat { background:linear-gradient(180deg,#ffffff,#f5f9fd); border:1px solid #e7ecf2; border-radius:20px; padding:30px; height:100%; transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s; }
.rv-feat:hover { transform:translateY(-6px); border-color:rgba(0,194,255,.5); box-shadow:0 24px 56px -24px rgba(0,194,255,.35); }
.rv-feat-ic { display:flex; width:54px; height:54px; border-radius:14px; background:linear-gradient(135deg,#eaf2fc,#d8e8f9); align-items:center; justify-content:center; box-shadow:0 8px 20px -12px rgba(26,79,186,.45); transition:background .35s,box-shadow .35s,transform .35s; }
.rv-feat-mark { width:30px; height:30px; display:block; transition:filter .35s; }
.rv-feat:hover .rv-feat-ic { background:linear-gradient(135deg,#1A4FBA,#00C2FF); box-shadow:0 16px 32px -12px rgba(0,194,255,.7); transform:scale(1.06); }
.rv-feat:hover .rv-feat-mark { filter:brightness(0) invert(1); }
.rv-feat h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:19px; color:#0D1B2A; margin:20px 0 8px; }
.rv-feat p { font-size:14.5px; line-height:1.6; color:#5a6b7e; margin:0; }

/* Why split + checklist */
.rv-split2 { gap:56px; align-items:center; }
.rv-check { display:flex; gap:16px; align-items:flex-start; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:20px 22px; margin-bottom:14px; }
.rv-check-ic { flex:none; width:34px; height:34px; border-radius:9px; background:rgba(0,194,255,.14); display:flex; align-items:center; justify-content:center; color:#00C2FF; }
.rv-check-ic svg { width:18px; height:18px; }
.rv-check-tx h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:16.5px; color:#fff; margin:0 0 4px; }
.rv-check-tx p { font-size:14px; line-height:1.55; color:rgba(255,255,255,.62); margin:0; }

/* Related links */
.rv-rel { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fff; border:1px solid #e7ecf2; border-radius:14px; padding:20px 22px; text-decoration:none; transition:transform .3s,border-color .3s; height:100%; }
.rv-rel:hover { transform:translateY(-4px); border-color:rgba(0,194,255,.5); }
.rv-rel span { font-weight:600; font-size:15.5px; color:#0D1B2A; }
.rv-rel svg { width:18px; height:18px; flex:none; stroke:#1A4FBA; }

/* CTA section */
.rv-cta-sec { position:relative; padding:100px 0; overflow:hidden; }
.rv-cta-sec .rv-pinner { max-width:760px; text-align:center; }
.rv-cta-sec::before { content:""; position:absolute; inset:0; background:radial-gradient(50% 80% at 50% 50%,rgba(0,194,255,.18),transparent 65%); pointer-events:none; }
.rv-ghost .wp-block-button__link { background:transparent; border:1.5px solid rgba(255,255,255,.28); color:#fff; }


.rv-crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.5);margin-bottom:24px;font-family:'JetBrains Mono',monospace;flex-wrap:wrap}
.rv-crumb a{color:rgba(255,255,255,.5);text-decoration:none}
.rv-crumb a:hover{color:#00C2FF}
.rv-crumb-cur{color:#00C2FF}



/* Keep header logo from being squashed by the wider nav */
#rv-header > div > a { flex:0 0 auto; }
#rv-header > div > a img { height:42px; width:auto; max-width:none; object-fit:contain; }
@media(max-width:1100px){ #rv-header > div > a img { height:36px; } }



/* ===== Core-block card versions (editable text) ===== */
.rv-svc > *, .rv-wcard > *, .rv-ind > *, .rv-quote > *, .rv-stat > *, .rv-rmeta > * { margin-block-start:0; margin-block-end:0; }
/* Stats */
.rv-stats .rv-stat { text-align:center; }
.rv-stat-v { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(32px,4vw,46px); color:#fff; line-height:1; margin:0; display:block; }
.rv-stat-l { color:#8A9BB0; font-size:13.5px; margin:6px 0 0; }
/* Services (group card) */
.rv-svc h3 { margin:18px 0 8px; }
.rv-svc h3 a { color:var(--ink); text-decoration:none; }
.rv-svc h3 a:hover { color:var(--primary); }
.rv-svc-more { margin:14px 0 0 !important; }
.rv-svc-more a { color:var(--primary); text-decoration:none; font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:600; }
/* Industries (group tile) */
.rv-ind { text-align:center; }
.rv-ind-h { margin:14px 0 0; }
.rv-ind-h a { color:#fff; text-decoration:none; font-size:15px; font-weight:600; }
.rv-ind-h a:hover { color:#00C2FF; }
/* Reviews */
.rv-quote .rv-stars { margin:0 0 14px; }
.rv-reviewer { margin-top:18px !important; align-items:center; gap:12px; }
.rv-rmeta { gap:0; }
.rv-rname { color:var(--ink); font-size:14px; font-weight:700; margin:0; }
.rv-rmetatxt { color:#8a9bb0; font-size:12.5px; margin:0; }



/* ===== Inner-page checklist + related as core blocks (editable) ===== */
.rv-check { gap:16px; align-items:flex-start; margin-bottom:14px; }
.rv-check-tx > * { margin-block-start:0 !important; margin-block-end:0 !important; }
.rv-check-tx h3 { margin:0 0 4px !important; }
.rv-rel-label { margin:0 !important; }
.rv-rel-label a { color:#0D1B2A; text-decoration:none; font-weight:600; font-size:15.5px; }
.rv-rel:hover .rv-rel-label a { color:var(--primary); }
.rv-rel-ar { display:inline-flex; flex:none; }
.rv-rel-ar svg { width:18px; height:18px; stroke:#1A4FBA; }



/* ============ HOMEPAGE EXACT-MATCH FIXES ============ */
/* Eyebrows + section headings (homepage) */
.rv-eyebrow { font-size:25px !important; font-weight:700 !important; letter-spacing:.14em; }
.rv-section h2 { font-size:clamp(34px,6vw,68px) !important; line-height:1.05 !important; }
@media(min-width:768px){ .rv-section h2 { font-size:clamp(44px,6vw,68px) !important; } }

/* Hero: left-aligned 820px block under the logo */
.rv-hero { min-height:100vh; display:flex; flex-direction:column; justify-content:center; padding:0 !important; }
.rv-hero .rv-hero-inner { max-width:1240px; padding:120px 32px 80px !important; text-align:left; }
.rv-hero .rv-hero-inner > * { margin-left:0 !important; margin-right:0 !important; max-width:none !important; }
.rv-hero .rv-hero-h1 { max-width:820px; font-size:clamp(40px,7vw,76px); line-height:1.02; margin:24px 0 0; }
.rv-hero .rv-hero-sub { max-width:620px; margin:22px 0 0; }
.rv-hero .wp-block-buttons { margin-top:34px; }

/* Process timeline: 2px line at left:31px BEHIND 64px nodes (flex rows) */
.rv-timeline { position:relative; max-width:1080px; margin:0 auto; padding-left:8px; }
.rv-tl-track { position:absolute; left:31px; top:8px; bottom:8px; width:2px; background:rgba(255,255,255,.1); z-index:1; }
.rv-tl-fill { position:absolute; left:31px; top:8px; width:2px; height:0; background:linear-gradient(#00C2FF,#1A4FBA); box-shadow:0 0 16px rgba(0,194,255,.6); transition:height .15s linear; z-index:1; }
.rv-step { position:relative; gap:28px !important; align-items:flex-start; padding:22px 0; margin:0 !important; }
.rv-step-dot { position:relative; z-index:2; flex:none; width:64px; height:64px; border-radius:50%; background:var(--dark); border:2px solid rgba(0,194,255,.4); display:flex; align-items:center; justify-content:center; color:#00C2FF; transition:all .4s; }
.rv-step-dot svg { width:26px; height:26px; }
.rv-step-tx { padding-top:6px; }
.rv-step-tx > * { margin:0 !important; }
.rv-step-tx .rv-num { font-family:'JetBrains Mono',monospace; font-size:13px; color:#00C2FF; font-weight:600; }
.rv-step-tx h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:21px; color:#fff; margin:4px 0 8px !important; }
.rv-step-tx p { color:rgba(255,255,255,.62); font-size:15px; line-height:1.6; max-width:600px; }

/* Services: spinning revotech hexagon mark + top bar + number */
.rv-svc { position:relative; overflow:hidden; }
.rv-svc-bar { position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#1A4FBA,#00C2FF); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.rv-svc:hover .rv-svc-bar { transform:scaleX(1); }
.rv-svc-top { display:flex; align-items:flex-start; justify-content:space-between; }
.rv-svc-ic { width:58px; height:58px; border-radius:15px; background:linear-gradient(135deg,#eaf2fc,#d8e8f9); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px -12px rgba(26,79,186,.45); transition:background .35s,box-shadow .35s,transform .35s; }
.rv-svc-mark { width:34px; height:34px; display:block; transition:filter .35s; }
.rv-svc:hover .rv-svc-ic { background:linear-gradient(135deg,#1A4FBA,#00C2FF); box-shadow:0 16px 32px -12px rgba(0,194,255,.7); transform:scale(1.06); }
.rv-svc:hover .rv-svc-mark { filter:brightness(0) invert(1); animation:rv-spin 2.4s linear infinite; }
.rv-svc-no { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:600; color:#c2cdda; }
.rv-svc h3 { margin:22px 0 8px; }
@keyframes rv-spin { to { transform:rotate(360deg); } }


/* Hero headline/sub wrap at 820/620 like the original */
.rv-hero .rv-hero-h1 { max-width:820px !important; }
.rv-hero .rv-hero-sub { max-width:620px !important; }


/* Hero inner must fill the 1240 container (was shrinking to content and centering) */
.rv-hero .rv-hero-inner { width:100%; margin-left:auto; margin-right:auto; }


/* Match original hero flex (row + vertical center) so inner aligns like the header */
.rv-hero { flex-direction:row !important; align-items:center !important; justify-content:flex-start !important; }


/* Left-aligned section header (e.g. homepage Services) to match original */
.rv-section.rv-left .rv-eyebrow, .rv-section.rv-left h2, .rv-section.rv-left .rv-lede { text-align:left !important; margin-left:0 !important; margin-right:0 !important; }
.rv-section.rv-left .rv-lede { max-width:680px; }


/* rv-left: keep header in the centered content column, text left (align with cards) */
.rv-section.rv-left .rv-eyebrow, .rv-section.rv-left h2, .rv-section.rv-left .rv-lede { margin-left:auto !important; margin-right:auto !important; }
.rv-section.rv-left .rv-lede { max-width:none; }


/* rv-left: force header to fill the content column, text left (align with cards) */
.rv-section.rv-left .rv-eyebrow, .rv-section.rv-left h2, .rv-section.rv-left .rv-lede { width:100% !important; max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; text-align:left !important; }


/* Centered section headers: constrain to original 640px so they wrap (e.g. What Our Clients Say -> 2 lines) */
.rv-section:not(.rv-left) .rv-eyebrow, .rv-section:not(.rv-left) h2 { max-width:640px; margin-left:auto !important; margin-right:auto !important; }


/* Higher-specificity: centered section headers wrap at 640 (beats .rv-main .rv-section > *) */
.rv-main .rv-section:not(.rv-left) .rv-eyebrow, .rv-main .rv-section:not(.rv-left) h2 { max-width:640px !important; margin-left:auto !important; margin-right:auto !important; }



/* ===== Per-section heading sizes to match revotech.local exactly ===== */
/* Inner pages: why / related / cta h2 are smaller than the features h2 */
.rv-ph2-sm { font-size:clamp(28px,4vw,40px) !important; }
.rv-ph2-xs { font-size:clamp(26px,4vw,38px) !important; }
.rv-ph2-cta { font-size:clamp(30px,5vw,48px) !important; }
/* Homepage CTA heading: original is smaller (32-56) in a 760px column */
.rv-main .rv-cta-band h2 { font-size:clamp(32px,5vw,56px) !important; max-width:760px !important; }
/* Homepage service card h3 is 20px (was 19) */
.rv-svc h3 { font-size:20px !important; }


/* Inner-page hero: left-align all content under the badge/breadcrumb (was centering h1/sub) */
.rv-phero .rv-pinner > * { margin-left:0 !important; margin-right:0 !important; }
.rv-phero .rv-ph1 { max-width:780px; }
.rv-phero .rv-phsub { max-width:620px; }


/* ROOT FIX: left-align ALL inner-page section content at the column edge (centered text still centers via rv-center) */
.rv-pinner > * { margin-left:0 !important; margin-right:0 !important; }



/* ===== Our Team page ===== */
.rv-tstats { display:flex; align-items:stretch; gap:36px; margin-top:40px; flex-wrap:wrap; }
.rv-tstat-v { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(26px,3vw,34px); color:#00C2FF; line-height:1; }
.rv-tstat-l { font-size:12.5px; color:rgba(255,255,255,.55); font-family:'JetBrains Mono',monospace; margin-top:6px; }
.rv-tstat-div { width:1px; background:rgba(255,255,255,.12); }
.rv-val { transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s; }
.rv-val:hover { transform:translateY(-6px) !important; border-color:rgba(0,194,255,.5) !important; box-shadow:0 24px 56px -24px rgba(0,194,255,.35) !important; }
.rv-val:not(.rv-lcard) { background:#fff; border:1px solid #e7ecf2; border-radius:18px; padding:28px; text-align:center; height:100%; }
.rv-val-ic { width:52px; height:52px; border-radius:13px; background:linear-gradient(135deg,#eaf2fc,#d8e8f9); display:inline-flex; align-items:center; justify-content:center; color:#1A4FBA; margin:0 auto 16px; }
.rv-val h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:18px; color:#0D1B2A; margin:0 0 8px; }
.rv-val p { font-size:14px; line-height:1.55; color:#5a6b7e; margin:0; }
.rv-val:not(.rv-lcard) > * { margin-left:auto !important; margin-right:auto !important; }



/* ===== Homepage process timeline: line behind dots + centered on them ===== */
.rv-section .rv-timeline .rv-step { width:100% !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important; position:relative; z-index:2; }
.rv-section .rv-timeline .rv-step-dot { position:relative; z-index:3; }
.rv-section .rv-timeline .rv-tl-track,
.rv-section .rv-timeline .rv-tl-fill { z-index:0 !important; left:31px !important; }



/* ===== Homepage process timeline: dots over line, line centered on dots ===== */
.rv-section .rv-timeline { max-width:1080px !important; }
.rv-section .rv-timeline .rv-step { width:auto !important; max-width:none !important; margin:0 !important; position:relative; z-index:2; }
.rv-section .rv-timeline .rv-step-dot { position:relative; z-index:3; }
.rv-section .rv-timeline .rv-tl-track,
.rv-section .rv-timeline .rv-tl-fill { z-index:0 !important; left:39px !important; }


.rv-section .rv-timeline .rv-tl-track, .rv-section .rv-timeline .rv-tl-fill { left:69px !important; }



/* ===== Process timeline FINAL: flow layout, line centered on dots, behind ===== */
.rv-section .rv-timeline { max-width:1080px !important; margin:0 auto !important; padding-left:0 !important; position:relative; }
.rv-section .rv-timeline .rv-step { width:100% !important; max-width:none !important; margin:0 !important; position:relative; z-index:2; }
.rv-section .rv-timeline .rv-step-dot { position:relative; z-index:3; }
.rv-section .rv-timeline .rv-tl-track,
.rv-section .rv-timeline .rv-tl-fill { left:31px !important; z-index:0 !important; }



/* ===== Process timeline: per-step line anchored to the dot (always centered, behind) ===== */
.rv-section .rv-timeline .rv-tl-track,
.rv-section .rv-timeline .rv-tl-fill { display:none !important; }
.rv-section .rv-timeline .rv-step { position:relative !important; }
.rv-section .rv-timeline .rv-step::before { content:""; position:absolute; left:29px; top:0; bottom:0; width:2px; background:rgba(255,255,255,.14); z-index:0; }
.rv-section .rv-timeline .rv-step:first-child::before { top:30px; }
.rv-section .rv-timeline .rv-step:last-child::before { bottom:auto; height:30px; }
.rv-section .rv-timeline .rv-step-dot { position:relative !important; z-index:2 !important; }



/* ===== Re-enable the scroll-growing fill, aligned to the per-step track (dot center) ===== */
.rv-section .rv-timeline .rv-tl-fill { display:block !important; left:60px !important; width:3px !important; top:6px !important; border-radius:3px !important; background:linear-gradient(180deg,#1A4FBA,#00C2FF) !important; box-shadow:0 0 12px rgba(0,194,255,.55) !important; z-index:1 !important; }
@media (max-width:760px){ .rv-section .rv-timeline .rv-tl-fill { display:none !important; } }


/* revert: static timeline line only */
.rv-section .rv-timeline .rv-tl-fill{display:none!important;}


/* ===== Centered section headers for unique pages (pricing/about/services/industries) ===== */
.rv-main .rv-pinner > .rv-phead-c{ max-width:760px; margin-left:auto !important; margin-right:auto !important; text-align:center; }
.rv-main .rv-phead-c > *{ margin-left:auto !important; margin-right:auto !important; text-align:center; max-width:100% !important; }
.rv-main .rv-phead-c .rv-ph2{ font-size:clamp(30px,5vw,46px); }
.rv-main .rv-psec.rv-dark .rv-phead-c .rv-ph2{ color:#fff; }
.rv-main .rv-psec.rv-dark .rv-phead-c .rv-psub{ color:rgba(255,255,255,.66); }

/* ===== Global card hover + logo-icon spin (pattern <style> blocks are stripped on ported pages) ===== */
.rv-licon, .rv-feat-ic { transition:background .35s, box-shadow .35s, transform .35s; }
.rv-lmark, .rv-feat-mark { display:block; object-fit:contain; transition:filter .35s, transform .35s; }
.rv-lcard:hover .rv-licon { background:linear-gradient(135deg,#1A4FBA,#00C2FF) !important; box-shadow:0 16px 32px -12px rgba(0,194,255,.7) !important; transform:scale(1.06); }
.rv-lcard:hover .rv-lmark { filter:brightness(0) invert(1); animation:rv-spin 2.4s linear infinite; }
.rv-feat:hover { transform:translateY(-6px) !important; border-color:rgba(0,194,255,.5) !important; box-shadow:0 24px 56px -24px rgba(0,194,255,.35) !important; }
.rv-feat:hover .rv-feat-ic { background:linear-gradient(135deg,#1A4FBA,#00C2FF) !important; box-shadow:0 16px 32px -12px rgba(0,194,255,.7) !important; transform:scale(1.06) !important; }
.rv-feat:hover .rv-feat-mark { filter:brightness(0) invert(1) !important; animation:rv-spin 2.4s linear infinite; }
.rv-rel:hover { transform:translateY(-4px) !important; border-color:rgba(0,194,255,.5) !important; }
.rv-card-link:hover { transform:translateY(-6px) !important; border-color:rgba(0,194,255,.5) !important; box-shadow:0 24px 56px -24px rgba(0,194,255,.35) !important; }
/* Whole-card click affordance (see card-link.js) */
.rv-clickable { cursor: pointer; }

/* Blog post cards */
.rv-post { transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s, box-shadow .35s; }
.rv-post:hover { transform:translateY(-6px) !important; border-color:rgba(0,194,255,.5) !important; box-shadow:0 24px 56px -24px rgba(0,194,255,.3) !important; }
.rv-post:hover .rv-post-img { transform:scale(1.05) !important; }

/* ===== Single blog post ===== */
.rv-single-hero { position:relative; overflow:hidden; background:#080F1E; padding:128px 24px 64px; }
.rv-single-hero #rv-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:0; }
.rv-single-hero .rv-single-hero-bg { position:absolute; inset:0; z-index:1; background:radial-gradient(70% 60% at 75% 20%,rgba(26,79,186,.4),transparent 60%),radial-gradient(50% 50% at 15% 90%,rgba(0,194,255,.16),transparent 55%); pointer-events:none; }
.rv-single-hero-inner { position:relative; z-index:2; max-width:820px; margin:0 auto; }
.rv-single-hero-inner .rv-crumb { display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,.5); margin-bottom:22px; font-family:'JetBrains Mono',monospace; }
.rv-single-hero-inner .rv-crumb a { color:rgba(255,255,255,.5); text-decoration:none; }
.rv-single-hero-inner .rv-crumb a:hover { color:#00C2FF; }
.rv-single-hero-inner .rv-crumb-cur { color:#00C2FF; }
.rv-single-eyebrow { color:#00C2FF; font-family:'JetBrains Mono',monospace; font-size:13px; letter-spacing:.14em; text-transform:uppercase; margin:0 0 8px; }
.rv-single-title { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(30px,5vw,50px); line-height:1.08; letter-spacing:-.02em; color:#fff; margin:0; }
.rv-single-meta { margin-top:16px; font-family:'JetBrains Mono',monospace; font-size:13px; color:#9fb0c0; }

.rv-main.rv-single { background:#fff; padding:0 24px 90px; }
.rv-article { max-width:760px; margin:0 auto; color:#33414f; font-size:17px; line-height:1.75; }
.rv-article-cover { margin:-48px 0 36px; border-radius:18px; overflow:hidden; box-shadow:0 30px 70px -32px rgba(13,27,42,.45); }
.rv-article-cover img { display:block; width:100%; height:auto; }
.rv-article > h2 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(24px,3.4vw,32px); line-height:1.2; color:#0D1B2A; margin:40px 0 14px; letter-spacing:-.01em; }
.rv-article > h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:21px; color:#0D1B2A; margin:30px 0 12px; }
.rv-article p { margin:0 0 20px; }
.rv-article a { color:#1A4FBA; text-decoration:underline; text-underline-offset:2px; }
.rv-article ul, .rv-article ol { margin:0 0 22px; padding-left:24px; }
.rv-article li { margin:0 0 9px; }
.rv-article img { max-width:100%; height:auto; border-radius:14px; margin:10px 0 24px; }
.rv-article blockquote { margin:26px 0; padding:6px 0 6px 22px; border-left:3px solid #00C2FF; color:#0D1B2A; font-size:19px; }
.rv-article figure { margin:0 0 24px; }
.rv-article-foot { max-width:760px; margin:46px auto 0; padding-top:28px; border-top:1px solid #e7ecf2; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; }
.rv-back-blog { font-family:'JetBrains Mono',monospace; font-weight:600; font-size:14px; color:#1A4FBA; text-decoration:none; }
.rv-back-blog:hover { color:#00C2FF; }
.rv-article-cta { display:inline-flex; align-items:center; background:linear-gradient(135deg,#1A4FBA,#00C2FF); color:#fff; text-decoration:none; font-weight:600; font-size:15px; padding:12px 24px; border-radius:999px; }
.rv-article-cta:hover { transform:translateY(-2px); box-shadow:0 14px 36px -12px rgba(0,194,255,.6); }

/* ===== Mobile responsiveness for ported (wp:html) grids =====
   The source patterns collapsed these grids via @media in their inline <style>
   blocks, which faithful rendering strips. Re-added here, theme-wide. */
@media (max-width: 980px){
  .rv-bill-grid, .rv-incl-grid, .rv-inc-grid, .rv-grid-ind { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 880px){
  .rv-split, .rv-split2, .rv-grid-3, .rv-compare, .rv-feature, .rv-form-2,
  .rv-plan-grid, .rv-calc-grid, .rv-vals, .rv-feat-grid { grid-template-columns: 1fr !important; }
  .rv-stats, .rv-tstats, .rv-perks, .rv-sm-grid, .rv-grid-2, .rvf-grid { grid-template-columns: repeat(2,1fr) !important; }
  .rv-hide-m { display: none !important; }
  /* keep big card paddings from getting cramped */
  .rv-plan, .rv-val, .rv-feat, .rv-post > div { padding: 26px !important; }
}
@media (max-width: 600px){
  .rv-grid-3, .rv-grid-ind, .rv-inc-grid, .rv-incl-grid, .rv-bill-grid,
  .rv-perks, .rv-sm-grid, .rv-grid-2, .rvf-grid, .rv-stats, .rv-tstats { grid-template-columns: 1fr !important; }
  /* tighten section side padding on small phones */
  .rv-pinner, .rv-article, .rv-single-hero-inner { padding-left: 20px !important; padding-right: 20px !important; }
}

