/* =========================================================
   LF INDITECH INDIA LLC — Brand overrides on top of Bootstrap 5
   ========================================================= */

:root{
    --navy-950:#050914;
    --navy-900:#0a1128;
    --navy-800:#10193a;
    --navy-700:#17224e;
    --blue-500:#2e93dd;
    --blue-600:#0070c0;
    --blue-50:#e8f4fc;
    --indigo-600:#4f46e5;

    --bs-primary:#0a1128;
    --bs-primary-rgb:10,17,40;
    --bs-body-font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --bs-link-color:#0a1128;
    --bs-link-hover-color:#0070c0;
}

html{ scroll-behavior:smooth; }
body{ color:#334155; }
h1,h2,h3,h4,h5,h6{ font-weight:800; color:var(--navy-950); }
.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{ font-weight:800 !important; }
a{ text-decoration:none; }
section{ padding:88px 0; }
section[id]{ scroll-margin-top:110px; }
@media (max-width:768px){ section{ padding:56px 0; } }

/* ---------- Buttons ---------- */
.btn{ font-weight:700; border-radius:999px; padding:.7rem 1.5rem; }
.btn-primary{ background-color:var(--navy-900); border-color:var(--navy-900); }
.btn-primary:hover, .btn-primary:focus{ background-color:var(--navy-800); border-color:var(--navy-800); }
.btn-accent{ position:relative; overflow:hidden; background-color:var(--blue-600); border-color:var(--blue-600); color:#fff; }
.btn-accent:hover{ background-color:var(--blue-500); border-color:var(--blue-500); color:#fff; transform:translateY(-2px); }
.btn-accent::after{
    content:""; position:absolute; top:0; left:-75%; width:45%; height:100%;
    background:linear-gradient(115deg, transparent, rgba(255,255,255,.55), transparent);
    transform:skewX(-20deg);
    animation:btnShine 3.5s ease-in-out infinite;
    pointer-events:none;
}
@keyframes btnShine{ 0%{ left:-75%; } 30%{ left:125%; } 100%{ left:125%; } }

@media (prefers-reduced-motion: reduce){
    .btn-accent::after{ animation:none; display:none; }
}
.btn-outline-light:hover{ background-color:#fff; border-color:#fff; color:var(--navy-950); transform:translateY(-2px); }
.btn-lg{ padding:.85rem 1.9rem; }

/* ---------- Header / Navbar ---------- */
.topbar{ background:#0a0a0a; color:#fff; font-size:.82rem; padding:9px 0; }
.topbar-link{ color:rgba(255,255,255,.85); font-weight:500; display:inline-flex; align-items:center; gap:6px; }
.topbar-link:hover{ color:#fff; }
.topbar-tagline{ align-items:center; gap:6px; font-weight:600; animation:topbarColorShift 2.6s ease-in-out infinite; }
@keyframes topbarColorShift{ 0%,100%{ color:#ffffff; } 50%{ color:var(--blue-500); } }

@media (prefers-reduced-motion: reduce){
    .topbar-tagline{ animation:none; color:var(--blue-500); }
}

.site-header{ background:rgba(255,255,255,.97); backdrop-filter:blur(8px); border-bottom:1px solid #e2e8f0; }
.brand-logo{ height:88px; width:auto; object-fit:contain; }
.brand-logo-footer{ height:56px; filter:brightness(0) invert(1); }
.brand-logo-fallback{
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; border-radius:10px;
    background:linear-gradient(145deg,var(--navy-900),var(--navy-700));
    color:var(--blue-500); font-weight:800; font-size:1rem;
}

.header-tagline{ flex-direction:column; line-height:1.3; padding-left:12px; border-left:2px solid #e2e8f0; }
.header-tagline .tagline-primary{ font-size:.86rem; font-weight:800; color:var(--blue-600); white-space:nowrap; }
.header-tagline .tagline-secondary{ font-size:.74rem; font-weight:700; color:var(--navy-950); white-space:nowrap; }
@media (min-width:992px){
    .header-tagline{ padding-left:16px; }
    .header-tagline .tagline-primary{ font-size:1rem; }
    .header-tagline .tagline-secondary{ font-size:.86rem; }
}

.header-contact{ align-items:center; }
.contact-chip{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:.92rem; color:var(--blue-600); white-space:nowrap; }
.contact-chip:hover{ color:var(--blue-500); }

.navbar-nav .nav-link{ font-weight:600; color:#475569; padding:.5rem .25rem; margin:0 .6rem; border-bottom:2px solid transparent; }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active{ color:var(--navy-950); border-color:var(--blue-500); }

@media (max-width:991px){
    .brand-logo{ height:60px; }
}

/* ---------- Hero / dark sections ---------- */
.hero-section, .page-hero, .bg-navy, .cta-banner{
    background:radial-gradient(circle at 85% 10%, rgba(0,112,192,.18), transparent 40%),
               linear-gradient(160deg, var(--navy-950), var(--navy-900) 55%, var(--navy-800));
    color:#fff;
    position:relative;
    overflow:hidden;
}
.hero-section::before, .page-hero::before, .cta-banner::before{
    content:"";
    position:absolute; inset:0;
    background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:44px 44px;
    -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 75%);
            mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 75%);
    pointer-events:none;
}
.hero-section > .container, .page-hero > .container, .cta-banner-inner{ position:relative; z-index:1; }

.network-canvas{ position:absolute; inset:0; z-index:0; display:block; pointer-events:none; }
.hero-section h1, .page-hero h1, .bg-navy h2, .cta-banner h2{ color:#fff; }
.hero-section .lead, .page-hero p{ color:rgba(255,255,255,.78); }

.badge-pill{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#fff; font-weight:700; letter-spacing:.3px; text-transform:uppercase; font-size:.74rem; padding:.5rem .9rem; border-radius:999px; }
.badge-pill.accent{ background:rgba(0,112,192,.18); border-color:rgba(0,112,192,.45); color:#7cc4f0; }

.stat-bar{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:14px; overflow:hidden; }
.stat-bar .stat{ padding:22px 12px; text-align:center; border-right:1px solid rgba(255,255,255,.12); }
.stat-bar .col:last-child .stat{ border-right:none; }
.stat-bar .num{ font-size:1.9rem; font-weight:800; color:#fff; }
.stat-bar .label{ font-size:.8rem; color:rgba(255,255,255,.72); }

.hero-visual{
    position:relative;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.14);
    border-radius:22px;
    padding:20px;
    min-height:340px;
    backdrop-filter:blur(6px);
}
.hero-visual-svg{ width:100%; height:auto; display:block; }
.hero-visual-badge{
    position:absolute; left:22px; bottom:-20px; z-index:2;
    display:flex; align-items:center; gap:12px;
    background:#fff; border-radius:14px; padding:12px 18px;
    box-shadow:0 12px 30px rgba(10,17,40,.22);
    animation:floatBadge 3.2s ease-in-out infinite;
}
@keyframes floatBadge{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }
@media (prefers-reduced-motion: reduce){ .hero-visual-badge, .split-visual-badge{ animation:none; } }
.hero-visual-badge strong{ display:block; font-size:.9rem; color:var(--navy-950); }
.hero-visual-badge span{ font-size:.76rem; color:#64748b; }

/* ---------- Section heads ---------- */
.kicker{ display:inline-block; font-size:.76rem; font-weight:800; letter-spacing:.6px; text-transform:uppercase; color:var(--blue-600); background:var(--blue-50); padding:.4rem .9rem; border-radius:999px; margin-bottom:14px; }
.kicker.on-dark{ background:rgba(0,112,192,.16); color:#7cc4f0; }
.kicker-indigo{ color:var(--indigo-600); background:#eef0fd; }
.kicker-teal{ color:#0d9488; background:#e6fbf7; }
.kicker-purple{ color:#7c3aed; background:#f2ecfd; }
.kicker-amber{ color:#b45309; background:#fdf1e0; }
.bg-alt{ background:#f8fafc; }
.bg-alt.bg-grid-squares{ background:linear-gradient(135deg, #cfe4f7 0%, #e7ecf5 45%, #dbe2f7 100%); }
.bg-alt.bg-grid-squares p,
.bg-alt.bg-grid-squares li{ color:#000; }

.bg-grid-squares{ position:relative; overflow:hidden; }
.bg-grid-squares::before{
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background-image:
        linear-gradient(rgba(15,23,42,.10) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15,23,42,.10) 1px, transparent 1px),
        linear-gradient(rgba(15,23,42,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15,23,42,.045) 1px, transparent 1px);
    background-size:85px 85px, 85px 85px, 17px 17px, 17px 17px;
    animation:gridFade 6s ease-in-out infinite;
}
.bg-grid-squares > .container{ position:relative; z-index:1; }
@keyframes gridFade{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }

@media (prefers-reduced-motion: reduce){
    .bg-grid-squares::before{ animation:none; opacity:1; }
}

/* ---------- Icon badges (PDF-style: neutral light shell, colored glyph) ---------- */
.svc-icon{ width:56px; height:56px; border-radius:16px; background:#fff; border:1px solid #e2e8f0; box-shadow:0 1px 2px rgba(15,23,42,.05); color:var(--blue-600); display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin:0 auto 18px; transition:transform .35s cubic-bezier(.34,1.56,.64,1), background .35s ease, box-shadow .35s ease; }
.mini-icon{ flex-shrink:0; width:44px; height:44px; border-radius:12px; background:#fff; border:1px solid #e2e8f0; box-shadow:0 1px 2px rgba(15,23,42,.05); color:var(--blue-600); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.icon-badge-sm{ flex-shrink:0; width:44px; height:44px; border-radius:12px; background:#fff; border:1px solid #e2e8f0; box-shadow:0 1px 2px rgba(15,23,42,.05); color:var(--blue-600); display:inline-flex; align-items:center; justify-content:center; font-size:1.2rem; }

.text-accent{ color:var(--blue-600) !important; }
.icon-blue{ color:var(--blue-600) !important; }
.icon-indigo{ color:var(--indigo-600) !important; }
.icon-purple{ color:#7c3aed !important; }
.icon-teal{ color:#0d9488 !important; }
.icon-red{ color:#dc2626 !important; }

/* ---------- Cards ---------- */
.svc-card{ position:relative; overflow:hidden; border:1px solid #e2e8f0; border-radius:16px; padding:30px 26px; height:100%; transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .35s ease; background:linear-gradient(160deg, #ffffff 0%, var(--blue-50) 130%); }
.svc-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:3px;
    background:var(--blue-600); transform:scaleX(0); transform-origin:left;
    transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.svc-card:hover{ box-shadow:0 16px 36px rgba(15,41,66,.14); transform:translateY(-6px); border-color:transparent; }
.svc-card:hover::before{ transform:scaleX(1); }
.svc-card:hover .svc-icon{ transform:scale(1.1) rotate(-6deg); }
.svc-card:has(.icon-indigo)::before{ background:var(--indigo-600); }
.svc-card:has(.icon-purple)::before{ background:#7c3aed; }
.svc-card:has(.icon-teal)::before{ background:#0d9488; }
.svc-card:has(.icon-red)::before{ background:#dc2626; }
.svc-card:has(.icon-blue):hover .svc-icon{ background:rgba(0,112,192,.12); box-shadow:0 0 0 6px rgba(0,112,192,.10); }
.svc-card:has(.icon-indigo):hover .svc-icon{ background:rgba(79,70,229,.12); box-shadow:0 0 0 6px rgba(79,70,229,.10); }
.svc-card:has(.icon-purple):hover .svc-icon{ background:rgba(124,58,237,.12); box-shadow:0 0 0 6px rgba(124,58,237,.10); }
.svc-card:has(.icon-teal):hover .svc-icon{ background:rgba(13,148,136,.12); box-shadow:0 0 0 6px rgba(13,148,136,.10); }
.svc-card:has(.icon-red):hover .svc-icon{ background:rgba(220,38,38,.12); box-shadow:0 0 0 6px rgba(220,38,38,.10); }
.svc-card.dark{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); }
.svc-card.dark h3, .svc-card.dark h4{ color:#fff; }
.svc-card.dark p{ color:rgba(255,255,255,.65); }
.svc-card.dark .svc-icon{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.16); }

.mini-card{ position:relative; overflow:hidden; display:flex; gap:16px; padding:22px; border:1px solid #e2e8f0; border-radius:12px; background:linear-gradient(160deg, #ffffff 0%, var(--blue-50) 130%); height:100%; transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, border-color .3s ease; }
.mini-card::before{
    content:""; position:absolute; top:0; left:0; bottom:0; width:3px;
    background:var(--blue-600); transform:scaleY(0); transform-origin:top;
    transition:transform .4s cubic-bezier(.22,1,.36,1);
}
.mini-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(15,41,66,.12); border-color:transparent; }
.mini-card:hover::before{ transform:scaleY(1); }
.mini-card:hover .mini-icon{ transform:scale(1.08) rotate(-5deg); }
.mini-icon{ transition:transform .35s cubic-bezier(.34,1.56,.64,1), background .3s ease, box-shadow .3s ease; }
.mini-card:has(.icon-indigo)::before{ background:var(--indigo-600); }
.mini-card:has(.icon-purple)::before{ background:#7c3aed; }
.mini-card:has(.icon-teal)::before{ background:#0d9488; }
.mini-card:has(.icon-red)::before{ background:#dc2626; }
.mini-card:has(.icon-blue):hover .mini-icon{ background:rgba(0,112,192,.12); box-shadow:0 0 0 6px rgba(0,112,192,.10); }
.mini-card:has(.icon-indigo):hover .mini-icon{ background:rgba(79,70,229,.12); box-shadow:0 0 0 6px rgba(79,70,229,.10); }
.mini-card:has(.icon-purple):hover .mini-icon{ background:rgba(124,58,237,.12); box-shadow:0 0 0 6px rgba(124,58,237,.10); }
.mini-card:has(.icon-teal):hover .mini-icon{ background:rgba(13,148,136,.12); box-shadow:0 0 0 6px rgba(13,148,136,.10); }
.mini-card:has(.icon-red):hover .mini-icon{ background:rgba(220,38,38,.12); box-shadow:0 0 0 6px rgba(220,38,38,.10); }

.feature-strip .feature{ text-align:center; padding:26px 16px; border-right:1px solid #e2e8f0; }
.feature-strip > div:last-child .feature{ border-right:none; }
.feature-strip .icon-badge-sm{ margin:0 auto 10px; }
@media (max-width:767px){
    .feature-strip > div:nth-child(even) .feature{ border-right:none; }
    .feature-strip > div:nth-child(-n+2) .feature{ border-bottom:1px solid #e2e8f0; }
}

/* ---------- Why Choose Us (black gradient) ---------- */
.why-choose-section{ background:linear-gradient(135deg, #000000 0%, var(--navy-900) 55%, var(--navy-800) 100%); }
.why-choose-section h2{ color:#fff; }
.why-choose-section .kicker{ background:rgba(46,147,221,.16); color:#7cc4f0; }
.why-choose-section .feature-strip{ background:#fff; }

.pill-check{ display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid #e2e8f0; padding:.6rem 1rem; border-radius:999px; font-weight:600; font-size:.9rem; color:#334155; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease; }
.pill-check i{ color:var(--blue-600); }
a.pill-check:hover{ color:#334155; background:var(--blue-50); border-color:var(--blue-500); transform:translateY(-2px); box-shadow:0 8px 18px rgba(15,41,66,.1); }

.support-panel{ background:#f8fafc; border:1px solid #e2e8f0; border-radius:22px; padding:32px; }
.support-item{
    display:flex; align-items:center; gap:12px; height:100%;
    background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:14px 16px;
    font-weight:700; font-size:.9rem; color:#1e293b;
    transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.support-item .icon-badge-sm{ flex-shrink:0; }
.support-item:hover{ transform:translateY(-4px); box-shadow:0 12px 26px rgba(15,41,66,.12); border-color:transparent; }

/* ---------- Split visual block ---------- */
.split-visual{
    border-radius:20px;
    background:radial-gradient(circle at 80% 15%, rgba(46,147,221,.16), transparent 45%), linear-gradient(160deg,var(--navy-900),var(--navy-700));
    min-height:360px;
    position:relative; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    padding:28px;
    box-shadow:0 20px 48px rgba(10,17,40,.18);
}
.split-visual::before{
    content:""; position:absolute; inset:0;
    background-image:linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size:32px 32px;
    -webkit-mask-image:radial-gradient(circle at 60% 40%, black, transparent 75%);
            mask-image:radial-gradient(circle at 60% 40%, black, transparent 75%);
}
.split-visual-svg{ position:relative; width:100%; max-width:340px; height:auto; display:block; margin:0 auto; }
.split-visual-badge{
    position:absolute; left:20px; bottom:20px; z-index:2;
    display:flex; align-items:center; gap:10px;
    background:rgba(255,255,255,.08); backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.16); border-radius:12px;
    padding:10px 14px;
    animation:floatBadge 3.2s ease-in-out infinite;
}
.split-visual-badge strong{ display:block; font-size:.86rem; color:#fff; }
.split-visual-badge span{ font-size:.72rem; color:rgba(255,255,255,.6); }

.split-visual-photo{ padding:0; }
.split-visual-photo img{ width:100%; height:100%; min-height:360px; object-fit:cover; object-position:center; display:block; position:relative; }
.split-visual-photo::before{ z-index:1; mix-blend-mode:overlay; opacity:.5; }

/* ---------- Founder (profile panel) ---------- */
.founder-panel{
    background:linear-gradient(150deg, var(--navy-950), var(--navy-800));
    border-radius:28px;
    overflow:hidden;
    position:relative;
}
.founder-panel::before{
    content:""; position:absolute; inset:0;
    background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:40px 40px;
    -webkit-mask-image:radial-gradient(circle at 15% 20%, black, transparent 70%);
            mask-image:radial-gradient(circle at 15% 20%, black, transparent 70%);
    pointer-events:none;
}
.founder-photo-col{ position:relative; min-height:340px; height:100%; }
@media (min-width:992px){ .founder-photo-col{ height:730px; } }
.founder-photo-col img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.founder-photo-col::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(90deg, transparent 60%, var(--navy-950) 100%);
}
@media (max-width:991px){ .founder-photo-col::after{ background:linear-gradient(0deg, var(--navy-950) 0%, transparent 35%); } }

.founder-content{ position:relative; padding:30px 34px; }
@media (max-width:576px){ .founder-content{ padding:32px 24px; } }
.founder-eyebrow{ display:inline-block; font-size:.76rem; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:var(--blue-500); margin-bottom:10px; }
.founder-name{ color:#fff; font-size:1.9rem; margin-bottom:2px; }
.founder-role{ color:rgba(255,255,255,.55); font-size:.92rem; font-weight:600; margin-bottom:22px; display:block; }
.founder-bio p{ color:rgba(255,255,255,.78); font-size:.98rem; }

.founder-inline-quote{ background:rgba(255,255,255,.05); border-left:3px solid var(--blue-500); border-radius:0 12px 12px 0; margin-top:18px; padding:16px 20px; display:flex; gap:14px; align-items:flex-start; }
.founder-inline-quote .mark{ font-size:1.3rem; color:var(--blue-500); flex-shrink:0; margin-top:2px; }
.founder-inline-quote p{ font-style:italic; color:#fff; font-size:1.02rem; margin:0; line-height:1.55; }

.founder-credentials{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.founder-credentials .chip{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:8px 14px; font-size:.82rem; font-weight:600; color:rgba(255,255,255,.85); }
.founder-credentials .chip i{ color:var(--blue-500); }

/* Core Values — editorial strip, not cards */
.value-strip{ border:1px solid #e2e8f0; border-radius:18px; overflow:hidden; background:#fff; }
.value-strip .value-col{ padding:32px 26px; border-right:1px solid #e2e8f0; height:100%; }
.value-strip > div:last-child .value-col{ border-right:none; }
@media (max-width:767px){
    .value-strip > div:nth-child(even) .value-col{ border-right:none; }
    .value-strip > div:nth-child(-n+2) .value-col{ border-bottom:1px solid #e2e8f0; }
}
.value-strip .icon-badge-sm{ margin-bottom:16px; }

/* What Inspires Her — callout */
.inspire-callout{ background:var(--blue-50); border-radius:20px; padding:28px 32px; }
@media (max-width:576px){ .inspire-callout{ padding:22px 22px; } }
.inspire-callout .icon-badge-sm{ background:#fff; margin-bottom:12px; }
.inspire-callout p{ margin-bottom:.75em; }

/* Closing founder message */
.founder-message{ text-align:center; max-width:760px; margin:0 auto; }
.founder-message .mark{ font-size:3.4rem; color:var(--blue-500); opacity:.55; line-height:1; font-weight:800; }
.founder-message p{ font-size:1.3rem; color:#fff; font-weight:500; line-height:1.55; }
.founder-message .sig{ display:inline-block; margin-top:26px; padding-top:16px; border-top:2px solid var(--blue-600); }
.founder-message .sig strong{ display:block; color:#fff; font-size:1.02rem; }
.founder-message .sig span{ font-size:.84rem; color:rgba(255,255,255,.55); }

.pull-quote{ background:var(--blue-50); border-left:4px solid var(--blue-600); border-radius:0 14px 14px 0; padding:28px 30px; }
.pull-quote i{ color:var(--blue-600); font-size:1.6rem; margin-bottom:10px; display:inline-block; }
.pull-quote p{ font-size:1.08rem; font-style:italic; color:var(--navy-950); font-weight:500; margin:0; line-height:1.6; }

/* ---------- Mission / Vision ---------- */
.mv-card{
    position:relative; overflow:hidden;
    background:#fff; border:1px solid #e2e8f0; border-radius:20px; padding:36px; height:100%;
    transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.mv-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:4px;
    background:var(--blue-600); transform:scaleX(0); transform-origin:left;
    transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.mv-card::after{
    content:""; position:absolute; right:-30px; bottom:-30px; width:150px; height:150px;
    background:var(--blue-50); border-radius:50%; z-index:0; opacity:.7;
    transition:transform .45s ease;
}
.mv-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(15,41,66,.12); border-color:transparent; }
.mv-card:hover::before{ transform:scaleX(1); }
.mv-card:hover::after{ transform:scale(1.15); }
.mv-card:has(.icon-indigo)::before{ background:var(--indigo-600); }
.mv-card:has(.icon-indigo)::after{ background:#eef0fd; }
.mv-card > *{ position:relative; z-index:1; }
.mv-card .svc-icon{ width:64px; height:64px; font-size:1.7rem; }
.mv-card:hover .svc-icon{ transform:scale(1.1) rotate(-6deg); }
.mv-card:has(.icon-blue):hover .svc-icon{ background:rgba(0,112,192,.12); box-shadow:0 0 0 6px rgba(0,112,192,.10); }
.mv-card:has(.icon-indigo):hover .svc-icon{ background:rgba(79,70,229,.12); box-shadow:0 0 0 6px rgba(79,70,229,.10); }
.mv-card h3{ font-size:1.3rem; }

/* ---------- Quote ---------- */
.quote-block{ text-align:center; max-width:760px; margin:0 auto; }
.quote-block i{ font-size:2.2rem; color:var(--blue-500); margin-bottom:20px; display:inline-block; }
.quote-block p{ font-size:1.25rem; color:#fff; font-weight:500; line-height:1.5; }

/* ---------- Process steps ---------- */
/* ---------- Delivery process: icon cards with connector arrows ---------- */
.workflow-card{
    position:relative; overflow:hidden;
    background:#fff; border:1px solid #e2e8f0; border-radius:18px; padding:32px 24px; height:100%;
    text-align:center;
    transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.workflow-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:3px;
    background:var(--blue-600); transform:scaleX(0); transform-origin:left;
    transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.workflow-card:hover{ transform:translateY(-6px); box-shadow:0 16px 36px rgba(15,41,66,.12); border-color:transparent; }
.workflow-card:hover::before{ transform:scaleX(1); }
.workflow-card:has(.icon-indigo)::before{ background:var(--indigo-600); }
.workflow-card:has(.icon-red)::before{ background:#dc2626; }
.workflow-card:has(.icon-purple)::before{ background:#7c3aed; }

.workflow-icon-wrap{ position:relative; display:inline-block; margin-bottom:18px; }
.workflow-icon{
    display:flex; align-items:center; justify-content:center;
    width:64px; height:64px; border-radius:18px;
    background:#fff; border:1px solid #e2e8f0; box-shadow:0 1px 2px rgba(15,23,42,.05);
    font-size:1.6rem;
    transition:transform .35s cubic-bezier(.34,1.56,.64,1), background .35s ease, box-shadow .35s ease;
}
.workflow-card:hover .workflow-icon{ transform:scale(1.1) rotate(-6deg); }
.workflow-card:has(.icon-blue):hover .workflow-icon{ background:rgba(0,112,192,.12); box-shadow:0 0 0 6px rgba(0,112,192,.10); }
.workflow-card:has(.icon-indigo):hover .workflow-icon{ background:rgba(79,70,229,.12); box-shadow:0 0 0 6px rgba(79,70,229,.10); }
.workflow-card:has(.icon-red):hover .workflow-icon{ background:rgba(220,38,38,.12); box-shadow:0 0 0 6px rgba(220,38,38,.10); }
.workflow-card:has(.icon-purple):hover .workflow-icon{ background:rgba(124,58,237,.12); box-shadow:0 0 0 6px rgba(124,58,237,.10); }

.workflow-badge{
    position:absolute; top:-6px; right:-6px; z-index:1;
    display:flex; align-items:center; justify-content:center;
    width:26px; height:26px; border-radius:50%;
    background:var(--navy-950); color:#fff; font-size:.76rem; font-weight:800;
    box-shadow:0 2px 6px rgba(0,0,0,.2);
}

.workflow-arrow{
    display:none; position:absolute; top:50%; right:-30px; z-index:2;
    align-items:center; justify-content:center; transform:translateY(-50%);
    width:26px; height:26px; color:#cbd5e1; font-size:1.2rem;
}
@media (min-width:992px){ .workflow-arrow{ display:flex; } }

/* ---------- Portfolio ---------- */
.portfolio-card{ border:1px solid #e2e8f0; border-radius:14px; overflow:hidden; background:#fff; transition:.2s; height:100%; }
.portfolio-card:hover{ box-shadow:0 8px 24px rgba(15,41,66,.10); transform:translateY(-4px); }
.portfolio-thumb{
    height:220px; position:relative; overflow:hidden;
    background:#f1f5f9;
}
.portfolio-thumb img{
    width:100%; height:100%; object-fit:cover; object-position:center;
    display:block; transition:transform .4s ease;
}
.portfolio-card:hover .portfolio-thumb img{ transform:scale(1.06); }
.tag-soft{ background:var(--blue-50); color:var(--blue-600); font-size:.74rem; font-weight:800; letter-spacing:.3px; text-transform:uppercase; padding:.3rem .7rem; border-radius:999px; }
.tag-muted{ background:#f1f5f9; color:#64748b; font-size:.74rem; font-weight:700; padding:.3rem .7rem; border-radius:999px; }

.industry-card{ display:flex; align-items:center; gap:14px; padding:22px; border:1px solid #e2e8f0; border-radius:10px; background:#fff; font-weight:700; color:var(--navy-950); height:100%; }

.platform-card{ text-align:center; padding:30px 16px; border:1px solid #e2e8f0; border-radius:14px; background:#fff; height:100%; transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease; }
.platform-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(15,41,66,.12); }
.platform-card .icon-badge-sm{ margin:0 auto 12px; }

.platform-mark{ display:flex; align-items:center; justify-content:center; width:56px; height:56px; margin:0 auto 14px; border-radius:14px; font-weight:800; font-size:1.15rem; letter-spacing:.3px; color:#fff; box-shadow:0 6px 16px rgba(15,23,42,.18); transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.platform-card:hover .platform-mark{ transform:scale(1.08) rotate(-4deg); }
.mark-autocad{ background:linear-gradient(160deg, #1a1a1a 0%, #000 100%); color:#e1251b; font-size:1.5rem; }
.mark-civil3d{ background:linear-gradient(160deg, #0696d7 0%, #075a92 100%); font-size:.95rem; }
.mark-carlson{ background:linear-gradient(160deg, #ff7a00 0%, #c25400 100%); font-size:1.5rem; }
.mark-surveydata{ background:linear-gradient(160deg, #7c3aed 0%, #4c1d95 100%); font-size:1.3rem; }

/* ---------- CTA banner ---------- */
.cta-banner{ border-radius:24px; padding:64px 40px; text-align:center; }
.cta-banner::before{ -webkit-mask-image:radial-gradient(circle at center, black, transparent 75%); mask-image:radial-gradient(circle at center, black, transparent 75%); }

/* ---------- FAQ (Bootstrap accordion tweaks) ---------- */
.accordion-item{ border:1px solid #e2e8f0; border-radius:10px !important; overflow:hidden; margin-bottom:12px; }
.accordion-button{ font-weight:700; color:var(--navy-950); }
.accordion-button:not(.collapsed){ background:var(--blue-50); color:var(--blue-600); box-shadow:none; }
.accordion-button:focus{ box-shadow:none; border-color:#e2e8f0; }

/* ---------- Contact ---------- */
.contact-info-card{ background:var(--navy-900); color:#fff; border-radius:14px; padding:36px; }
.contact-info-card h3{ color:#fff; }
.contact-info-card p{ color:rgba(255,255,255,.68); }
.contact-info-list li{ display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; }
.contact-info-list .mini-icon{ background:rgba(0,112,192,.16); color:var(--blue-500); }
.contact-info-list strong{ display:block; color:#fff; font-size:.92rem; }
.contact-info-list span, .contact-info-list a{ font-size:.9rem; color:rgba(255,255,255,.68); }

.form-card{ background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:36px; box-shadow:0 1px 3px rgba(15,41,66,.08); }
.form-control, .form-select{ padding:.7rem .9rem; border-radius:9px; border-color:#e2e8f0; background:#f8fafc; }
.form-control:focus, .form-select:focus{ border-color:var(--blue-500); box-shadow:0 0 0 .2rem rgba(0,112,192,.15); background:#fff; }
.form-label{ font-weight:700; font-size:.86rem; color:var(--navy-950); }

/* ---------- Footer ---------- */
.site-footer{
    background:radial-gradient(circle at 15% 0%, rgba(0,112,192,.10), transparent 45%), var(--navy-950);
    position:relative; overflow:hidden;
    border-top:3px solid transparent;
    background-image:linear-gradient(var(--navy-950), var(--navy-950)), linear-gradient(90deg, var(--blue-600), var(--indigo-600), var(--blue-600));
    background-origin:border-box; background-clip:padding-box, border-box;
}
.site-footer > .container, .site-footer .footer-bottom{ position:relative; z-index:1; }
.text-light-muted{ color:rgba(255,255,255,.62) !important; }

.footer-heading{ color:#fff; font-weight:800; margin-bottom:18px; position:relative; padding-bottom:12px; }
.footer-heading::after{ content:""; position:absolute; left:0; bottom:0; width:32px; height:3px; border-radius:2px; background:var(--blue-500); }

.footer-links li{ margin-bottom:4px; }
.footer-links a{
    display:flex; align-items:center; gap:6px;
    color:rgba(255,255,255,.65); font-size:.92rem; padding:7px 0;
    transition:color .25s ease, gap .25s ease, padding-left .25s ease;
}
.footer-links a i{ font-size:.7rem; color:var(--blue-500); opacity:0; transform:translateX(-6px); transition:opacity .25s ease, transform .25s ease; }
.footer-links a:hover{ color:#fff; padding-left:2px; }
.footer-links a:hover i{ opacity:1; transform:translateX(0); }

.footer-contact-list li{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer-contact-list a, .footer-contact-list span{ color:rgba(255,255,255,.7); font-size:.9rem; }
.footer-contact-list a:hover{ color:var(--blue-500); }
.footer-contact-list .icon-badge-sm{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); flex-shrink:0; }
.footer-contact-list .icon-badge-sm i{ color:#fff !important; }

.footer-bottom{ background:#08131f; border-top:1px solid rgba(255,255,255,.08); }

/* ---------- Scroll-reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---------- Hero entrance animation ---------- */
@keyframes fadeInUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:translateY(0); } }
.hero-section h1, .page-hero h1{ animation:fadeInUp .7s ease both; }
.hero-section .lead, .page-hero p{ animation:fadeInUp .7s ease .12s both; }
.hero-section .eyebrow-row, .hero-section .d-flex.flex-wrap.gap-2.mb-4{ animation:fadeInUp .7s ease .04s both; }
.hero-section .hero-actions{ animation:fadeInUp .7s ease .26s both; }
.hero-section .stat-bar{ animation:fadeInUp .7s ease .38s both; }

.typewriter-cursor{
    display:inline-block; width:3px; height:.85em; margin-left:3px;
    background:currentColor; vertical-align:-0.1em;
    animation:typewriterBlink .9s steps(1) infinite;
}
.typewriter-cursor.typewriter-done{ opacity:.55; }
@keyframes typewriterBlink{ 50%{ opacity:0; } }

.text-highlight{
    background:linear-gradient(90deg, var(--blue-500), #b8e0fb, var(--blue-500));
    background-size:200% auto;
    -webkit-background-clip:text; background-clip:text;
    -webkit-text-fill-color:transparent; color:var(--blue-500);
    text-decoration:underline;
    text-decoration-color:var(--blue-500);
    text-decoration-thickness:3px;
    text-underline-offset:8px;
    animation:highlightShimmer 2.6s ease-in-out infinite;
}
@keyframes highlightShimmer{ 0%,100%{ background-position:0% center; } 50%{ background-position:100% center; } }

@media (prefers-reduced-motion: reduce){
    .text-highlight{ animation:none; background:none; -webkit-text-fill-color:currentColor; color:var(--blue-500); }
}

@media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
    .hero-section h1, .page-hero h1,
    .hero-section .lead, .page-hero p,
    .hero-section .eyebrow-row, .hero-section .d-flex.flex-wrap.gap-2.mb-4,
    .hero-section .hero-actions, .hero-section .stat-bar{ animation:none !important; }
    .typewriter-cursor{ display:none !important; }
}

.text-secondary{ color:#000 !important; }
