/* ============================================================
   vitamea GmbH – main.css
   Keine Google Fonts. Vollständig selbst gehostet.
   ============================================================ */

/* ── Self-hosted fonts ── */
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-latin-300-normal.woff2')format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-latin-400-normal.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-latin-500-normal.woff2')format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-latin-600-normal.woff2')format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-latin-400-normal.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-latin-400-italic.woff2')format('woff2');font-weight:400;font-style:italic;font-display:swap}

/* ── Tokens ── */
:root{
  --c1:#1a4a3a; --c2:#2d6b55; --c3:#e8f4f0; --c4:#f3faf7;
  --acc:#4fa87a; --acc2:#3d9060;
  --dark:#0f1f18; --dark2:#162b21;
  --tx:#1a2820; --mu:#5a7065; --mu2:#8da89e;
  --br:rgba(26,74,58,.12); --br2:rgba(26,74,58,.22);
  --bg:#f9faf8; --wh:#fff;
  --r:10px; --rl:18px;
  --sh:0 4px 20px rgba(26,74,58,.08);
  --sh2:0 12px 48px rgba(26,74,58,.14);
  --sans:'DM Sans',system-ui,sans-serif;
  --serif:'DM Serif Display',Georgia,serif;
  --nh:70px;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--sans);background:var(--bg);color:var(--tx);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.15}
ul,ol{list-style:none}

/* ── Utils ── */
.container{max-width:1180px;margin:0 auto;padding:0 2rem}
.stag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin-bottom:.8rem}
.sh2{font-size:clamp(1.9rem,3.2vw,2.8rem);font-family:var(--serif);color:var(--c1);margin-bottom:.85rem}
.ssub{font-size:16.5px;color:var(--mu);max-width:540px;line-height:1.75}
.center{text-align:center}.center .ssub{margin:0 auto}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 22px;border-radius:var(--r);font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .22s;white-space:nowrap;text-decoration:none}
.btn-p{background:var(--c1);color:#fff}.btn-p:hover{background:var(--c2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(26,74,58,.25)}
.btn-a{background:var(--acc);color:#fff}.btn-a:hover{background:var(--acc2);transform:translateY(-2px)}
.btn-o{background:transparent;color:var(--c1);border:1.5px solid var(--c1)}.btn-o:hover{background:var(--c1);color:#fff}
.btn-ow{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.38)}.btn-ow:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.7)}
.btn-lg{padding:13px 30px;font-size:16px;border-radius:12px}
.btn-sm{padding:7px 15px;font-size:13px;border-radius:8px}
.btn-fw{width:100%;justify-content:center}
.btn-submit{background:var(--c1);color:#fff;width:100%;justify-content:center;padding:13px;font-size:15px;border-radius:10px;border:none;cursor:pointer;font-family:var(--sans);font-weight:500;display:flex;align-items:center;gap:8px;transition:all .22s}
.btn-submit:hover{background:var(--c2);transform:translateY(-1px)}

/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nh);background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--br)}
.nav-in{max-width:1280px;margin:0 auto;padding:0 2rem;height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.nav-logo-img{height:40px;width:auto}
.nav-logo-svg{display:none;width:40px;height:40px;background:var(--c1);border-radius:9px;align-items:center;justify-content:center;color:#fff;font-family:var(--serif);font-size:19px;flex-shrink:0}
.nav-logo-name{font-family:var(--serif);font-size:20px;color:var(--c1)}
.nav-links{display:flex;align-items:center;gap:.1rem}
.nav-links a{color:var(--tx);font-size:13.5px;font-weight:500;padding:7px 12px;border-radius:8px;transition:all .2s;text-decoration:none}
.nav-links a:hover,.nav-links a.act{background:var(--c3);color:var(--c1)}
.nav-r{display:flex;align-items:center;gap:8px;flex-shrink:0}
.nav-phone{font-size:13px;font-weight:600;color:var(--c1);text-decoration:none;display:flex;align-items:center;gap:5px;white-space:nowrap}
.nav-phone svg{width:14px;height:14px}
.ham{display:none;background:none;border:none;cursor:pointer;padding:5px;flex-direction:column;gap:5px}
.ham span{display:block;width:22px;height:2px;background:var(--tx);border-radius:2px;transition:all .3s}
.mob-menu{display:none;position:fixed;top:var(--nh);left:0;right:0;background:#fff;border-bottom:1px solid var(--br);z-index:999;padding:1.25rem 2rem;flex-direction:column;gap:.35rem}
.mob-menu.open{display:flex}
.mob-menu a{color:var(--tx);font-size:15px;font-weight:500;padding:10px 0;border-bottom:1px solid var(--br);text-decoration:none}
.mob-menu a:last-child{border-bottom:none}
.mob-phone{color:var(--c1)!important;font-weight:600!important}

/* ── HERO ── */
.hero{min-height:100vh;padding-top:var(--nh);background:var(--dark);display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 55% 70% at 80% 50%,rgba(26,74,58,.75) 0%,transparent 70%),radial-gradient(ellipse 35% 50% at 15% 85%,rgba(79,168,122,.1) 0%,transparent 60%)}
.hero-l{position:relative;z-index:2;padding:5rem 3rem 5rem 4.5rem;display:flex;flex-direction:column;justify-content:center}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);padding:5px 16px;border-radius:100px;margin-bottom:2rem;color:var(--acc);font-size:11.5px;font-weight:600;letter-spacing:.07em;width:fit-content}
.hero-dot{width:6px;height:6px;background:var(--acc);border-radius:50%;animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}
.hero h1{font-size:clamp(2.5rem,4.2vw,4rem);color:#fff;margin-bottom:1.4rem}
.hero h1 em{color:var(--acc);font-style:italic}
.hero-sub{font-size:17.5px;color:rgba(255,255,255,.55);max-width:420px;line-height:1.78;margin-bottom:2.5rem}
.hero-btns{display:flex;gap:.85rem;flex-wrap:wrap}
.hero-stats{display:flex;gap:2.5rem;margin-top:4rem;padding-top:2.5rem;border-top:1px solid rgba(255,255,255,.09);flex-wrap:wrap}
.hero-stat-n{font-family:var(--serif);font-size:2.1rem;color:#fff;display:block}
.hero-stat-l{font-size:11.5px;color:rgba(255,255,255,.4);margin-top:2px}
.hero-r{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;padding:2rem}
/* Float card */
.hcard{background:rgba(255,255,255,.07);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.13);border-radius:var(--rl);padding:1.75rem;width:310px;animation:flt 4.5s ease-in-out infinite}
@keyframes flt{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hcard-hd{display:flex;align-items:center;gap:11px;margin-bottom:1.4rem}
.hcard-ico{width:42px;height:42px;background:var(--acc);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hcard-ico svg{width:20px;height:20px;color:#fff}
.hcard-t{color:#fff;font-weight:600;font-size:14.5px}
.hcard-s{color:rgba(255,255,255,.42);font-size:11.5px;margin-top:2px}
.hcard-row{background:rgba(255,255,255,.05);border-radius:8px;padding:10px 13px;margin-bottom:7px;display:flex;align-items:center;justify-content:space-between}
.hcard-l{color:rgba(255,255,255,.62);font-size:12.5px;display:flex;align-items:center;gap:8px}
.hcard-l svg{width:14px;height:14px;color:var(--acc)}
.hcard-v{color:var(--acc);font-size:12px;font-weight:600}
.hcard-note{font-size:11px;color:rgba(255,255,255,.3);text-align:center;margin-top:.85rem}

/* ── TRUST BAR ── */
.trust-bar{background:#fff;border-bottom:1px solid var(--br);padding:1.1rem 0}
.trust-items{display:flex;align-items:center;justify-content:center;gap:3rem;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:500;color:var(--mu)}
.trust-item svg{width:18px;height:18px;color:var(--acc)}

/* ── SERVICES ── */
.srv-sec{padding:5.5rem 0;background:#fff}
.srv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2.75rem}
.scard{background:var(--bg);border-radius:var(--rl);border:1px solid var(--br);padding:1.75rem 1.5rem;transition:all .3s;cursor:pointer;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block}
.scard::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--acc);transform:scaleX(0);transition:transform .3s;transform-origin:left}
.scard:hover{transform:translateY(-5px);box-shadow:var(--sh2);border-color:rgba(79,168,122,.3)}
.scard:hover::after{transform:scaleX(1)}
.scard-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;flex-shrink:0}
.scard-ico svg{width:26px;height:26px}
.scard-t{font-family:var(--serif);font-size:1.1rem;color:var(--c1);margin-bottom:.45rem}
.scard-d{font-size:13px;color:var(--mu);line-height:1.62}
.scard-arr{position:absolute;top:1.25rem;right:1.25rem;color:var(--acc);opacity:0;transition:all .2s;font-size:18px}
.scard:hover .scard-arr{opacity:1;transform:translateX(4px)}
/* icon colours */
.ico-d{background:#e3f0fb}.ico-d svg{color:#2471a3;stroke-width:1.8!important}
.ico-r{background:#e8f5e9}.ico-r svg{color:#27ae60}
.ico-l{background:#fef3e2}.ico-l svg{color:#c87a10}
.ico-rs{background:#fde8f1}.ico-rs svg{color:#c0392b}
.ico-k{background:var(--c3)}.ico-k svg{color:var(--c1)}
.ico-p{background:#f0ecfb}.ico-p svg{color:#6c3483}
.ico-a{background:#fdf2e9}.ico-a svg{color:#e67e22}
.ico-s{background:var(--c1)}.ico-s svg{color:#fff}

/* ── ABOUT dark ── */
.about-sec{padding:5.5rem 0;background:var(--dark)}
.about-g{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.about-feats{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:2.25rem}
.afeat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:var(--r);padding:1.4rem}
.afeat-ico{width:38px;height:38px;background:rgba(79,168,122,.14);border-radius:7px;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}
.afeat-ico svg{width:18px;height:18px;color:var(--acc)}
.afeat h4{font-family:var(--sans);font-weight:600;font-size:13.5px;color:#fff;margin-bottom:.3rem}
.afeat p{font-size:12.5px;color:rgba(255,255,255,.45);line-height:1.6}
.about-vis{background:rgba(255,255,255,.04);border-radius:var(--rl);border:1px solid rgba(255,255,255,.07);padding:2.25rem}
.about-vis-t{font-size:1.15rem;color:#fff;margin-bottom:1.75rem}
.prog-item{margin-bottom:1.35rem}
.prog-lbl{display:flex;justify-content:space-between;margin-bottom:.42rem}
.prog-lbl span{font-size:13px;color:rgba(255,255,255,.68)}
.prog-lbl span:last-child{color:var(--acc);font-weight:600}
.prog-track{height:5px;background:rgba(255,255,255,.07);border-radius:100px;overflow:hidden}
.prog-fill{height:100%;background:linear-gradient(90deg,var(--acc),var(--c2));border-radius:100px}
.about-stat{margin-top:2rem;background:rgba(255,255,255,.05);border-radius:var(--r);padding:1.6rem;text-align:center;border:1px solid rgba(255,255,255,.06)}
.about-sn{font-family:var(--serif);font-size:3rem;color:#fff;display:block}
.about-sl{color:rgba(255,255,255,.42);font-size:12.5px;margin-top:3px}

/* ── TEASER (homepage CTAs) ── */
.teaser-sec{padding:5.5rem 0;background:var(--c4)}
.teaser-g{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;margin-top:2.75rem}
.tcard{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.25rem;display:flex;flex-direction:column}
.tcard-ico{width:58px;height:58px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;margin-bottom:1.35rem}
.tcard-ico-g{background:var(--c3)}.tcard-ico-d{background:var(--dark)}
.tcard-ico svg{width:28px;height:28px}
.tcard h3{font-family:var(--serif);font-size:1.5rem;color:var(--c1);margin-bottom:.65rem}
.tcard p{font-size:14px;color:var(--mu);line-height:1.75;margin-bottom:1.5rem;flex:1}
.tcard-feats{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.75rem}
.tcard-feat{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--tx)}
.tcard-feat svg{width:14px;height:14px;color:var(--acc);flex-shrink:0}

/* ── TESTIMONIALS ── */
.test-sec{padding:5.5rem 0;background:var(--c3)}
.test-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.15rem;margin-top:2.75rem}
.tcard2{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:1.75rem;position:relative}
.tcard2-q{font-family:var(--serif);font-size:4.5rem;color:var(--c3);position:absolute;top:-5px;left:1.1rem;line-height:1;pointer-events:none}
.tcard2-txt{font-size:13.5px;color:var(--tx);line-height:1.75;margin-bottom:1.35rem;font-style:italic;position:relative;z-index:1}
.stars{color:#f59e0b;font-size:12px;margin-bottom:.65rem}
.tcard2-auth{display:flex;align-items:center;gap:9px}
.tcard2-av{width:40px;height:40px;background:var(--c1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;flex-shrink:0}
.tcard2-n{font-weight:600;font-size:13.5px;color:var(--tx)}
.tcard2-l{font-size:11.5px;color:var(--mu)}

/* ── FAQ ── */
.faq-sec{padding:5.5rem 0;background:#fff}
.faq-list{margin-top:2.75rem;display:flex;flex-direction:column;gap:.65rem;max-width:780px}
.faq-item{border:1px solid var(--br);border-radius:var(--r);overflow:hidden}
.faq-q{padding:1.1rem 1.4rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:500;font-size:14.5px;background:#fff;user-select:none;transition:background .2s}
.faq-q:hover{background:var(--c4)}
.faq-ic{color:var(--acc);font-size:22px;transition:transform .3s;flex-shrink:0;line-height:1}
.faq-item.open .faq-ic{transform:rotate(45deg)}
.faq-a{display:none;padding:0 1.4rem 1.1rem;font-size:13.5px;color:var(--mu);line-height:1.75}
.faq-item.open .faq-a{display:block}

/* ── AREAS ── */
.areas-sec{padding:4.5rem 0;background:var(--dark)}
.areas-tags{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.25rem}
.atag{background:rgba(79,168,122,.12);border:1px solid rgba(79,168,122,.26);color:var(--acc);padding:7px 20px;border-radius:100px;font-size:13.5px;font-weight:500}

/* ── JOBS ── */
.jobs-sec{padding:4.5rem 0;background:var(--c4)}
.jobs-card{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.25rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}
.job-badge{display:inline-block;background:var(--c3);color:var(--acc);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 11px;border-radius:100px;margin-bottom:.9rem}
.jobs-card h3{font-family:var(--serif);font-size:1.55rem;color:var(--c1);margin-bottom:.65rem}
.jobs-card p{font-size:14.5px;color:var(--mu);line-height:1.75;max-width:520px}
.jobs-acts{display:flex;gap:.85rem;margin-top:1.6rem;flex-wrap:wrap}
.jobs-qr img{width:95px;height:95px;border-radius:7px}
.jobs-qr p{font-size:11px;color:var(--mu);margin-top:5px;text-align:center}

/* ── PAGE HEADER ── */
.phdr{background:var(--dark);padding:calc(var(--nh) + 3.5rem) 0 3.5rem;text-align:center;position:relative;overflow:hidden}
.phdr-bg{position:absolute;inset:0;background:radial-gradient(ellipse 55% 80% at 50% 100%,rgba(79,168,122,.1) 0%,transparent 70%);pointer-events:none}
.phdr h1{font-size:clamp(2rem,3.8vw,3.3rem);color:#fff;margin-bottom:.65rem;position:relative;z-index:1}
.phdr p{font-size:16px;color:rgba(255,255,255,.5);max-width:540px;margin:0 auto;position:relative;z-index:1}
.breadcrumb{display:flex;align-items:center;gap:7px;justify-content:center;margin-top:1.4rem;position:relative;z-index:1;flex-wrap:wrap}
.breadcrumb a,.breadcrumb span{font-size:12.5px;color:rgba(255,255,255,.35);text-decoration:none}
.breadcrumb a:hover{color:var(--acc)}
.breadcrumb .sep{color:rgba(255,255,255,.2)}
.breadcrumb .cur{color:var(--acc)}

/* ── BOOKING PAGE ── */
.book-sec{padding:4.5rem 0}
.book-layout{display:grid;grid-template-columns:300px 1fr;gap:2.5rem;align-items:start}
.book-sidebar{position:sticky;top:calc(var(--nh) + 1.25rem)}
.sbar-ccard{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:1.75rem;margin-bottom:1.25rem}
.crow{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--br)}
.crow:last-child{border-bottom:none}
.crow-ico{width:36px;height:36px;background:var(--c3);border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.crow-ico svg{width:16px;height:16px;color:var(--c1)}
.crow-lbl{font-size:11px;color:var(--mu);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.crow-val{font-size:13.5px;font-weight:500;color:var(--tx);margin-top:2px}
.crow-val a{color:var(--c1)}
.sbar-info{background:var(--c3);border-radius:var(--r);padding:1.1rem;border-left:3px solid var(--acc);font-size:12.5px;color:var(--tx);line-height:1.65}
.sbar-info strong{color:var(--c1)}
.form-card{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.25rem;box-shadow:var(--sh)}
.form-card-t{font-family:var(--serif);font-size:1.65rem;color:var(--c1);margin-bottom:.35rem}
.form-card-s{font-size:13px;color:var(--mu);margin-bottom:1.75rem}
.fsec-lbl{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--acc);margin:1.85rem 0 .9rem;padding-bottom:.45rem;border-bottom:1px solid var(--br);display:block}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.fg.g1{grid-template-columns:1fr}
.fgrp{display:flex;flex-direction:column;gap:4px}
.fgrp.s2{grid-column:1/-1}
.fgrp label{font-size:12.5px;font-weight:500;color:var(--tx)}
.req{color:var(--acc)}
.fgrp input,.fgrp select,.fgrp textarea{width:100%;padding:9px 12px;border:1.5px solid var(--br);border-radius:8px;font-family:var(--sans);font-size:13.5px;color:var(--tx);background:var(--bg);transition:border-color .2s,background .2s;appearance:none;-webkit-appearance:none}
.fgrp input:focus,.fgrp select:focus,.fgrp textarea:focus{outline:none;border-color:var(--acc);background:#fff}
.fgrp textarea{resize:vertical;min-height:75px}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a7065' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:12px;padding-right:32px}
.cpills{display:flex;flex-wrap:wrap;gap:.55rem}
.cpill{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12.5px;color:var(--tx);background:var(--bg);border:1px solid var(--br);border-radius:6px;padding:5px 11px;transition:all .2s;user-select:none}
.cpill:hover{border-color:var(--acc);color:var(--c1)}
.cpill input{accent-color:var(--acc);margin:0}
.cpill:has(input:checked){background:var(--c3);border-color:var(--acc);color:var(--c1)}
.pg-btns{display:flex;gap:.45rem;flex-wrap:wrap}
.pg-btn{padding:5px 13px;border:1px solid var(--br);border-radius:6px;background:var(--bg);font-size:12.5px;cursor:pointer;transition:all .2s;font-family:var(--sans);color:var(--tx)}
.pg-btn:hover,.pg-btn.act{background:var(--c1);color:#fff;border-color:var(--c1)}
.radio-g{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.rcard{display:flex;align-items:center;gap:9px;cursor:pointer;border:1.5px solid var(--br);border-radius:8px;padding:9px 12px;transition:all .2s;font-size:13px;color:var(--tx)}
.rcard:hover,.rcard:has(input:checked){border-color:var(--acc);background:var(--c3);color:var(--c1)}
.rcard input{accent-color:var(--acc)}
.dsgvo-row{display:flex;gap:9px;align-items:flex-start;margin:1.35rem 0}
.dsgvo-row input{margin-top:3px;accent-color:var(--acc);flex-shrink:0}
.dsgvo-row label{font-size:12px;color:var(--mu);line-height:1.55;cursor:pointer;margin-bottom:0}
.dsgvo-row label a{color:var(--c1)}
.form-note{font-size:11.5px;color:var(--mu2);margin-top:.65rem}
.success-box{text-align:center;padding:3rem 1.5rem}
.success-ico{width:60px;height:60px;background:var(--c3);border-radius:50%;margin:0 auto 1.1rem;display:flex;align-items:center;justify-content:center}
.success-ico svg{width:28px;height:28px;color:var(--acc)}
.success-box h3{font-family:var(--serif);font-size:1.45rem;color:var(--c1);margin-bottom:.55rem}
.success-box p{font-size:13.5px;color:var(--mu);line-height:1.7}

/* ── B2B ── */
.b2b-sec{padding:4.5rem 0}
.b2b-layout{display:grid;grid-template-columns:1fr 400px;gap:3.5rem;align-items:start}
.b2b-feats{display:flex;flex-direction:column;gap:1.35rem;margin-top:2.25rem}
.b2bfeat{display:flex;gap:1.1rem;align-items:flex-start}
.b2bfeat-ico{width:46px;height:46px;background:var(--c3);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.b2bfeat-ico svg{width:21px;height:21px;color:var(--c1)}
.b2bfeat h4{font-family:var(--serif);font-size:1.08rem;color:var(--c1);margin-bottom:3px}
.b2bfeat p{font-size:13.5px;color:var(--mu);line-height:1.65}
.b2b-note{background:var(--c3);border-radius:var(--r);padding:1.1rem;margin-top:2rem;border-left:3px solid var(--acc);font-size:13px;color:var(--tx);line-height:1.65}
.b2b-note a{color:var(--c1);font-weight:500}
.login-card{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.25rem;box-shadow:var(--sh);position:sticky;top:calc(var(--nh) + 1.25rem)}
.lcard-hd{text-align:center;margin-bottom:1.75rem}
.lcard-logo{width:52px;height:52px;background:var(--c1);border-radius:11px;margin:0 auto .9rem;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--serif);font-size:21px}
.lcard-t{font-family:var(--serif);font-size:1.35rem;color:var(--c1)}
.lcard-s{font-size:12.5px;color:var(--mu);margin-top:3px}
.ltabs{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--br);margin-bottom:1.75rem}
.ltab{flex:1;text-align:center;padding:9px;font-size:12.5px;font-weight:500;cursor:pointer;background:#fff;color:var(--mu);transition:all .2s;border:none;font-family:var(--sans)}
.ltab.act{background:var(--c1);color:#fff}
.inpw{position:relative;margin-bottom:.9rem}
.inpw-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--mu)}
.inpw-ico svg{width:15px;height:15px}
.inpw input{width:100%;padding:9px 12px 9px 36px;border:1.5px solid var(--br);border-radius:8px;font-family:var(--sans);font-size:13.5px;color:var(--tx);background:var(--bg);transition:border-color .2s}
.inpw input:focus{outline:none;border-color:var(--acc);background:#fff}
.forgot-lnk{text-align:right;font-size:11.5px;margin-bottom:1.35rem}
.forgot-lnk a{color:var(--c1)}
.or-div{text-align:center;color:var(--mu);font-size:12px;margin:1.25rem 0;position:relative}
.or-div::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--br)}
.or-div span{background:var(--c4);padding:0 11px;position:relative}

/* ── BLOG ── */
.blog-sec{padding:4.5rem 0}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.75rem;margin-top:2.75rem}
.bcard{background:#fff;border-radius:var(--rl);border:1px solid var(--br);overflow:hidden;display:flex;flex-direction:column;transition:all .28s;text-decoration:none;color:inherit}
.bcard:hover{transform:translateY(-5px);box-shadow:var(--sh2)}
.bcard-img{height:195px;background:var(--c3);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.bcard-img img{width:100%;height:100%;object-fit:cover}
.bcard-img svg{width:52px;height:52px;color:var(--c2);opacity:.3}
.bcard-body{padding:1.6rem;flex:1;display:flex;flex-direction:column}
.bcard-meta{display:flex;gap:.9rem;align-items:center;margin-bottom:.85rem}
.bcard-cat{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--c3);color:var(--c1);padding:3px 10px;border-radius:100px}
.bcard-date{font-size:11.5px;color:var(--mu)}
.bcard h3{font-family:var(--serif);font-size:1.12rem;color:var(--c1);margin-bottom:.5rem;line-height:1.3}
.bcard p{font-size:13px;color:var(--mu);line-height:1.65;flex:1}
.bcard-ft{padding:0 1.6rem 1.4rem;display:flex;align-items:center;justify-content:space-between}
.read-more{font-size:13px;font-weight:500;color:var(--c1);display:flex;align-items:center;gap:5px}
.read-more svg{width:13px;height:13px;transition:transform .2s}
.bcard:hover .read-more svg{transform:translateX(4px)}
/* Blog single */
.blog-single{padding:4rem 0 5.5rem}
.blog-layout{display:grid;grid-template-columns:1fr 280px;gap:2.75rem;align-items:start}
.blog-content{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.75rem}
.blog-content h1{font-size:clamp(1.6rem,2.8vw,2.4rem);color:var(--c1);margin-bottom:1.35rem}
.blog-content h2{font-size:1.45rem;color:var(--c1);margin:2.25rem 0 .85rem}
.blog-content p{font-size:15.5px;color:var(--tx);line-height:1.82;margin-bottom:1.15rem}
.blog-content strong{color:var(--c1);font-weight:600}
.blog-content ul{margin:.85rem 0 1.15rem 1.5rem;list-style:disc}
.blog-content ul li{font-size:15.5px;color:var(--tx);line-height:1.75;margin-bottom:.45rem}
.blog-meta-bar{display:flex;gap:1.25rem;align-items:center;margin-bottom:2.25rem;flex-wrap:wrap}
.blog-sidebar{position:sticky;top:calc(var(--nh) + 1.25rem)}
.bsbar-card{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:1.6rem;margin-bottom:1.25rem}
.bsbar-card h4{font-family:var(--serif);font-size:.98rem;color:var(--c1);margin-bottom:.9rem}
.rpost{display:flex;gap:9px;padding:9px 0;border-bottom:1px solid var(--br);text-decoration:none}
.rpost:last-child{border-bottom:none}
.rpost-t{font-size:12.5px;font-weight:500;color:var(--tx);line-height:1.4}
.rpost-d{font-size:11px;color:var(--mu);margin-top:2px}
.rpost:hover .rpost-t{color:var(--c1)}

/* ── GALLERY ── */
.gal-sec{padding:4.5rem 0}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem;margin-top:2.75rem}
.gitem{border-radius:var(--rl);overflow:hidden;position:relative;aspect-ratio:4/3;background:var(--c3);cursor:pointer}
.gitem img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gitem:hover img{transform:scale(1.06)}
.gov{position:absolute;inset:0;background:rgba(15,31,24,.55);opacity:0;transition:opacity .3s;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;padding:1rem}
.gitem:hover .gov{opacity:1}
.gov h4{font-family:var(--serif);font-size:.95rem;text-align:center;margin-bottom:.3rem}
.gov p{font-size:11.5px;opacity:.72;text-align:center}
.gph{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.gph svg{width:44px;height:44px;color:var(--c2);opacity:.3}

/* ── CONTACT ── */
.cont-sec{padding:4.5rem 0}
.cont-layout{display:grid;grid-template-columns:1fr 1fr;gap:2.75rem}
.cont-info h2{font-family:var(--serif);font-size:1.75rem;color:var(--c1);margin-bottom:1.1rem}
.cont-info p{font-size:14.5px;color:var(--mu);line-height:1.75;margin-bottom:1.75rem}
.cont-cards{display:flex;flex-direction:column;gap:.85rem}
.ccard{background:#fff;border:1px solid var(--br);border-radius:var(--r);padding:1.1rem 1.35rem;display:flex;gap:.9rem;align-items:flex-start}
.ccard-ico{width:42px;height:42px;background:var(--c3);border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ccard-ico svg{width:19px;height:19px;color:var(--c1)}
.ccard h4{font-family:var(--sans);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);margin-bottom:3px}
.ccard-v{font-size:14px;font-weight:500;color:var(--tx)}
.ccard-v a{color:var(--c1)}
.cont-form{background:#fff;border:1px solid var(--br);border-radius:var(--rl);padding:2.25rem}
.cont-form h3{font-family:var(--serif);font-size:1.45rem;color:var(--c1);margin-bottom:1.6rem}

/* ── SERVICE DETAIL ── */
.svd-sec{padding:4.5rem 0}
.svd-layout{display:grid;grid-template-columns:1fr 300px;gap:2.5rem}
.svd-content{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.75rem}
.svd-content h2{font-size:1.5rem;color:var(--c1);margin:2rem 0 .8rem}
.svd-content p{font-size:15px;color:var(--tx);line-height:1.82;margin-bottom:1rem}
.svd-content ul{margin:.75rem 0 1.15rem 1.5rem;list-style:disc}
.svd-content ul li{font-size:15px;color:var(--tx);line-height:1.75;margin-bottom:.45rem}
.svd-sidebar{position:sticky;top:calc(var(--nh) + 1.25rem)}
.svd-cta{background:var(--c1);border-radius:var(--rl);padding:1.75rem;color:#fff;margin-bottom:1.25rem;text-align:center}
.svd-cta h3{font-family:var(--serif);font-size:1.2rem;margin-bottom:.6rem}
.svd-cta p{font-size:12.5px;opacity:.65;margin-bottom:1.35rem;line-height:1.6}
.svd-cta a{display:block;margin-bottom:.55rem}
.svd-links{background:#fff;border:1px solid var(--br);border-radius:var(--rl);padding:1.6rem}
.svd-links h4{font-family:var(--serif);font-size:.95rem;color:var(--c1);margin-bottom:.9rem}
.svd-link{display:flex;align-items:center;gap:7px;padding:9px 0;border-bottom:1px solid var(--br);text-decoration:none;font-size:13px;color:var(--tx);transition:color .2s}
.svd-link:last-child{border-bottom:none}
.svd-link:hover{color:var(--c1)}
.svd-link svg{width:13px;height:13px;color:var(--acc);flex-shrink:0}

/* ── LEGAL ── */
.legal-sec{padding:4.5rem 0}
.legal-content{background:#fff;border-radius:var(--rl);border:1px solid var(--br);padding:2.75rem;max-width:800px}
.legal-content h1{font-size:2rem;color:var(--c1);margin-bottom:1.75rem}
.legal-content h2{font-size:1.15rem;color:var(--c1);margin:1.75rem 0 .65rem;font-family:var(--sans);font-weight:600}
.legal-content h3{font-size:1rem;color:var(--tx);margin:1.25rem 0 .4rem;font-family:var(--sans);font-weight:600}
.legal-content p,.legal-content li{font-size:14.5px;color:var(--tx);line-height:1.82;margin-bottom:.65rem}
.legal-content ul{margin:.45rem 0 .9rem 1.4rem;list-style:disc}
.legal-content a{color:var(--c1)}

/* ── COOKIE BANNER (DSGVO) ── */
#cookie-banner{position:fixed;bottom:1.25rem;left:50%;transform:translateX(-50%);z-index:9000;background:var(--dark);color:#fff;border-radius:var(--rl);padding:1.35rem 1.75rem;display:flex;gap:1.75rem;align-items:center;flex-wrap:wrap;box-shadow:0 20px 60px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08);max-width:860px;width:calc(100% - 2.5rem)}
#cookie-banner p{font-size:13px;color:rgba(255,255,255,.65);line-height:1.65;flex:1;min-width:220px}
#cookie-banner p a{color:var(--acc)}
.ck-acts{display:flex;gap:.65rem;flex-shrink:0;flex-wrap:wrap}
.ck-acc{background:var(--acc);color:#fff;padding:8px 18px;border-radius:7px;font-size:12.5px;font-weight:500;cursor:pointer;border:none;font-family:var(--sans);transition:background .2s}
.ck-acc:hover{background:var(--acc2)}
.ck-ess{background:transparent;color:rgba(255,255,255,.52);padding:8px 14px;border-radius:7px;font-size:12.5px;cursor:pointer;border:1px solid rgba(255,255,255,.14);font-family:var(--sans);transition:all .2s}
.ck-ess:hover{border-color:rgba(255,255,255,.38);color:#fff}
#cookie-banner.hidden{display:none!important}

/* ── STICKY CTA ── */
#sticky-cta{position:fixed;bottom:1.75rem;right:1.75rem;z-index:800;background:var(--c1);color:#fff;padding:11px 20px;border-radius:100px;font-size:13.5px;font-weight:500;cursor:pointer;border:none;display:none;align-items:center;gap:7px;box-shadow:0 8px 28px rgba(26,74,58,.42);transition:all .22s;text-decoration:none;font-family:var(--sans)}
#sticky-cta:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(26,74,58,.55)}
#sticky-cta svg{width:15px;height:15px}

/* ── ADMIN ── */
.adm-body{background:#f1f5f9;min-height:100vh;font-family:var(--sans)}
.adm-nav{background:var(--c1);padding:0 2rem;height:58px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}
.adm-nav-logo{color:#fff;font-family:var(--serif);font-size:1.15rem;text-decoration:none;display:flex;align-items:center;gap:9px}
.adm-nav-links{display:flex;gap:1.35rem}
.adm-nav-links a{color:rgba(255,255,255,.65);font-size:13px;text-decoration:none;transition:color .2s;font-weight:500}
.adm-nav-links a:hover,.adm-nav-links a.act{color:#fff}
.adm-wrap{max-width:1200px;margin:0 auto;padding:2.25rem 2rem}
.adm-t{font-family:var(--serif);font-size:1.7rem;color:var(--c1);margin-bottom:1.75rem}
.adm-card{background:#fff;border-radius:var(--r);border:1px solid var(--br);padding:1.75rem;margin-bottom:1.25rem}
.adm-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.adm-tbl th{text-align:left;padding:9px 13px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mu);border-bottom:1px solid var(--br)}
.adm-tbl td{padding:11px 13px;border-bottom:1px solid var(--br);color:var(--tx)}
.adm-tbl tr:last-child td{border-bottom:none}
.adm-tbl tr:hover td{background:var(--bg)}
.abadge{display:inline-block;padding:2px 9px;border-radius:100px;font-size:11px;font-weight:600}
.abadge-pub{background:var(--c3);color:var(--c1)}
.abadge-draft{background:#fef3e2;color:#9a6122}
.abadge-new{background:#e0f2fe;color:#0369a1}
.abadge-read{background:#f1f5f9;color:#64748b}
.flash{padding:11px 15px;border-radius:8px;margin-bottom:1.25rem;font-size:13.5px}
.flash-ok{background:var(--c3);color:var(--c1);border-left:3px solid var(--acc)}
.flash-err{background:#fee2e2;color:#b91c1c;border-left:3px solid #ef4444}
.adm-login{min-height:100vh;background:var(--dark);display:flex;align-items:center;justify-content:center}
.adm-lcard{background:#fff;border-radius:var(--rl);padding:2.75rem;width:100%;max-width:380px}
.btn-del{background:#fee2e2;color:#b91c1c;padding:5px 12px;border-radius:6px;font-size:11.5px;font-weight:500;cursor:pointer;border:none;font-family:var(--sans);transition:background .2s}
.btn-del:hover{background:#fecaca}
.btn-edit{background:var(--c3);color:var(--c1);padding:5px 12px;border-radius:6px;font-size:11.5px;font-weight:500;cursor:pointer;border:none;font-family:var(--sans);text-decoration:none;transition:background .2s;display:inline-block}
.btn-edit:hover{background:#c9e9df}
.adm-form label{display:block;font-size:12.5px;font-weight:500;color:var(--tx);margin-bottom:4px;margin-top:.9rem}
.adm-form input,.adm-form textarea,.adm-form select{width:100%;padding:9px 12px;border:1.5px solid var(--br);border-radius:8px;font-family:var(--sans);font-size:13.5px;color:var(--tx);background:var(--bg)}
.adm-form input:focus,.adm-form textarea:focus{outline:none;border-color:var(--acc);background:#fff}
.adm-form textarea{min-height:180px;resize:vertical}
.upload-z{border:2px dashed var(--br2);border-radius:var(--r);padding:2.25rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg)}
.upload-z:hover{border-color:var(--acc);background:var(--c3)}
.upload-z p{font-size:13px;color:var(--mu);margin-top:.45rem}
.adm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.75rem}
.adm-stat{background:#fff;border-radius:var(--r);border:1px solid var(--br);padding:1.35rem;text-align:center}
.adm-stat-n{font-family:var(--serif);font-size:2.2rem;color:var(--c1)}
.adm-stat-l{font-size:12px;color:var(--mu);margin-top:3px}

/* ── FOOTER ── */
.footer{background:var(--dark);color:#fff;padding:4.5rem 0 0}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:3rem;margin-bottom:3rem}
.ft-brand-d{color:rgba(255,255,255,.4);font-size:13.5px;line-height:1.75;margin:.9rem 0 1.4rem;max-width:270px}
.ft-col h4{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.27);margin-bottom:1.1rem}
.ft-col a{display:block;color:rgba(255,255,255,.52);text-decoration:none;font-size:13.5px;margin-bottom:.55rem;transition:color .2s}
.ft-col a:hover{color:var(--acc)}
.ft-crow{display:flex;gap:9px;align-items:flex-start;color:rgba(255,255,255,.52);font-size:13.5px;margin-bottom:.6rem}
.ft-crow svg{width:14px;height:14px;color:var(--acc);flex-shrink:0;margin-top:2px}
.ft-crow a{color:rgba(255,255,255,.52);text-decoration:none}
.ft-crow a:hover{color:var(--acc)}
.ft-bottom{border-top:1px solid rgba(255,255,255,.07);padding:1.75rem 0;display:flex;justify-content:space-between;align-items:center}
.ft-bottom p{color:rgba(255,255,255,.27);font-size:12.5px}
.ft-legal{display:flex;gap:1.35rem}
.ft-legal a{color:rgba(255,255,255,.35);font-size:12.5px;text-decoration:none;transition:color .2s}
.ft-legal a:hover{color:#fff}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .hero{grid-template-columns:1fr}
  .hero-r{display:none}
  .hero-l{padding:4rem 2.5rem}
  .about-g,.b2b-layout,.cont-layout{grid-template-columns:1fr}
  .teaser-g{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr 1fr}
  .book-layout,.blog-layout,.svd-layout{grid-template-columns:1fr}
  .book-sidebar,.blog-sidebar,.svd-sidebar{position:static}
}
@media(max-width:768px){
  .nav-links,.nav-r{display:none}
  .ham{display:flex}
  .hero-l{padding:3rem 1.5rem}
  .hero h1{font-size:2.2rem}
  .hero-stats{gap:1.5rem}
  .about-feats{grid-template-columns:1fr}
  .srv-grid{grid-template-columns:1fr 1fr}
  .test-g{grid-template-columns:1fr}
  .fg{grid-template-columns:1fr}
  .fgrp.s2{grid-column:1}
  .radio-g{grid-template-columns:1fr}
  .jobs-card{grid-template-columns:1fr}
  .jobs-qr{display:none}
  .ft-grid{grid-template-columns:1fr}
  .ft-bottom{flex-direction:column;gap:.85rem;text-align:center}
  #cookie-banner{flex-direction:column;gap:.9rem}
  .adm-stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .container{padding:0 1.1rem}
  .srv-grid{grid-template-columns:1fr}
  .hero-btns{flex-direction:column}
  .adm-stats{grid-template-columns:1fr 1fr}
}

/* ── Skip Link (Accessibility) ── */
.skip-link{position:absolute;top:-100px;left:1rem;background:var(--c1);color:#fff;padding:8px 16px;border-radius:0 0 8px 8px;font-size:14px;font-weight:500;text-decoration:none;z-index:9999;transition:top .2s}
.skip-link:focus{top:0}

/* ── ft-contact fix ── */
.ft-contact{display:flex;flex-direction:column;gap:.55rem}

/* ── Form error state ── */
.fgrp input[aria-invalid="true"],.fgrp select[aria-invalid="true"],.fgrp textarea[aria-invalid="true"]{border-color:#ef4444!important;background:#fff5f5}

/* ── Progress bar animation support ── */
.prog-fill{transition:none}

/* ── Blog single image ── */
.blog-hero-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);margin-bottom:2rem}

/* ── OG Image placeholder ── */
.og-placeholder{background:var(--c1);border-radius:var(--r)}

/* ── Animate hero stats numbers ── */
@keyframes countUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hero-stat-n{animation:countUp .7s ease both}
.hero-stat-n:nth-child(1){animation-delay:.2s}
.hero-stat-n:nth-child(2){animation-delay:.35s}

/* ── Trust bar wrapping fix ── */
@media(max-width:640px){.trust-items{gap:1rem}.trust-item{font-size:12px}}

/* ── Service detail icon colour fix ── */
.ico-d svg{color:#2471a3}
.ico-r svg{color:#27ae60}
.ico-l svg{color:#c87a10}
.ico-rs svg{color:#c0392b}
.ico-k svg{color:var(--c1)}
.ico-a svg{color:#e67e22}
.ico-p svg{color:#6c3483}
.ico-s svg{color:#fff}

/* ── Cookie banner show state ── */
#cookie-banner:not(.hidden){display:flex}

/* ── Print styles ── */
@media print{
  .nav,.ham,.mob-menu,#cookie-banner,.hero-r,.jobs-qr{display:none!important}
  .hero{min-height:auto;grid-template-columns:1fr;background:#fff;color:#000;padding-top:0}
  .hero h1,.hero-sub{color:#000}
  a[href]::after{content:" ("attr(href)")";font-size:11px;color:#666}
  a[href^="tel"]::after,a[href^="mailto"]::after{content:""}
}


/* ── Footer brand logo ── */
.ft-brand-logo{display:inline-flex;align-items:center;margin-bottom:.85rem;text-decoration:none}
.ft-brand-logo img{filter:brightness(0) invert(1)}

/* ── About feats grid ── */
.about-feats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}

/* ── Nav logo: no text fallback span visible ── */
#nav-logo-svg svg{display:inline-block !important}

/* ── Gallery section in ueber-uns ── */
#galerie .gitem{border-radius:var(--rl);overflow:hidden;position:relative;aspect-ratio:4/3;background:var(--c3);cursor:pointer;display:block}
#galerie .gitem img{width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block}
#galerie .gitem:hover img{transform:scale(1.06)}
#galerie .gov{position:absolute;inset:0;background:rgba(15,31,24,.55);opacity:0;transition:opacity .3s;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;padding:1rem}
#galerie .gitem:hover .gov{opacity:1}
#galerie .gov h4{font-family:var(--serif);font-size:.95rem;text-align:center;margin-bottom:.3rem}
#galerie .gov p{font-size:11.5px;opacity:.72;text-align:center}
#galerie .gph{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
#galerie .gph svg{width:44px;height:44px;color:var(--c2);opacity:.3}

/* ── Progress item spacing fix ── */
.prog-item{margin-bottom:1.25rem}
.prog-lbl{display:flex;justify-content:space-between;margin-bottom:.42rem}
.prog-lbl span:first-child{font-size:13px;color:rgba(255,255,255,.68)}
.prog-lbl span:last-child{font-size:13px;color:var(--acc);font-weight:600}
.prog-track{height:5px;background:rgba(255,255,255,.07);border-radius:100px;overflow:hidden}
.prog-fill{height:100%;background:linear-gradient(90deg,var(--acc),var(--c2));border-radius:100px;transition:width 1.2s cubic-bezier(.4,0,.2,1)}
.about-stat{margin-top:1.75rem;background:rgba(255,255,255,.05);border-radius:var(--r);padding:1.5rem;text-align:center;border:1px solid rgba(255,255,255,.06)}
.about-sn{font-family:var(--serif);font-size:2.8rem;color:#fff;display:block}
.about-sl{color:rgba(255,255,255,.4);font-size:12.5px;margin-top:3px}
.about-vis{background:rgba(255,255,255,.04);border-radius:var(--rl);border:1px solid rgba(255,255,255,.07);padding:2.25rem}
.about-vis-t{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:1.5rem}

/* ── Hero card – fully clickable link ── */
.hcard-link{display:block;text-decoration:none;cursor:pointer}
.hcard-link .hcard{transition:transform .28s,box-shadow .28s}
.hcard-link:hover .hcard{transform:translateY(-6px) scale(1.015);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.hcard-link:focus{outline:none}
.hcard-link:focus .hcard{box-shadow:0 0 0 3px var(--acc),0 20px 50px rgba(0,0,0,.3)}

/* ── Single Floating CTA Button ── */
#float-btn:hover{transform:translateY(-3px)!important;box-shadow:0 14px 40px rgba(26,74,58,.55)!important}

/* ── Mobile: blog-grid ── */
@media(max-width:768px){
  .blog-grid{grid-template-columns:1fr}
  .blog-layout{grid-template-columns:1fr}
  .blog-sidebar{position:static}
}

/* ── Mobile: ueber-uns sections ── */
@media(max-width:1100px){
  .ueber-uns-grid,.about-g{grid-template-columns:1fr!important}
}

/* ── Mobile: float button compact ── */
@media(max-width:480px){
  #float-btn>div{padding:11px 14px;gap:9px}
  #float-btn>div>div:first-child{width:34px;height:34px}
  #float-btn>div>div:nth-child(2)>div:last-child{display:none}
}

/* ── Touch targets: min 44px for mobile accessibility ── */
@media(max-width:768px){
  .btn,.btn-sm,.btn-al,.btn-gl,.btn-p,.btn-o{min-height:44px}
  .nav-links a{min-height:44px;display:flex;align-items:center}
  .faq-q{min-height:52px}
  .ltab{min-height:44px}
  .mob-menu a{min-height:48px;display:flex;align-items:center}
}

/* ── Mobile: hero layout ── */
@media(max-width:1100px){
  .hero{grid-template-columns:1fr;min-height:auto;padding:calc(var(--nh) + 2.5rem) 0 3rem}
  .hero-r{display:none!important}
  .hero-l{padding:2.5rem 1.5rem!important}
}

/* ── Mobile: forms ── */
@media(max-width:600px){
  .form-card{padding:1.5rem}
  .fg{grid-template-columns:1fr!important}
  .fg .fgrp.s2{grid-column:1!important}
  .radio-g{grid-template-columns:1fr!important}
  .book-layout{grid-template-columns:1fr}
  .book-sidebar{display:none}
}

/* ── Mobile: admin ── */
@media(max-width:768px){
  .adm-nav-links{display:none}
  .adm-stats{grid-template-columns:1fr 1fr}
  .adm-wrap{padding:1.25rem 1rem}
}

/* ── Mobile: B2B layout ── */
@media(max-width:900px){
  .b2b-layout{grid-template-columns:1fr}
  .login-card{position:static!important}
}

/* ── Print ── */
@media print{
  .nav,.ham,.mob-menu,#cookie-banner,#float-btn,.jobs-qr,.phdr-bg{display:none!important}
  body{font-size:12pt}
  a[href]:not([href^="#"])::after{content:" ("attr(href)")";font-size:9pt;color:#666}
  a[href^="tel"]::after,a[href^="mailto"]::after{content:""}
  .container{max-width:none;padding:0}
}

/* ════════════════════════════════════════════════════════
   COMPLETE MOBILE FIX v5 – fixes all responsive issues
   ════════════════════════════════════════════════════════ */

/* ── HERO: hide card on ALL mobile/tablet ── */
@media(max-width:1200px){
  .hero{grid-template-columns:1fr!important;min-height:auto}
  .hero-r,.hcard-link{display:none!important}
  .hero-l{padding:3.5rem 2rem!important;max-width:100%}
}
@media(max-width:768px){
  .hero-l{padding:2.5rem 1.25rem!important}
  .hero h1{font-size:clamp(1.9rem,8vw,2.8rem)!important}
  .hero-sub{font-size:15px!important;max-width:100%!important}
  .hero-btns{flex-direction:column!important;gap:.65rem!important}
  .hero-btns a,.hero-btns .btn{width:100%!important;justify-content:center!important}
  .hero-stats{gap:1.5rem!important;padding-top:1.5rem!important;margin-top:2rem!important}
  .hero-badge{font-size:11px!important}
}

/* ── TRUST BAR mobile ── */
@media(max-width:768px){
  .trust-bar{display:none}/* hide on very small, save space */
}

/* ── SERVICES GRID mobile ── */
@media(max-width:900px){
  .srv-grid{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:500px){
  .srv-grid{grid-template-columns:1fr!important}
}

/* ── ABOUT SECTION (Warum wir) mobile ── */
@media(max-width:1100px){
  .about-g{grid-template-columns:1fr!important;gap:2rem!important}
  .about-vis{margin-top:1.5rem}
}
@media(max-width:768px){
  .about-feats{grid-template-columns:1fr 1fr!important;gap:.75rem!important}
  .about-sec{padding:3rem 0!important}
}
@media(max-width:480px){
  .about-feats{grid-template-columns:1fr!important}
}

/* ── TEASER CARDS mobile ── */
@media(max-width:768px){
  .teaser-g,.tg{grid-template-columns:1fr!important}
  .teaser-sec{padding:3rem 0!important}
}

/* ── TESTIMONIALS mobile ── */
@media(max-width:768px){
  .test-g{grid-template-columns:1fr!important}
}

/* ── ÜBER UNS PAGE mobile ── */
@media(max-width:1100px){
  /* All inline grids in ueber-uns.php */
  [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:768px){
  .phdr{padding:calc(var(--nh) + 2rem) 0 2rem!important}
  .phdr h1{font-size:clamp(1.6rem,7vw,2.5rem)!important}
  .book-layout{grid-template-columns:1fr!important;gap:1.5rem!important}
  .book-sidebar{display:none}
  .form-card{padding:1.25rem!important}
  .fg{grid-template-columns:1fr!important}
  .fgrp.s2{grid-column:1!important}
  .radio-g{grid-template-columns:1fr!important}
}

/* ── B2B DASHBOARD mobile ── */
@media(max-width:900px){
  /* Tab grid to 2x2 */
  [style*="display:flex;gap:0;border"]{flex-wrap:wrap!important}
  /* Stats grid */
  .adm-stats{grid-template-columns:repeat(2,1fr)!important}
  /* Patient + recurring two-column → single */
  .adm-card + [style*="grid-template-columns:1fr 360px"],
  .adm-card + [style*="grid-template-columns:1fr 380px"]{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:768px){
  .adm-nav{padding:0 1rem!important}
  .adm-nav-links{gap:.65rem!important}
  .adm-nav-links a{font-size:11.5px!important}
  .adm-wrap{padding:1.25rem 1rem!important}
  .adm-stats,.adm-stat{font-size:inherit}
  .adm-tbl{font-size:12px!important}
  .adm-tbl th,.adm-tbl td{padding:8px 8px!important}
  /* B2B tabs: wrap to 2 columns */
  [style*="display:flex;gap:0;border:1px solid var(--br);border-radius:var(--r);overflow:hidden;margin-bottom"]{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:500px){
  [style*="display:flex;gap:0;border:1px solid var(--br);border-radius:var(--r);overflow:hidden;margin-bottom"]{
    grid-template-columns:1fr!important;
  }
}

/* ── NAV mobile fixes ── */
@media(max-width:900px){
  .nav-links{display:none!important}
}
@media(max-width:768px){
  .nav-r{display:none!important}
  .ham{display:flex!important}
  .nav-phone{display:none!important}
}

/* ── BUTTON icons: prevent oversized icons on mobile ── */
.btn svg,.btn-al svg,.btn-gl svg,.btn-p svg,.btn-o svg,.btn-a svg{
  width:16px!important;height:16px!important;flex-shrink:0
}
.btn-lg svg{width:17px!important;height:17px!important}

/* ── FOOTER mobile ── */
@media(max-width:900px){
  .ft-grid{grid-template-columns:1fr 1fr!important;gap:2rem!important}
}
@media(max-width:600px){
  .ft-grid{grid-template-columns:1fr!important;gap:1.5rem!important}
  .ft-bottom{flex-direction:column!important;gap:.75rem!important;text-align:center!important}
  .footer{padding:2.5rem 0 0!important}
}

/* ── UEBER UNS: explicit mobile grids ── */
@media(max-width:900px){
  .ueber-content-grid{grid-template-columns:1fr!important}
  .ueber-strengths-grid{grid-template-columns:1fr!important}
  .ueber-values-grid{grid-template-columns:repeat(2,1fr)!important}
  .ueber-gallery-grid{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:500px){
  .ueber-values-grid{grid-template-columns:1fr!important}
  .ueber-gallery-grid{grid-template-columns:1fr!important}
}

/* ── JOBS mobile ── */
@media(max-width:768px){
  .jobs-card{grid-template-columns:1fr!important}
  .jobs-qr{display:none!important}
  .jobs-acts{flex-direction:column!important}
  .jobs-acts a{text-align:center!important}
}

/* ── BLOG mobile ── */
@media(max-width:768px){
  .blog-grid{grid-template-columns:1fr!important}
  .blog-layout,.blog-single-layout{grid-template-columns:1fr!important}
}

/* ── BOOKING PAGE mobile ── */
@media(max-width:768px){
  .book-layout{grid-template-columns:1fr!important}
  .book-sidebar{display:none!important}
}

/* ── DIENSTLEISTUNGEN mobile ── */
@media(max-width:768px){
  .svd-layout,.service-detail-layout{grid-template-columns:1fr!important}
  .svd-sidebar{display:none}
}

/* ── KONTAKT mobile ── */
@media(max-width:900px){
  .cont-layout{grid-template-columns:1fr!important}
}

/* ── B2B PAGE mobile ── */
@media(max-width:900px){
  .b2b-layout,.b2b-sec .b2b-layout{grid-template-columns:1fr!important}
  .login-card{position:static!important}
}

/* ── Cookie banner mobile ── */
@media(max-width:600px){
  #cookie-banner{flex-direction:column!important;gap:.85rem!important;padding:1rem 1.25rem!important}
  .ck-acts{flex-direction:column!important;width:100%}
  .ck-acc,.ck-ess{width:100%!important;text-align:center!important;padding:10px!important}
}

/* ── Float button mobile ── */
@media(max-width:480px){
  #float-btn>div{padding:10px 13px!important;gap:8px!important}
  #float-btn>div>div:first-child{width:32px!important;height:32px!important}
  #float-btn>div>div:last-child{display:none!important}/* hide arrow on tiny screens */
}

/* ── Container padding mobile ── */
@media(max-width:600px){
  .container{padding:0 1rem!important}
  section{padding:2.5rem 0!important}
}

/* ── Sections spacing mobile ── */
@media(max-width:768px){
  .srv-sec,.about-sec,.teaser-sec,.test-sec,.faq-sec,.areas-sec,.jobs-sec{
    padding:2.5rem 0!important
  }
}

/* ── B2B Dashboard specific mobile ── */
@media(max-width:900px){
  .b2b-split-layout{grid-template-columns:1fr!important}
  .b2b-account-grid{grid-template-columns:1fr!important}
  .b2b-tabs{flex-wrap:wrap!important}
  .b2b-tabs a{flex:1 0 45%!important;border-bottom:1px solid var(--br)!important}
  .b2b-stats{grid-template-columns:repeat(3,1fr)!important}
  [style*="position:sticky;top:calc(var(--nh)"]{position:static!important}
}
@media(max-width:600px){
  .b2b-tabs a{flex:1 0 100%!important;font-size:13px!important}
  .b2b-stats{grid-template-columns:repeat(2,1fr)!important}
}

/* ── Admin nav mobile hamburger ── */
.adm-ham{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:4px}
.adm-ham span{display:block;width:20px;height:2px;background:rgba(255,255,255,.8);border-radius:2px;transition:all .3s}
@media(max-width:768px){
  .adm-nav{padding:0 1rem;height:52px}
  .adm-nav-links{display:none;position:fixed;top:52px;left:0;right:0;background:var(--c2);flex-direction:column;padding:1rem;gap:.25rem;z-index:999}
  .adm-nav-links.open{display:flex}
  .adm-nav-links a{padding:10px 12px;border-radius:7px;font-size:14px!important;border-bottom:none!important}
  .adm-nav-links a:hover{background:rgba(255,255,255,.1)}
  .adm-ham{display:flex}
  .adm-wrap{padding:1rem!important}
  .adm-stats{grid-template-columns:1fr 1fr!important}
  .adm-tbl{font-size:11.5px}
  .adm-tbl th{padding:7px 6px!important}
  .adm-tbl td{padding:8px 6px!important}
  .adm-card{padding:1.1rem!important}
  /* Hide less important columns on mobile */
  .adm-tbl .hide-mobile{display:none!important}
}
