/* ============================================================
   Virtue Realtech — shared styles for sub-pages
   ============================================================ */
:root{
  --teal:#2fa7b5;
  --teal-dim:rgba(47,167,181,.35);
  --bg:#f4eee5;
  --panel:#fdfbf7;
  --text:#2a241d;
  --muted:#5c5346;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;overflow-x:hidden}
h1,h2,h3,.brand{font-family:'Inter',sans-serif}
::selection{background:var(--teal);color:#fff}

/* ---------- background video (scroll-scrubbed) ---------- */
#bgvid{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
.vid-window{position:relative;z-index:2;height:62vh;display:flex;align-items:center;justify-content:center}
.vid-window span{font-size:12px;letter-spacing:6px;text-transform:uppercase;color:#fff;background:rgba(20,17,13,.5);padding:13px 28px;border-radius:30px;backdrop-filter:blur(6px)}

/* ---------- Nav (floating chamfered bar) ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:center}
nav .bar{display:flex;align-items:stretch;height:66px;background:rgba(40,34,27,.94);backdrop-filter:blur(12px);clip-path:polygon(0 0,100% 0,calc(100% - 34px) 100%,34px 100%);padding-left:52px}
nav .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#f4eee5;margin-right:48px}
nav .brand img{height:40px}
nav .brand .t b{display:block;font-size:16px;letter-spacing:4px;font-weight:800}
nav .brand .t span{font-size:8px;letter-spacing:2.2px;color:#b9ac99}
nav ul{display:flex;align-items:center;gap:38px;list-style:none;margin-right:52px}
nav ul a{color:#f1ece3;text-decoration:none;font-size:15px;font-weight:500;transition:color .3s;display:flex;align-items:center;gap:7px}
nav ul a:hover{color:var(--teal)}
nav ul a.active::before{content:"\2198";color:var(--teal);font-size:14px}
nav .cta{display:flex;align-items:center;gap:10px;padding:0 56px 0 34px;background:#e9efef;color:#10151b;font-size:15px;font-weight:600;text-decoration:none;clip-path:polygon(0 0,100% 0,calc(100% - 34px) 100%,0 100%);transition:background .3s}
nav .cta::before{content:"";width:8px;height:8px;background:var(--teal)}
nav .cta:hover{background:var(--teal)}
@media(max-width:900px){nav ul{display:none}nav .brand{margin-right:24px}}

/* ---------- page hero ---------- */
.page-hero{position:relative;z-index:2;background:var(--bg);padding:22vh 6vw 8vh;text-align:center}
.page-hero .label{justify-content:center}
.page-hero h1{font-size:clamp(36px,5.6vw,76px);font-weight:700;line-height:1.1;max-width:900px;margin:0 auto}
.page-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--teal),#15707c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.page-hero p{margin:26px auto 0;max-width:640px;color:var(--muted);font-size:17px;font-weight:400;line-height:1.8}

/* ---------- generic section ---------- */
section{position:relative;z-index:2;padding:10vh 6vw;background:var(--bg)}
.label{font-size:12px;letter-spacing:5px;text-transform:uppercase;color:var(--teal);margin-bottom:18px;display:flex;align-items:center;gap:14px}
.label::before{content:"";width:42px;height:1px;background:var(--teal)}
h2.title{font-size:clamp(32px,4.2vw,58px);font-weight:700;line-height:1.12;max-width:760px}
h2.title em{font-style:normal;color:var(--teal)}
p.lead{margin-top:24px;max-width:640px;color:var(--muted);font-size:17px;font-weight:400;line-height:1.8}

/* ---------- glass cards ---------- */
.glass{background:linear-gradient(145deg,rgba(47,167,181,.07),rgba(255,253,248,.94));border:1px solid rgba(47,167,181,.14);border-radius:22px;padding:42px;backdrop-filter:blur(8px)}
.glass h3{font-size:22px;margin-bottom:12px;color:var(--teal)}
.glass p{color:var(--muted);font-weight:400;line-height:1.75;font-size:15px}
.glass blockquote{margin-top:18px;padding-left:16px;border-left:2px solid var(--teal);color:var(--text);font-style:italic;font-weight:400;font-size:14px;line-height:1.7}
.glass .role{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:-6px 0 14px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* ---------- service cards ---------- */
.svc{padding:40px 32px;border-radius:20px;border:1px solid rgba(47,167,181,.12);background:rgba(255,253,248,.92);backdrop-filter:blur(6px);transform-style:preserve-3d;transition:transform .4s,border-color .4s}
.svc:hover{border-color:var(--teal)}
.svc .ic{width:54px;height:54px;border-radius:14px;background:rgba(47,167,181,.12);display:flex;align-items:center;justify-content:center;margin-bottom:24px}
.svc .ic svg{width:26px;height:26px;stroke:var(--teal);fill:none;stroke-width:1.6}
.svc h3{font-size:19px;margin-bottom:12px}
.svc p{font-size:14px;color:var(--muted);font-weight:400;line-height:1.7}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{text-align:center;padding:42px 12px;border:1px solid rgba(47,167,181,.12);border-radius:18px;background:rgba(255,253,248,.92);backdrop-filter:blur(6px)}
.stat .num{font-family:'Inter';font-size:clamp(34px,4vw,56px);font-weight:800;color:var(--teal)}
.stat .lbl{margin-top:8px;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---------- timeline ---------- */
.timeline{position:relative;margin-top:60px;padding-left:34px;max-width:760px}
.timeline::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:1px;background:rgba(47,167,181,.3)}
.tl-item{position:relative;margin-bottom:52px}
.tl-item:last-child{margin-bottom:0}
.tl-item::before{content:"";position:absolute;left:-31px;top:7px;width:11px;height:11px;border-radius:50%;background:var(--teal);box-shadow:0 0 14px var(--teal-dim)}
.tl-item .yr{font-family:'Inter';font-size:14px;font-weight:700;color:var(--teal);letter-spacing:2px}
.tl-item h3{font-size:21px;margin:8px 0 8px}
.tl-item p{color:var(--muted);font-weight:400;font-size:15px;line-height:1.75;max-width:560px}

/* ---------- CTA banner ---------- */
.cta-box{border:1px solid rgba(47,167,181,.18);border-radius:28px;padding:9vh 6vw;text-align:center;background:radial-gradient(ellipse at top,rgba(47,167,181,.10),rgba(255,253,248,.95));backdrop-filter:blur(8px)}
.cta-box h2{font-size:clamp(30px,4.4vw,60px);font-weight:800}
.cta-box h2 em{font-style:normal;color:var(--teal)}
.cta-box p{margin:20px auto 36px;max-width:520px;color:var(--muted);font-weight:400;line-height:1.7}
.btn-solid{display:inline-block;padding:18px 46px;background:var(--teal);color:#fff;border-radius:40px;text-decoration:none;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;transition:.3s;border:none;cursor:pointer;font-family:'Inter'}
.btn-solid:hover{box-shadow:0 0 40px var(--teal-dim);transform:translateY(-3px)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;margin-top:60px}
.cform{border:1px solid rgba(47,167,181,.16);border-radius:24px;background:rgba(255,253,248,.94);backdrop-filter:blur(8px);padding:44px}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cform label{display:block;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:22px 0 9px}
.cform label:first-child{margin-top:0}
.cform input,.cform textarea,.cform select{width:100%;background:#fffdf8;border:1px solid rgba(47,167,181,.18);border-radius:12px;color:var(--text);padding:14px 16px;font-family:'Inter';font-size:15px;outline:none;transition:border-color .3s}
.cform input:focus,.cform textarea:focus{border-color:var(--teal)}
.cform textarea{min-height:130px;resize:vertical}
.cform button{margin-top:30px;width:100%}
.cinfo{display:flex;flex-direction:column;gap:24px}
.cinfo .glass a{color:var(--teal);text-decoration:none;font-weight:500}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}.cform .row{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer{position:relative;z-index:2;background:var(--bg);padding:50px 6vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(47,167,181,.1);color:var(--muted);font-size:13px;flex-wrap:wrap;gap:18px}
footer img{height:40px;opacity:.9}

.reveal{opacity:0;transform:translateY(60px)}
