/* === Lokale Schriften (DSGVO-konform, kein Google-Server) === */
/* IBM Plex Sans */
@font-face{font-display:swap;font-family:'IBM Plex Sans';font-style:normal;font-weight:400;src:url('../fonts/ibm-plex-sans-v23-latin-regular.woff2') format('woff2');}
@font-face{font-display:swap;font-family:'IBM Plex Sans';font-style:normal;font-weight:500;src:url('../fonts/ibm-plex-sans-v23-latin-500.woff2') format('woff2');}
@font-face{font-display:swap;font-family:'IBM Plex Sans';font-style:normal;font-weight:600;src:url('../fonts/ibm-plex-sans-v23-latin-600.woff2') format('woff2');}
/* IBM Plex Mono */
@font-face{font-display:swap;font-family:'IBM Plex Mono';font-style:normal;font-weight:400;src:url('../fonts/ibm-plex-mono-v20-latin-regular.woff2') format('woff2');}
@font-face{font-display:swap;font-family:'IBM Plex Mono';font-style:normal;font-weight:500;src:url('../fonts/ibm-plex-mono-v20-latin-500.woff2') format('woff2');}
/* Archivo */
@font-face{font-display:swap;font-family:'Archivo';font-style:normal;font-weight:400;src:url('../fonts/archivo-v25-latin-regular.woff2') format('woff2');}
@font-face{font-display:swap;font-family:'Archivo';font-style:normal;font-weight:500;src:url('../fonts/archivo-v25-latin-500.woff2') format('woff2');}
@font-face{font-display:swap;font-family:'Archivo';font-style:normal;font-weight:600;src:url('../fonts/archivo-v25-latin-600.woff2') format('woff2');}
@font-face{font-display:swap;font-family:'Archivo';font-style:normal;font-weight:700;src:url('../fonts/archivo-v25-latin-700.woff2') format('woff2');}

  :root{
    --paper:#EFF0EB;--paper-2:#E7E9E2;--ink:#1A2026;--ink-soft:#565E64;
    --line:#C7CBC2;--blue:#14455E;--blue-bright:#236C8E;--mark:#C2412D;--r:2px;--maxw:1160px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
    background-image:linear-gradient(to right,rgba(20,69,94,.045) 1px,transparent 1px),linear-gradient(to bottom,rgba(20,69,94,.045) 1px,transparent 1px);
    background-size:40px 40px;
  }
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
  h1,h2,h3{font-family:"Archivo",sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.08;margin:0;}
  .eyebrow{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);font-weight:500;display:inline-flex;align-items:center;gap:10px;}
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--blue);display:inline-block;}
  p{margin:0 0 1.1em;}
  .lead{font-size:19px;color:var(--ink-soft);max-width:54ch;}
  .mark{color:var(--mark);position:relative;white-space:nowrap;}
  .mark::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--mark);opacity:.8;transform:scaleX(0);transform-origin:left;transition:transform .9s .5s ease;}
  .revealed .mark::after{transform:scaleX(1);}

  /* Nav + Menü */
  header.top{position:sticky;top:0;z-index:60;background:rgba(239,240,235,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
  .top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;}
  .brand{font-family:"IBM Plex Mono",monospace;font-size:15px;letter-spacing:.04em;font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap;}
  .brand b{color:var(--blue);}
  .mainnav{display:flex;align-items:center;gap:22px;}
  .mainnav a{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.03em;color:var(--ink-soft);text-decoration:none;transition:.2s;}
  .mainnav a:hover{color:var(--ink);}
  .mainnav a.nav-cta{color:var(--ink);border:1px solid var(--ink);border-radius:var(--r);padding:9px 16px;}
  .mainnav a.nav-cta:hover{background:var(--ink);color:var(--paper);}
  .burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;}
  .burger span{display:block;width:18px;height:2px;background:var(--ink);margin:0 auto;transition:.25s;}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  section{padding:104px 0;border-bottom:1px solid var(--line);position:relative;}
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
  .revealed{opacity:1;transform:none;}

  /* Hero */
  .hero{padding:120px 0 80px;}
  .hero .eyebrow{margin-bottom:28px;}
  .hero h1{font-size:clamp(1.75rem,4.2vw,3.2rem);max-width:30ch;}
  .hero .lead{margin-top:26px;}
  .cta-row{margin-top:38px;display:flex;gap:18px;flex-wrap:wrap;align-items:center;}
  .btn{font-family:"IBM Plex Mono",monospace;font-size:14px;letter-spacing:.04em;text-decoration:none;border-radius:var(--r);padding:15px 26px;transition:.2s;display:inline-block;border:1px solid transparent;cursor:pointer;}
  .btn-primary{background:var(--blue);color:#fff;border-color:var(--blue);}
  .btn-primary:hover{background:var(--ink);border-color:var(--ink);}
  .btn-ghost{color:var(--ink);border-color:var(--line);}
  .btn-ghost:hover{border-color:var(--ink);}

  /* Hero — Fragen-Karussell */
  .hero-q{margin-top:44px;border-left:2px solid var(--blue);padding-left:24px;max-width:60ch;}
.hero-q-text {
  font-family: "Archivo", sans-serif;
  font-weight: 600;         /* war 500 — jetzt selbstbewusster */
  font-size: clamp(1.55rem, 3.2vw, 2.2rem);   /* deutlich größer */
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--ink);
  margin: 0;
  min-height: 2.6em;
  transition: opacity .35s ease;
}
  .hero-q-dots{display:flex;gap:8px;margin-top:22px;}
  .hero-q-dots button{width:26px;height:3px;border:none;padding:0;border-radius:2px;background:var(--line);cursor:pointer;transition:background .25s;}
  .hero-q-dots button.active{background:var(--blue);}
  /* aktiver Scroll-Pfeil */
  .scroll-cue{display:inline-flex;flex-direction:column;align-items:center;gap:6px;margin-top:56px;text-decoration:none;color:var(--ink-soft);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
  .scroll-cue svg{animation:bob 1.8s ease-in-out infinite;}
  .scroll-cue:hover{color:var(--blue);}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}

  /* Landkarte (optischer Unterbrecher + roter Faden) */
  .map{background:var(--ink);color:var(--paper);border-bottom:none;padding:64px 0;}
  .map .eyebrow{color:#8FBBCF;}
  .map .eyebrow::before{background:#8FBBCF;}
  .map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(255,255,255,.16);margin-top:30px;}
  .map-step{padding:30px 28px 4px;border-right:1px solid rgba(255,255,255,.16);position:relative;}
  .map-step:last-child{border-right:none;}
  .map-step .word{font-family:"Archivo",sans-serif;font-weight:700;font-size:1.9rem;color:#fff;letter-spacing:-.02em;}
  .map-step .word b{color:#8FBBCF;}
  .map-step .ms-no{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#8FBBCF;letter-spacing:.1em;position:absolute;top:30px;right:28px;}
  .map-step p{color:#B9C0C4;font-size:15.5px;margin-top:12px;line-height:1.55;}

  /* Movement-Banner */
  .movement{padding:60px 0 0;border-bottom:none;}
  .movement .wrap{display:flex;align-items:baseline;gap:20px;}
  .mv-no{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--blue);letter-spacing:.12em;}
  .mv-word{font-family:"Archivo",sans-serif;font-weight:700;font-size:clamp(2.2rem,5.5vw,3.8rem);letter-spacing:-.03em;line-height:1;}
  .mv-word b{color:var(--blue);}
  .mv-line{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--ink-soft);letter-spacing:.04em;margin-left:auto;align-self:center;max-width:30ch;text-align:right;}

  /* 01 verstehen — Preisfrage-Beweis (vorher / nachher) */
  .ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:40px;border:1px solid var(--line);}
  .ba{padding:34px 32px;}
  .ba-before{background:rgba(255,255,255,.16);border-right:1px solid var(--line);}
  .ba-after{background:rgba(20,69,94,.05);border-left:2px solid var(--blue);}
  .ba-tag{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.08em;color:var(--blue);display:block;margin-bottom:16px;text-transform:uppercase;}
  .ba-before .ba-tag{color:var(--ink-soft);}
  .ba p{font-family:"Archivo",sans-serif;font-weight:500;font-size:1.12rem;line-height:1.42;color:var(--ink);margin:0;letter-spacing:-.005em;}
  .ba-before p{color:var(--ink-soft);font-weight:400;font-family:"IBM Plex Sans",sans-serif;font-size:1.08rem;}
  .q-after{margin-top:44px;max-width:50ch;font-size:1.12rem;}
  .q-after b{color:var(--blue);font-weight:600;}

  /* Steuern / Regelkreis */
  .loop-head{max-width:62ch;}
  .loop-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem);max-width:24ch;margin:22px 0 22px;}
  .loop-diff{font-size:1.06rem;color:var(--ink-soft);max-width:60ch;margin:0 0 18px;}
  .loop-diff b{color:var(--ink);font-weight:600;}
  .loop-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:44px;}
  .loop-svg{width:100%;height:auto;}
  .stage-list{list-style:none;padding:0;margin:0;}
  .stage-list li{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);}
  .stage-list li:last-child{border-bottom:none;}
  .stage-list .n{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--blue);min-width:48px;padding-top:4px;letter-spacing:.05em;}
  .stage-list .t b{font-family:"Archivo",sans-serif;font-weight:600;display:block;letter-spacing:-.01em;margin-bottom:3px;}
  .stage-list .t span{color:var(--ink-soft);font-size:15px;}

  /* Leistungen */
  .serv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:48px;}
  .serv{background:var(--paper);padding:32px 30px;}
  .serv h3{font-size:1.12rem;margin-bottom:10px;letter-spacing:-.01em;}
  .serv p{color:var(--ink-soft);font-size:15px;margin:0;line-height:1.55;}
  .serv .opt{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--blue);letter-spacing:.1em;display:block;margin-bottom:14px;}

  /* 03 erreichen — vorher / jetzt */
  .reach-list{margin-top:42px;border-top:1px solid var(--line);}
  .reach{padding:26px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:baseline;}
  .reach .r-before{color:var(--ink-soft);font-size:1.02rem;line-height:1.45;}
  .reach .r-after{font-family:"Archivo",sans-serif;font-weight:500;font-size:1.14rem;line-height:1.4;color:var(--ink);letter-spacing:-.005em;}
  .reach-close{margin-top:34px;max-width:56ch;}

  /* Foto-Platzhalter */
  .photo{position:relative;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
  .photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo .ph-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:18px;color:var(--ink-soft);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em;line-height:1.5;}
  .photo .ph-label svg{opacity:.4;}

  /* Wer */
  .who{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start;}
  .who-portrait{aspect-ratio:4/5;position:sticky;top:90px;}
  .who h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:24px;max-width:16ch;}
  .who blockquote{margin:30px 0;padding:0 0 0 22px;border-left:2px solid var(--blue);font-family:"Archivo",sans-serif;font-weight:500;font-size:1.3rem;line-height:1.4;letter-spacing:-.01em;color:var(--ink);}
  .who .why{margin-top:26px;padding:22px 24px;background:rgba(255,255,255,.3);border:1px solid var(--line);border-radius:var(--r);}
  .who .why .k{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--blue);letter-spacing:.08em;margin-bottom:8px;}
  .who .why p{margin:0;color:var(--ink-soft);font-size:15.5px;}
  .who .sig{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--ink-soft);margin-top:28px;letter-spacing:.03em;}

  /* Kontakt */
  .contact{background:var(--ink);color:var(--paper);border-bottom:none;}
  .contact .eyebrow{color:#8FBBCF;}
  .contact .eyebrow::before{background:#8FBBCF;}
  .contact h2{font-size:clamp(1.9rem,3.6vw,2.8rem);max-width:18ch;color:#fff;}
  .contact .lead{color:#B9C0C4;}
  .contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:60px;align-items:start;margin-top:42px;}
  .contact-side .photo{aspect-ratio:1/1;margin-bottom:20px;}
  .contact-alt{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:#8FBBCF;line-height:1.9;}
  .contact-alt a{color:#fff;}
  .placeholder-note{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:#717C82;margin-top:26px;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;}

  footer{background:var(--ink);color:#7B858B;padding:40px 0;}
  footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
  .slogan{font-family:"Archivo",sans-serif;font-weight:600;font-size:1.1rem;color:#fff;letter-spacing:-.01em;}
  .slogan span{color:#8FBBCF;}
  footer a{color:#9AA3A8;text-decoration:none;font-size:13.5px;font-family:"IBM Plex Mono",monospace;}
  footer a:hover{color:#fff;}

  a:focus-visible,button:focus-visible{outline:2px solid var(--blue-bright);outline-offset:2px;}

  @media(max-width:880px){
    section{padding:74px 0;}
    .loop-layout,.serv-grid,.who,.map-grid,.contact-grid,.ba-grid,.reach{grid-template-columns:1fr;}
    .loop-layout{gap:36px;}
    .who-portrait{position:static;max-width:340px;}
    .loop-svg{max-width:340px;margin:0 auto;}
    .movement .wrap{flex-direction:column;gap:10px;}
    .mv-line{margin-left:0;text-align:left;}
    .map-step{border-right:none;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:24px;}
    .ba-before{border-right:none;border-bottom:1px solid var(--line);}
    .reach{gap:8px;}
  }
  @media(max-width:760px){
    .burger{display:flex;}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;scroll-behavior:auto!important;}
    .reveal{opacity:1;transform:none;transition:none;}
    .mark::after{transition:none;transform:scaleX(1);}
    .loop-dot,.scroll-cue svg{animation:none!important;}
  }

/* === WordPress-Menü (Phase 4): macht wp_nav_menu mit deinem Design kompatibel === */
.mainnav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:22px;}
.mainnav-list li{margin:0;}
.mainnav-list li.nav-cta a{color:var(--ink);border:1px solid var(--ink);border-radius:var(--r);padding:9px 16px;}
.mainnav-list li.nav-cta a:hover{background:var(--ink);color:var(--paper);}
@media(max-width:760px){
  .mainnav-list{flex-direction:column;align-items:stretch;gap:0;width:100%;}
  .mainnav-list li.nav-cta a{border:none;border-radius:0;color:var(--blue);}
  .mainnav-list li.nav-cta a:hover{background:var(--paper-2);color:var(--blue);}
}

/* === Unterseiten + Footer-Rechtslinks (Phase 4) === */
.subpage{padding:140px 0 90px;}
.subpage .eyebrow{margin-bottom:24px;}
.subpage-body{max-width:none;}
.subpage-body h1,.subpage-body h2,.subpage-body h3{font-family:"Archivo",sans-serif;letter-spacing:-.02em;margin:1.4em 0 .5em;line-height:1.15;}
.subpage-body h1{font-size:clamp(1.8rem,3.4vw,2.6rem);}
.subpage-body h2{font-size:1.5rem;}
.subpage-body a{color:var(--blue);}

.legal-list{list-style:none;display:inline-flex;gap:16px;align-items:baseline;margin:0;padding:0;}
.legal-list a{font-family:"Archivo",sans-serif;font-weight:600;font-size:14px;letter-spacing:-.01em;color:#fff;text-decoration:none;}
.legal-list a:hover{color:#8FBBCF;}
.legal-list .ai-note{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.03em;color:#7B858B;}

.contact-form-wrap {
  max-width: 560px;
}

.contact-form-wrap p {
  margin-bottom: 16px;
}

.contact-form-wrap label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: .06em;
  color: #8FBBCF;
  display: block;
  margin-bottom: 7px;
}

.contact-form-wrap input[type="text"],
.contact-form-wrap input[type="email"],
.contact-form-wrap input[type="tel"],
.contact-form-wrap textarea {
  width: 100%;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--r);
  color: var(--paper);
  font-family: inherit;
  font-size: 16px;
  padding: 13px 15px;
}

.contact-form-wrap textarea {
  min-height: 120px;
  resize: vertical;
}

.contact-form-wrap input::placeholder,
.contact-form-wrap textarea::placeholder {
  color: rgba(255,255,255,.35);
}

.contact-form-wrap input:focus,
.contact-form-wrap textarea:focus {
  outline: 2px solid var(--blue-bright);
  border-color: transparent;
}

/* Checkbox + Zustimmungstext */
.contact-form-wrap .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: inherit;
  font-size: 13.5px;
  letter-spacing: normal;
  color: #B9C0C4;
  text-transform: none;
  margin-bottom: 0;
}

.contact-form-wrap input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 4px;
  background: rgba(255,255,255,.04);
  cursor: pointer;
  position: relative;
  top: 2px;
}

.contact-form-wrap input[type="checkbox"]:checked {
  background: var(--blue-bright);
  border-color: var(--blue-bright);
}

.contact-form-wrap input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.contact-form-wrap .wpcf7-acceptance a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Submit-Button — exakt im Stil deines bisherigen .submit */
.contact-form-wrap input[type="submit"] {
  justify-self: start;
  background: #fff;
  color: var(--ink);
  border: none;
  font-family: "IBM Plex Mono", monospace;
  font-size: 14px;
  letter-spacing: .04em;
  border-radius: var(--r);
  padding: 15px 28px;
  cursor: pointer;
  transition: .2s;
}

.contact-form-wrap input[type="submit"]:hover {
  background: var(--blue-bright);
  color: #fff;
}

/* Fehlermeldungen */
.contact-form-wrap .wpcf7-not-valid-tip {
  color: #ffb3ab;
  font-size: 12.5px;
  margin-top: 6px;
  font-family: inherit;
}

/* Erfolgs-/Fehlermeldung */
.contact-form-wrap .wpcf7-response-output {
  border-radius: var(--r);
  font-family: "IBM Plex Mono", monospace;
  font-size: 13.5px;
  padding: 14px 18px;
  margin-top: 20px;
  border-width: 1px !important;
}

.contact-form-wrap .wpcf7-mail-sent-ok {
  border-color: rgba(76, 217, 100, .4) !important;
  background: rgba(76, 217, 100, .08);
  color: #8ee6a3;
}

.contact-form-wrap .wpcf7-validation-errors,
.contact-form-wrap .wpcf7-mail-sent-ng {
  border-color: rgba(255, 138, 128, .4) !important;
  background: rgba(255, 138, 128, .08);
  color: #ffb3ab;
}
@media(max-width:760px){
  nav#mainnav{
    position:fixed !important;
    top:64px !important;
    left:0 !important;
    right:0 !important;
    flex-direction:column !important;
    align-items:stretch !important;
    background:var(--paper) !important;
    border-bottom:1px solid var(--line) !important;
    padding:0 !important;
    max-height:0 !important;
    overflow:hidden !important;
    transform:translateY(-8px) !important;
    opacity:0 !important;
    transition:max-height .3s ease, opacity .25s ease, transform .3s ease !important;
    z-index:50;
  }
  nav#mainnav.open{
    max-height:80vh !important;
    overflow-y:auto !important;
    transform:translateY(0) !important;
    opacity:1 !important;
  }
  .mainnav-list{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    width:100%;
  }
  .mainnav-list > li{
    width:100%;
  }
  .mainnav-list .nav-cta{
    margin-left:0 !important;
    border-radius:0 !important;
    text-align:center;
  }
}

@media(max-width:760px){
  footer{padding:36px 0;}
  footer .wrap{
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
  }
  .slogan{
    font-size:1.3rem;
  }
  .legal-list{
    display:flex;
    flex-wrap:wrap;
    row-gap:10px;
    column-gap:18px;
    width:100%;
  }
  .legal-list .ai-note{
    flex-basis:100%;
    order:99;
    font-size:11px;
    opacity:.8;
  }
}
/* === Dropdown-Nav (aus header.php verschoben) === */
.mainnav-list > li{position:relative;}
.mainnav-list > li > a,
.nav-toggle{
  display:flex;align-items:center;gap:5px;padding:.45rem .75rem;
  font-family:"IBM Plex Mono",monospace;font-size:.78rem;letter-spacing:.04em;
  color:var(--ink);background:none;border:none;cursor:pointer;border-radius:4px;
  transition:background .15s,color .15s;white-space:nowrap;text-decoration:none;
}
.mainnav-list > li > a:hover,
.nav-toggle:hover{background:rgba(20,69,94,.07);color:var(--blue);}
.nav-chevron{transition:transform .2s ease;flex-shrink:0;opacity:.55;}
.has-dropdown.open .nav-chevron{transform:rotate(180deg);}
.dropdown{
  display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:200px;
  list-style:none;margin:0;padding:.5rem 0;background:#fff;
  border:1px solid rgba(20,69,94,.12);border-radius:6px;
  box-shadow:0 8px 24px rgba(20,69,94,.10);z-index:200;
}
.has-dropdown.open .dropdown{display:block;}
.dropdown li a{
  display:flex;align-items:center;gap:10px;padding:.55rem 1rem;
  font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--ink);
  text-decoration:none;transition:background .12s,color .12s;
}
.dropdown li a:hover{background:rgba(20,69,94,.06);color:var(--blue);}
.dd-mono{color:var(--blue);opacity:.5;font-size:.68rem;flex-shrink:0;}
.nav-cta{
  margin-left:.5rem;padding:.45rem 1rem !important;background:var(--blue) !important;
  color:#fff !important;border-radius:4px;font-family:"IBM Plex Mono",monospace;
  font-size:.78rem;letter-spacing:.04em;text-decoration:none;transition:opacity .15s;
}
.nav-cta:hover{opacity:.85;background:var(--blue) !important;}
@media(max-width:768px){
  .dropdown{
    position:static;box-shadow:none;border:none;border-left:2px solid var(--blue);
    border-radius:0;margin-left:1rem;padding:0;display:none;
  }
  .has-dropdown.open .dropdown{display:block;}
  .nav-toggle{width:100%;justify-content:space-between;}
}