/*
Theme Name: Iterate India
Theme URI: https://iterate.in/
Author: Iterate India Private Limited
Author URI: https://iterate.in/
Description: Custom theme for Iterate India Private Limited — a software company delivering enterprise solutions since 1982. Features a clean, modern navy/blue palette with Plus Jakarta Sans typography and dedicated layouts for Home, About, Products & Services, and Clients pages.
Version: 1.7.2
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: iterate-india
Tags: business, custom-menu, featured-images, threaded-comments
*/

/* ─── styles from index.html ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --navy: oklch(22% 0.06 255);
    --navy-mid: oklch(28% 0.07 255);
    --navy-light: oklch(35% 0.08 255);
    --amber: oklch(52% 0.18 250);
    --amber-light: oklch(62% 0.16 250);
    --white: oklch(98% 0.005 255);
    --gray-50: oklch(96% 0.005 255);
    --gray-100: oklch(92% 0.008 255);
    --gray-300: oklch(78% 0.01 255);
    --gray-500: oklch(58% 0.015 255);
    --gray-700: oklch(38% 0.015 255);
    --text: oklch(18% 0.03 255);
    --font: 'Plus Jakarta Sans', sans-serif;
    --radius: 12px;
    --radius-lg: 20px;
  }

  html { scroll-behavior: smooth; }

  body {
    font-family: var(--font);
    background: var(--white);
    color: var(--text);
    line-height: 1.6;
    overflow-x: hidden;
  }

  /* ── NAV ── */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 5vw;
    height: 68px;
    background: rgba(255,255,255,0.92);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--gray-100);
    transition: box-shadow 0.3s;
  }
  nav.scrolled { box-shadow: 0 2px 24px oklch(0% 0 0 / 0.08); }

  .nav-logo {
    display: flex; align-items: center; gap: 10px;
    text-decoration: none;
  }
  .nav-logo-mark {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--navy);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .nav-logo-mark svg { width: 20px; height: 20px; }
  .nav-logo-text { display: flex; flex-direction: column; line-height: 1.15; }
  .nav-logo-text span:first-child { font-size: 15px; font-weight: 800; color: var(--navy); letter-spacing: -0.3px; }
  .nav-logo-text span:last-child { font-size: 10px; font-weight: 500; color: var(--gray-500); letter-spacing: 0.5px; text-transform: uppercase; }

  .nav-links {
    display: flex; align-items: center; gap: 6px;
    list-style: none;
  }
  .nav-links a {
    text-decoration: none;
    font-size: 14px; font-weight: 500;
    color: var(--gray-700);
    padding: 6px 12px;
    border-radius: 8px;
    transition: background 0.2s, color 0.2s;
  }
  .nav-links a:hover { background: var(--gray-50); color: var(--navy); }

  .nav-cta {
    background: var(--navy) !important;
    color: var(--white) !important;
    padding: 8px 18px !important;
    border-radius: 8px !important;
  }
  .nav-cta:hover { background: var(--navy-mid) !important; }

  /* ── HERO ── */
  .hero {
    min-height: 100vh;
    display: grid; grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 100px 5vw 80px;
    gap: 60px;
    background: var(--white);
    position: relative;
    overflow: hidden;
  }

  .hero-bg {
    position: absolute; inset: 0; pointer-events: none;
    overflow: hidden;
  }
  .hero-bg-circle {
    position: absolute;
    border-radius: 50%;
    opacity: 0.06;
    background: var(--amber);
  }
  .hero-bg-circle:nth-child(1) { width: 700px; height: 700px; right: -150px; top: -250px; }
  .hero-bg-circle:nth-child(2) { width: 350px; height: 350px; left: 25%; bottom: -120px; opacity: 0.04; }
  .hero-bg-grid {
    position: absolute; inset: 0;
    background-image:
      linear-gradient(var(--gray-100) 1px, transparent 1px),
      linear-gradient(90deg, var(--gray-100) 1px, transparent 1px);
    background-size: 50px 50px;
    opacity: 0.6;
  }

  .hero-content { position: relative; z-index: 1; }
  .hero-badge {
    display: inline-flex; align-items: center; gap: 8px;
    background: oklch(52% 0.18 250 / 0.1);
    border: 1px solid oklch(52% 0.18 250 / 0.25);
    border-radius: 100px;
    padding: 6px 14px;
    font-size: 12px; font-weight: 600;
    color: oklch(42% 0.16 250);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 28px;
  }
  .hero-badge-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--amber);
    animation: pulse 2s ease-in-out infinite;
  }
  @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(0.8)} }

  .hero h1 {
    font-size: clamp(36px, 4.5vw, 64px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -1.5px;
    color: var(--navy);
    margin-bottom: 24px;
    text-wrap: pretty;
  }
  .hero h1 em {
    font-style: normal;
    color: var(--amber);
  }
  .hero-sub {
    font-size: 17px; font-weight: 400;
    color: var(--gray-500);
    max-width: 480px;
    margin-bottom: 40px;
    line-height: 1.7;
  }
  .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
  .btn-primary {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--navy);
    color: var(--white);
    font-family: var(--font);
    font-size: 15px; font-weight: 700;
    padding: 14px 28px;
    border-radius: 10px;
    text-decoration: none;
    border: none; cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
  }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px oklch(22% 0.06 255 / 0.3); }
  .btn-ghost {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--white);
    border: 1.5px solid var(--gray-300);
    color: var(--navy);
    font-family: var(--font);
    font-size: 15px; font-weight: 600;
    padding: 14px 28px;
    border-radius: 10px;
    text-decoration: none;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  .btn-ghost:hover { border-color: var(--navy); box-shadow: 0 4px 12px oklch(0% 0 0 / 0.07); }

  .hero-stats {
    display: flex; gap: 40px;
    margin-top: 56px;
    padding-top: 40px;
    border-top: 1px solid var(--gray-100);
  }
  .hero-stat span:first-child {
    display: block;
    font-size: 32px; font-weight: 800;
    color: var(--navy);
    letter-spacing: -1px;
  }
  .hero-stat span:last-child {
    font-size: 13px; font-weight: 500;
    color: var(--gray-500);
    text-transform: uppercase; letter-spacing: 0.5px;
  }

  /* Hero visual */
  .hero-visual {
    position: relative; z-index: 1;
    display: flex; flex-direction: column; gap: 16px;
  }
  .hero-card {
    background: var(--white);
    border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: 0 2px 16px oklch(0% 0 0 / 0.05);
    transition: box-shadow 0.3s, transform 0.3s;
  }
  .hero-card:hover { box-shadow: 0 8px 32px oklch(0% 0 0 / 0.09); transform: translateY(-2px); }
  .hero-card-top {
    display: flex; align-items: center; gap: 12px;
    margin-bottom: 14px;
  }
  .hero-card-icon {
    width: 40px; height: 40px;
    background: oklch(22% 0.06 255 / 0.08);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .hero-card-icon svg { width: 20px; height: 20px; color: var(--navy); }
  .hero-card h3 { font-size: 15px; font-weight: 700; color: var(--navy); }
  .hero-card p { font-size: 13px; color: var(--gray-500); line-height: 1.5; }

  .hero-card-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

  .hero-card-sm {
    background: var(--white);
    border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 20px;
    box-shadow: 0 1px 4px oklch(0% 0 0 / 0.04);
  }
  .hero-card-sm .num {
    font-size: 16px; font-weight: 800;
    color: var(--navy); letter-spacing: -0.3px;
  }
  .hero-card-sm .lbl {
    font-size: 12px; font-weight: 500;
    color: var(--gray-500);
    margin-top: 2px;
  }

  /* ── SERVICES STRIP ── */
  .services-strip {
    background: var(--gray-50);
    padding: 80px 5vw;
  }
  .section-label {
    font-size: 12px; font-weight: 700;
    letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 12px;
  }
  .section-title {
    font-size: clamp(26px, 3vw, 42px);
    font-weight: 800; letter-spacing: -0.8px;
    color: var(--navy);
    line-height: 1.15;
    text-wrap: pretty;
  }
  .section-sub {
    font-size: 16px; color: var(--gray-500);
    max-width: 560px; margin-top: 12px;
    line-height: 1.7;
  }
  .section-header {
    display: flex; align-items: flex-end; justify-content: space-between;
    margin-bottom: 48px; gap: 24px; flex-wrap: wrap;
  }

  .services-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
  }
  .service-card {
    background: var(--white);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 28px 24px;
    text-decoration: none;
    color: inherit;
    display: flex; flex-direction: column; gap: 14px;
    transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
    cursor: pointer;
  }
  .service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px oklch(0% 0 0 / 0.09);
    border-color: var(--amber-light);
  }
  .service-icon {
    width: 48px; height: 48px;
    background: oklch(22% 0.06 255 / 0.06);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
  }
  .service-icon svg { width: 24px; height: 24px; color: oklch(22% 0.06 255 / 0.6); }
  .service-card h3 { font-size: 14px; font-weight: 700; color: var(--navy); line-height: 1.3; }
  .service-card p { font-size: 13px; color: var(--gray-500); line-height: 1.55; flex: 1; }
  .service-arrow {
    display: flex; align-items: center; gap: 4px;
    font-size: 12px; font-weight: 700;
    color: var(--amber); text-transform: uppercase; letter-spacing: 0.5px;
    margin-top: auto;
  }

  /* ── ABOUT ── */
  .about {
    padding: 100px 5vw;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 80px; align-items: center;
  }
  .about-image-wrap {
    position: relative;
  }
  .about-image-placeholder {
    width: 100%; aspect-ratio: 4/3;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--gray-100);
    display: flex; align-items: center; justify-content: center;
    position: relative;
  }
  .about-image-placeholder svg { width: 64px; height: 64px; color: var(--gray-300); }
  .about-img-bg {
    width: 100%; height: 100%;
    object-fit: cover;
    position: absolute; inset: 0;
  }
  .about-stripe-placeholder {
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
      -45deg,
      var(--gray-100) 0,
      var(--gray-100) 1px,
      transparent 0,
      transparent 50%
    );
    background-size: 12px 12px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 12px;
    font-family: monospace; font-size: 12px;
    color: var(--gray-500);
    text-align: center;
    padding: 20px;
  }
  .about-badge {
    position: absolute; bottom: -20px; right: -20px;
    background: var(--white);
    border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 20px 24px;
    color: var(--navy);
    text-align: center;
    box-shadow: 0 8px 32px oklch(0% 0 0 / 0.08);
  }
  .about-badge span:first-child { display: block; font-size: 32px; font-weight: 800; color: var(--navy); }
  .about-badge span:last-child { font-size: 12px; font-weight: 500; color: var(--gray-500); }

  .about-content { }
  .about ul {
    list-style: none;
    display: flex; flex-wrap: wrap; gap: 10px;
    margin: 28px 0 36px;
  }
  .about ul li {
    display: flex; align-items: center; gap: 8px;
    font-size: 14px; font-weight: 600;
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    padding: 8px 14px;
    border-radius: 100px;
    color: var(--navy);
  }
  .about ul li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--amber); flex-shrink: 0; }
  .about-ctas { display: flex; gap: 12px; }
  .about-pillars {
    display: flex; flex-direction: column; gap: 16px;
    margin: 28px 0 36px;
  }
  .about-pillar {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 16px;
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius);
  }
  .about-pillar-icon {
    width: 36px; height: 36px; flex-shrink: 0;
    background: oklch(22% 0.06 255 / 0.08);
    border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
  }
  .about-pillar-icon svg { width: 16px; height: 16px; color: oklch(22% 0.06 255 / 0.65); }
  .about-pillar div strong {
    display: block;
    font-size: 14px; font-weight: 700; color: var(--navy);
    margin-bottom: 2px;
  }
  .about-pillar div span {
    font-size: 13px; color: var(--gray-500); line-height: 1.5;
  }
  .btn-navy {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--navy);
    color: var(--white);
    font-family: var(--font);
    font-size: 14px; font-weight: 700;
    padding: 12px 24px;
    border-radius: 10px;
    text-decoration: none;
    transition: background 0.2s, transform 0.2s;
  }
  .btn-navy:hover { background: var(--navy-mid); transform: translateY(-1px); }
  .btn-outline {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1.5px solid var(--gray-300);
    color: var(--gray-700);
    font-family: var(--font);
    font-size: 14px; font-weight: 700;
    padding: 12px 24px;
    border-radius: 10px;
    text-decoration: none;
    transition: border-color 0.2s, color 0.2s;
  }
  .btn-outline:hover { border-color: var(--navy); color: var(--navy); }

  /* ── PRODUCTS ── */
  .products {
    background: var(--gray-50);
    padding: 100px 5vw;
    position: relative; overflow: hidden;
  }
  .products .section-label { color: oklch(42% 0.16 250); }
  .products .section-title { color: var(--navy); }
  .products .section-sub { color: var(--gray-500); }

  .products-bg {
    position: absolute; inset: 0; pointer-events: none;
    background-image:
      linear-gradient(var(--gray-100) 1px, transparent 1px),
      linear-gradient(90deg, var(--gray-100) 1px, transparent 1px);
    background-size: 60px 60px;
    opacity: 0.7;
  }

  .products-grid {
    position: relative; z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
  .product-card {
    background: var(--white);
    border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 28px;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
    display: flex; flex-direction: column; gap: 12px;
    box-shadow: 0 1px 4px oklch(0% 0 0 / 0.04);
  }
  .product-card:hover {
    border-color: var(--amber-light);
    transform: translateY(-4px);
    box-shadow: 0 12px 40px oklch(0% 0 0 / 0.09);
  }
  .product-tag {
    display: inline-block;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.8px; text-transform: uppercase;
    color: oklch(42% 0.16 250);
    background: oklch(52% 0.18 250 / 0.1);
    padding: 4px 10px;
    border-radius: 100px;
    width: fit-content;
  }
  .product-name { font-size: 20px; font-weight: 800; color: var(--navy); letter-spacing: -0.3px; }
  .product-full { font-size: 13px; font-weight: 500; color: var(--gray-500); margin-top: -4px; }
  .product-desc { font-size: 13px; color: var(--gray-500); line-height: 1.6; flex: 1; }
  .product-link {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 700;
    color: oklch(42% 0.16 250); text-transform: uppercase; letter-spacing: 0.5px;
    margin-top: 8px;
  }

  .products-footer {
    position: relative; z-index: 1;
    display: flex; justify-content: center; gap: 14px;
    margin-top: 48px;
  }

  /* ── INDUSTRIES ── */
  .industries {
    padding: 100px 5vw;
    background: var(--white);
  }
  .industries-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    margin-top: 48px;
  }
  .industry-pill {
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 32px 20px;
    text-align: center;
    text-decoration: none;
    display: flex; flex-direction: column; align-items: center; gap: 14px;
    transition: transform 0.25s, box-shadow 0.25s;
  }
  .industry-pill:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px oklch(0% 0 0 / 0.08);
  }
  .industry-icon {
    width: 56px; height: 56px;
    background: oklch(22% 0.06 255 / 0.07);
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
  }
  .industry-icon svg { width: 28px; height: 28px; color: oklch(22% 0.06 255 / 0.6); }
  .industry-pill span { font-size: 14px; font-weight: 700; color: var(--navy); text-align: center; }

  /* ── CLIENTS ── */
  .clients {
    padding: 80px 5vw;
    background: var(--gray-50);
    border-top: 1px solid var(--gray-100);
    border-bottom: 1px solid var(--gray-100);
  }
  .clients-header { text-align: center; margin-bottom: 52px; }
  .clients-grid {
    display: flex; align-items: center; justify-content: center;
    gap: 24px; flex-wrap: wrap;
  }
  .client-card {
    background: var(--white);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius);
    padding: 20px 32px;
    font-size: 15px; font-weight: 700;
    color: var(--gray-700);
    letter-spacing: -0.2px;
    transition: border-color 0.2s, color 0.2s;
    min-width: 160px; text-align: center;
  }
  .client-card:hover { border-color: var(--amber); color: var(--navy); }

  /* ── CONTACT ── */
  .contact {
    padding: 100px 5vw;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 80px; align-items: start;
  }
  .contact-info { }
  .contact-details { display: flex; flex-direction: column; gap: 20px; margin-top: 36px; }
  .contact-item {
    display: flex; gap: 14px; align-items: flex-start;
  }
  .contact-item-icon {
    width: 40px; height: 40px; flex-shrink: 0;
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
  }
  .contact-item-icon svg { width: 18px; height: 18px; color: oklch(22% 0.06 255 / 0.55); }
  .contact-item-body { }
  .contact-item-body strong { display: block; font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 2px; }
  .contact-item-body span, .contact-item-body a { font-size: 14px; color: var(--gray-500); text-decoration: none; }
  .contact-item-body a:hover { color: var(--amber); }

  .contact-form {
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius-lg);
    padding: 36px;
  }
  .contact-form h3 { font-size: 20px; font-weight: 800; color: var(--navy); margin-bottom: 24px; }
  .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .form-field { display: flex; flex-direction: column; gap: 6px; }
  .form-field.full { grid-column: 1 / -1; }
  .form-field label { font-size: 12px; font-weight: 700; color: var(--gray-700); letter-spacing: 0.3px; }
  .form-field input, .form-field textarea, .form-field select {
    font-family: var(--font);
    font-size: 14px;
    border: 1.5px solid var(--gray-100);
    border-radius: 8px;
    padding: 10px 14px;
    background: var(--white);
    color: var(--text);
    outline: none;
    transition: border-color 0.2s;
    resize: vertical;
  }
  .form-field input:focus, .form-field textarea:focus, .form-field select:focus {
    border-color: var(--navy);
  }
  .form-field textarea { min-height: 100px; }
  .form-submit {
    margin-top: 20px;
    width: 100%;
    justify-content: center;
  }

  /* ── FOOTER ── */
  footer {
    background: var(--navy);
    padding: 60px 5vw 32px;
    color: oklch(100% 0 0 / 0.5);
  }
  .footer-top {
    display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 48px; padding-bottom: 48px;
    border-bottom: 1px solid oklch(100% 0 0 / 0.08);
  }
  .footer-brand p {
    font-size: 13px; line-height: 1.7;
    margin-top: 16px;
    max-width: 280px;
  }
  .footer-col h4 {
    font-size: 12px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: oklch(100% 0 0 / 0.35);
    margin-bottom: 16px;
  }
  .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
  .footer-col ul li a {
    font-size: 13px; color: oklch(100% 0 0 / 0.5);
    text-decoration: none;
    transition: color 0.2s;
  }
  .footer-col ul li a:hover { color: var(--amber); }
  .footer-contact-line {
    display: flex; gap: 10px; align-items: flex-start;
    font-size: 13px; color: oklch(100% 0 0 / 0.5); margin-bottom: 10px;
  }
  .footer-contact-line svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; opacity: 0.5; }
  .footer-bottom {
    padding-top: 24px;
    display: flex; align-items: center; justify-content: space-between;
    font-size: 12px;
    gap: 16px; flex-wrap: wrap;
  }
  .footer-logo-mark {
    display: flex; align-items: center; gap: 10px; margin-bottom: 4px;
  }
  .footer-logo-mark .mark {
    width: 32px; height: 32px; background: var(--amber); border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .footer-logo-mark .mark svg { width: 16px; height: 16px; color: var(--navy); }
  .footer-logo-mark span { font-size: 16px; font-weight: 800; color: var(--white); }

  /* ── SCROLL FADE-IN ── */
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: none;
  }

  /* ── Tweaks panel ── */
  #tweaks-panel {
    display: none;
    position: fixed; bottom: 24px; right: 24px; z-index: 999;
    background: var(--white);
    border: 1.5px solid var(--gray-100);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 16px 48px oklch(0% 0 0 / 0.12);
    width: 240px;
    font-family: var(--font);
  }
  #tweaks-panel h4 { font-size: 13px; font-weight: 800; color: var(--navy); margin-bottom: 16px; letter-spacing: 0.3px; }
  .tweak-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
  .tweak-row label { font-size: 12px; font-weight: 600; color: var(--gray-700); }
  .tweak-row input[type=color] { width: 32px; height: 24px; border: none; cursor: pointer; border-radius: 4px; }
  .tweak-row select { font-family: var(--font); font-size: 12px; padding: 4px 8px; border: 1.5px solid var(--gray-100); border-radius: 6px; outline: none; }
  .tweak-close { width: 100%; margin-top: 12px; padding: 8px; background: var(--gray-50); border: none; border-radius: 8px; font-family: var(--font); font-size: 12px; font-weight: 700; cursor: pointer; color: var(--gray-700); }

  @media (max-width: 1024px) {
    .hero { grid-template-columns: 1fr; }
    .hero-visual { display: none; }
    .services-grid { grid-template-columns: repeat(3, 1fr); }
    .products-grid { grid-template-columns: repeat(2, 1fr); }
    .industries-grid { grid-template-columns: repeat(3, 1fr); }
    .about { grid-template-columns: 1fr; gap: 48px; }
    .contact { grid-template-columns: 1fr; gap: 48px; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  }
  @media (max-width: 640px) {
    .services-grid { grid-template-columns: 1fr 1fr; }
    .products-grid { grid-template-columns: 1fr; }
    .industries-grid { grid-template-columns: 1fr 1fr; }
    .nav-links { display: none; }
    .hero-stats { gap: 24px; }
    .footer-top { grid-template-columns: 1fr; }
  }

/* ─── styles from about.html ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --navy: oklch(22% 0.06 255);
    --navy-mid: oklch(28% 0.07 255);
    --blue: oklch(52% 0.18 250);
    --blue-light: oklch(62% 0.16 250);
    --white: oklch(98% 0.005 255);
    --gray-50: oklch(96% 0.005 255);
    --gray-100: oklch(92% 0.008 255);
    --gray-300: oklch(78% 0.01 255);
    --gray-500: oklch(58% 0.015 255);
    --gray-700: oklch(38% 0.015 255);
    --text: oklch(18% 0.03 255);
    --font: 'Plus Jakarta Sans', sans-serif;
    --radius: 12px;
    --radius-lg: 20px;
  }

  html { scroll-behavior: smooth; }
  body { font-family: var(--font); background: var(--white); color: var(--text); line-height: 1.6; overflow-x: hidden; }

  /* ── NAV ── */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 5vw; height: 68px;
    background: rgba(255,255,255,0.92);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--gray-100);
    transition: box-shadow 0.3s;
  }
  nav.scrolled { box-shadow: 0 2px 24px oklch(0% 0 0 / 0.08); }
  .nav-logo { display: flex; align-items: center; text-decoration: none; }
  .nav-links { display: flex; align-items: center; gap: 6px; list-style: none; }
  .nav-links a {
    text-decoration: none; font-size: 14px; font-weight: 500;
    color: var(--gray-700); padding: 6px 12px; border-radius: 8px;
    transition: background 0.2s, color 0.2s;
  }
  .nav-links a:hover { background: var(--gray-50); color: var(--navy); }
  .nav-links a.active { color: var(--navy); font-weight: 700; }
  .nav-cta {
    background: var(--navy) !important; color: var(--white) !important;
    padding: 8px 18px !important; border-radius: 8px !important;
  }
  .nav-cta:hover { background: var(--navy-mid) !important; }

  /* ── PAGE HERO ── */
  .page-hero {
    padding: 120px 5vw 80px;
    background: var(--gray-50);
    border-bottom: 1px solid var(--gray-100);
    position: relative; overflow: hidden;
  }
  .page-hero-bg {
    position: absolute; inset: 0; pointer-events: none; z-index: 0;
    background-image:
      linear-gradient(var(--gray-100) 1px, transparent 1px),
      linear-gradient(90deg, var(--gray-100) 1px, transparent 1px);
    background-size: 50px 50px; opacity: 0.6;
  }
  .page-hero-content { position: relative; z-index: 1; max-width: 720px; display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
  .page-hero h1 {
    font-size: clamp(32px, 3.8vw, 52px); font-weight: 800;
    letter-spacing: -1.2px; color: var(--navy); line-height: 1.1;
    text-wrap: pretty; margin-bottom: 20px; margin-top: 12px;
  }
  .page-hero > .page-hero-content > p {
    font-size: 17px; color: var(--gray-500); line-height: 1.7; max-width: 600px;
  }
  .page-hero-stats {
    display: flex; gap: 48px; margin-top: 48px;
    padding-top: 36px; border-top: 1px solid var(--gray-100);
  }
  .page-hero-stat span:first-child {
    display: block; font-size: 26px; font-weight: 800; color: var(--navy); letter-spacing: -0.5px; white-space: nowrap;
  }
  .page-hero-stat span:last-child {
    font-size: 12px; font-weight: 600; color: var(--gray-500);
    text-transform: uppercase; letter-spacing: 0.5px;
  }

  .breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 500; color: var(--gray-500);
    margin-bottom: 20px;
  }
  .breadcrumb a { text-decoration: none; color: var(--gray-500); transition: color 0.2s; }
  .breadcrumb a:hover { color: var(--navy); }
  .breadcrumb span { color: var(--gray-300); }
  .section-label {
    font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--blue); margin-bottom: 12px;
  }
  /* ── SHARED ── */
  .section-title {
    font-size: clamp(24px, 2.8vw, 38px); font-weight: 800;
    letter-spacing: -0.7px; color: var(--navy); line-height: 1.15; text-wrap: pretty;
  }
  .section-sub { font-size: 16px; color: var(--gray-500); max-width: 560px; margin-top: 12px; line-height: 1.7; }
  .section-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 48px; gap: 24px; flex-wrap: wrap; }
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
  .reveal.visible { opacity: 1; transform: none; }

  .btn-primary {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--navy); color: var(--white);
    font-family: var(--font); font-size: 14px; font-weight: 700;
    padding: 12px 24px; border-radius: 10px; text-decoration: none; border: none; cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
  }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px oklch(22% 0.06 255 / 0.3); }
  .btn-outline {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1.5px solid var(--gray-300); color: var(--gray-700);
    font-family: var(--font); font-size: 14px; font-weight: 700;
    padding: 12px 24px; border-radius: 10px; text-decoration: none;
    transition: border-color 0.2s, color 0.2s;
  }
  .btn-outline:hover { border-color: var(--navy); color: var(--navy); }

  /* ── OVERVIEW ── */
  .overview {
    padding: 100px 5vw;
    display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
  }
  .overview-image {
    position: relative;
  }
  .overview-img-placeholder {
    width: 100%; aspect-ratio: 4/3; border-radius: var(--radius-lg);
    background-image: repeating-linear-gradient(
      -45deg, var(--gray-100) 0, var(--gray-100) 1px, transparent 0, transparent 50%
    );
    background-size: 12px 12px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 12px; font-family: monospace; font-size: 12px;
    color: var(--gray-500); text-align: center;
  }
  .iso-badge {
    position: absolute; top: -16px; right: -16px;
    background: var(--white); border: 1.5px solid var(--gray-100);
    border-radius: var(--radius); padding: 12px 16px;
    box-shadow: 0 4px 20px oklch(0% 0 0 / 0.08);
    display: flex; align-items: center; gap: 10px;
  }
  .iso-badge-icon {
    width: 36px; height: 36px; background: oklch(22% 0.06 255 / 0.08);
    border-radius: 9px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .iso-badge-icon svg { width: 18px; height: 18px; color: oklch(22% 0.06 255 / 0.65); }
  .iso-badge div strong { display: block; font-size: 13px; font-weight: 800; color: var(--navy); }
  .iso-badge div span { font-size: 11px; color: var(--gray-500); }

  .overview-content p {
    font-size: 15px; color: var(--gray-700); line-height: 1.8; margin-bottom: 16px;
  }
  .overview-content p strong { color: var(--navy); }
  .overview-tags {
    display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 32px;
  }
  .overview-tag {
    font-size: 13px; font-weight: 600; color: var(--navy);
    background: oklch(52% 0.18 250 / 0.08);
    border: 1px solid oklch(52% 0.18 250 / 0.2);
    padding: 6px 14px; border-radius: 100px;
  }

  /* ── MISSION ── */
  .mission {
    background: var(--navy);
    padding: 100px 5vw;
    position: relative; overflow: hidden;
  }
  .mission-bg {
    position: absolute; inset: 0; pointer-events: none;
    background-image:
      linear-gradient(oklch(100% 0 0 / 0.025) 1px, transparent 1px),
      linear-gradient(90deg, oklch(100% 0 0 / 0.025) 1px, transparent 1px);
    background-size: 60px 60px;
  }
  .mission .section-label { color: var(--blue-light); }
  .mission .section-title { color: var(--white); }
  .mission-grid {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 48px;
  }
  .mission-card {
    background: oklch(100% 0 0 / 0.05);
    border: 1px solid oklch(100% 0 0 / 0.1);
    border-radius: var(--radius-lg); padding: 32px;
  }
  .mission-card-icon {
    width: 48px; height: 48px; background: oklch(100% 0 0 / 0.08);
    border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px;
  }
  .mission-card-icon svg { width: 24px; height: 24px; color: var(--blue-light); }
  .mission-card h3 { font-size: 18px; font-weight: 800; color: var(--white); margin-bottom: 12px; }
  .mission-card p { font-size: 14px; color: oklch(100% 0 0 / 0.55); line-height: 1.7; }

  /* ── TEAM ── */
  .team { padding: 60px 5vw 100px; background: var(--gray-50); }
  .team .section-header { margin-bottom: 24px; }
  .team-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 48px;
  }
  .team-card {
    background: var(--white); border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg); overflow: hidden;
    transition: transform 0.25s, box-shadow 0.25s;
  }
  .team-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px oklch(0% 0 0 / 0.09); }
  .team-card-photo {
    width: 100%; aspect-ratio: 3/4; background: var(--gray-50);
    display: flex; align-items: center; justify-content: center; position: relative;
    overflow: hidden;
  }
  .team-photo-placeholder {
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
      -45deg, var(--gray-100) 0, var(--gray-100) 1px, transparent 0, transparent 50%
    );
    background-size: 10px 10px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 8px; font-family: monospace; font-size: 11px; color: var(--gray-500); text-align: center; padding: 16px;
  }
  .team-card-md { padding: 20px; }
  .team-card-md h3 { font-size: 16px; font-weight: 800; color: var(--navy); margin-bottom: 4px; }
  .team-card-md .role {
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
    color: var(--blue); margin-bottom: 12px;
  }
  .team-card-md p { font-size: 13px; color: var(--gray-500); line-height: 1.6; }
  .team-years {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 600; color: var(--gray-500);
    background: var(--gray-50); border: 1px solid var(--gray-100);
    padding: 4px 10px; border-radius: 100px; margin-top: 12px;
  }
  .team-years svg { width: 12px; height: 12px; }

  /* Managing Director — full width card */
  .team-md-card {
    background: var(--navy); border-radius: var(--radius-lg);
    padding: 40px; display: flex; gap: 40px; align-items: center;
    margin-bottom: 24px;
  }
  .team-md-photo {
    width: 120px; height: 120px; border-radius: 50%; flex-shrink: 0;
    background: oklch(100% 0 0 / 0.08);
    border: 3px solid oklch(100% 0 0 / 0.15);
    display: flex; align-items: center; justify-content: center; overflow: hidden;
  }
  .team-md-photo svg { width: 48px; height: 48px; color: oklch(100% 0 0 / 0.3); }
  .team-md-content { flex: 1; }
  .team-md-content .role { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--blue-light); margin-bottom: 8px; }
  .team-md-content h3 { font-size: 28px; font-weight: 800; color: var(--white); margin-bottom: 14px; letter-spacing: -0.5px; }
  .team-md-content p { font-size: 15px; color: oklch(100% 0 0 / 0.6); line-height: 1.7; }

  /* ── TIMELINE ── */
  .timeline { padding: 100px 5vw; }
  .timeline-track {
    position: relative; margin-top: 60px;
  }
  .timeline-track::before {
    content: ''; position: absolute;
    left: 50%; top: 0; bottom: 0; width: 2px;
    background: var(--gray-100);
    transform: translateX(-50%);
  }
  .timeline-item {
    display: grid; grid-template-columns: 1fr 60px 1fr; gap: 0;
    margin-bottom: 48px; align-items: start;
  }
  .timeline-left { text-align: right; padding-right: 36px; padding-top: 4px; }
  .timeline-right { padding-left: 36px; padding-top: 4px; }
  .timeline-empty { }
  .timeline-dot-wrap {
    display: flex; justify-content: center; align-items: flex-start; padding-top: 4px;
  }
  .timeline-dot {
    width: 14px; height: 14px; border-radius: 50%;
    background: var(--white); border: 3px solid var(--blue);
    position: relative; z-index: 1; flex-shrink: 0;
  }
  .timeline-year {
    font-size: 22px; font-weight: 800; color: var(--navy); letter-spacing: -0.5px;
    line-height: 1; margin-bottom: 4px;
  }
  .timeline-sector {
    font-size: 15px; font-weight: 700; color: var(--navy); margin-bottom: 6px;
  }
  .timeline-desc { font-size: 13px; color: var(--gray-500); line-height: 1.6; }
  .timeline-tag {
    display: inline-block; font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.5px;
    color: var(--blue); background: oklch(52% 0.18 250 / 0.08);
    padding: 3px 8px; border-radius: 6px; margin-bottom: 8px;
  }

  /* ── PRODUCTS CTA ── */
  .products-cta {
    background: var(--gray-50); border-top: 1px solid var(--gray-100);
    padding: 80px 5vw;
    display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center;
  }
  .products-cta h2 { font-size: clamp(22px, 2.5vw, 32px); font-weight: 800; color: var(--navy); letter-spacing: -0.5px; }
  .products-cta p { font-size: 15px; color: var(--gray-500); margin-top: 8px; max-width: 520px; }
  .products-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }

  /* ── FOOTER ── */
  footer {
    background: var(--navy); padding: 60px 5vw 32px;
    color: oklch(100% 0 0 / 0.5);
  }
  .footer-top {
    display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 48px; padding-bottom: 48px;
    border-bottom: 1px solid oklch(100% 0 0 / 0.08);
  }
  .footer-brand p { font-size: 13px; line-height: 1.7; margin-top: 16px; max-width: 280px; }
  .footer-col h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: oklch(100% 0 0 / 0.35); margin-bottom: 16px; }
  .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
  .footer-col ul li a { font-size: 13px; color: oklch(100% 0 0 / 0.5); text-decoration: none; transition: color 0.2s; }
  .footer-col ul li a:hover { color: var(--blue-light); }
  .footer-contact-line { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: oklch(100% 0 0 / 0.5); margin-bottom: 10px; }
  .footer-contact-line svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; opacity: 0.5; }
  .footer-bottom { padding-top: 24px; display: flex; align-items: center; justify-content: space-between; font-size: 12px; gap: 16px; flex-wrap: wrap; }

  @media (max-width: 1024px) {
    .overview { grid-template-columns: 1fr; gap: 48px; }
    .mission-grid { grid-template-columns: 1fr; }
    .team-grid { grid-template-columns: 1fr 1fr; }
    .products-cta { grid-template-columns: 1fr; }
    .products-cta-actions { justify-content: flex-start; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
    .timeline-track::before { left: 28px; }
    .timeline-item { grid-template-columns: 28px 1fr; }
    .timeline-left { display: none; }
    .timeline-dot-wrap { justify-content: flex-start; }
    .timeline-right { padding-left: 24px; }
  }
  @media (max-width: 640px) {
    .team-grid { grid-template-columns: 1fr; }
    .team-md-card { flex-direction: column; gap: 20px; }
    .page-hero-stats { gap: 24px; }
    .nav-links { display: none; }
    .footer-top { grid-template-columns: 1fr; }
  }

/* ─── styles from products.html ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --navy: oklch(22% 0.06 255);
    --navy-mid: oklch(28% 0.07 255);
    --blue: oklch(52% 0.18 250);
    --blue-light: oklch(62% 0.16 250);
    --white: oklch(98% 0.005 255);
    --gray-50: oklch(96% 0.005 255);
    --gray-100: oklch(92% 0.008 255);
    --gray-300: oklch(78% 0.01 255);
    --gray-500: oklch(58% 0.015 255);
    --gray-700: oklch(38% 0.015 255);
    --text: oklch(18% 0.03 255);
    --font: 'Plus Jakarta Sans', sans-serif;
    --radius: 12px;
    --radius-lg: 20px;
  }

  html { scroll-behavior: smooth; }
  body { font-family: var(--font); background: var(--white); color: var(--text); line-height: 1.6; overflow-x: hidden; }

  /* ── NAV ── */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 5vw; height: 68px;
    background: rgba(255,255,255,0.92);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--gray-100);
    transition: box-shadow 0.3s;
  }
  nav.scrolled { box-shadow: 0 2px 24px oklch(0% 0 0 / 0.08); }
  .nav-logo { display: flex; align-items: center; text-decoration: none; }
  .nav-links { display: flex; align-items: center; gap: 6px; list-style: none; }
  .nav-links a {
    text-decoration: none; font-size: 14px; font-weight: 500;
    color: var(--gray-700); padding: 6px 12px; border-radius: 8px;
    transition: background 0.2s, color 0.2s;
  }
  .nav-links a:hover { background: var(--gray-50); color: var(--navy); }
  .nav-links a.active { color: var(--navy); font-weight: 700; }
  .nav-cta { background: var(--navy) !important; color: var(--white) !important; padding: 8px 18px !important; border-radius: 8px !important; }
  .nav-cta:hover { background: var(--navy-mid) !important; }

  /* ── PAGE HERO ── */
  .page-hero {
    padding: 120px 5vw 64px;
    background: var(--gray-50);
    border-bottom: 1px solid var(--gray-100);
    position: relative; overflow: hidden;
  }
  .page-hero-bg {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image:
      linear-gradient(var(--gray-100) 1px, transparent 1px),
      linear-gradient(90deg, var(--gray-100) 1px, transparent 1px);
    background-size: 50px 50px; opacity: 0.6;
  }
  .page-hero-inner {
    position: relative; z-index: 1;
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 40px; flex-wrap: wrap;
  }
  .page-hero-left { max-width: 620px; }
  .breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 500; color: var(--gray-500); margin-bottom: 20px;
  }
  .breadcrumb a { text-decoration: none; color: var(--gray-500); transition: color 0.2s; }
  .breadcrumb a:hover { color: var(--navy); }
  .breadcrumb span { color: var(--gray-300); }
  .section-label {
    font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--blue); margin-bottom: 12px;
  }
  .page-hero h1 {
    font-size: clamp(32px, 3.8vw, 52px); font-weight: 800;
    letter-spacing: -1.2px; color: var(--navy); line-height: 1.1;
    text-wrap: pretty; margin-bottom: 16px;
  }
  .page-hero-sub {
    font-size: 16px; color: var(--gray-500); line-height: 1.7; max-width: 520px;
  }
  .page-hero-right {
    display: flex; gap: 32px; padding-bottom: 4px;
  }
  .hero-stat span:first-child { display: block; font-size: 28px; font-weight: 800; color: var(--navy); letter-spacing: -0.8px; white-space: nowrap; }
  .hero-stat span:last-child { font-size: 12px; font-weight: 600; color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.5px; }

  /* ── FILTER TABS ── */
  .filter-bar {
    padding: 0 5vw;
    border-bottom: 1px solid var(--gray-100);
    background: var(--white);
    position: sticky; top: 68px; z-index: 90;
  }
  .filter-tabs {
    display: flex; gap: 0; overflow-x: auto;
    scrollbar-width: none;
  }
  .filter-tabs::-webkit-scrollbar { display: none; }
  .filter-tab {
    display: flex; align-items: center; gap: 7px;
    padding: 16px 20px;
    font-size: 13px; font-weight: 600; color: var(--gray-500);
    border: none; background: none; cursor: pointer;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: color 0.2s, border-color 0.2s;
    font-family: var(--font);
  }
  .filter-tab:hover { color: var(--navy); }
  .filter-tab.active { color: var(--navy); border-bottom-color: var(--navy); }
  .filter-tab .count {
    font-size: 11px; font-weight: 700; color: var(--gray-500);
    background: var(--gray-100); padding: 2px 7px; border-radius: 100px;
  }
  .filter-tab.active .count { background: var(--navy); color: var(--white); }

  /* ── PRODUCTS GRID ── */
  .products-section {
    padding: 56px 5vw 100px;
  }

  /* Featured products row */
  .featured-row {
    display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
    margin-bottom: 20px;
  }
  .product-featured {
    background: var(--navy);
    border-radius: var(--radius-lg);
    padding: 36px;
    text-decoration: none; color: inherit;
    display: flex; flex-direction: column; gap: 0;
    transition: transform 0.25s, box-shadow 0.25s;
    position: relative; overflow: hidden;
  }
  .product-featured::before {
    content: '';
    position: absolute; top: -60px; right: -60px;
    width: 200px; height: 200px; border-radius: 50%;
    background: oklch(100% 0 0 / 0.03);
  }
  .product-featured:hover { transform: translateY(-4px); box-shadow: 0 16px 48px oklch(22% 0.06 255 / 0.3); }
  .product-featured .p-tag {
    font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase;
    color: var(--blue-light); background: oklch(100% 0 0 / 0.08);
    padding: 4px 10px; border-radius: 100px; width: fit-content; margin-bottom: 20px;
  }
  .product-featured .p-icon {
    width: 52px; height: 52px; background: oklch(100% 0 0 / 0.08);
    border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px;
  }
  .product-featured .p-icon svg { width: 26px; height: 26px; color: var(--blue-light); }
  .product-featured .p-code { font-size: 11px; font-weight: 700; color: oklch(100% 0 0 / 0.35); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px; }
  .product-featured .p-name { font-size: 26px; font-weight: 800; color: var(--white); letter-spacing: -0.5px; margin-bottom: 12px; }
  .product-featured .p-desc { font-size: 14px; color: oklch(100% 0 0 / 0.55); line-height: 1.7; flex: 1; }
  .product-featured .p-link {
    display: inline-flex; align-items: center; gap: 6px; margin-top: 24px;
    font-size: 13px; font-weight: 700; color: var(--blue-light);
    text-transform: uppercase; letter-spacing: 0.5px;
  }

  /* Standard product grid */
  .products-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  }
  .product-card {
    background: var(--white);
    border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg); padding: 28px;
    text-decoration: none; color: inherit;
    display: flex; flex-direction: column; gap: 0;
    transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
    box-shadow: 0 1px 4px oklch(0% 0 0 / 0.04);
  }
  .product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px oklch(0% 0 0 / 0.09);
    border-color: oklch(52% 0.18 250 / 0.3);
  }
  .product-card .p-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
  .product-card .p-icon {
    width: 48px; height: 48px; background: oklch(22% 0.06 255 / 0.06);
    border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .product-card .p-icon svg { width: 22px; height: 22px; color: oklch(22% 0.06 255 / 0.6); }
  .product-card .p-tag {
    font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
    color: var(--blue); background: oklch(52% 0.18 250 / 0.08);
    padding: 4px 10px; border-radius: 100px;
  }
  .product-card .p-code { font-size: 11px; font-weight: 700; color: var(--gray-300); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 4px; }
  .product-card .p-name { font-size: 20px; font-weight: 800; color: var(--navy); letter-spacing: -0.3px; margin-bottom: 10px; }
  .product-card .p-desc { font-size: 13px; color: var(--gray-500); line-height: 1.65; flex: 1; }
  .product-card .p-link {
    display: inline-flex; align-items: center; gap: 5px; margin-top: 20px;
    font-size: 12px; font-weight: 700; color: var(--blue);
    text-transform: uppercase; letter-spacing: 0.5px;
  }

  /* Hidden state for filtering */
  .product-card.hidden, .product-featured.hidden { display: none; }

  /* No results */
  .no-results {
    display: none; grid-column: 1/-1; text-align: center;
    padding: 80px 24px; color: var(--gray-500);
  }
  .no-results.visible { display: block; }

  /* ── CTA STRIP ── */
  .cta-strip {
    background: var(--navy); padding: 80px 5vw;
    display: flex; align-items: center; justify-content: space-between;
    gap: 40px; flex-wrap: wrap; position: relative; overflow: hidden;
  }
  .cta-strip::before {
    content: ''; position: absolute; right: -80px; top: -80px;
    width: 400px; height: 400px; border-radius: 50%;
    background: oklch(100% 0 0 / 0.02);
  }
  .cta-strip-left { position: relative; z-index: 1; }
  .cta-strip h2 { font-size: clamp(22px, 2.5vw, 34px); font-weight: 800; color: var(--white); letter-spacing: -0.5px; margin-bottom: 10px; }
  .cta-strip p { font-size: 15px; color: oklch(100% 0 0 / 0.55); max-width: 480px; line-height: 1.6; }
  .cta-strip-actions { display: flex; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }
  .btn-amber {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--blue-light); color: var(--white);
    font-family: var(--font); font-size: 14px; font-weight: 700;
    padding: 13px 24px; border-radius: 10px; text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s;
  }
  .btn-amber:hover { transform: translateY(-2px); box-shadow: 0 8px 24px oklch(52% 0.18 250 / 0.4); }
  .btn-ghost-light {
    display: inline-flex; align-items: center; gap: 8px;
    background: oklch(100% 0 0 / 0.08); border: 1px solid oklch(100% 0 0 / 0.18);
    color: var(--white);
    font-family: var(--font); font-size: 14px; font-weight: 600;
    padding: 13px 24px; border-radius: 10px; text-decoration: none;
    transition: background 0.2s;
  }
  .btn-ghost-light:hover { background: oklch(100% 0 0 / 0.13); }

  /* ── FOOTER ── */
  footer { background: var(--navy); padding: 60px 5vw 32px; color: oklch(100% 0 0 / 0.5); }
  .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid oklch(100% 0 0 / 0.08); }
  .footer-brand p { font-size: 13px; line-height: 1.7; margin-top: 16px; max-width: 280px; }
  .footer-col h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: oklch(100% 0 0 / 0.35); margin-bottom: 16px; }
  .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
  .footer-col ul li a { font-size: 13px; color: oklch(100% 0 0 / 0.5); text-decoration: none; transition: color 0.2s; }
  .footer-col ul li a:hover { color: var(--blue-light); }
  .footer-contact-line { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: oklch(100% 0 0 / 0.5); margin-bottom: 10px; }
  .footer-contact-line svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; opacity: 0.5; }
  .footer-bottom { padding-top: 24px; display: flex; align-items: center; justify-content: space-between; font-size: 12px; gap: 16px; flex-wrap: wrap; }

  /* ── REVEAL ── */
  .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.5s ease, transform 0.5s ease; }
  .reveal.visible { opacity: 1; transform: none; }

  @media (max-width: 1024px) {
    .featured-row { grid-template-columns: 1fr; }
    .products-grid { grid-template-columns: 1fr 1fr; }
    .cta-strip { flex-direction: column; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
    .page-hero-right { display: none; }
  }
  @media (max-width: 640px) {
    .products-grid { grid-template-columns: 1fr; }
    .nav-links { display: none; }
    .footer-top { grid-template-columns: 1fr; }
  }

/* ─── styles from services.html ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --navy: oklch(22% 0.06 255);
    --navy-mid: oklch(28% 0.07 255);
    --blue: oklch(52% 0.18 250);
    --blue-light: oklch(62% 0.16 250);
    --white: oklch(98% 0.005 255);
    --gray-50: oklch(96% 0.005 255);
    --gray-100: oklch(92% 0.008 255);
    --gray-300: oklch(78% 0.01 255);
    --gray-500: oklch(58% 0.015 255);
    --gray-700: oklch(38% 0.015 255);
    --text: oklch(18% 0.03 255);
    --font: 'Plus Jakarta Sans', sans-serif;
    --radius: 12px;
    --radius-lg: 20px;
  }
  html { scroll-behavior: smooth; }
  body { font-family: var(--font); background: var(--white); color: var(--text); line-height: 1.6; overflow-x: hidden; }

  /* NAV */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 5vw; height: 68px;
    background: rgba(255,255,255,0.92); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--gray-100); transition: box-shadow 0.3s;
  }
  nav.scrolled { box-shadow: 0 2px 24px oklch(0% 0 0 / 0.08); }
  .nav-logo { display: flex; align-items: center; text-decoration: none; }
  .nav-links { display: flex; align-items: center; gap: 6px; list-style: none; }
  .nav-links a { text-decoration: none; font-size: 14px; font-weight: 500; color: var(--gray-700); padding: 6px 12px; border-radius: 8px; transition: background 0.2s, color 0.2s; }
  .nav-links a:hover { background: var(--gray-50); color: var(--navy); }
  .nav-links a.active { color: var(--navy); font-weight: 700; }
  .nav-cta { background: var(--navy) !important; color: var(--white) !important; padding: 8px 18px !important; border-radius: 8px !important; }
  .nav-cta:hover { background: var(--navy-mid) !important; }

  /* PAGE HERO */
  .page-hero {
    padding: 120px 5vw 72px; background: var(--gray-50);
    border-bottom: 1px solid var(--gray-100); position: relative; overflow: hidden;
  }
  .page-hero-bg {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: linear-gradient(var(--gray-100) 1px, transparent 1px), linear-gradient(90deg, var(--gray-100) 1px, transparent 1px);
    background-size: 50px 50px; opacity: 0.6;
  }
  .page-hero-inner { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
  .page-hero-left { max-width: 640px; display: flex; flex-direction: column; }
  .breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--gray-500); margin-bottom: 20px; }
  .breadcrumb a { text-decoration: none; color: var(--gray-500); transition: color 0.2s; }
  .breadcrumb a:hover { color: var(--navy); }
  .breadcrumb span { color: var(--gray-300); }
  .section-label { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; }
  .page-hero h1 { font-size: clamp(32px, 3.8vw, 52px); font-weight: 800; letter-spacing: -1.2px; color: var(--navy); line-height: 1.1; text-wrap: pretty; margin-bottom: 16px; }
  .page-hero-sub { font-size: 16px; color: var(--gray-500); line-height: 1.7; max-width: 520px; }

  /* SECTION SHARED */
  .section-title { font-size: clamp(24px, 2.8vw, 38px); font-weight: 800; letter-spacing: -0.7px; color: var(--navy); line-height: 1.15; text-wrap: pretty; }
  .section-sub { font-size: 16px; color: var(--gray-500); max-width: 560px; margin-top: 12px; line-height: 1.7; }
  .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
  .reveal.visible { opacity: 1; transform: none; }

  .btn-primary { display: inline-flex; align-items: center; gap: 8px; background: var(--navy); color: var(--white); font-family: var(--font); font-size: 14px; font-weight: 700; padding: 12px 24px; border-radius: 10px; text-decoration: none; border: none; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px oklch(22% 0.06 255 / 0.3); }
  .btn-outline { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--gray-300); color: var(--gray-700); font-family: var(--font); font-size: 14px; font-weight: 700; padding: 12px 24px; border-radius: 10px; text-decoration: none; transition: border-color 0.2s, color 0.2s; }
  .btn-outline:hover { border-color: var(--navy); color: var(--navy); }

  /* SERVICES MAIN */
  .services-main { padding: 80px 5vw 100px; }

  .service-block {
    display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
    padding: 64px 0; border-bottom: 1px solid var(--gray-100);
  }
  .service-block:last-child { border-bottom: none; }
  .service-block.reverse { }
  .service-block.reverse .service-block-visual { order: 2; }
  .service-block.reverse .service-block-content { order: 1; }

  .service-block-visual {
    position: relative;
  }
  .service-visual-card {
    background: var(--gray-50); border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg); padding: 36px;
    display: flex; flex-direction: column; gap: 20px;
  }
  .service-visual-card.dark {
    background: var(--navy); border-color: transparent;
  }
  .service-visual-icon {
    width: 56px; height: 56px; background: oklch(22% 0.06 255 / 0.07);
    border-radius: 14px; display: flex; align-items: center; justify-content: center;
  }
  .service-visual-card.dark .service-visual-icon { background: oklch(100% 0 0 / 0.08); }
  .service-visual-icon svg { width: 28px; height: 28px; color: oklch(22% 0.06 255 / 0.6); }
  .service-visual-card.dark .service-visual-icon svg { color: var(--blue-light); }
  .service-visual-title { font-size: 20px; font-weight: 800; color: var(--navy); }
  .service-visual-card.dark .service-visual-title { color: var(--white); }
  .service-feature-list { display: flex; flex-direction: column; gap: 12px; }
  .service-feature {
    display: flex; align-items: flex-start; gap: 10px;
    font-size: 14px; color: var(--gray-700); line-height: 1.5;
  }
  .service-visual-card.dark .service-feature { color: oklch(100% 0 0 / 0.6); }
  .service-feature-dot {
    width: 6px; height: 6px; border-radius: 50%; background: var(--blue);
    flex-shrink: 0; margin-top: 6px;
  }
  .service-visual-card.dark .service-feature-dot { background: var(--blue-light); }

  .service-block-content {}
  .service-num { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; }
  .service-block-content h2 { font-size: clamp(22px, 2.5vw, 34px); font-weight: 800; letter-spacing: -0.6px; color: var(--navy); line-height: 1.15; margin-bottom: 16px; text-wrap: pretty; }
  .service-block-content p { font-size: 15px; color: var(--gray-500); line-height: 1.75; margin-bottom: 14px; }
  .service-tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 28px; }
  .service-tag { font-size: 12px; font-weight: 600; color: var(--navy); background: oklch(52% 0.18 250 / 0.08); border: 1px solid oklch(52% 0.18 250 / 0.2); padding: 5px 12px; border-radius: 100px; }

  /* FINISHING SCHOOL — full width */
  .finishing-school {
    background: var(--navy); padding: 80px 5vw;
    position: relative; overflow: hidden;
  }
  .finishing-school-bg {
    position: absolute; inset: 0; pointer-events: none;
    background-image: linear-gradient(oklch(100% 0 0 / 0.025) 1px, transparent 1px), linear-gradient(90deg, oklch(100% 0 0 / 0.025) 1px, transparent 1px);
    background-size: 60px 60px;
  }
  .finishing-school-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
  .finishing-school .section-label { color: var(--blue-light); }
  .finishing-school h2 { font-size: clamp(26px, 3vw, 40px); font-weight: 800; color: var(--white); letter-spacing: -0.8px; line-height: 1.1; margin-bottom: 16px; }
  .finishing-school p { font-size: 15px; color: oklch(100% 0 0 / 0.6); line-height: 1.75; margin-bottom: 14px; }
  .fs-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; }
  .fs-stat { background: oklch(100% 0 0 / 0.05); border: 1px solid oklch(100% 0 0 / 0.1); border-radius: var(--radius); padding: 20px; }
  .fs-stat span:first-child { display: block; font-size: 26px; font-weight: 800; color: var(--white); letter-spacing: -0.5px; }
  .fs-stat span:last-child { font-size: 12px; font-weight: 600; color: oklch(100% 0 0 / 0.45); text-transform: uppercase; letter-spacing: 0.5px; }
  .fs-pillars { display: flex; flex-direction: column; gap: 14px; }
  .fs-pillar { display: flex; gap: 14px; align-items: flex-start; background: oklch(100% 0 0 / 0.05); border: 1px solid oklch(100% 0 0 / 0.1); border-radius: var(--radius); padding: 18px; }
  .fs-pillar-icon { width: 36px; height: 36px; background: oklch(100% 0 0 / 0.08); border-radius: 9px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .fs-pillar-icon svg { width: 16px; height: 16px; color: var(--blue-light); }
  .fs-pillar strong { display: block; font-size: 14px; font-weight: 700; color: var(--white); margin-bottom: 3px; }
  .fs-pillar span { font-size: 13px; color: oklch(100% 0 0 / 0.5); line-height: 1.5; }

  /* CTA STRIP */
  .cta-strip { background: var(--gray-50); border-top: 1px solid var(--gray-100); padding: 80px 5vw; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
  .cta-strip h2 { font-size: clamp(22px, 2.5vw, 32px); font-weight: 800; color: var(--navy); letter-spacing: -0.5px; margin-bottom: 8px; }
  .cta-strip p { font-size: 15px; color: var(--gray-500); max-width: 480px; }
  .cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }

  /* FOOTER */
  footer { background: var(--navy); padding: 60px 5vw 32px; color: oklch(100% 0 0 / 0.5); }
  .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid oklch(100% 0 0 / 0.08); }
  .footer-brand p { font-size: 13px; line-height: 1.7; margin-top: 16px; max-width: 280px; }
  .footer-col h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: oklch(100% 0 0 / 0.35); margin-bottom: 16px; }
  .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
  .footer-col ul li a { font-size: 13px; color: oklch(100% 0 0 / 0.5); text-decoration: none; transition: color 0.2s; }
  .footer-col ul li a:hover { color: var(--blue-light); }
  .footer-contact-line { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: oklch(100% 0 0 / 0.5); margin-bottom: 10px; }
  .footer-contact-line svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; opacity: 0.5; }
  .footer-bottom { padding-top: 24px; display: flex; align-items: center; justify-content: space-between; font-size: 12px; gap: 16px; flex-wrap: wrap; }

  @media (max-width: 1024px) {
    .service-block { grid-template-columns: 1fr; gap: 40px; }
    .service-block.reverse .service-block-visual { order: 0; }
    .service-block.reverse .service-block-content { order: 0; }
    .finishing-school-inner { grid-template-columns: 1fr; gap: 40px; }
    .cta-strip { flex-direction: column; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  }
  @media (max-width: 640px) {
    .nav-links { display: none; }
    .fs-stats { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr; }
  }

/* ─── styles from clients.html ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --navy: oklch(22% 0.06 255);
    --navy-mid: oklch(28% 0.07 255);
    --blue: oklch(52% 0.18 250);
    --blue-light: oklch(62% 0.16 250);
    --white: oklch(98% 0.005 255);
    --gray-50: oklch(96% 0.005 255);
    --gray-100: oklch(92% 0.008 255);
    --gray-300: oklch(78% 0.01 255);
    --gray-500: oklch(58% 0.015 255);
    --gray-700: oklch(38% 0.015 255);
    --text: oklch(18% 0.03 255);
    --font: 'Plus Jakarta Sans', sans-serif;
    --radius: 12px; --radius-lg: 20px;
  }
  html { scroll-behavior: smooth; }
  body { font-family: var(--font); background: var(--white); color: var(--text); line-height: 1.6; overflow-x: hidden; }

  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 5vw; height: 68px;
    background: rgba(255,255,255,0.92); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--gray-100); transition: box-shadow 0.3s;
  }
  nav.scrolled { box-shadow: 0 2px 24px oklch(0% 0 0 / 0.08); }
  .nav-logo { display: flex; align-items: center; text-decoration: none; }
  .nav-links { display: flex; align-items: center; gap: 6px; list-style: none; }
  .nav-links a { text-decoration: none; font-size: 14px; font-weight: 500; color: var(--gray-700); padding: 6px 12px; border-radius: 8px; transition: background 0.2s, color 0.2s; }
  .nav-links a:hover { background: var(--gray-50); color: var(--navy); }
  .nav-links a.active { color: var(--navy); font-weight: 700; }
  .nav-cta { background: var(--navy) !important; color: var(--white) !important; padding: 8px 18px !important; border-radius: 8px !important; }
  .nav-cta:hover { background: var(--navy-mid) !important; }

  .page-hero {
    padding: 120px 5vw 72px; background: var(--gray-50);
    border-bottom: 1px solid var(--gray-100); position: relative; overflow: hidden;
  }
  .page-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: linear-gradient(var(--gray-100) 1px, transparent 1px), linear-gradient(90deg, var(--gray-100) 1px, transparent 1px); background-size: 50px 50px; opacity: 0.6; }
  .page-hero-inner { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
  .page-hero-left { max-width: 640px; display: flex; flex-direction: column; }
  .breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--gray-500); margin-bottom: 20px; }
  .breadcrumb a { text-decoration: none; color: var(--gray-500); transition: color 0.2s; }
  .breadcrumb a:hover { color: var(--navy); }
  .breadcrumb span { color: var(--gray-300); }
  .section-label { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; }
  .page-hero h1 { font-size: clamp(32px, 3.8vw, 52px); font-weight: 800; letter-spacing: -1.2px; color: var(--navy); line-height: 1.1; text-wrap: pretty; margin-bottom: 16px; }
  .page-hero-sub { font-size: 16px; color: var(--gray-500); line-height: 1.7; max-width: 520px; }
  .page-hero-stats { display: flex; gap: 40px; margin-top: 48px; padding-top: 36px; border-top: 1px solid var(--gray-100); }
  .hero-stat span:first-child { display: block; font-size: 28px; font-weight: 800; color: var(--navy); letter-spacing: -0.8px; white-space: nowrap; }
  .hero-stat span:last-child { font-size: 12px; font-weight: 600; color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.5px; }

  .section-title { font-size: clamp(24px, 2.8vw, 38px); font-weight: 800; letter-spacing: -0.7px; color: var(--navy); line-height: 1.15; text-wrap: pretty; }
  .section-sub { font-size: 16px; color: var(--gray-500); max-width: 560px; margin-top: 12px; line-height: 1.7; }
  .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
  .reveal.visible { opacity: 1; transform: none; }
  .btn-primary { display: inline-flex; align-items: center; gap: 8px; background: var(--navy); color: var(--white); font-family: var(--font); font-size: 14px; font-weight: 700; padding: 12px 24px; border-radius: 10px; text-decoration: none; border: none; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px oklch(22% 0.06 255 / 0.3); }
  .btn-outline { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--gray-300); color: var(--gray-700); font-family: var(--font); font-size: 14px; font-weight: 700; padding: 12px 24px; border-radius: 10px; text-decoration: none; transition: border-color 0.2s, color 0.2s; }
  .btn-outline:hover { border-color: var(--navy); color: var(--navy); }

  /* INDUSTRY SECTIONS */
  .clients-section { padding: 80px 5vw 100px; }
  .industry-block { margin-bottom: 72px; }
  .industry-block:last-child { margin-bottom: 0; }
  .industry-header { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
  .industry-icon { width: 44px; height: 44px; background: oklch(22% 0.06 255 / 0.07); border-radius: 11px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .industry-icon svg { width: 22px; height: 22px; color: oklch(22% 0.06 255 / 0.6); }
  .industry-header h2 { font-size: 20px; font-weight: 800; color: var(--navy); }
  .industry-header .industry-count { font-size: 12px; font-weight: 700; color: var(--blue); background: oklch(52% 0.18 250 / 0.08); padding: 4px 10px; border-radius: 100px; margin-left: 4px; }

  .clients-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
  .client-card {
    background: var(--white); border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-lg); padding: 24px 20px;
    display: flex; flex-direction: column; gap: 8px;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
    box-shadow: 0 1px 4px oklch(0% 0 0 / 0.04);
  }
  .client-card:hover { transform: translateY(-3px); box-shadow: 0 10px 32px oklch(0% 0 0 / 0.08); border-color: oklch(52% 0.18 250 / 0.25); }
  .client-logo { width: 40px; height: 40px; background: oklch(22% 0.06 255 / 0.06); border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 4px; }
  .client-logo svg { width: 20px; height: 20px; color: oklch(22% 0.06 255 / 0.5); }
  .client-card h3 { font-size: 14px; font-weight: 800; color: var(--navy); line-height: 1.3; }
  .client-card p { font-size: 12px; color: var(--gray-500); line-height: 1.5; }
  .client-tag { font-size: 11px; font-weight: 700; color: var(--blue); background: oklch(52% 0.18 250 / 0.08); padding: 3px 8px; border-radius: 6px; width: fit-content; margin-top: 4px; }

  /* PRESENCE MAP */
  .presence { background: var(--navy); padding: 80px 5vw; position: relative; overflow: hidden; }
  .presence-bg { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(oklch(100% 0 0 / 0.025) 1px, transparent 1px), linear-gradient(90deg, oklch(100% 0 0 / 0.025) 1px, transparent 1px); background-size: 60px 60px; }
  .presence-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
  .presence .section-label { color: var(--blue-light); }
  .presence h2 { font-size: clamp(26px, 3vw, 40px); font-weight: 800; color: var(--white); letter-spacing: -0.8px; margin-bottom: 16px; }
  .presence p { font-size: 15px; color: oklch(100% 0 0 / 0.6); line-height: 1.75; }
  .country-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .country-card { background: oklch(100% 0 0 / 0.05); border: 1px solid oklch(100% 0 0 / 0.1); border-radius: var(--radius); padding: 18px 20px; display: flex; gap: 12px; align-items: center; }
  .country-flag { font-size: 24px; }
  .country-card strong { display: block; font-size: 14px; font-weight: 800; color: var(--white); }
  .country-card span { font-size: 12px; color: oklch(100% 0 0 / 0.45); }

  /* TESTIMONIAL */
  .testimonials { padding: 80px 5vw; background: var(--gray-50); border-top: 1px solid var(--gray-100); }
  .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; }
  .testimonial-card { background: var(--white); border: 1.5px solid var(--gray-100); border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; gap: 16px; box-shadow: 0 1px 4px oklch(0% 0 0 / 0.04); }
  .testimonial-stars { display: flex; gap: 3px; }
  .testimonial-stars svg { width: 14px; height: 14px; fill: oklch(72% 0.16 65); }
  .testimonial-quote { font-size: 14px; color: var(--gray-700); line-height: 1.7; font-style: italic; flex: 1; }
  .testimonial-author { display: flex; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid var(--gray-100); }
  .testimonial-avatar { width: 36px; height: 36px; background: oklch(22% 0.06 255 / 0.07); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .testimonial-avatar svg { width: 16px; height: 16px; color: oklch(22% 0.06 255 / 0.4); }
  .testimonial-author strong { display: block; font-size: 13px; font-weight: 700; color: var(--navy); }
  .testimonial-author span { font-size: 11px; color: var(--gray-500); }

  /* CTA */
  .cta-strip { background: var(--white); border-top: 1px solid var(--gray-100); padding: 80px 5vw; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
  .cta-strip h2 { font-size: clamp(22px, 2.5vw, 32px); font-weight: 800; color: var(--navy); letter-spacing: -0.5px; margin-bottom: 8px; }
  .cta-strip p { font-size: 15px; color: var(--gray-500); max-width: 480px; }
  .cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }

  footer { background: var(--navy); padding: 60px 5vw 32px; color: oklch(100% 0 0 / 0.5); }
  .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid oklch(100% 0 0 / 0.08); }
  .footer-brand p { font-size: 13px; line-height: 1.7; margin-top: 16px; max-width: 280px; }
  .footer-col h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: oklch(100% 0 0 / 0.35); margin-bottom: 16px; }
  .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
  .footer-col ul li a { font-size: 13px; color: oklch(100% 0 0 / 0.5); text-decoration: none; transition: color 0.2s; }
  .footer-col ul li a:hover { color: var(--blue-light); }
  .footer-contact-line { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: oklch(100% 0 0 / 0.5); margin-bottom: 10px; }
  .footer-contact-line svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; opacity: 0.5; }
  .footer-bottom { padding-top: 24px; display: flex; align-items: center; justify-content: space-between; font-size: 12px; gap: 16px; flex-wrap: wrap; }

  @media (max-width: 1024px) {
    .clients-grid { grid-template-columns: repeat(2, 1fr); }
    .presence-inner { grid-template-columns: 1fr; gap: 40px; }
    .testimonials-grid { grid-template-columns: 1fr 1fr; }
    .cta-strip { flex-direction: column; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  }
  @media (max-width: 640px) {
    .nav-links { display: none; }
    .clients-grid { grid-template-columns: 1fr; }
    .country-grid { grid-template-columns: 1fr; }
    .testimonials-grid { grid-template-columns: 1fr; }
    .page-hero-stats { gap: 24px; flex-wrap: wrap; }
    .footer-top { grid-template-columns: 1fr; }
  }

/* ─── WordPress admin bar offset ─── */
.admin-bar nav#main-nav { top: 32px; }
@media (max-width: 782px) {
  .admin-bar nav#main-nav { top: 46px; }
}

/* ─── WordPress core alignments (so default editor blocks render sanely) ─── */
.alignleft { float: left; margin-right: 1.5em; }
.alignright { float: right; margin-left: 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: var(--gray-500); text-align: center; margin-top: 0.5em; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* ─── WordPress nav menu compatibility ───────────────────────────────────
   When wp_nav_menu() renders the Primary menu, it wraps each link in a
   <li class="menu-item ..."> with WordPress-generated classes. The CSS
   class the user adds in Appearance → Menus ("CSS Classes" field) is put
   on the <li>, NOT the <a>. So .nav-cta needs to work in both places. */

.nav-links li {
  list-style: none;
  display: flex;
  align-items: center;
}

/* Make .nav-cta work whether the class is on the <a> or on the parent <li>.
   Using nav#main-nav prefix for higher specificity (ID + class + class)
   so it beats any theme/plugin styles. Hex colors instead of CSS vars
   to rule out any variable-resolution issues. */

/* FIX (v1.2): When .nav-cta is on the <li> (WordPress menu output),
   the older .nav-cta rule (line ~90) gives the <li> its own navy
   background and rounded corners — and the newer rule below gives the
   <a> inside the same styling, producing a visible "double box". Reset
   the <li> so only the <a> is styled. */
nav#main-nav .nav-links li.nav-cta,
nav#main-nav .nav-links > li:last-child {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

nav#main-nav .nav-links li.nav-cta > a,
nav#main-nav .nav-links li.nav-cta > a:link,
nav#main-nav .nav-links li.nav-cta > a:visited,
nav#main-nav .nav-links a.nav-cta {
  background: #1a2b4a !important;
  color: #ffffff !important;
  padding: 8px 18px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
}

/* Backstop: also style the LAST menu item as the CTA, in case the user
   didn't add the nav-cta class to it (very common oversight). */
nav#main-nav .nav-links > li:last-child > a,
nav#main-nav .nav-links > li:last-child > a:link,
nav#main-nav .nav-links > li:last-child > a:visited {
  background: #1a2b4a !important;
  color: #ffffff !important;
  padding: 8px 18px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
}

nav#main-nav .nav-links li.nav-cta > a:hover,
nav#main-nav .nav-links a.nav-cta:hover,
nav#main-nav .nav-links > li:last-child > a:hover {
  background: #283a5a !important;
  color: #ffffff !important;
}

/* Active page state — WordPress adds .current-menu-item to the active <li> */
.nav-links li.current-menu-item > a,
.nav-links li.current_page_item > a {
  color: var(--navy);
  font-weight: 700;
}

/* Strip default WordPress menu list styling that conflicts with our flex layout */
.nav-links {
  margin: 0;
  padding: 0;
}

/* ─── v1.2: section-header centered modifier ───────────────────────────
   The default .section-header uses flex with space-between, which leaves
   empty space on the right when there's only one child (which looks like
   an incomplete/broken layout). The .centered modifier makes it center
   itself instead — useful for pages where a single intro block doesn't
   have a paired element on the right. */
.section-header.centered {
  justify-content: center;
  text-align: center;
}
.section-header.centered > div {
  max-width: 760px;
  margin: 0 auto;
}
.section-header.centered .section-sub {
  margin-left: auto;
  margin-right: auto;
}

/* ─── v1.2: 3-column featured-row tweaks for the merged page ──────────
   When the inline style "grid-template-columns: repeat(3, 1fr)" is set,
   reduce padding slightly so 3 cards still feel comfortable. */
.featured-row[style*="repeat(3"] .product-featured {
  padding: 28px;
}
.featured-row[style*="repeat(3"] .product-featured .p-name {
  font-size: 22px;
}
@media (max-width: 1024px) {
  .featured-row[style*="repeat(3"] {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 720px) {
  .featured-row[style*="repeat(3"] {
    grid-template-columns: 1fr !important;
  }
}

/* ─── v1.2: "and more" callout — distinct from product cards ───────────
   This is intentionally NOT a card. It's a horizontal banner-style
   callout that visually separates the "extras" from the 3 flagship
   products above. */
.and-more-callout {
  margin-top: 32px;
  padding: 32px 36px;
  background: linear-gradient(135deg, #f6f9fc 0%, #ddeaf8 100%);
  border: 1px solid #c5d8ee;
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.and-more-callout .and-more-icon {
  width: 56px;
  height: 56px;
  background: #0f1c2e;
  color: #ffffff;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.and-more-callout .and-more-icon svg {
  width: 28px;
  height: 28px;
}
.and-more-callout .and-more-content {
  flex: 1;
  min-width: 280px;
}
.and-more-callout .and-more-eyebrow {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #2d6fb5;
  margin-bottom: 6px;
}
.and-more-callout .and-more-title {
  font-size: 22px;
  font-weight: 700;
  color: #0f1c2e;
  letter-spacing: -0.3px;
  margin: 0 0 8px;
}
.and-more-callout .and-more-desc {
  font-size: 15px;
  color: #4b586e;
  line-height: 1.6;
  margin: 0;
}
.and-more-callout .and-more-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
@media (max-width: 720px) {
  .and-more-callout {
    padding: 24px;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
}

/* ──────────────────────────────────────────────────────────────────────
   v1.3: MOBILE HAMBURGER NAVIGATION
   The previous CSS hid .nav-links entirely on screens ≤640px without
   providing any toggle, so mobile users had no way to navigate the
   site. This block adds a hamburger button shown only on mobile and
   a slide-down menu panel that appears when the button is clicked.
   ────────────────────────────────────────────────────────────────────── */

/* The toggle button itself — hidden on desktop, visible on mobile */
.nav-toggle {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  z-index: 110;
}
.nav-toggle .nav-toggle-bar {
  position: absolute;
  left: 10px;
  right: 10px;
  height: 2px;
  background: #0f1c2e;
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease, top 0.25s ease;
}
.nav-toggle .nav-toggle-bar:nth-child(1) { top: 14px; }
.nav-toggle .nav-toggle-bar:nth-child(2) { top: 21px; }
.nav-toggle .nav-toggle-bar:nth-child(3) { top: 28px; }

/* When menu is open: bars morph into an "X" */
#main-nav.nav-open .nav-toggle .nav-toggle-bar:nth-child(1) {
  top: 21px;
  transform: rotate(45deg);
}
#main-nav.nav-open .nav-toggle .nav-toggle-bar:nth-child(2) {
  opacity: 0;
}
#main-nav.nav-open .nav-toggle .nav-toggle-bar:nth-child(3) {
  top: 21px;
  transform: rotate(-45deg);
}

/* nav-menu-wrap is a passthrough on desktop — no styling needed.
   The .nav-links list inside it keeps its existing styles. */
.nav-menu-wrap {
  display: flex;
  align-items: center;
}

/* ── Mobile breakpoint: show hamburger, hide menu by default, show on open ─ */
@media (max-width: 880px) {
  .nav-toggle {
    display: block;
  }

  /* Override the legacy `display: none` rules from earlier in the file. */
  nav#main-nav .nav-links {
    display: none !important;
  }

  /* Hide the wrapper by default */
  .nav-menu-wrap {
    display: none;
    position: fixed;
    top: 68px;             /* below the fixed nav bar */
    left: 0; right: 0;
    bottom: 0;
    background: #ffffff;
    padding: 24px 5vw 40px;
    overflow-y: auto;
    z-index: 100;
    box-shadow: 0 12px 32px rgba(15, 28, 46, 0.08);
    animation: nav-fade-in 0.2s ease-out;
  }

  /* Show wrapper + list when nav is open */
  #main-nav.nav-open .nav-menu-wrap {
    display: block;
  }
  #main-nav.nav-open .nav-menu-wrap .nav-links {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  /* Each menu item gets full-width, padded link */
  #main-nav.nav-open .nav-menu-wrap .nav-links > li {
    width: 100%;
    display: block;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
  }
  #main-nav.nav-open .nav-menu-wrap .nav-links > li > a {
    display: block;
    width: 100%;
    padding: 16px 18px !important;
    font-size: 17px;
    font-weight: 600;
    color: #0f1c2e !important;
    background: transparent !important;
    border-radius: 10px !important;
    border-bottom: 1px solid #eef1f6;
    text-decoration: none;
  }
  #main-nav.nav-open .nav-menu-wrap .nav-links > li > a:hover,
  #main-nav.nav-open .nav-menu-wrap .nav-links > li > a:focus {
    background: #f6f9fc !important;
  }

  /* Special-case: the CTA item (last child OR .nav-cta) gets the navy button look */
  #main-nav.nav-open .nav-menu-wrap .nav-links > li.nav-cta > a,
  #main-nav.nav-open .nav-menu-wrap .nav-links > li:last-child > a {
    background: #0f1c2e !important;
    color: #ffffff !important;
    border-bottom: 0;
    text-align: center;
    margin-top: 16px;
    padding: 18px !important;
  }
  #main-nav.nav-open .nav-menu-wrap .nav-links > li.nav-cta > a:hover,
  #main-nav.nav-open .nav-menu-wrap .nav-links > li:last-child > a:hover {
    background: #283a5a !important;
  }

  /* Tighten the nav bar a touch on mobile */
  nav#main-nav {
    padding: 12px 5vw;
  }
  .nav-logo img {
    height: 42px !important;
  }
}

@keyframes nav-fade-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* When admin bar is showing (logged-in users), shift the mobile menu down */
@media (max-width: 880px) {
  .admin-bar .nav-menu-wrap { top: 114px; }
}
@media (max-width: 782px) {
  .admin-bar .nav-menu-wrap { top: 114px; }
}
@media (max-width: 600px) {
  .admin-bar .nav-menu-wrap { top: 114px; }
}

/* ──────────────────────────────────────────────────────────────────────
   v1.3: Polished client logo icons + ISO certs inline + footer 4-column
   ────────────────────────────────────────────────────────────────────── */

/* Polished client logos — wrap the SVG in a tinted rounded square with a
   subtle gradient so each card feels intentional rather than templated.
   Per-client modifier classes (client-logo-gm, client-logo-maruti, etc.)
   give each one a distinct accent tint without using real brand colors. */
.client-card .client-logo {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg, #f0f4fa 0%, #e1eaf4 100%);
  color: #0f1c2e;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  flex-shrink: 0;
  border: 1px solid #d8e1ec;
  box-shadow: 0 1px 2px rgba(15, 28, 46, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
.client-card .client-logo svg {
  width: 30px;
  height: 30px;
}

/* Per-client accent gradients — subtle tints, not branded colors */
.client-logo-gm        { background: linear-gradient(135deg, #eef2f8 0%, #d5dde9 100%); }
.client-logo-maruti    { background: linear-gradient(135deg, #f1eef8 0%, #ddd5e9 100%); }
.client-logo-transrev  { background: linear-gradient(135deg, #eef5f3 0%, #d5e2dd 100%); }
.client-logo-dana      { background: linear-gradient(135deg, #f8f3ee 0%, #ebd9c8 100%); }
.client-logo-csjmu     { background: linear-gradient(135deg, #ecf2f8 0%, #cfdbe9 100%); color: #1a2b4a; }
.client-logo-rml       { background: linear-gradient(135deg, #f8eef0 0%, #e9d2d7 100%); }
.client-logo-apjaktu   { background: linear-gradient(135deg, #eef4f8 0%, #d2dee9 100%); }
.client-logo-state     { background: linear-gradient(135deg, #f3f5f7 0%, #d8dde3 100%); }
.client-logo-lic       { background: linear-gradient(135deg, #f4eef0 0%, #e0d4d7 100%); }
.client-logo-banks     { background: linear-gradient(135deg, #eef5f0 0%, #d3e0d6 100%); }
.client-logo-clubs     { background: linear-gradient(135deg, #f5f0e8 0%, #e0d7c4 100%); }
.client-logo-unitech   { background: linear-gradient(135deg, #eef2f5 0%, #d3dbe1 100%); }

.client-card:hover .client-logo {
  transform: scale(1.04);
  transition: transform 0.2s ease;
}

/* Inline ISO certifications on the About page — pill-style badges */
.iso-certs-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0;
}
.iso-cert-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #f6f9fc;
  border: 1px solid #dbe5f0;
  border-radius: 100px;
  padding: 10px 18px 10px 12px;
  font-size: 13px;
}
.iso-cert-pill .iso-cert-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #2d6fb5;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.iso-cert-pill .iso-cert-icon svg {
  width: 16px;
  height: 16px;
}
.iso-cert-pill strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #0f1c2e;
  letter-spacing: -0.1px;
}
.iso-cert-pill span {
  display: block;
  font-size: 11px;
  color: #4b586e;
  margin-top: 1px;
}

/* Footer — accommodate 4 columns instead of 3 */
@media (min-width: 768px) {
  footer .footer-top {
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr !important;
  }
}
@media (max-width: 880px) {
  footer .footer-top {
    grid-template-columns: 1fr 1fr !important;
    gap: 32px !important;
  }
}
@media (max-width: 480px) {
  footer .footer-top {
    grid-template-columns: 1fr !important;
  }
}

/* Country grid: accommodate 5 cards */
@media (min-width: 768px) {
  .country-grid {
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 12px !important;
  }
}
@media (max-width: 880px) {
  .country-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  .country-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ════════════════════════════════════════════════════════════════════════
   v1.4 — MOBILE & LAYOUT FIXES
   
   Issues being fixed:
   1. Hero text and stats overflow viewport on mobile (Image 4)
   2. Contact form fields cut off on right edge on mobile (Image 5)
   3. Mobile hamburger menu showing only one item / cramped (Image 3)
   4. Homepage Trusted By cards have inconsistent box sizes vs other pages
   5. Industry vertical pills are now <div> not <a> (removed hyperlinks)
   ════════════════════════════════════════════════════════════════════════ */

/* ─── 1. PREVENT HORIZONTAL OVERFLOW SITE-WIDE ─────────────────────────
   This is the root fix for "content cut off on the right" issues. Many
   sections used fixed flex layouts that exceeded the viewport on phones.
   This kills horizontal scroll completely and prevents children from
   extending past viewport edges. */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}
* {
  /* Ensure padding/borders never push elements past their declared width */
  box-sizing: border-box;
}

/* ─── 2. MOBILE HAMBURGER MENU — REWRITTEN (replaces v1.3 approach) ────
   v1.3 used position:fixed which caused sizing issues across browsers.
   v1.4 makes the menu wrap part of the nav's normal flow (flex-basis:100%)
   so when the nav opens, it grows in height and pushes its menu items
   into view below the logo + hamburger row. The nav itself is still
   position:fixed at the top, so the menu naturally appears as an overlay
   without needing its own position:fixed.
   
   The breakpoint is raised to 880px (was 640px) so tablets also get the
   mobile menu — the 5-item desktop menu doesn't fit comfortably on
   anything narrower than ~1000px. */
@media (max-width: 880px) {
  nav#main-nav {
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: center;
    height: auto !important;
    min-height: 64px;
    padding: 12px 5vw;
    background: #ffffff;
  }
  nav#main-nav .nav-logo { order: 1; }
  nav#main-nav .nav-toggle { order: 2; display: block; }

  /* The wrap — hidden by default, expands when nav-open is set */
  nav#main-nav .nav-menu-wrap {
    display: none;
    order: 3;
    flex-basis: 100%;
    width: 100%;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #eef1f6;
    max-height: calc(100vh - 100px);
    max-height: calc(100dvh - 100px);
    overflow-y: auto;
    position: static !important;  /* override v1.3 position:fixed */
    box-shadow: none;
    background: transparent;
    animation: none;
  }
  nav#main-nav.nav-open .nav-menu-wrap {
    display: block;
  }
  /* Menu list inside the wrap */
  nav#main-nav.nav-open .nav-menu-wrap .nav-links {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    list-style: none;
    padding: 0;
    margin: 0;
    background: transparent !important;
  }
  /* Reset any per-li styles that conflict */
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li {
    display: block !important;
    width: 100%;
    background: transparent !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  /* Each link as a full-width tappable row */
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li > a {
    display: block !important;
    width: 100% !important;
    padding: 14px 16px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #0f1c2e !important;
    background: #f6f9fc !important;
    border-radius: 10px !important;
    border: 0 !important;
    text-decoration: none !important;
    text-align: left !important;
  }
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li > a:hover,
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li > a:focus {
    background: #eaf1f9 !important;
  }
  /* CTA item — navy fill, bottom of menu */
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li.nav-cta > a,
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li:last-child > a {
    background: #0f1c2e !important;
    color: #ffffff !important;
    text-align: center !important;
    margin-top: 8px;
    padding: 16px !important;
  }
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li.nav-cta > a:hover,
  nav#main-nav.nav-open .nav-menu-wrap .nav-links > li:last-child > a:hover {
    background: #283a5a !important;
  }
}

/* ─── 3. CONTACT FORM — MOBILE FIX (Image 5) ──────────────────────────
   The form-grid was 2 columns at all sizes, so First Name + Last Name
   overflowed mobile viewports. Inputs also lacked width:100% +
   box-sizing:border-box, causing additional overflow. */
.form-field input,
.form-field textarea,
.form-field select {
  width: 100% !important;
  box-sizing: border-box;
  max-width: 100%;
}
@media (max-width: 720px) {
  .form-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .contact-form {
    padding: 24px 20px !important;
  }
  .contact {
    padding: 60px 5vw !important;
  }
}

/* ─── 4. HERO OVERFLOW FIX (Image 4) ──────────────────────────────────
   The hero stats were `display: flex; gap: 40px;` with no wrap, so
   3 stats with long labels ("Multi-Sector / Enterprise Experience")
   blew past viewport edges. */
@media (max-width: 880px) {
  .hero,
  .page-hero {
    padding-left: 5vw !important;
    padding-right: 5vw !important;
    overflow: hidden;
  }
  .hero-content,
  .hero-visual,
  .page-hero-inner,
  .page-hero-left {
    max-width: 100% !important;
    width: 100% !important;
    min-width: 0;
  }
  .hero-content > *,
  .page-hero-left > * {
    max-width: 100%;
  }
  /* Stats: wrap and tighter gap */
  .hero-stats,
  .page-hero-stats {
    flex-wrap: wrap !important;
    gap: 20px !important;
    row-gap: 24px !important;
  }
  .hero-stat,
  .page-hero-stat,
  .hero-stat > span,
  .page-hero-stat > span {
    word-break: break-word;
    overflow-wrap: anywhere;
  }
  /* Cap big-number font size on mobile so labels fit beside */
  .hero-stat span:first-child,
  .page-hero-stat span:first-child {
    font-size: 26px !important;
  }
  /* Hero headline: clamp size so it fits */
  .hero h1,
  .hero-content h1 {
    font-size: clamp(28px, 8vw, 44px) !important;
    line-height: 1.1 !important;
  }
  /* Hero CTA row: wrap into stack */
  .hero-ctas,
  .hero-buttons {
    flex-wrap: wrap !important;
    gap: 10px !important;
  }
  .hero-ctas .btn-primary,
  .hero-ctas .btn-outline,
  .hero-buttons .btn-primary,
  .hero-buttons .btn-outline {
    flex: 1 1 auto;
    min-width: 140px;
  }
}

/* ─── 5. HOMEPAGE TRUSTED BY BOX CONSISTENCY ──────────────────────────
   The .clients-grid cards (homepage Trusted By) had inconsistent
   heights/widths because text content varies wildly. Force uniform
   card dimensions with min-height, centered text, and stretch. */
.clients .clients-grid,
section.clients .clients-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 14px !important;
  align-items: stretch;
}
.clients .clients-grid .client-card,
section.clients .clients-grid .client-card {
  min-height: 92px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 18px 16px;
  font-size: 14px;
  line-height: 1.35;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

@media (max-width: 880px) {
  .clients .clients-grid,
  section.clients .clients-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  .clients .clients-grid,
  section.clients .clients-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ─── 6. INDUSTRY PILLS — REMOVED HYPERLINKS ───────────────────────────
   v1.4 changed <a href="#"> to <div>. The original CSS targeted .industry-pill
   which works for both, but we should explicitly remove cursor:pointer
   since they're no longer interactive links. */
.industry-pill {
  cursor: default !important;
}
.industry-pill:hover {
  /* keep the subtle hover scale for visual delight, but no link behavior */
  transform: translateY(-2px);
}

/* ─── 7. PRESENCE / COUNTRY GRID — 5 columns desktop ──────────────────
   v1.3 added this but reinforcing here in case earlier rules win. */
.presence .country-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
@media (max-width: 1024px) {
  .presence .country-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 720px) {
  .presence .country-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 420px) {
  .presence .country-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ─── 8. CARDS / GRIDS GENERAL: avoid horizontal overflow ─────────────
   Many cards use flexbox with content that can exceed cell width
   (long text, fixed-size icons, etc). Apply min-width: 0 so they shrink. */
@media (max-width: 880px) {
  .featured-row,
  .products-grid,
  .services-grid,
  .clients-grid,
  .country-grid,
  .country-card,
  .product-card,
  .product-featured,
  .service-card,
  .industry-block .clients-grid,
  .industry-block .client-card {
    min-width: 0 !important;
    max-width: 100%;
  }
}

/* ─── 9. FOOTER GRID ON MOBILE ─────────────────────────────────────────
   Ensure footer doesn't overflow. */
@media (max-width: 880px) {
  footer .footer-top {
    grid-template-columns: 1fr 1fr !important;
    gap: 32px !important;
  }
}
@media (max-width: 480px) {
  footer .footer-top {
    grid-template-columns: 1fr !important;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   v1.5 — HOMEPAGE-ONLY FIXES
   
   Targeting:
   1. Hero CTA buttons splitting to 2 lines on mobile (selector was wrong
      in v1.4 — actual class is .hero-actions, not .hero-ctas)
   2. Hero stats: pair first two side-by-side, center Multi-Sector below
   3. Reduce spacing between buttons and stats
   4. What We Do tiles → mirror About Us pillar structure (no hyperlinks)
   5. Industry Verticals icons: bigger, more elegant
   6. Products grid: 4 uniform cards (no gradient "and more"), add "many
      more..." footer line
   ════════════════════════════════════════════════════════════════════════ */

/* ─── 1. HERO CTA BUTTONS — keep on one line on mobile ─────────────────
   The actual HTML uses .hero-actions, not .hero-ctas. v1.4 targeted the
   wrong class so the rules never applied. Fixing the selector and
   tightening the layout. */
.hero-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 880px) {
  .hero-actions {
    flex-wrap: nowrap !important;
    gap: 10px !important;
  }
  .hero-actions .btn-primary,
  .hero-actions .btn-ghost,
  .hero-actions .btn-outline {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    padding: 13px 16px !important;
    font-size: 13px !important;
    justify-content: center;
    text-align: center;
  }
  /* On the very narrowest phones, shrink padding more so both buttons fit */
  @media (max-width: 380px) {
    .hero-actions .btn-primary,
    .hero-actions .btn-ghost,
    .hero-actions .btn-outline {
      padding: 12px 10px !important;
      font-size: 12px !important;
    }
  }
}

/* ─── 2. HERO STATS — pair first two, Multi-Sector centered below ─────
   New HTML structure: .hero-stats wraps a .hero-stats-pair (first two
   stats) and a separate .hero-stat.hero-stat-centered (Multi-Sector).
   On desktop they all sit in one row. On mobile/narrow, pair stays side
   by side, Multi-Sector centers below. */
.hero-stats {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.hero-stats-pair {
  display: flex;
  gap: 40px;
  flex: 0 0 auto;
}
.hero-stat-centered {
  /* On desktop this stays inline; mobile overrides below */
  flex: 0 0 auto;
}

@media (max-width: 880px) {
  .hero-stats {
    flex-direction: column;
    gap: 20px !important;
    row-gap: 20px !important;
    align-items: stretch;
  }
  .hero-stats-pair {
    display: flex !important;
    flex-direction: row !important;
    gap: 16px !important;
    justify-content: space-between;
  }
  .hero-stats-pair .hero-stat {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
  }
  .hero-stats-pair .hero-stat > span {
    display: block;
    text-align: center;
    width: 100%;
  }
  .hero-stat-centered {
    text-align: center !important;
    width: 100% !important;
    display: block !important;
    margin: 8px 0 0 !important;
    padding-top: 12px;
    border-top: 1px solid var(--gray-100);
  }
  .hero-stat-centered > span {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }
  .hero-stat-centered span:first-child {
    font-size: 22px !important;
  }
  /* Prevent numeric stats wrapping — they must stay on a single line */
  .hero-stat span:first-child {
    white-space: nowrap;
  }
  /* Allow subtitle to wrap on multiple lines as needed */
  .hero-stat span:last-child {
    white-space: normal;
    line-height: 1.35;
  }
}

/* ─── 3. REDUCE SPACING between buttons and stats on mobile ───────────
   The v1.4 hero-stats had 56px margin-top + 40px padding-top = 96px of
   space above the stats row. Way too much on mobile. */
@media (max-width: 880px) {
  .hero-stats {
    margin-top: 28px !important;
    padding-top: 24px !important;
  }
  /* Also tighten the hero-sub → hero-actions gap if there is one */
  .hero-sub {
    margin-bottom: 20px !important;
  }
}

/* ─── 4. SERVICES PILLARS (What We Do) — mirror About Us pillar style ──
   v1.5 replaced the .service-card hyperlinked tiles with .services-pillar
   tiles that match .about-pillar (compact horizontal: icon + text).
   On desktop, lay out as a 2-column grid since there are 5 items.
   On mobile, single column (one pillar per row). */
.services-pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 48px;
}
@media (max-width: 880px) {
  .services-pillars {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-top: 32px !important;
  }
}
.services-pillar {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 18px 20px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: var(--radius);
  transition: border-color 0.2s, transform 0.2s;
}
.services-pillar:hover {
  border-color: oklch(22% 0.06 255 / 0.2);
  transform: translateY(-2px);
}
.services-pillar-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  background: oklch(22% 0.06 255 / 0.08);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.services-pillar-icon svg {
  width: 18px;
  height: 18px;
  color: oklch(22% 0.06 255 / 0.65);
}
.services-pillar > div strong {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
  letter-spacing: -0.1px;
}
.services-pillar > div span {
  display: block;
  font-size: 13.5px;
  color: var(--gray-500);
  line-height: 1.5;
}

/* ─── 5. INDUSTRY VERTICALS — bigger, more elegant icons ──────────────
   Previously: 56x56 container, 28x28 SVG, flat gray background.
   v1.5: 88x88 container with subtle gradient + soft shadow, 46x46 SVG,
   per-pill subtle accent. Pill itself gets a deeper rest-state and a
   pronounced hover. */
.industry-pill {
  padding: 36px 22px !important;
  background: #ffffff !important;
  border: 1px solid var(--gray-100) !important;
  gap: 18px !important;
  box-shadow: 0 1px 2px oklch(0% 0 0 / 0.03);
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s !important;
}
.industry-pill:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px oklch(22% 0.06 255 / 0.14) !important;
  border-color: oklch(52% 0.18 250 / 0.3) !important;
}
.industry-pill .industry-icon {
  width: 88px !important;
  height: 88px !important;
  border-radius: 22px !important;
  background: linear-gradient(135deg, #eaf1f9 0%, #d4e2f0 100%) !important;
  box-shadow: 0 2px 12px oklch(22% 0.06 255 / 0.08), inset 0 1px 0 rgba(255,255,255,0.7);
  position: relative;
}
.industry-pill .industry-icon::after {
  /* A subtle inner highlight ring for a more refined look */
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: 21px;
  border: 1px solid rgba(255,255,255,0.5);
  pointer-events: none;
}
.industry-pill .industry-icon svg {
  width: 46px !important;
  height: 46px !important;
  color: #1a2b4a !important;
  stroke-width: 1.6;
  position: relative;
  z-index: 1;
}
.industry-pill:hover .industry-icon {
  background: linear-gradient(135deg, #dde9f5 0%, #c5d8ec 100%) !important;
  transform: scale(1.05);
  transition: transform 0.3s, background 0.3s;
}
.industry-pill span {
  font-size: 15px !important;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -0.2px;
}

@media (max-width: 880px) {
  .industries-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }
  .industry-pill {
    padding: 24px 16px !important;
    gap: 14px !important;
  }
  .industry-pill .industry-icon {
    width: 64px !important;
    height: 64px !important;
    border-radius: 18px !important;
  }
  .industry-pill .industry-icon svg {
    width: 34px !important;
    height: 34px !important;
  }
}

/* ─── 6. PRODUCTS SECTION — 4 uniform cards + "many more..." footer ──
   The 4th product (Custom & Legacy) now uses the same .product-card
   styling as the other 3 (no inline gradient overrides). And a
   "many more..." text line sits below the grid before the CTA buttons. */
.products-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px;
}
@media (max-width: 1100px) {
  .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .products-grid {
    grid-template-columns: 1fr !important;
  }
}

.products-many-more {
  margin-top: 28px;
  text-align: center;
  font-size: 14px;
  color: var(--gray-500);
  font-style: italic;
}
.products-many-more a {
  color: var(--blue);
  font-weight: 600;
  font-style: normal;
  text-decoration: none;
  border-bottom: 1px dashed currentColor;
  padding-bottom: 1px;
  transition: color 0.2s, border-color 0.2s;
}
.products-many-more a:hover {
  color: var(--navy);
  border-color: var(--navy);
}

/* ════════════════════════════════════════════════════════════════════════
   v1.6 — CLIENTS PAGE: COMPACT INDUSTRY CARDS + CLIENT SPEAK + CERT MODAL
   
   Three new things:
   1. Make existing industry-block cards more compact (per user spec)
   2. New "Client Speak" section with grouped testimonial cards
   3. Certificate modal that opens when "View certificate" is clicked
   ════════════════════════════════════════════════════════════════════════ */

/* ─── 1. COMPACT EXISTING INDUSTRY CARDS ──────────────────────────────
   v1.6 makes the Clients page industry sections smaller: less padding,
   smaller icons, tighter typography. The Client Speak section below now
   carries the visual weight; this list should read as a quick directory. */
.clients-section .industry-block { margin-bottom: 44px !important; }
.clients-section .industry-header { gap: 12px !important; margin-bottom: 18px !important; }
.clients-section .industry-header .industry-icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 9px !important;
}
.clients-section .industry-header .industry-icon svg {
  width: 18px !important;
  height: 18px !important;
}
.clients-section .industry-header h2 { font-size: 17px !important; }
.clients-section .industry-header .industry-count { font-size: 11px !important; padding: 3px 9px !important; }

.clients-section .clients-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
}
.clients-section .client-card {
  padding: 16px 14px !important;
  gap: 6px !important;
  border-radius: 12px !important;
  border-width: 1px !important;
}
.clients-section .client-card .client-logo {
  width: 40px !important;
  height: 40px !important;
  border-radius: 10px !important;
  margin-bottom: 8px !important;
}
.clients-section .client-card .client-logo svg {
  width: 22px !important;
  height: 22px !important;
}
.clients-section .client-card h3 {
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.1px;
}
.clients-section .client-card p {
  font-size: 11.5px !important;
  line-height: 1.5 !important;
  color: var(--gray-500);
}
.clients-section .client-card .client-tag {
  font-size: 10.5px !important;
  padding: 2px 7px !important;
}

@media (max-width: 900px) {
  .clients-section .clients-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 520px) {
  .clients-section .clients-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ─── 2. CLIENT SPEAK SECTION ──────────────────────────────────────────
   Mirrors the Claude design — distinct grayish background to separate
   from the rest of the page, large heading, then industry groups with
   testimonial cards. */
.client-speak {
  background: #eef1f5;
  padding: 72px 5vw 88px;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.client-speak-inner {
  max-width: 1120px;
  margin: 0 auto;
}
.client-speak-header { max-width: 680px; }
.client-speak-eyebrow {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #2b6cf0;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.client-speak-heading {
  font-size: clamp(28px, 5vw, 46px);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #14233c;
  margin: 0 0 18px;
}
.client-speak-lede {
  font-size: 17px;
  line-height: 1.6;
  color: #5a6a7e;
  margin: 0;
}

.cs-group { margin-top: 52px; }
.cs-group-header {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
}
.cs-group-title {
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #14233c;
  margin: 0;
  white-space: nowrap;
}
.cs-group-rule {
  flex: 1;
  height: 1px;
  background: #dde3ec;
}

.cs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  gap: 20px;
}

.cs-card {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 18px;
  padding: 30px 28px 24px;
  box-shadow: 0 1px 2px rgba(20, 35, 60, 0.04), 0 8px 24px rgba(20, 35, 60, 0.04);
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cs-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 1px 2px rgba(20, 35, 60, 0.05), 0 14px 36px rgba(20, 35, 60, 0.08);
}
.cs-card-head {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 20px;
}
.cs-card-initials {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #e9f1fe;
  color: #14233c;
  font-weight: 800;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  letter-spacing: -0.02em;
}
.cs-card-id { min-width: 0; }
.cs-card-company {
  font-size: 15.5px;
  font-weight: 700;
  color: #14233c;
  line-height: 1.25;
}
.cs-card-person {
  font-size: 13px;
  color: #7c899a;
  line-height: 1.3;
}
.cs-card-quote {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 600;
  color: #1d2c45;
  margin: 0 0 12px;
  letter-spacing: -0.01em;
}
.cs-card-detail {
  font-size: 14.5px;
  line-height: 1.55;
  color: #5a6a7e;
  margin: 0 0 22px;
}
.cs-card-detail strong {
  color: #14233c;
  font-weight: 700;
}
.cs-card-foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid #eef1f5;
  flex-wrap: wrap;
}
.cs-card-tag {
  font-size: 12px;
  font-weight: 600;
  color: #2b6cf0;
  background: #e9f1fe;
  padding: 6px 11px;
  border-radius: 7px;
}
.cs-card-action {
  appearance: none;
  border: 0;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  color: #14233c;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
}
.cs-card-action:hover { color: #2b6cf0; }
.cs-card-action span { font-size: 15px; transition: transform 0.2s ease; }
.cs-card-action:hover span { transform: translateX(2px); }

/* Trusted-by strip at the bottom */
.cs-trusted {
  margin-top: 56px;
  padding-top: 36px;
  border-top: 1px solid #e1e6ee;
}
.cs-trusted-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.13em;
  color: #94a1b2;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 22px;
}
.cs-trusted-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px 40px;
}
.cs-trusted-row span {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #9aa6b6;
}

/* Mobile adjustments for Client Speak */
@media (max-width: 720px) {
  .client-speak { padding: 56px 5vw 72px; }
  .cs-group { margin-top: 40px; }
  .cs-group-header { gap: 12px; margin-bottom: 18px; }
  .cs-group-title { font-size: 18px; white-space: normal; }
  .cs-grid { grid-template-columns: 1fr; gap: 14px; }
  .cs-card { padding: 22px 20px 18px; border-radius: 14px; }
  .cs-card-head { gap: 11px; margin-bottom: 16px; }
  .cs-card-initials { width: 40px; height: 40px; font-size: 14px; border-radius: 10px; }
  .cs-card-company { font-size: 14.5px; }
  .cs-card-person { font-size: 12.5px; }
  .cs-card-quote { font-size: 16px; }
  .cs-card-detail { font-size: 13.5px; margin-bottom: 16px; }
  .cs-card-foot { padding-top: 14px; gap: 8px; }
  .cs-card-tag { font-size: 11px; padding: 5px 9px; }
  .cs-card-action { font-size: 12.5px; }
  .cs-trusted-row { gap: 10px 24px; }
  .cs-trusted-row span { font-size: 15px; }
}

/* ─── 3. CERTIFICATE MODAL ─────────────────────────────────────────────
   Hidden by default, becomes a full-screen overlay when .is-open is set
   on the modal element. Click backdrop or X to close; ESC also closes
   (wired up in the JS in footer.php). */
.cs-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 32px 18px;
  overflow-y: auto;
}
.cs-modal.is-open {
  display: flex;
  animation: cs-modal-fade 0.18s ease;
}
.cs-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 24, 40, 0.72);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  z-index: 0;
}
.cs-modal-wrap {
  position: relative;
  z-index: 1;
  width: min(880px, 100%);
  margin: auto;
  animation: cs-modal-rise 0.22s ease;
}
.cs-modal-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.cs-modal-title {
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  min-width: 0;
}
.cs-modal-close {
  appearance: none;
  border: 0;
  cursor: pointer;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 18px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  transition: background 0.15s ease;
}
.cs-modal-close:hover { background: rgba(255, 255, 255, 0.24); }
.cs-modal-image-wrap {
  position: relative;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  min-height: 200px;
}
.cs-modal-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7c899a;
  font-size: 13px;
  font-weight: 600;
  z-index: 0;
}
.cs-modal-image {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  transition: opacity 0.2s ease;
  position: relative;
  z-index: 1;
}
.cs-modal-image.is-loaded { opacity: 1; }
.cs-modal-image:not([src]) { display: none; }

@keyframes cs-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cs-modal-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@media (max-width: 720px) {
  .cs-modal { padding: 16px; }
  .cs-modal-title { font-size: 13px; }
  .cs-modal-close { width: 34px; height: 34px; font-size: 16px; }
}

/* ════════════════════════════════════════════════════════════════════════
   v1.7 — PRODUCTS & SERVICES REDESIGN
   
   Components:
   - Collapsible product cards (3 flagship + Custom & Legacy callout)
   - Sub-collapsible module cards inside each product
   - VeTrac workflow visualization (7-step pipeline)
   - UniERP 17-module 2-column grid
   - Services tile grid (5 services + 1 centered CTA tile)
   - Unified FAQ accordion
   - Mobile responsive throughout
   ════════════════════════════════════════════════════════════════════════ */

/* ─── Wrapper sections ─────────────────────────────────────────────── */
.ps-products,
.ps-services,
.ps-faq {
  padding: 80px 5vw;
}
.ps-products { background: #f6f9fc; }
.ps-services { background: #ffffff; }
.ps-faq      { background: #f6f9fc; }

.ps-products-header,
.ps-services-header,
.ps-faq-header {
  max-width: 760px;
  margin: 0 auto 44px;
  text-align: center;
}
.ps-products-header h2,
.ps-services-header h2,
.ps-faq-header h2 {
  font-size: clamp(28px, 3.4vw, 38px);
  font-weight: 800;
  color: #0f1c2e;
  letter-spacing: -0.8px;
  margin: 14px 0 12px;
  line-height: 1.15;
}
.ps-products-sub,
.ps-services-sub,
.ps-faq-sub {
  font-size: 15px;
  color: #4b586e;
  line-height: 1.6;
  margin: 0;
}

/* ─── 1. PRODUCT CARDS (top-level collapsible) ─────────────────────── */
.ps-product {
  background: #ffffff;
  border: 1px solid #d8e1ec;
  border-radius: 14px;
  margin-bottom: 16px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(15, 28, 46, 0.04);
  scroll-margin-top: 90px;
}
.ps-product[open] {
  box-shadow: 0 6px 24px rgba(15, 28, 46, 0.08);
}

.ps-product-summary {
  background: #0f1c2e;
  color: #ffffff;
  padding: 22px 26px;
  display: flex;
  align-items: center;
  gap: 16px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.ps-product-summary::-webkit-details-marker { display: none; }
.ps-product-summary::marker { content: ''; }
.ps-product:hover .ps-product-summary {
  background: #1a2a45;
}

.ps-product-icon {
  width: 48px;
  height: 48px;
  border-radius: 11px;
  background: rgba(108, 179, 245, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ps-product-icon i {
  font-size: 24px;
  color: #6cb3f5;
}
.ps-product-id {
  flex: 1;
  min-width: 0;
}
.ps-product-eyebrow {
  font-size: 11px;
  font-weight: 700;
  color: #6cb3f5;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.ps-product-name {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.3px;
  margin-bottom: 2px;
}
.ps-product-tagline {
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.72);
}
.ps-product-chevron {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.25s ease, background 0.2s ease;
  flex-shrink: 0;
}
.ps-product-chevron i {
  font-size: 16px;
  color: #ffffff;
  transition: transform 0.25s ease;
}
.ps-product[open] .ps-product-chevron i {
  transform: rotate(180deg);
}
.ps-product[open] .ps-product-chevron {
  background: rgba(108, 179, 245, 0.2);
}

.ps-product-body {
  padding: 28px 32px 32px;
  animation: ps-fade-in 0.25s ease;
}
@keyframes ps-fade-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: none; }
}

/* Stats strip below product header */
.ps-stats-strip {
  background: #f5f9fd;
  border-left: 3px solid #2d6fb5;
  padding: 12px 16px;
  margin-bottom: 22px;
  border-radius: 0 6px 6px 0;
}
.ps-stats-strip span {
  font-size: 13px;
  color: #0f1c2e;
  font-weight: 500;
}
.ps-stats-strip span.dot { color: #cbd5e0; padding: 0 4px; }

/* Section headings inside a product */
.ps-section-h {
  font-size: 11px;
  font-weight: 700;
  color: #4b586e;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 4px 0 10px;
}
.ps-prose {
  font-size: 14px;
  color: #4b586e;
  line-height: 1.65;
  margin: 0 0 22px;
}

/* ─── 2. MODULES — sub-collapsibles inside a product ───────────────── */
.ps-modules-label {
  font-size: 11px;
  font-weight: 700;
  color: #4b586e;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 8px 0 12px;
}
.ps-modules-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 24px;
}
.ps-modules-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 18px;
}
.ps-modules-grid-2col {
  grid-template-columns: 1fr 1fr;
}

.ps-module {
  background: #ffffff;
  border: 1px solid #d8e1ec;
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.ps-module:hover {
  border-color: #b6c6db;
}
.ps-module[open] {
  border-color: #2d6fb5;
}

.ps-module-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  background: #ffffff;
  transition: background 0.2s ease;
}
.ps-module-summary::-webkit-details-marker { display: none; }
.ps-module-summary::marker { content: ''; }
.ps-module[open] .ps-module-summary {
  background: #eef4fa;
}
.ps-module-static .ps-module-summary {
  cursor: default;
}
.ps-module-summary > i {
  font-size: 18px;
  color: #2d6fb5;
  flex-shrink: 0;
}
.ps-module-id {
  flex: 1;
  min-width: 0;
}
.ps-module-name {
  font-size: 14px;
  font-weight: 700;
  color: #0f1c2e;
  letter-spacing: -0.1px;
  line-height: 1.3;
}
.ps-module-desc {
  font-size: 12px;
  color: #4b586e;
  line-height: 1.45;
  margin-top: 2px;
}
.ps-module-chevron {
  font-size: 14px;
  color: #4b586e;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.ps-module[open] .ps-module-chevron i {
  transform: rotate(180deg);
  color: #2d6fb5;
}

.ps-module-body {
  padding: 4px 16px 14px 46px;
  background: #eef4fa;
  border-top: 1px solid rgba(45, 111, 181, 0.15);
}
.ps-module-items {
  list-style: none;
  padding: 0;
  margin: 12px 0 4px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 18px;
}
.ps-module-items li {
  font-size: 12.5px;
  color: #0f1c2e;
  line-height: 1.55;
  padding-left: 14px;
  position: relative;
}
.ps-module-items li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 5px;
  height: 5px;
  background: #2d6fb5;
  border-radius: 50%;
}

/* ─── 3. SPECIAL FEATURES + OPTIONAL INTEGRATIONS — 2-column ───────── */
.ps-features-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 24px 0;
}
.ps-features-grid-single { grid-template-columns: 1fr; }
.ps-features-label {
  font-size: 11px;
  font-weight: 700;
  color: #4b586e;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.ps-features-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ps-features-list li {
  font-size: 13px;
  color: #0f1c2e;
  line-height: 1.7;
  padding-left: 16px;
  position: relative;
}
.ps-features-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 5px;
  height: 5px;
  background: #2d6fb5;
  border-radius: 50%;
}

/* Inline note (Windows-only warning, etc.) */
.ps-note {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 8px;
  margin: 20px 0;
  font-size: 12.5px;
}
.ps-note-warn {
  background: #fef6e7;
  color: #8a5a00;
  border: 1px solid #f0d9a0;
}
.ps-note i { font-size: 18px; flex-shrink: 0; }

/* ─── 4. LICENSING — On-Premise / Cloud cards ──────────────────────── */
.ps-licensing-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 12px 0 24px;
}
.ps-licensing-card {
  background: #f6f9fc;
  border: 1px solid #d8e1ec;
  border-radius: 10px;
  padding: 16px 18px;
}
.ps-licensing-type {
  font-size: 11px;
  font-weight: 700;
  color: #2d6fb5;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.ps-licensing-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ps-licensing-card ul li {
  font-size: 12.5px;
  color: #0f1c2e;
  line-height: 1.6;
  padding-left: 14px;
  position: relative;
  margin-bottom: 4px;
}
.ps-licensing-card ul li::before {
  content: '·';
  position: absolute;
  left: 4px;
  top: -2px;
  color: #2d6fb5;
  font-weight: 700;
  font-size: 16px;
}

/* ─── 5. PRODUCT CTA buttons ───────────────────────────────────────── */
.ps-product-cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.ps-product-cta a { text-decoration: none; }

/* ─── 6. VETRAC WORKFLOW PIPELINE ──────────────────────────────────── */
.ps-workflow {
  background: #f6f9fc;
  border: 1px solid #d8e1ec;
  border-radius: 10px;
  padding: 18px 14px;
  margin: 4px 0 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  flex-wrap: nowrap;
}
.ps-workflow-step {
  flex: 1;
  text-align: center;
  min-width: 0;
}
.ps-workflow-circle {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #2d6fb5;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 6px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(45, 111, 181, 0.3);
}
.ps-workflow-label {
  font-size: 11.5px;
  color: #0f1c2e;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.1px;
}
.ps-workflow-arrow {
  font-size: 14px;
  color: #2d6fb5;
  flex-shrink: 0;
}

/* ─── 7. CUSTOM & LEGACY CALLOUT (no arrow per v1.7 spec) ──────────── */
.ps-custom-callout {
  max-width: 1100px;
  margin: 32px auto 0;
  background: linear-gradient(135deg, #f5f8fc 0%, #e8eff7 100%);
  border: 1px solid #d8e1ec;
  border-radius: 14px;
  padding: 22px 26px;
  display: flex;
  align-items: center;
  gap: 18px;
  scroll-margin-top: 90px;
}
.ps-custom-icon {
  width: 48px;
  height: 48px;
  border-radius: 11px;
  background: #2d6fb5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ps-custom-icon i {
  font-size: 24px;
  color: #ffffff;
}
.ps-custom-text { flex: 1; }
.ps-custom-eyebrow {
  font-size: 11px;
  font-weight: 700;
  color: #2d6fb5;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.ps-custom-title {
  font-size: 19px;
  font-weight: 800;
  color: #0f1c2e;
  letter-spacing: -0.2px;
  line-height: 1.2;
}
.ps-custom-desc {
  font-size: 13.5px;
  color: #4b586e;
  margin-top: 4px;
  line-height: 1.5;
}

/* ─── 8. SERVICES TILE GRID ────────────────────────────────────────── */
.ps-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  max-width: 1100px;
  margin: 0 auto;
}
.ps-service-card {
  background: #ffffff;
  border: 1px solid #d8e1ec;
  border-radius: 12px;
  padding: 22px 22px 24px;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.ps-service-card:hover {
  transform: translateY(-3px);
  border-color: #2d6fb5;
  box-shadow: 0 10px 24px rgba(15, 28, 46, 0.08);
}
.ps-service-icon {
  font-size: 28px;
  color: #2d6fb5;
  margin-bottom: 10px;
  display: block;
}
.ps-service-name {
  font-size: 15px;
  font-weight: 800;
  color: #0f1c2e;
  margin-bottom: 5px;
  letter-spacing: -0.1px;
}
.ps-service-desc {
  font-size: 13px;
  color: #4b586e;
  line-height: 1.5;
}

/* "Not sure where to start?" — centered content per v1.7 spec */
.ps-service-cta-tile {
  background: #0f1c2e;
  color: #ffffff;
  border-radius: 12px;
  padding: 22px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 6px;
  transition: background 0.2s ease, transform 0.2s ease;
  position: relative;
}
.ps-service-cta-tile:hover {
  background: #1a2a45;
  transform: translateY(-3px);
}
.ps-service-cta-title {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.1px;
}
.ps-service-cta-sub {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.5;
  max-width: 220px;
}
.ps-service-cta-arrow {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(108, 179, 245, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
}
.ps-service-cta-arrow i {
  font-size: 16px;
  color: #6cb3f5;
}

/* ─── 9. FAQ ACCORDION ─────────────────────────────────────────────── */
.ps-faq-list {
  max-width: 800px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #d8e1ec;
  border-radius: 12px;
  overflow: hidden;
}
.ps-faq-item {
  border-bottom: 1px solid #e7ecf3;
}
.ps-faq-item:last-child { border-bottom: 0; }
.ps-faq-item > summary {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  cursor: pointer;
  list-style: none;
  background: #ffffff;
  transition: background 0.18s ease;
  font-size: 14.5px;
  font-weight: 700;
  color: #0f1c2e;
}
.ps-faq-item > summary::-webkit-details-marker { display: none; }
.ps-faq-item > summary::marker { content: ''; }
.ps-faq-item > summary:hover {
  background: #f6f9fc;
}
.ps-faq-item[open] > summary {
  background: #f5f9fd;
}
.ps-faq-item > summary > i {
  font-size: 18px;
  color: #4b586e;
  transition: transform 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
}
.ps-faq-item[open] > summary > i {
  transform: rotate(180deg);
  color: #2d6fb5;
}
.ps-faq-body {
  padding: 4px 20px 18px;
  font-size: 13.5px;
  color: #4b586e;
  line-height: 1.65;
  background: #f5f9fd;
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — v1.7 product page
   ════════════════════════════════════════════════════════════════════ */
@media (max-width: 880px) {
  .ps-products,
  .ps-services,
  .ps-faq {
    padding: 56px 5vw;
  }
  .ps-product-summary {
    padding: 18px 18px;
    gap: 12px;
  }
  .ps-product-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
  }
  .ps-product-icon i { font-size: 20px; }
  .ps-product-name { font-size: 18px; }
  .ps-product-tagline { font-size: 12.5px; }
  .ps-product-chevron { width: 32px; height: 32px; }
  .ps-product-body { padding: 22px 18px 26px; }
  .ps-stats-strip { padding: 10px 12px; }
  .ps-stats-strip span { font-size: 12px; }

  /* Modules grid → single column on mobile */
  .ps-modules-grid,
  .ps-modules-grid-2col {
    grid-template-columns: 1fr !important;
  }
  .ps-module-items {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .ps-module-body {
    padding: 4px 14px 12px 40px;
  }

  /* Features → single column */
  .ps-features-grid {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }

  /* Licensing → single column */
  .ps-licensing-grid {
    grid-template-columns: 1fr !important;
  }

  /* VeTrac workflow → wrap to 2 rows (per v1.7 spec) */
  .ps-workflow {
    flex-wrap: wrap !important;
    gap: 8px;
    padding: 14px 12px;
  }
  .ps-workflow-step {
    flex: 0 0 calc(25% - 6px);
    min-width: 70px;
  }
  .ps-workflow-arrow {
    flex: 0 0 auto;
    font-size: 11px;
  }

  /* Custom & legacy callout → stack on mobile */
  .ps-custom-callout {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
  }

  /* Services tile grid → 1 column on mobile */
  .ps-services-grid {
    grid-template-columns: 1fr !important;
    gap: 10px;
  }
  .ps-service-card { padding: 18px 18px 20px; }
  .ps-service-cta-tile { padding: 22px 20px; }

  /* FAQ slightly tighter */
  .ps-faq-item > summary { font-size: 14px; padding: 14px 16px; }
  .ps-faq-body { padding: 4px 16px 14px; font-size: 13px; }
}

@media (min-width: 881px) and (max-width: 1024px) {
  .ps-services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ps-modules-grid {
    /* UniERP 17 cards: 2 columns on tablet stays */
    grid-template-columns: 1fr 1fr;
  }
}
