/* ============================================================================
   Wyna AI - brand design system.  Neutral canvas + blue accents, theme-aware.
   Surfaces/greys use the SAME neutral oklch values as Open WebUI's palette so
   the website, portal and chat read as one product; blue (navy/sky) is
   reserved for accents and marketing highlights.
   No third-party fonts by design: a sovereignty product shouldn't leak visitor
   data to a font CDN. System grotesque stack, Swiss typographic treatment.
   ========================================================================== */
:root{
  --navy:#08375a; --navy-2:#17588f; --sky:#29a3e0; --sky-2:#5cb8e8;
  --bg:oklch(98% 0 0); --surface:#ffffff; --border:oklch(91% 0 0); --hair:oklch(95% 0 0);
  --text:oklch(20% 0 0); --muted:oklch(50% 0 0);
  --accent:#17588f; --accent-strong:#08375a;
  --ring:rgba(41,163,224,.45); --shadow:0 1px 2px rgba(0,0,0,.04), 0 10px 30px rgba(0,0,0,.05);
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:oklch(16% 0 0); --surface:oklch(20% 0 0); --border:oklch(30% 0 0); --hair:oklch(25% 0 0);
    --text:oklch(93% 0 0); --muted:oklch(69% 0 0);
    --accent:#33a8e6; --accent-strong:#6fc2ee;
    --ring:rgba(51,168,230,.5); --shadow:0 1px 2px rgba(0,0,0,.45), 0 14px 34px rgba(0,0,0,.5);
  }
}
:root[data-theme="light"]{
  --bg:oklch(98% 0 0); --surface:#ffffff; --border:oklch(91% 0 0); --hair:oklch(95% 0 0);
  --text:oklch(20% 0 0); --muted:oklch(50% 0 0); --accent:#17588f; --accent-strong:#08375a;
  --ring:rgba(41,163,224,.45); --shadow:0 1px 2px rgba(0,0,0,.04), 0 10px 30px rgba(0,0,0,.05);
}
:root[data-theme="dark"]{
  --bg:oklch(16% 0 0); --surface:oklch(20% 0 0); --border:oklch(30% 0 0); --hair:oklch(25% 0 0);
  --text:oklch(93% 0 0); --muted:oklch(69% 0 0); --accent:#33a8e6; --accent-strong:#6fc2ee;
  --ring:rgba(51,168,230,.5); --shadow:0 1px 2px rgba(0,0,0,.45), 0 14px 34px rgba(0,0,0,.5);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-height:100%}
body{
  background:var(--bg); color:var(--text);
  font:16px/1.6 -apple-system,"Segoe UI","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  display:flex; flex-direction:column; min-height:100vh; -webkit-font-smoothing:antialiased;
  letter-spacing:.1px;
}
a{color:inherit}
img{max-width:100%}
.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 28px}
main{flex:1 0 auto}
/* thin brand accent line at the very top */
.topbar{height:3px;background:linear-gradient(90deg,var(--navy),var(--sky))}

/* ---- header / nav ---- */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;text-decoration:none}
.brand img{height:38px;width:auto;display:block}
.brand .logo-dark{display:none}
@media (prefers-color-scheme:dark){.brand .logo-light{display:none}.brand .logo-dark{display:block}}
:root[data-theme="dark"] .brand .logo-light{display:none}
:root[data-theme="dark"] .brand .logo-dark{display:block}
:root[data-theme="light"] .brand .logo-light{display:block}
:root[data-theme="light"] .brand .logo-dark{display:none}
.beta{display:inline-flex;align-items:center;align-self:center;margin-left:10px;font-size:11px;
  font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--sky);
  border:1px solid var(--sky);border-radius:999px;padding:2px 8px;line-height:1.35}
.nav{display:flex;align-items:center;gap:6px}
.nav a.link{font-size:14px;font-weight:600;text-decoration:none;color:var(--muted);padding:9px 12px;border-radius:8px}
.nav a.link:hover{color:var(--accent-strong)}
.nav a.link.active{color:var(--accent-strong);background:var(--hair)}
/* burger (mobile only) */
.nav-toggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;
  border:1px solid var(--border);background:var(--surface);color:var(--text);
  border-radius:10px;cursor:pointer;padding:0;transition:.16s ease}
.nav-toggle:hover{border-color:var(--accent);color:var(--accent)}
.nav-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);
  background:var(--surface);color:var(--text);border-radius:10px;padding:10px 16px;
  font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;transition:.16s ease}
.btn:hover{border-color:var(--accent)}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}
.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}
:root[data-theme="dark"] .btn--primary{color:#06131e}
:root[data-theme="light"] .btn--primary{color:#fff}
@media (prefers-color-scheme:dark){.btn--primary{color:#06131e}}
.btn--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.btn--icon{padding:10px;line-height:0;color:var(--muted)}
.btn--icon:hover{color:var(--accent)}
/* header nav: theme toggle and Anmelden share exactly one height */
.nav .btn{height:38px;padding:0 16px}
.nav .btn--icon{width:38px;height:38px;padding:0}
.btn--onnavy{background:#fff;border-color:#fff;color:var(--navy)}
.btn--onnavy:hover{background:var(--sky-2);border-color:var(--sky-2)}
.btn--ghostnavy{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.btn--ghostnavy:hover{border-color:#fff}

/* ---- eyebrow + hero ---- */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
  border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 13px}
.hero{text-align:center;padding:100px 0 72px}
.hero h1{font-size:clamp(34px,6vw,58px);line-height:1.04;letter-spacing:-.02em;margin:20px auto 14px;max-width:16ch;font-weight:800}
.hero .sub{color:var(--muted);font-size:clamp(16px,2.3vw,20px);max-width:62ch;margin:0 auto}
.hero .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px}

/* ---- section scaffolding ---- */
.block{padding:40px 0}
.block__head{max-width:64ch}
.block h2{font-size:clamp(24px,3.6vw,34px);letter-spacing:-.02em;margin:8px 0 10px;font-weight:800}
.block .lead{color:var(--muted);font-size:clamp(15px,2.1vw,18px);margin:0}

/* ---- action cards ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:24px 0 8px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;
  text-decoration:none;box-shadow:var(--shadow);transition:.16s ease;display:flex;flex-direction:column;gap:8px;min-height:158px;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--navy),var(--sky));opacity:0;transition:.16s}
a.card:hover{transform:translateY(-3px);border-color:var(--accent)}
a.card:hover::before{opacity:1}
.card .h{font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:space-between;letter-spacing:-.01em}
.card .p{color:var(--muted);font-size:14px}
.pill{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--accent);
  border:1px solid var(--border);border-radius:999px;padding:2px 9px}
.card.is-soon{opacity:.7}
.card.is-soon:hover{transform:none;border-color:var(--border)}
.card.is-soon:hover::before{opacity:0}

/* ---- SIGNATURE: sovereignty panel (navy, W watermark) ---- */
.sov{position:relative;overflow:hidden;border-radius:22px;padding:44px;color:#eaf3fa;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(28,100,151,.80) 0%, rgba(23,88,143,.88) 38%, rgba(8,55,90,.94) 80%),
    #06131f url("/brand/abstract-dots.jpg") center/cover no-repeat;
  box-shadow:var(--shadow)}
.sov .eyebrow{color:var(--sky-2);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.sov h2{color:#fff;margin:12px 0 10px}
.sov .lead{color:#c6dcec;max-width:70ch}
.sov__grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px 26px;margin-top:26px}
.sov__item{display:flex;flex-direction:column;gap:5px}
.sov__item .t{font-weight:700;font-size:15px;display:flex;align-items:center;gap:9px;color:#fff}
.sov__item .d{color:#bcd3e6;font-size:14px;line-height:1.5}
.sov__item .d a{color:var(--sky-2);text-decoration:underline;text-underline-offset:2px}
.sov__item .d a:hover{color:#fff}
.sov__item .dot{width:8px;height:8px;border-radius:50%;background:var(--sky-2);flex:0 0 auto;box-shadow:0 0 0 4px rgba(91,188,232,.18)}
.sov .actions{position:relative;margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}

/* ---- consulting CTA ---- */
.consult{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);
  border-radius:22px;padding:clamp(28px,5vw,48px);box-shadow:var(--shadow)}
.consult::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--navy),var(--sky))}
.consult h2{font-size:clamp(24px,3.6vw,34px);letter-spacing:-.02em;margin:10px 0 12px;font-weight:800}
.consult .lead{color:var(--muted);font-size:clamp(15px,2.1vw,18px);max-width:70ch;margin:0}
.consult__people{margin:18px 0 0;font-size:15px;color:var(--text)}
.consult .actions{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}
a.inlink{color:var(--accent-strong);font-weight:600;text-decoration:none;white-space:nowrap}
a.inlink:hover{text-decoration:underline;text-underline-offset:2px}

/* ---- FAQ accordion ---- */
.faq__list{margin-top:22px;display:flex;flex-direction:column;gap:12px}
.faq__item{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  box-shadow:var(--shadow);overflow:hidden}
.faq__item summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:700;
  font-size:clamp(15px,2vw,17px);letter-spacing:-.01em;display:flex;align-items:center;
  justify-content:space-between;gap:18px;color:var(--text)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"";flex:none;width:11px;height:11px;margin-top:-4px;
  border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(45deg);transition:transform .18s ease}
.faq__item[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.faq__item summary:hover{color:var(--accent-strong)}
.faq__item summary:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--ring)}
.faq__a{padding:0 22px 20px;color:var(--muted);font-size:15px;line-height:1.62}
.faq__a p{margin:0}
@media (prefers-reduced-motion:reduce){.faq__item summary::after{transition:none}}

/* ---- pricing table ---- */
.priceframe{overflow-x:auto;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
table.price{width:100%;border-collapse:collapse;min-width:600px;font-size:15px}
table.price caption{text-align:left;padding:18px 22px 4px;color:var(--muted);font-size:12.5px;letter-spacing:.02em}
table.price th,table.price td{padding:15px 22px;text-align:left;border-bottom:1px solid var(--hair);vertical-align:top}
table.price thead th{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700}
table.price th.num,table.price td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.price tr.grp .grpsub{display:block;font-weight:500;color:var(--muted);font-size:12px;letter-spacing:0;text-transform:none;margin-top:3px}
table.price tr.grp td{font-weight:700;color:var(--accent-strong);font-size:12px;letter-spacing:.07em;
  text-transform:uppercase;padding-top:22px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(43,160,219,.06),transparent)}
table.price tbody tr:last-child td{border-bottom:none}
.mname{font-weight:700;letter-spacing:-.01em}
.msub{color:var(--muted);font-size:13px;margin-top:3px}
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;border:1px solid var(--border);
  border-radius:999px;padding:2px 9px;color:var(--accent);margin-left:8px;vertical-align:middle}
.fineprint{color:var(--muted);font-size:13px;margin-top:16px}

/* ---- footer ---- */
.site-footer{border-top:1px solid var(--border);margin-top:32px;padding:28px 0;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.site-footer .fby{color:var(--muted)}
.site-footer .fby a{color:var(--accent-strong);text-decoration:none;font-weight:600}
.site-footer .fby a:hover{text-decoration:underline;text-underline-offset:2px}
.site-footer .fend{display:flex;align-items:center;gap:12px}
.site-footer nav a{color:var(--muted);text-decoration:none;margin-left:16px}
.site-footer nav a:hover{color:var(--accent-strong)}

/* ---- mobile: collapse nav into a burger dropdown ---- */
@media (max-width:680px){
  .nav-toggle{display:inline-flex}
  .site-header{position:relative;padding:16px 0}
  .nav{position:absolute;top:calc(100% - 2px);left:0;right:0;z-index:50;display:none;
    flex-direction:column;align-items:stretch;gap:6px;padding:12px;
    background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
  .nav.open{display:flex}
  .nav a.link{padding:12px;border-radius:9px;font-size:15px;color:var(--text)}
  .nav a.link:hover{background:var(--hair)}
  .nav .btn,.nav .btn--primary,.nav .btn--icon{width:100%;height:44px;justify-content:center}
  .hero{padding:56px 0 36px}
  .block{padding:28px 0}
  .sov{padding:26px 20px}
  .cards{padding:16px 0 4px}
}
@media (max-width:560px){
  .wrap{padding:0 20px}
  .site-footer{flex-direction:column;align-items:flex-start}
  .site-footer nav a{margin:0 16px 0 0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
