/*
 * Theme Name: Factoriant Research
 * Theme URI: https://factoriant.com
 * Description: Child theme for Twenty Twenty-One - Factoriant Research
 * Author: Potent Pages
 * Author URI: https://potentpages.com
 * Template: twentytwentyone
 * Version: 1.0.0
 * License: GNU General Public License v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain: factoriant-research
 * Domain Path: /languages
 */
html {
  scroll-behavior: smooth;
}
blockquote:before{
  display:none;
}

:root{
      --ink:#0b1220;
      --muted:#526071;
      --hair:rgba(15,23,42,.12);
      --paper:#ffffff;
      --wash:#f6f8fb;

      /* Modern institutional palette */
      --navy:#0b2a4a;
      --navy2:#0a3a6b;
      --teal:#0b7663;

      --link:var(--navy2);
      --max:1140px;

      --radius:14px;
      --shadow:0 16px 40px rgba(2, 6, 23, .08);
      --shadow2:0 10px 22px rgba(2, 6, 23, .06);

      --sans:"Inter", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
      --serif:"Libre Baskerville", ui-serif, Georgia, "Times New Roman", Times, serif;
      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

      --focus: rgba(11,58,107,.25);
    }

    *{ box-sizing:border-box; }
    html,body{ height:100%; }
    body{
      margin:0;
      color:var(--ink);
      font-family:var(--serif); /* main text */
      background:
        radial-gradient(1200px 500px at 20% -10%, rgba(11,58,107,.10), transparent 60%),
        radial-gradient(900px 380px at 90% 0%, rgba(11,118,99,.10), transparent 55%),
        linear-gradient(180deg, var(--wash) 0%, #fff 40%);
    }

    a{ color:var(--link); text-decoration:none; }
    a:hover{ text-decoration:underline; }

    .wrap{ max-width:var(--max); margin:0 auto; padding:0 22px; }

    .skip{
      position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
    }
    .skip:focus{
      left:16px; top:16px; width:auto; height:auto; padding:10px 12px;
      background:#fff; border:1px solid var(--hair); border-radius:10px; z-index:9999;
      outline: 3px solid var(--focus);
    }

    /* Top navigation */
    .topbar{
      position:sticky;
      top:0;
      z-index:50;
      border-bottom:1px solid var(--hair);
      background:rgba(255,255,255,.78);
      backdrop-filter:saturate(180%) blur(14px);
    }
    header{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      padding:14px 0;
    }

    .logo{
      display:flex; align-items:center; gap:14px;
      min-width:240px;
    }
    .logo img{
      height:48px; /* was 34px */
      width:auto;
      display:block;
    }
    .brand-sub{
      font-family:var(--sans);
      font-size:12px;
      color:var(--muted);
      letter-spacing:.02em;
      line-height:1.2;
      margin-top:2px;
    }
    .brand-stack{
      display:flex;
      flex-direction:column;
      gap:2px;
    }
    .brand-stack b{
      font-family:var(--sans);
      font-weight:700;
      letter-spacing:.06em;
      font-size:12px;
      text-transform:uppercase;
      color:rgba(2,6,23,.65);
    }

    nav{
      display:flex;
      align-items:center;
      gap:10px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    nav a{
      font-family:var(--sans);
      font-size:13px;
      color:rgba(2,6,23,.82);
      padding:8px 10px; /* was 9px 12px */
      border-radius:12px;
      transition: background .15s ease, transform .15s ease;
    }
    header nav li{
      list-style: none;
    }
    nav a:hover{
      background:rgba(2,6,23,.04);
      text-decoration:none;
    }
    .nav-cta a{
      border:1px solid var(--hair);
      background:#fff;
    }
    .nav-cta:hover{ background:rgba(11,58,107,.06); }

    /* Hero */
    .hero{ padding:46px 0 18px; }
    .hero-grid{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap:18px;
      align-items:start;
    }

    .kicker{
      font-family:var(--sans);
      font-size:12px;
      color:rgba(2,6,23,.62);
      letter-spacing:.12em;
      text-transform:uppercase;
      margin:0 0 14px;
      display:flex;
      gap:10px;
      align-items:center;
      flex-wrap:wrap;
    }
    .pill{
      font-family:var(--sans);
      font-size:12px;
      letter-spacing:.08em;
      text-transform:uppercase;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid var(--hair);
      background:rgba(255,255,255,.7);
    }

    .headline{
      font-family:var(--sans); /* Inter as headline */
      font-weight:700;
      font-size:46px;
      line-height:1.06;
      margin:0 0 12px;
      letter-spacing:-0.02em;
      color:#081021;
    }
    .subhead{
      margin:0 0 18px;
      color:var(--muted);
      font-size:17px;
      line-height:1.72;
      max-width:62ch;
    }

    .hero-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:18px;
      align-items:center;
    }
    .btn{
      font-family:var(--sans);
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      padding:11px 14px;
      border-radius:12px;
      border:1px solid var(--hair);
      font-size:13px;
      font-weight:600;
      background:#fff;
      color:#0b1220;
      box-shadow:0 1px 0 rgba(2,6,23,.02);
      transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    }
    .btn.primary{
      background:linear-gradient(135deg, var(--navy) 0%, var(--navy2) 70%);
      border-color:transparent;
      color:#fff;
      box-shadow:0 18px 36px rgba(11,42,74,.22);
    }
    .btn:hover{ text-decoration:none; transform:translateY(-1px); box-shadow:0 22px 46px rgba(2,6,23,.10); }
    .btn:active{ transform:translateY(0px); box-shadow:0 14px 28px rgba(2,6,23,.08); }

    /* Panels / cards */
    .panel{
      background:rgba(255,255,255,.82);
      border:1px solid var(--hair);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .panel h3{
      font-family:var(--sans);
      margin:0;
      padding:16px 16px 0;
      font-size:12px;
      letter-spacing:.12em;
      text-transform:uppercase;
      color:rgba(2,6,23,.78);
    }
    .panel .inner{
      padding:12px 16px 18px;
      color:var(--muted);
      font-size:13.5px;
      line-height:1.65;
    }

    .atglance{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
      padding:16px;
      border-top:1px solid var(--hair);
      background:linear-gradient(180deg, rgba(255,255,255,.0) 0%, rgba(2,6,23,.02) 100%);
    }
    .badge{
      display:inline-flex;
      align-items:center;
      gap:10px;
      font-family:var(--sans);
      font-size:12px;
      padding:10px 12px;
      border-radius:12px;
      border:1px solid var(--hair);
      background:#fff;
      min-width:140px;
    }
    .dot{
      width:10px; height:10px; border-radius:999px;
      background:linear-gradient(180deg, var(--teal) 0%, var(--navy2) 100%);
      box-shadow:0 6px 14px rgba(11,118,99,.18);
      flex:0 0 auto;
    }
    .badge b{ display:block; font-size:13px; color:#0b1220; }
    .badge span{ display:block; font-size:12px; color:var(--muted); }

    .section{ padding:18px 0 26px; }
    .section h2{
      font-family:var(--sans);
      font-size:12px;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:rgba(2,6,23,.72);
      margin:0 0 12px;
    }

    .cards{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap:14px;
    }
    .card{
      border:1px solid var(--hair);
      border-radius:var(--radius);
      background:rgba(255,255,255,.86);
      padding:16px;
      box-shadow:var(--shadow2);
      transition: transform .15s ease, box-shadow .15s ease;
    }
    .card:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
    .tag{
      font-family:var(--sans);
      font-size:11px;
      letter-spacing:.14em;
      color:rgba(2,6,23,.62);
      text-transform:uppercase;
      margin-bottom:10px;
    }
    .card h3{
      font-family:var(--sans); /* modern headings */
      margin:0 0 8px;
      font-size:16px;
      font-weight:700;
      letter-spacing:-0.01em;
      color:#071022;
    }
    .card p{
      margin:0;
      color:var(--muted);
      font-size:13.5px;
      line-height:1.65;
    }
    .card a{
      font-family:var(--sans);
      display:inline-block;
      margin-top:12px;
      font-weight:700;
      font-size:13px;
    }

    .split{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap:14px;
      align-items:stretch;
    }

    .list{ margin:0; padding:0; list-style:none; }
    .li{
      border-top:1px solid var(--hair);
      padding:14px 16px;
      display:grid;
      gap:6px;
    }
    .li:first-child{ border-top:none; }

    .meta{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
      color:rgba(2,6,23,.62);
      font-size:12px;
      font-family:var(--sans);
    }
    .chip{
      font-family:var(--sans);
      font-size:11px;
      letter-spacing:.10em;
      text-transform:uppercase;
      padding:6px 9px;
      border-radius:999px;
      border:1px solid var(--hair);
      background:rgba(255,255,255,.8);
    }

    a.title{
      font-family:var(--sans);
      font-size:16px;
      font-weight:800;
      letter-spacing:-0.01em;
      color:#071022;
      text-decoration:none;
    }
    a.title:hover{ text-decoration:underline; }
    .desc{
      margin:0;
      color:var(--muted);
      font-size:13.5px;
      line-height:1.65;
      max-width:88ch;
    }

    .disclosure{
      background:rgba(255,255,255,.86);
      border:1px solid var(--hair);
      border-radius:var(--radius);
      padding:14px 16px;
      color:var(--muted);
      font-size:12.5px;
      line-height:1.65;
      box-shadow:var(--shadow2);
    }
    .disclosure b{
      font-family:var(--sans);
      color:#071022;
    }

    footer{
      padding:26px 0 34px;
      border-top:1px solid var(--hair);
      background:rgba(255,255,255,.86);
      margin-top:10px;
      backdrop-filter:saturate(180%) blur(10px);
    }
    .footgrid{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap:18px;
      align-items:start;
    }
    .small{
      margin:8px 0 0;
      color:var(--muted);
      font-size:12.5px;
      line-height:1.7;
    }
    .footlinks{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      justify-content:flex-end;
      align-items:center;
    }
    .footlinks li{
      list-style: none;
    }
    .footlinks a{
      font-family:var(--sans);
      font-size:13px;
      color:rgba(2,6,23,.78);
      padding:8px 10px;
      border-radius:10px;
    }
    .footlinks a:hover{ background:rgba(2,6,23,.04); text-decoration:none; }

    /* Focus styles */
    a:focus, button:focus{
      outline:3px solid var(--focus);
      outline-offset:2px;
      border-radius:12px;
    }
    .callout.quicklinks b{
      margin-bottom:0;
    }
    .menu-quick-links-container ul {
      margin-top:0!important;
      gap:0!important;
    }
    .menu-quick-links-container ul li{
      line-height: normal;
      border:0!important;
      padding:0;
    }
    .menu-quick-links-container ul li a{
      padding:0;
    }
  .menu-quick-links-container a:hover{
  background-color:transparent!important;
  }
    .menu-quick-links-container{
      justify-content: flex-start;
    }

    /* Responsive */
    @media (max-width: 980px){
      header{ align-items:flex-start; }
      .hero-grid{ grid-template-columns:1fr; }
      .cards{ grid-template-columns:1fr; }
      .split{ grid-template-columns:1fr; }
      .footgrid{ grid-template-columns:1fr; }
      .footlinks{ justify-content:flex-start; }
      .headline{ font-size:36px; }
      .logo img{ height:40px; } /* was 30px */
    }