@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Exo+2:wght@300;400;500;600&display=swap');

*,
*::before,
*::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}

/* ═══════════════════════════════════════════
   DARK THEME (default)
═══════════════════════════════════════════ */
:root {
   --bg: #0F0A0A;
   --bg2: #1A0D0D;
   --bg3: #1F1010;
   --card: #1F1010;
   --red: #E8112D;
   --red2: #FF3350;
   --crimson: #B00020;
   --gold: #FF9F1C;
   --ink: #FFF0F0;
   --ink2: #E8D0D0;
   --muted: rgba(255, 240, 240, 0.55);
   --border: rgba(232, 17, 45, 0.18);
   --border2: rgba(232, 17, 45, 0.14);
   --mid: #7A4A4A;
   --nav-bg: rgba(15, 10, 10, 0.92);
   --nav-border: rgba(232, 17, 45, 0.14);
   --nav-shadow: 0 1px 0 rgba(232, 17, 45, 0.1);
   --dd-bg: rgba(26, 13, 13, 0.98);
   --dd-hover: rgba(232, 17, 45, 0.1);
   --hero-grd1: rgba(232, 17, 45, 0.12);
   --hero-grd2: rgba(255, 159, 28, 0.06);
   --grid-line: rgba(232, 17, 45, 0.04);
   --stat-bg: var(--bg2);
   --stat-border: rgba(255, 255, 255, 0.1);
   --stat-num: var(--red2);
   --stat-label: rgba(255, 240, 240, 0.5);
   --testi-bg: var(--card);
   --partner-bg: var(--card);
   --partner-filter: grayscale(100%) brightness(0.6);
   --cta-bg: linear-gradient(135deg, #1A0D0D 0%, #2A0810 50%, #1A0D0D 100%);
   --cta-h2: var(--ink);
   --cta-p: var(--muted);
   --cta-btn-bg: #fff;
   /* not used in dark — btn-primary handles it */
   --footer-bg: var(--bg2);
   --footer-border: rgba(232, 17, 45, 0.18);
   --footer-text: rgba(255, 240, 240, 0.45);
   --footer-link: rgba(255, 240, 240, 0.45);
   --footer-head: rgba(255, 240, 240, 0.9);
   --footer-bot: rgba(255, 255, 255, 0.25);
   --ph-bg: var(--bg2);
   --ph-border: var(--border2);
   --svg-fill: rgba(26, 13, 13, 0.9);
   --svg-inner: #1A0D0D;
   --input-bg: rgba(255, 255, 255, 0.04);
   --input-border: rgba(232, 17, 45, 0.2);
   --case-metric-bg: var(--card);
   --nav-h: 72px;
}

/* ═══════════════════════════════════════════
   LIGHT THEME  [data-theme="light"]
═══════════════════════════════════════════ */
[data-theme="light"] {
   --bg: #FFFFFF;
   --bg2: #F7F3F3;
   --bg3: #FDF0F0;
   --card: #FFFFFF;
   --red: #D4001F;
   --red2: #E8112D;
   --crimson: #A80018;
   --gold: #E08800;
   --ink: #1A0808;
   --ink2: #3D1515;
   --muted: #7A5050;
   --border: rgba(212, 0, 31, 0.12);
   --border2: rgba(26, 8, 8, 0.08);
   --mid: #A07070;
   --nav-bg: rgba(255, 255, 255, 0.96);
   --nav-border: rgba(26, 8, 8, 0.08);
   --nav-shadow: 0 1px 20px rgba(26, 8, 8, 0.06);
   --dd-bg: #ffffff;
   --dd-hover: #FDF0F0;
   --hero-grd1: rgba(212, 0, 31, 0.05);
   --hero-grd2: rgba(212, 0, 31, 0.04);
   --grid-line: rgba(212, 0, 31, 0.035);
   --stat-bg: var(--red);
   --stat-border: rgba(255, 255, 255, 0.2);
   --stat-num: #ffffff;
   --stat-label: rgba(255, 255, 255, 0.75);
   --testi-bg: var(--bg3);
   --partner-bg: #F7F3F3;
   --partner-filter: grayscale(100%) opacity(0.4);
   --cta-bg: var(--red);
   --cta-h2: #ffffff;
   --cta-p: rgba(255, 255, 255, 0.8);
   --footer-bg: #1A0808;
   --footer-border: rgba(255, 255, 255, 0.1);
   --footer-text: rgba(255, 255, 255, 0.45);
   --footer-link: rgba(255, 255, 255, 0.45);
   --footer-head: rgba(255, 255, 255, 0.9);
   --footer-bot: rgba(255, 255, 255, 0.25);
   --ph-bg: #F7F3F3;
   --ph-border: rgba(26, 8, 8, 0.08);
   --svg-fill: rgba(248, 240, 240, 0.95);
   --svg-inner: #FFF5F5;
   --input-bg: #F7F3F3;
   --input-border: rgba(26, 8, 8, 0.1);
   --case-metric-bg: #F7F3F3;
}

/* ═══════════════════════════════════════════
   BASE
═══════════════════════════════════════════ */
html {
   scroll-behavior: smooth;
}

body {
   background: var(--bg);
   color: var(--ink);
   font-family: 'Exo 2', sans-serif;
   font-weight: 400;
   line-height: 1.7;
   min-height: 100vh;
   transition: background 0.35s ease, color 0.35s ease;
}

::-webkit-scrollbar {
   width: 5px;
}

::-webkit-scrollbar-track {
   background: var(--bg2);
}

::-webkit-scrollbar-thumb {
   background: var(--red);
   border-radius: 3px;
}

/* ═══════════════════════════════════════════
   THEME TOGGLE BUTTON
═══════════════════════════════════════════ */
.theme-toggle {
   width: 44px;
   height: 44px;
   border-radius: 50%;
   border: 1.5px solid var(--border2);
   background: var(--bg2);
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
   transition: background 0.25s, border-color 0.25s, transform 0.2s;
   position: relative;
   overflow: hidden;
}

.theme-toggle:hover {
   border-color: var(--red);
   transform: scale(1.08);
}

.theme-toggle .icon-sun,
.theme-toggle .icon-moon {
   position: absolute;
   transition: opacity 0.3s, transform 0.4s;
   width: 20px;
   height: 20px;
}

/* dark mode: show moon */
.theme-toggle .icon-sun {
   opacity: 0;
   transform: rotate(90deg) scale(0.6);
}

.theme-toggle .icon-moon {
   opacity: 1;
   transform: rotate(0deg) scale(1);
}

/* light mode: show sun */
[data-theme="light"] .theme-toggle .icon-sun {
   opacity: 1;
   transform: rotate(0deg) scale(1);
}

[data-theme="light"] .theme-toggle .icon-moon {
   opacity: 0;
   transform: rotate(-90deg) scale(0.6);
}

/* ═══════════════════════════════════════════
   NAV
═══════════════════════════════════════════ */
nav {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1000;
   height: var(--nav-h);
   background: var(--nav-bg);
   backdrop-filter: blur(16px);
   border-bottom: 1px solid var(--nav-border);
   box-shadow: var(--nav-shadow);
   display: flex;
   align-items: center;
   padding: 0 48px;
   gap: 16px;
   transition: background 0.35s ease, border-color 0.35s ease;
}

.nav-logo {
   display: flex;
   align-items: center;
   gap: 12px;
   text-decoration: none;
   flex-shrink: 0;
}

.nav-logo svg {
   width: 46px;
   height: 46px;
}

.nav-brand {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 26px;
   letter-spacing: 2px;
   color: var(--ink);
   line-height: 1;
   transition: color 0.35s;
}

.nav-brand span {
   color: var(--red2);
}

.nav-tagline {
   font-size: 11.5px;
   letter-spacing: 0.5px;
   color: var(--ink2);
   line-height: 1;
   margin-top: 3px;
   white-space: nowrap;
}

.nav-links {
   display: flex;
   align-items: center;
   gap: 4px;
   list-style: none;
   margin-left: auto;
}

.nav-links a {
   color: var(--muted);
   text-decoration: none;
   font-size: 13px;
   font-weight: 500;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   padding: 8px 14px;
   border-radius: 6px;
   transition: color .2s, background .2s;
}

.nav-links a:hover,
.nav-links a.active {
   color: var(--red2);
   background: rgba(232, 17, 45, 0.08);
}

.nav-links .dropdown {
   position: relative;
}

.nav-links .dropdown-menu {
   display: none;
   position: absolute;
   top: calc(100% + 4px);
   left: 0;
   background: var(--dd-bg);
   border: 1px solid var(--border2);
   border-radius: 12px;
   padding: 8px;
   min-width: 220px;
   list-style: none;
   z-index: 100;
   box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);
   transition: background 0.35s;
}

.nav-links .dropdown:hover .dropdown-menu {
   display: block;
}

.nav-links .dropdown-menu li a {
   display: block;
   padding: 9px 14px;
   font-size: 13px;
   letter-spacing: 0.5px;
   border-radius: 6px;
   color: var(--ink);
}

.nav-links .dropdown-menu li a:hover {
   background: var(--dd-hover);
   color: var(--red2);
}

.nav-cta {
   margin-left: 4px;
   background: var(--red) !important;
   color: #fff !important;
   padding: 9px 22px !important;
   border-radius: 8px !important;
   letter-spacing: 1px;
}

.nav-cta:hover {
   background: var(--red2) !important;
   color: #fff !important;
}

/* ═══════════════════════════════════════════
   PAGE + HERO
═══════════════════════════════════════════ */
.page {
   padding-top: var(--nav-h);
}

.hero {
   min-height: 92vh;
   display: flex;
   align-items: center;
   position: relative;
   overflow: hidden;
   padding: 80px 48px;
   background: var(--bg);
   transition: background 0.35s;
}

.hero-bg {
   position: absolute;
   inset: 0;
   pointer-events: none;
   background:
      radial-gradient(ellipse 70% 60% at 10% 30%, var(--hero-grd1) 0%, transparent 60%),
      radial-gradient(ellipse 50% 40% at 90% 70%, var(--hero-grd2) 0%, transparent 60%);
}

.hero-grid {
   position: absolute;
   inset: 0;
   overflow: hidden;
   background-image:
      linear-gradient(var(--grid-line) 1px, transparent 1px),
      linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
   background-size: 60px 60px;
   mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 80%);
}

.hero-content {
   position: relative;
   z-index: 2;
   max-width: 700px;
}

.hero-badge {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   background: rgba(232, 17, 45, 0.09);
   border: 1px solid rgba(232, 17, 45, 0.25);
   border-radius: 100px;
   padding: 6px 16px;
   font-size: 12px;
   letter-spacing: 2px;
   text-transform: uppercase;
   color: var(--red2);
   margin-bottom: 28px;
   font-weight: 600;
}

.hero-badge span {
   width: 6px;
   height: 6px;
   background: var(--red2);
   border-radius: 50%;
   animation: pulse 2s ease-in-out infinite;
}

.hero h1 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: clamp(42px, 6vw, 76px);
   line-height: 1.05;
   letter-spacing: -1px;
   margin-bottom: 24px;
   color: var(--ink);
   transition: color 0.35s;
}

.hero h1 em {
   color: var(--red2);
   font-style: normal;
}

.hero p {
   font-size: 18px;
   color: var(--muted);
   max-width: 560px;
   margin-bottom: 40px;
   line-height: 1.8;
   transition: color 0.35s;
}

.btn-row {
   display: flex;
   gap: 16px;
   flex-wrap: wrap;
}

/* ═══════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════ */
.btn {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 14px 28px;
   border-radius: 10px;
   font-family: 'Exo 2', sans-serif;
   font-weight: 600;
   font-size: 14px;
   letter-spacing: 1px;
   text-transform: uppercase;
   text-decoration: none;
   transition: all .25s;
   cursor: pointer;
   border: none;
}

.btn-primary {
   background: var(--red);
   color: #fff;
}

.btn-primary:hover {
   background: var(--red2);
   transform: translateY(-2px);
   box-shadow: 0 8px 28px rgba(212, 0, 31, 0.3);
}

.btn-outline {
   background: transparent;
   color: var(--ink);
   border: 1.5px solid var(--border2);
   transition: all .25s;
}

.btn-outline:hover {
   border-color: var(--red);
   color: var(--red2);
   background: rgba(212, 0, 31, 0.05);
}

/* ═══════════════════════════════════════════
   SECTIONS
═══════════════════════════════════════════ */
section {
   padding: 96px 48px;
   transition: background 0.35s;
}

.section-label {
   display: inline-block;
   font-size: 11px;
   letter-spacing: 4px;
   text-transform: uppercase;
   color: var(--red2);
   margin-bottom: 14px;
   font-weight: 600;
}

.section-title {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: clamp(32px, 4vw, 52px);
   line-height: 1.1;
   margin-bottom: 16px;
   color: var(--ink);
   transition: color 0.35s;
}

.section-title em {
   color: var(--red2);
   font-style: normal;
}

.section-sub {
   color: var(--muted);
   font-size: 17px;
   max-width: 580px;
   line-height: 1.8;
   margin-bottom: 56px;
   transition: color 0.35s;
}

.container {
   max-width: 1200px;
   margin: 0 auto;
}

/* ═══════════════════════════════════════════
   GRIDS & CARDS
═══════════════════════════════════════════ */
.grid-4 {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
   gap: 24px;
}

.grid-3 {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 24px;
}

.grid-2 {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
   gap: 24px;
}

.card {
   background: var(--card);
   border: 1px solid var(--border2);
   border-radius: 16px;
   padding: 32px;
   transition: transform .25s, border-color .25s, box-shadow .25s, background 0.35s;
}

.card:hover {
   transform: translateY(-4px);
   border-color: rgba(232, 17, 45, 0.35);
   box-shadow: 0 12px 36px rgba(232, 17, 45, 0.1);
}

.card-icon {
   width: 52px;
   height: 52px;
   background: rgba(232, 17, 45, 0.09);
   border: 1px solid rgba(232, 17, 45, 0.18);
   border-radius: 12px;
   display: flex;
   align-items: center;
   justify-content: center;
   margin-bottom: 20px;
}

.card-icon svg {
   width: 26px;
   height: 26px;
   stroke: var(--red2);
   fill: none;
   stroke-width: 1.8;
}

.card h3 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 20px;
   margin-bottom: 10px;
   color: var(--ink);
   transition: color 0.35s;
}

.card p {
   color: var(--muted);
   font-size: 14.5px;
   line-height: 1.7;
}

.card a {
   color: var(--red2);
   text-decoration: none;
   font-size: 13px;
   font-weight: 600;
   letter-spacing: 1px;
   text-transform: uppercase;
   display: inline-flex;
   align-items: center;
   gap: 6px;
   margin-top: 18px;
}

.card a:hover {
   color: var(--crimson);
}

/* ═══════════════════════════════════════════
   DIVIDER
═══════════════════════════════════════════ */
.divider {
   border: none;
   border-top: 1px solid var(--border2);
   margin: 0;
}

/* ═══════════════════════════════════════════
   STATS BAR
═══════════════════════════════════════════ */
.stats-bar {
   background: var(--stat-bg);
   border-top: 1px solid var(--border2);
   border-bottom: 1px solid var(--border2);
   padding: 48px;
   display: flex;
   gap: 0;
   flex-wrap: wrap;
   transition: background 0.35s;
}

/* light: red bg, dark: deep bg */
[data-theme="light"] .stats-bar {
   border-top: none;
   border-bottom: none;
}

.stat {
   flex: 1;
   min-width: 160px;
   text-align: center;
   padding: 24px;
   border-right: 1px solid var(--stat-border);
}

.stat:last-child {
   border-right: none;
}

.stat-num {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 48px;
   color: var(--stat-num);
   line-height: 1;
}

.stat-label {
   color: var(--stat-label);
   font-size: 13px;
   letter-spacing: 1px;
   margin-top: 6px;
}

/* ═══════════════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════════════ */
.testimonial {
   background: var(--testi-bg);
   border: 1px solid var(--border2);
   border-radius: 16px;
   padding: 36px;
   transition: background 0.35s;
}

.testimonial blockquote {
   color: var(--muted);
   font-size: 15px;
   line-height: 1.8;
   font-style: italic;
   margin-bottom: 24px;
}

.testimonial-author {
   display: flex;
   align-items: center;
   gap: 12px;
}

.avatar {
   width: 44px;
   height: 44px;
   background: var(--red);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 16px;
   color: #fff;
}

.author-name {
   font-weight: 600;
   font-size: 15px;
   color: var(--ink);
}

.author-role {
   color: var(--muted);
   font-size: 12px;
}

/* ═══════════════════════════════════════════
   PARTNERS
═══════════════════════════════════════════ */
.partners {
   display: flex;
   flex-wrap: wrap;
   gap: 24px;
   align-items: center;
   justify-content: center;
}

.partner-logo {
   background: var(--partner-bg);
   border: 1px solid var(--border2);
   border-radius: 12px;
   padding: 18px 32px;
   display: flex;
   align-items: center;
   justify-content: center;
   min-width: 140px;
   height: 72px;
   filter: var(--partner-filter);
   transition: filter .25s;
}

.partner-logo:hover {
   filter: grayscale(0%) brightness(1);
}

.partner-logo img {
   max-width: 100px;
   max-height: 36px;
   object-fit: contain;
}

/* ═══════════════════════════════════════════
   CTA BAND
═══════════════════════════════════════════ */
.cta-band {
   background: var(--cta-bg);
   padding: 96px 48px;
   text-align: center;
   position: relative;
   overflow: hidden;
   transition: background 0.35s;
}

.cta-band::before {
   content: '';
   position: absolute;
   inset: 0;
   background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(255, 255, 255, 0.07) 0%, transparent 70%);
}

.cta-band .container {
   position: relative;
}

.cta-band h2 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: clamp(30px, 4vw, 48px);
   margin-bottom: 16px;
   color: var(--cta-h2);
}

.cta-band p {
   color: var(--cta-p);
   font-size: 17px;
   margin-bottom: 36px;
}

/* Dark theme CTA button */
.cta-band .btn-primary {
   background: var(--red2);
   color: #fff;
}

.cta-band .btn-primary:hover {
   background: var(--red);
}

/* Light theme CTA button - white on red */
[data-theme="light"] .cta-band .btn-primary {
   background: #fff;
   color: var(--red);
}

[data-theme="light"] .cta-band .btn-primary:hover {
   background: #ffe8e8;
}

[data-theme="light"] .cta-band .btn-outline {
   border-color: rgba(255, 255, 255, 0.4);
   color: #fff;
   background: transparent;
}

[data-theme="light"] .cta-band .btn-outline:hover {
   background: rgba(255, 255, 255, 0.1);
   border-color: #fff;
}

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
footer {
   background: var(--footer-bg);
   padding: 64px 48px 32px;
   transition: background 0.35s;
}

.footer-grid {
   display: grid;
   grid-template-columns: 2fr 1fr 1fr 1.5fr;
   gap: 48px;
   max-width: 1200px;
   margin: 0 auto;
   padding-bottom: 48px;
   border-bottom: 1px solid var(--footer-border);
}

.footer-brand p {
   color: var(--footer-text);
   font-size: 14px;
   margin-top: 16px;
   max-width: 280px;
   line-height: 1.8;
}

.footer-col h4 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 2px;
   text-transform: uppercase;
   color: var(--footer-head);
   margin-bottom: 18px;
}

.footer-col ul {
   list-style: none;
}

.footer-col ul li {
   margin-bottom: 10px;
}

.footer-col ul li a {
   color: var(--footer-link);
   text-decoration: none;
   font-size: 14px;
   transition: color .2s;
}

.footer-col ul li a:hover {
   color: #fff;
}

.footer-contact p {
   color: var(--footer-text);
   font-size: 13.5px;
   line-height: 1.8;
   margin-bottom: 12px;
}

.footer-contact a {
   color: #FF6677;
   text-decoration: none;
}

.footer-bottom {
   max-width: 1200px;
   margin: 28px auto 0;
   display: flex;
   justify-content: space-between;
   align-items: center;
   flex-wrap: wrap;
   gap: 12px;
   color: var(--footer-bot);
   font-size: 13px;
}

/* Footer logo brand always white */
.footer-brand .nav-brand {
   color: #fff !important;
}

.footer-brand .nav-brand span {
   color: #FF4455 !important;
}

/* ═══════════════════════════════════════════
   PAGE HEADER
═══════════════════════════════════════════ */
.page-header {
   padding: 100px 48px 64px;
   position: relative;
   overflow: hidden;
   border-bottom: 1px solid var(--ph-border);
   background: var(--ph-bg);
   transition: background 0.35s;
}

.page-header::before {
   content: '';
   position: absolute;
   inset: 0;
   background: radial-gradient(ellipse 60% 80% at 20% 50%, var(--hero-grd1) 0%, transparent 60%);
}

.page-header .container {
   position: relative;
}

.page-header h1 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: clamp(40px, 5vw, 64px);
   line-height: 1.1;
   color: var(--ink);
}

.page-header h1 em {
   color: var(--red2);
   font-style: normal;
}

.page-header p {
   color: var(--muted);
   font-size: 18px;
   max-width: 560px;
   margin-top: 16px;
   line-height: 1.8;
}

/* ═══════════════════════════════════════════
   SERVICE FEATURES
═══════════════════════════════════════════ */
.service-feature {
   display: flex;
   gap: 16px;
   margin-bottom: 28px;
}

.service-feature-icon {
   width: 40px;
   height: 40px;
   flex-shrink: 0;
   background: rgba(232, 17, 45, 0.09);
   border-radius: 8px;
   display: flex;
   align-items: center;
   justify-content: center;
   margin-top: 2px;
   border: 1px solid rgba(232, 17, 45, 0.18);
}

.service-feature-icon svg {
   width: 20px;
   height: 20px;
   stroke: var(--red2);
   fill: none;
   stroke-width: 1.8;
}

.service-feature h4 {
   font-family: 'Rajdhani', sans-serif;
   font-size: 18px;
   font-weight: 700;
   margin-bottom: 4px;
   color: var(--ink);
   transition: color 0.35s;
}

.service-feature p {
   color: var(--muted);
   font-size: 14px;
   line-height: 1.7;
}

/* ═══════════════════════════════════════════
   FORMS
═══════════════════════════════════════════ */
.form-group {
   margin-bottom: 20px;
}

.form-group label {
   display: block;
   font-size: 12px;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   color: var(--muted);
   margin-bottom: 8px;
   font-weight: 600;
}

.form-group input,
.form-group textarea,
.form-group select {
   width: 100%;
   background: var(--input-bg);
   border: 1.5px solid var(--input-border);
   border-radius: 10px;
   padding: 13px 16px;
   color: var(--ink);
   font-family: 'Exo 2', sans-serif;
   font-size: 15px;
   transition: border-color .2s, box-shadow .2s, background 0.35s, color 0.35s;
   outline: none;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
   border-color: var(--red);
   box-shadow: 0 0 0 3px rgba(212, 0, 31, 0.1);
}

.form-group textarea {
   resize: vertical;
   min-height: 140px;
}

.form-group select option {
   background: var(--bg);
   color: var(--ink);
}

/* ═══════════════════════════════════════════
   CASE STUDIES
═══════════════════════════════════════════ */

/* Filter Tabs */
.case-filters {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-bottom: 48px;
   justify-content: center;
}

.case-filter-btn {
   background: var(--bg2);
   border: 1px solid var(--border2);
   color: var(--muted);
   font-family: 'Exo 2', sans-serif;
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   padding: 9px 22px;
   border-radius: 100px;
   cursor: pointer;
   transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.15s;
}

.case-filter-btn:hover {
   border-color: var(--red);
   color: var(--red2);
   transform: translateY(-1px);
}

.case-filter-btn.active {
   background: var(--red);
   border-color: var(--red);
   color: #fff;
}

/* Grid item hide/show */
.case-card-wrap {
   display: flex;
   flex-direction: column;
   transition: opacity 0.3s ease, transform 0.3s ease;
}

.case-card-wrap.hidden {
   display: none;
}

/* Featured / wide card */
.case-card.featured {
   grid-column: span 2;
   flex-direction: row;
   align-items: stretch;
}

.case-card.featured .case-card-header {
   flex: 1;
}

.case-card.featured .case-metrics {
   flex-direction: column;
   min-width: 180px;
   border-top: none;
   border-left: 1px solid var(--border2);
}

.case-card.featured .case-metric {
   border-right: none;
   border-bottom: 1px solid var(--border2);
   flex: 1;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
}

.case-card.featured .case-metric:last-child {
   border-bottom: none;
}

@media (max-width: 900px) {
   .case-card.featured {
      grid-column: span 1;
      flex-direction: column;
   }

   .case-card.featured .case-metrics {
      flex-direction: row;
      min-width: unset;
      border-left: none;
      border-top: 1px solid var(--border2);
      align-items: stretch;
   }

   .case-card.featured .case-metric {
      border-bottom: none;
      border-right: 1px solid var(--border2);
   }

   .case-card.featured .case-metric:last-child {
      border-right: none;
   }
}

/* Results count badge */
.cs-count {
   text-align: center;
   color: var(--muted);
   font-size: 13px;
   letter-spacing: 1px;
   margin-bottom: 32px;
}

.cs-count strong {
   color: var(--red2);
}

.case-card {
   background: var(--card);
   border: 1px solid var(--border2);
   border-radius: 16px;
   overflow: hidden;
   transition: transform .25s, box-shadow .25s, background 0.35s;
   display: flex;
   flex-direction: column;
   flex: 1;
}

.case-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 16px 40px rgba(232, 17, 45, 0.1);
}

.case-card-header {
   padding: 28px 28px 0;
}

.case-tag {
   display: inline-block;
   background: rgba(232, 17, 45, 0.09);
   color: var(--red2);
   font-size: 11px;
   letter-spacing: 2px;
   text-transform: uppercase;
   padding: 4px 12px;
   border-radius: 100px;
   margin-bottom: 12px;
   font-weight: 600;
}

.case-card h3 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 22px;
   margin-bottom: 10px;
   color: var(--ink);
}

.case-card p {
   color: var(--muted);
   font-size: 14px;
   line-height: 1.7;
   padding: 0 28px 24px;
   flex: 1;
}

.case-metrics {
   display: flex;
   gap: 0;
   border-top: 1px solid var(--border2);
   background: var(--case-metric-bg);
   transition: background 0.35s;
   align-items: stretch;
}

.case-metric {
   flex: 1;
   padding: 18px;
   text-align: center;
   border-right: 1px solid var(--border2);
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
}

.case-metric:last-child {
   border-right: none;
}

.case-metric-num {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 24px;
   color: var(--red2);
}

.case-metric-label {
   color: var(--muted);
   font-size: 11px;
   letter-spacing: 1px;
   text-transform: uppercase;
   margin-top: 2px;
}

/* ═══════════════════════════════════════════
   TIMELINE
═══════════════════════════════════════════ */
.timeline {
   position: relative;
   padding-left: 32px;
}

.timeline::before {
   content: '';
   position: absolute;
   left: 0;
   top: 0;
   bottom: 0;
   width: 2px;
   background: linear-gradient(to bottom, var(--red), transparent);
   border-radius: 2px;
}

.timeline-item {
   position: relative;
   margin-bottom: 40px;
}

.timeline-item::before {
   content: '';
   position: absolute;
   left: -38px;
   top: 6px;
   width: 12px;
   height: 12px;
   background: var(--red);
   border-radius: 50%;
   border: 2px solid var(--bg);
   box-shadow: 0 0 0 2px rgba(212, 0, 31, 0.2);
}

.timeline-item h4 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 18px;
   margin-bottom: 6px;
   color: var(--ink);
}

.timeline-item p {
   color: var(--muted);
   font-size: 14px;
   line-height: 1.7;
}

/* ═══════════════════════════════════════════
   CASE STUDY DETAIL PAGE
═══════════════════════════════════════════ */

/* Breadcrumb */
.cs-breadcrumb {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 13px;
   color: var(--muted);
   margin-bottom: 20px;
   letter-spacing: 0.5px;
}

.cs-breadcrumb a {
   color: var(--red2);
   text-decoration: none;
   transition: color 0.2s;
}

.cs-breadcrumb a:hover {
   color: var(--crimson);
}

.cs-breadcrumb span {
   color: var(--muted);
}

/* Metrics banner strip */
.cs-metrics-banner {
   background: var(--red);
   padding: 40px 48px;
}

.cs-metrics-row {
   max-width: 1200px;
   margin: 0 auto;
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
   gap: 0;
}

.cs-metric-big {
   text-align: center;
   padding: 8px 24px;
   border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.cs-metric-big:last-child {
   border-right: none;
}

.cs-metric-big .num {
   display: block;
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 42px;
   color: #fff;
   line-height: 1;
}

.cs-metric-big .label {
   display: block;
   font-size: 12px;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   color: rgba(255, 255, 255, 0.75);
   margin-top: 6px;
}

/* Main layout: body + sidebar */
.cs-layout {
   display: grid;
   grid-template-columns: 1fr 300px;
   gap: 56px;
   align-items: start;
}

.cs-body {
   min-width: 0;
}

/* Content blocks */
.cs-block {
   margin-bottom: 52px;
}

.cs-block h2 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 28px;
   color: var(--ink);
   margin-bottom: 16px;
   padding-bottom: 12px;
   border-bottom: 2px solid var(--border);
   transition: color 0.35s;
}

.cs-block p {
   color: var(--muted);
   font-size: 15.5px;
   line-height: 1.85;
   margin-bottom: 14px;
   transition: color 0.35s;
}

.cs-block ul {
   list-style: none;
   padding: 0;
   margin-top: 8px;
}

.cs-block ul li {
   color: var(--muted);
   font-size: 15px;
   line-height: 1.7;
   padding: 8px 0 8px 24px;
   border-bottom: 1px solid var(--border2);
   position: relative;
   transition: color 0.35s;
}

.cs-block ul li::before {
   content: '';
   position: absolute;
   left: 0;
   top: 17px;
   width: 8px;
   height: 8px;
   background: var(--red2);
   border-radius: 50%;
}

/* Approach steps */
.cs-steps {
   display: flex;
   flex-direction: column;
   gap: 20px;
   margin-top: 24px;
}

.cs-step {
   display: flex;
   gap: 20px;
   align-items: flex-start;
   background: var(--card);
   border: 1px solid var(--border2);
   border-radius: 14px;
   padding: 22px 24px;
   transition: background 0.35s, border-color 0.25s;
}

.cs-step:hover {
   border-color: rgba(232, 17, 45, 0.3);
}

.cs-step-num {
   flex-shrink: 0;
   width: 40px;
   height: 40px;
   background: rgba(232, 17, 45, 0.1);
   border: 1.5px solid rgba(232, 17, 45, 0.25);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 17px;
   color: var(--red2);
}

.cs-step-body h4 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 17px;
   color: var(--ink);
   margin-bottom: 6px;
   transition: color 0.35s;
}

.cs-step-body p {
   margin-bottom: 0;
   font-size: 14px;
}

/* Quote */
.cs-quote {
   background: var(--bg2);
   border-left: 4px solid var(--red2);
   border-radius: 0 14px 14px 0;
   padding: 28px 32px;
   margin: 40px 0;
   transition: background 0.35s;
}

.cs-quote p {
   font-size: 17px;
   font-style: italic;
   color: var(--ink2);
   line-height: 1.8;
   margin-bottom: 12px;
   transition: color 0.35s;
}

.cs-quote cite {
   font-size: 13px;
   color: var(--red2);
   font-style: normal;
   font-weight: 600;
   letter-spacing: 0.5px;
}

/* Sidebar */
.cs-sidebar {
   display: flex;
   flex-direction: column;
   gap: 20px;
   position: sticky;
   top: 88px;
}

.cs-sidebar-box {
   background: var(--card);
   border: 1px solid var(--border2);
   border-radius: 14px;
   padding: 22px 24px;
   transition: background 0.35s;
}

.cs-sidebar-box h4 {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 13px;
   letter-spacing: 2px;
   text-transform: uppercase;
   color: var(--red2);
   margin-bottom: 12px;
}

.cs-sidebar-box p,
.cs-sidebar-box li {
   color: var(--muted);
   font-size: 14px;
   line-height: 1.6;
   transition: color 0.35s;
}

.cs-sidebar-box ul {
   list-style: none;
   padding: 0;
}

.cs-sidebar-box ul li {
   padding: 6px 0;
   border-bottom: 1px solid var(--border2);
   font-size: 14px;
   color: var(--muted);
}

.cs-sidebar-box ul li:last-child {
   border-bottom: none;
}

/* Tech badges */
.cs-tech-pills {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
}

.cs-tech-pills span {
   background: rgba(232, 17, 45, 0.08);
   border: 1px solid rgba(232, 17, 45, 0.2);
   color: var(--red2);
   font-size: 12px;
   font-weight: 600;
   padding: 4px 12px;
   border-radius: 100px;
   letter-spacing: 0.5px;
}

/* Card read-more link */
.case-card-cta {
   padding: 14px 28px;
   border-top: 1px solid var(--border2);
}

.case-card-cta a {
   color: var(--red2);
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   text-decoration: none;
   display: inline-flex;
   align-items: center;
   gap: 6px;
   transition: gap 0.2s, color 0.2s;
}

.case-card-cta a:hover {
   color: var(--crimson);
   gap: 10px;
}

/* Responsive */
@media (max-width: 900px) {
   .cs-layout {
      grid-template-columns: 1fr;
   }

   .cs-sidebar {
      position: static;
   }

   .cs-metrics-banner {
      padding: 32px 24px;
   }

   .cs-metrics-row {
      grid-template-columns: repeat(2, 1fr);
   }

   .cs-metric-big {
      border-right: none;
      border-bottom: 1px solid rgba(255, 255, 255, 0.2);
      padding: 16px;
   }

   .cs-metric-big:last-child {
      border-bottom: none;
   }
}

/* ═══════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════ */
@keyframes pulse {

   0%,
   100% {
      opacity: 1
   }

   50% {
      opacity: 0.4
   }
}

@keyframes flow {
   to {
      stroke-dashoffset: -36;
   }
}

@keyframes fadeUp {
   from {
      opacity: 0;
      transform: translateY(30px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

.fade-up {
   animation: fadeUp .7s ease both;
}

.delay-1 {
   animation-delay: .1s;
}

.delay-2 {
   animation-delay: .2s;
}

/* ═══════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════ */
/* ── Hamburger button (desktop hidden) ── */
.nav-toggle {
   display: none;
   flex-direction: column;
   justify-content: center;
   gap: 5px;
   background: none;
   border: none;
   cursor: pointer;
   padding: 8px;
   margin-left: auto;
   flex-shrink: 0;
   z-index: 1001;
}

.nav-toggle span {
   display: block;
   width: 24px;
   height: 2px;
   background: var(--ink);
   border-radius: 2px;
   transition: transform 0.3s ease, opacity 0.3s ease;
   transform-origin: center;
}

.nav-toggle.active span:nth-child(1) {
   transform: translateY(7px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2) {
   opacity: 0;
   transform: scaleX(0);
}

.nav-toggle.active span:nth-child(3) {
   transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 768px) {
   nav {
      padding: 0 20px;
      gap: 8px;
   }

   .nav-toggle {
      display: flex;
   }

   .nav-links {
      display: none;
   }

   .nav-links.nav-open {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      position: fixed;
      top: var(--nav-h);
      left: 0;
      right: 0;
      bottom: 0;
      background: var(--bg);
      padding: 24px 20px 40px;
      gap: 4px;
      overflow-y: auto;
      z-index: 999;
      border-top: 1px solid var(--border);
      animation: slideDownNav 0.22s ease;
   }

   @keyframes slideDownNav {
      from {
         opacity: 0;
         transform: translateY(-10px);
      }

      to {
         opacity: 1;
         transform: translateY(0);
      }
   }

   .nav-links.nav-open>li {
      width: 100%;
      list-style: none;
   }

   .nav-links.nav-open>li>a {
      font-size: 17px;
      padding: 14px 16px;
      display: block;
      border-radius: 8px;
      letter-spacing: 1px;
   }

   .nav-links.nav-open .dropdown-menu {
      display: block;
      position: static;
      box-shadow: none;
      border: none;
      border-left: 2px solid var(--red);
      padding: 4px 0 4px 12px;
      background: transparent;
      border-radius: 0;
      min-width: unset;
      margin: 4px 0 4px 16px;
   }

   .nav-links.nav-open .dropdown-menu li a {
      font-size: 14px;
      padding: 9px 12px;
      letter-spacing: 0.5px;
   }

   section,
   .hero {
      padding: 64px 24px;
   }

   .stats-bar {
      padding: 32px 24px;
   }

   .footer-grid {
      grid-template-columns: 1fr;
      gap: 32px;
   }

   .grid-2 {
      grid-template-columns: 1fr;
   }

   .page-header {
      padding: 80px 24px 48px;
   }
}

/* ═══════════════════════════════════════════
   FAQ SECTION
═══════════════════════════════════════════ */
.faq-section {
   padding: 96px 0;
   background: var(--bg);
}

.faq-section .section-label {
   display: block;
   text-align: center;
   margin-bottom: 12px;
}

.faq-section h2 {
   text-align: center;
   font-size: clamp(1.6rem, 3vw, 2.2rem);
   color: var(--ink);
   margin-bottom: 56px;
}

.faq-list {
   max-width: 820px;
   margin: 0 auto;
   display: flex;
   flex-direction: column;
   gap: 0;
}

.faq-item {
   border-bottom: 1px solid var(--border);
}

.faq-item:first-child {
   border-top: 1px solid var(--border);
}

.faq-question {
   width: 100%;
   background: none;
   border: none;
   text-align: left;
   padding: 22px 0;
   cursor: pointer;
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 16px;
   color: var(--ink);
   font-family: 'Exo 2', sans-serif;
   font-size: 1.05rem;
   font-weight: 600;
   line-height: 1.4;
   transition: color 0.2s;
}

.faq-question:hover {
   color: var(--red2);
}

.faq-icon {
   flex-shrink: 0;
   width: 22px;
   height: 22px;
   border-radius: 50%;
   border: 1.5px solid var(--red);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--red2);
   font-size: 1.1rem;
   line-height: 1;
   transition: transform 0.3s ease, background 0.2s;
}

.faq-item.open .faq-icon {
   transform: rotate(45deg);
   background: var(--red);
   color: #fff;
}

.faq-answer {
   max-height: 0;
   overflow: hidden;
   transition: max-height 0.35s ease, padding 0.2s;
}

.faq-answer p {
   padding: 0 0 20px;
   color: var(--ink2);
   font-size: 0.97rem;
   line-height: 1.75;
   max-width: 740px;
}

.faq-item.open .faq-answer {
   max-height: 400px;
}

@media (max-width: 600px) {
   .faq-section {
      padding: 64px 0;
   }

   .faq-question {
      font-size: 0.97rem;
   }
}

/* ═══════════════════════════════════════════
   CHATBOT WIDGET
═══════════════════════════════════════════ */
#chat-widget {
   position: fixed;
   bottom: 28px;
   right: 28px;
   z-index: 9999;
   font-family: 'Exo 2', sans-serif;
}

#chat-toggle {
   width: auto;
   min-width: 58px;
   height: 48px;
   border-radius: 999px;
   padding: 0 18px 0 14px;
   gap: 9px;
   background: var(--red);
   border: none;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   box-shadow: 0 4px 20px rgba(232, 17, 45, 0.5);
   transition: width 0.3s ease, padding 0.3s ease, border-radius 0.3s ease, transform 0.2s, box-shadow 0.2s;
   position: relative;
}

.chat-toggle-label {
   color: #fff;
   font-family: 'Exo 2', sans-serif;
   font-size: 0.92rem;
   font-weight: 700;
   white-space: nowrap;
   letter-spacing: 0.02em;
   transition: opacity 0.2s ease, max-width 0.3s ease;
   max-width: 100px;
   overflow: hidden;
}

#chat-widget.chat-used #chat-toggle {
   width: 58px;
   min-width: 58px;
   height: 58px;
   border-radius: 50%;
   padding: 0;
   gap: 0;
}

#chat-widget.chat-used .chat-toggle-label {
   max-width: 0;
   opacity: 0;
   pointer-events: none;
}

#chat-toggle:hover {
   transform: scale(1.08);
   box-shadow: 0 6px 28px rgba(232, 17, 45, 0.65);
}

#chat-toggle svg {
   color: #fff;
}

.chat-notif {
   position: absolute;
   top: -3px;
   right: -3px;
   background: var(--gold);
   color: #1a0808;
   font-size: 0.65rem;
   font-weight: 700;
   width: 18px;
   height: 18px;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   animation: notifPulse 2s ease-in-out infinite;
}

@keyframes notifPulse {

   0%,
   100% {
      transform: scale(1);
   }

   50% {
      transform: scale(1.2);
   }
}

#chat-window {
   position: absolute;
   bottom: 70px;
   right: 0;
   width: 360px;
   max-height: 520px;
   background: var(--bg2);
   border: 1px solid var(--border);
   border-radius: 16px;
   box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
   display: flex;
   flex-direction: column;
   overflow: hidden;
   transform-origin: bottom right;
   transform: scale(0.85) translateY(10px);
   opacity: 0;
   pointer-events: none;
   transition: transform 0.25s ease, opacity 0.25s ease;
}

#chat-window.open {
   transform: scale(1) translateY(0);
   opacity: 1;
   pointer-events: all;
}

.chat-header {
   background: linear-gradient(135deg, #1A0D0D 0%, #2A0810 100%);
   padding: 14px 16px;
   display: flex;
   align-items: center;
   gap: 10px;
   border-bottom: 1px solid var(--border);
   flex-shrink: 0;
}

.chat-header-logo {
   width: 36px;
   height: 36px;
   flex-shrink: 0;
}

.chat-header-info {
   flex: 1;
}

.chat-header-name {
   font-size: 0.9rem;
   font-weight: 700;
   color: #fff;
   font-family: 'Rajdhani', sans-serif;
   letter-spacing: 0.03em;
}

.chat-header-name span {
   color: var(--red2);
}

.chat-header-status {
   font-size: 0.72rem;
   color: #4ade80;
   margin-top: 1px;
}

.chat-header-status::before {
   content: '● ';
}

#chat-maximize,
#chat-close {
   background: none;
   border: none;
   color: rgba(255, 255, 255, 0.5);
   cursor: pointer;
   padding: 5px 7px;
   border-radius: 4px;
   transition: color 0.2s, background 0.2s;
   line-height: 1;
   display: flex;
   align-items: center;
   justify-content: center;
}

#chat-close {
   font-size: 1.3rem;
}

#chat-maximize:hover,
#chat-close:hover {
   color: #fff;
   background: rgba(255, 255, 255, 0.1);
}

/* ── Overlay backdrop ── */
#chat-overlay {
   display: none;
   position: fixed;
   inset: 0;
   z-index: 9998;
   background: rgba(0, 0, 0, 0.55);
   backdrop-filter: blur(3px);
   -webkit-backdrop-filter: blur(3px);
}

#chat-overlay.active {
   display: block;
}

/* ── Maximized state ── */
#chat-window.maximized {
   position: fixed;
   top: 50%;
   left: 50%;
   bottom: auto;
   right: auto;
   transform: translate(-50%, -50%) scale(1) !important;
   width: min(700px, 92vw);
   max-height: min(620px, 88vh);
   height: min(620px, 88vh);
   z-index: 9999;
   border-radius: 20px;
   opacity: 1;
   pointer-events: all;
   box-shadow: 0 24px 80px rgba(0, 0, 0, 0.6);
   transition: transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1), opacity 0.25s ease, width 0.3s ease, height 0.3s ease;
}

#chat-messages {
   flex: 1;
   overflow-y: auto;
   padding: 16px 14px;
   display: flex;
   flex-direction: column;
   gap: 10px;
   scrollbar-width: thin;
   scrollbar-color: var(--border) transparent;
}

.chat-msg {
   max-width: 82%;
   padding: 10px 13px;
   border-radius: 12px;
   font-size: 0.875rem;
   line-height: 1.55;
   animation: msgIn 0.2s ease;
}

@keyframes msgIn {
   from {
      opacity: 0;
      transform: translateY(6px);
   }

   to {
      opacity: 1;
      transform: translateY(0);
   }
}

.chat-msg.bot {
   background: var(--card);
   border: 1px solid var(--border);
   color: var(--ink2);
   align-self: flex-start;
   border-bottom-left-radius: 4px;
}

.chat-msg.bot a {
   color: var(--red2);
   text-decoration: underline;
}

.chat-msg.user {
   background: var(--red);
   color: #fff;
   align-self: flex-end;
   border-bottom-right-radius: 4px;
}

.chat-quick-replies {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   margin-top: 8px;
}

.chat-quick-btn {
   background: none;
   border: 1px solid var(--red);
   color: var(--red2);
   border-radius: 20px;
   padding: 4px 12px;
   font-size: 0.78rem;
   cursor: pointer;
   font-family: 'Exo 2', sans-serif;
   transition: background 0.2s, color 0.2s;
}

.chat-quick-btn:hover {
   background: var(--red);
   color: #fff;
}

.chat-typing {
   align-self: flex-start;
   background: var(--card);
   border: 1px solid var(--border);
   padding: 10px 14px;
   border-radius: 12px;
   border-bottom-left-radius: 4px;
   display: flex;
   gap: 4px;
   align-items: center;
}

.chat-typing span {
   width: 7px;
   height: 7px;
   border-radius: 50%;
   background: var(--muted);
   animation: typingDot 1.2s ease-in-out infinite;
}

.chat-typing span:nth-child(2) {
   animation-delay: 0.2s;
}

.chat-typing span:nth-child(3) {
   animation-delay: 0.4s;
}

@keyframes typingDot {

   0%,
   60%,
   100% {
      transform: translateY(0);
      opacity: 0.4;
   }

   30% {
      transform: translateY(-5px);
      opacity: 1;
   }
}

.chat-input-row {
   padding: 10px 12px;
   border-top: 1px solid var(--border);
   display: flex;
   gap: 8px;
   background: var(--bg2);
   flex-shrink: 0;
}

#chat-input {
   flex: 1;
   background: var(--input-bg, rgba(255, 255, 255, 0.05));
   border: 1px solid var(--border);
   border-radius: 24px;
   padding: 9px 16px;
   color: var(--ink);
   font-family: 'Exo 2', sans-serif;
   font-size: 0.875rem;
   outline: none;
   transition: border-color 0.2s;
}

#chat-input::placeholder {
   color: var(--muted);
}

#chat-input:focus {
   border-color: var(--red);
}

#chat-send {
   width: 38px;
   height: 38px;
   border-radius: 50%;
   background: var(--red);
   border: none;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
   transition: background 0.2s, transform 0.15s;
}

#chat-send:hover {
   background: var(--red2);
   transform: scale(1.08);
}

#chat-send svg {
   color: #fff;
}

@media (max-width: 480px) {
   #chat-window {
      width: calc(100vw - 24px);
      right: -14px;
      bottom: 68px;
   }

   #chat-widget {
      bottom: 16px;
      right: 16px;
   }
}

/* ═══════════════════════════════════════════
   SALESFORCE PARTNERS MATRIX TABLE
═══════════════════════════════════════════ */
.ops-matrix-section {
   background: var(--bg);
   padding: 80px 0 96px;
   overflow-x: auto;
}

.ops-matrix-wrap {
   overflow-x: auto;
   -webkit-overflow-scrolling: touch;
}

.ops-matrix {
   width: 100%;
   min-width: 860px;
   border-collapse: collapse;
   border-spacing: 0;
   font-family: 'Exo 2', sans-serif;
   font-size: 13px;
}

/* Column header row */
.ops-matrix thead tr th {
   border: 1px solid var(--border);
   padding: 0;
   vertical-align: top;
   background: var(--bg2);
}

.ops-matrix thead tr th:first-child {
   background: transparent;
   border: none;
}

.ops-col-header {
   display: flex;
   flex-direction: column;
   align-items: center;
   padding: 16px 10px 12px;
   gap: 10px;
   text-align: center;
}

/* Half-fill circle icon */
.ops-col-icon {
   width: 52px;
   height: 52px;
   border-radius: 50%;
   border: 2px solid var(--red);
   overflow: hidden;
   position: relative;
   flex-shrink: 0;
   background: var(--bg2);
}

.ops-col-icon::after {
   content: '';
   position: absolute;
   bottom: 0;
   left: 0;
   right: 0;
   height: var(--fill-h, 30%);
   background: var(--red);
}

/* Wave overlay – sits on top of the fill surface */
.ops-col-icon::before {
   content: '';
   position: absolute;
   bottom: calc(var(--fill-h, 30%) - 13px);
   left: -65%;
   width: 230%;
   height: 22px;
   background: var(--red);
   border-radius: 50%;
   animation: ops-wave 1.6s ease-in-out infinite;
   animation-play-state: paused;
}

/* Activate wave when hovering the column header */
.ops-matrix thead tr th:hover .ops-col-icon::before {
   animation-play-state: running;
}

@keyframes ops-wave {
   0% {
      transform: translateX(0);
   }

   25% {
      transform: translateX(18%);
   }

   50% {
      transform: translateX(0);
   }

   75% {
      transform: translateX(-18%);
   }

   100% {
      transform: translateX(0);
   }
}


.ops-col-title {
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 13px;
   letter-spacing: 0.5px;
   color: var(--ink);
   line-height: 1.3;
}

/* Row header cells */
.ops-matrix td.ops-row-label {
   background: var(--crimson);
   color: #fff;
   font-family: 'Rajdhani', sans-serif;
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 0.3px;
   padding: 14px 16px;
   vertical-align: middle;
   line-height: 1.35;
   min-width: 130px;
   max-width: 140px;
   border: 1px solid rgba(255, 255, 255, 0.12);
}

/* Data cells */
.ops-matrix td {
   border: 1px solid var(--border);
   padding: 12px 12px;
   vertical-align: top;
   background: var(--card);
}

.ops-matrix td ul {
   list-style: none;
   margin: 0;
   padding: 0;
}

.ops-matrix td ul li {
   position: relative;
   padding-left: 12px;
   color: var(--ink2);
   font-size: 12.5px;
   line-height: 1.55;
   margin-bottom: 2px;
}

.ops-matrix td ul li::before {
   content: '•';
   position: absolute;
   left: 0;
   color: var(--red2);
   font-size: 11px;
   top: 1px;
}

/* "We Leverage" row – white data cells + white label with crimson text (pattern) */
.ops-matrix tr.row-leverage td {
   background: var(--card);
}

.ops-matrix tr.row-leverage td.ops-row-label {
   background: var(--crimson);
   color: #fff;
   border: 1px solid rgba(255, 255, 255, 0.12);
}

/* Happy Customers row */
.ops-matrix tr.row-happy td.ops-row-label {
   background: var(--crimson);
   color: #fff;
}

.ops-matrix tr.row-happy td {
   background: var(--bg3);
   text-align: center;
   vertical-align: middle;
   padding: 14px 10px;
}

.ops-matrix tr.row-happy td a {
   color: var(--red2);
   font-size: 12.5px;
   font-weight: 600;
   text-decoration: underline;
   text-underline-offset: 3px;
   transition: color 0.2s;
}

.ops-matrix tr.row-happy td a:hover {
   color: var(--gold);
}

@media (max-width: 900px) {
   .ops-matrix {
      font-size: 11.5px;
   }

   .ops-col-title {
      font-size: 11.5px;
   }

   .ops-matrix td.ops-row-label {
      font-size: 12px;
      min-width: 100px;
      max-width: 115px;
      padding: 10px 10px;
   }

   .ops-col-icon {
      width: 40px;
      height: 40px;
   }
}

@media (max-width: 600px) {
   .ops-matrix-section {
      padding: 48px 0 60px;
   }

   .ops-matrix td ul li {
      font-size: 11px;
   }
}