/* === Design Tokens === */
:root {
	--color-primary:#0a4d72;
	--color-primary-accent:#1289b8;
	--color-secondary:#ff267e;
	--color-bg:#f5f9fc;
	--color-surface:#ffffff;
	--color-text:#20323c;
	--radius-sm:6px;
	--radius:16px;
	--radius-lg:32px;
	--gradient-hero:linear-gradient(135deg,#0a4d72 0%,#1289b8 60%,#25b9ff 100%);
	--shadow-sm:0 2px 4px -1px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
	--shadow:0 4px 16px -2px rgba(0,0,0,.12);
	--font-base: 'Inter', system-ui, 'Segoe UI', Roboto, Arial, sans-serif;
	--font-display: 'Merriweather Sans', 'Inter', system-ui, 'Segoe UI', Roboto, Arial, sans-serif;
	font-family: var(--font-base);
	/* Default form controls follow light look unless overridden */
	color-scheme: light;
}

/* Dark theme (manual override) */
:root[data-theme="dark"] {
	--color-bg:#0a1020;           /* etwas tieferes, ruhiges Blau-Schwarz */
	--color-surface:#0e1930;      /* leicht heller als BG für Karten */
	--color-text:#e7eef6;         /* angenehmes, klares Hell */
	--color-primary:#1f6feb;      /* Blau bleibt Brand-nah */
	--color-primary-accent:#7cc2ff; /* lebendigeres Akzent-Blau */
	--color-secondary:#ff3b7a;    /* knackigeres Pink/Coral für CTAs */
	--gradient-hero:linear-gradient(135deg,#08142a 0%,#0d2443 55%,#163c66 100%);
	--shadow-sm:0 1px 2px rgba(0,0,0,.55);
	--shadow:0 10px 30px rgba(0,0,0,.62);
	/* Help native controls pick dark palette */
	color-scheme: dark;
}

/* Neon Green theme */
:root[data-theme="neon"] {
	--color-bg:#050913;
	--color-surface:#081326;
	--color-text:#eafff2;
	--color-primary:#39ff14;          /* Neon Grün */
	--color-primary-accent:#9bff84;   /* softer neon */
	--color-secondary:#00e5ff;        /* cyan pop */
	--gradient-hero:linear-gradient(135deg,#041019 0%,#071f19 55%,#083314 100%);
	--shadow-sm:0 1px 2px rgba(0,255,163,.25);
	--shadow:0 10px 30px rgba(0,255,163,.22);
	color-scheme: dark;
}

/* Violet theme */
:root[data-theme="violet"] {
	--color-bg:#0e0917;
	--color-surface:#150e24;
	--color-text:#efe9ff;
	--color-primary:#8b5cf6;          /* purple */
	--color-primary-accent:#a78bfa;
	--color-secondary:#ff70a6;        /* magenta */
	--gradient-hero:linear-gradient(135deg,#0a0712 0%,#1b1031 55%,#2a1652 100%);
	--shadow-sm:0 1px 2px rgba(139,92,246,.35);
	--shadow:0 10px 30px rgba(139,92,246,.28);
	color-scheme: dark;
}

/* Forest theme */
:root[data-theme="forest"] {
	--color-bg:#07120c;
	--color-surface:#0c1e15;
	--color-text:#e8fff3;
	--color-primary:#10b981;          /* emerald */
	--color-primary-accent:#34d399;
	--color-secondary:#f59e0b;        /* amber */
	--gradient-hero:linear-gradient(135deg,#06120c 0%,#0b251a 55%,#0e3b28 100%);
	--shadow-sm:0 1px 2px rgba(16,185,129,.28);
	--shadow:0 10px 30px rgba(16,185,129,.22);
	color-scheme: dark;
}

/* Respect system preference when no manual theme chosen */
@media (prefers-color-scheme: dark){
	:root:not([data-theme]){
		--color-bg:#0b1220;
		--color-surface:#0f1a2b;
		--color-text:#e6edf3;
		--color-primary:#1f6feb;
		--color-primary-accent:#58a6ff;
		--color-secondary:#ff70a6;
		--gradient-hero:linear-gradient(135deg,#071427 0%,#0d2540 55%,#163d66 100%);
		--shadow-sm:0 1px 2px rgba(0,0,0,.5);
		--shadow:0 10px 30px rgba(0,0,0,.6);
	}
}

/* FORCE LIGHT THEME (all text black) */
:root[data-theme="light"] {
	--color-bg:#ffffff;
	--color-surface:#ffffff;
	--color-text:#000000;
	--color-primary:#0a4d72; /* keep branding */
	--color-primary-accent:#1289b8;
	--color-secondary:#ff267e;
	--gradient-hero:linear-gradient(135deg,#f2f8fc 0%,#ffffff 55%,#ffffff 100%);
}
:root[data-theme="light"] body { background:var(--color-bg); color:var(--color-text); }
:root[data-theme="light"] header { background:var(--gradient-hero); color:#000; }
:root[data-theme="light"] .brand, :root[data-theme="light"] .brand-title { color:#000; text-shadow:none; }
:root[data-theme="light"] .nav-links a { color:#000; }
:root[data-theme="light"] .nav-links a:hover, :root[data-theme="light"] .nav-links a:focus-visible { color:var(--color-primary); }
:root[data-theme="light"] .nav-toggle, :root[data-theme="light"] .theme-toggle { background:rgba(0,0,0,.05); border:1px solid rgba(0,0,0,.2); color:#000; }
:root[data-theme="light"] .nav-toggle:hover, :root[data-theme="light"] .theme-toggle:hover { background:rgba(0,0,0,.1); }
:root[data-theme="light"] .card { background:var(--color-surface); color:#000; border:1px solid rgba(0,0,0,.08); }
:root[data-theme="light"] h1, :root[data-theme="light"] h2, :root[data-theme="light"] h3, :root[data-theme="light"] h4 { color:#000; }
:root[data-theme="light"] .pill { color:#000; background:#e6f2f8; }
:root[data-theme="light"] footer { color:#000; }
:root[data-theme="light"] footer a { color:#000; }
:root[data-theme="light"] .btn.outline { color:#000; border-color:#000; }
:root[data-theme="light"] .btn.outline:hover { background:#000; color:#fff; }

* { box-sizing:border-box; }
body { margin:0; padding:0; line-height:1.55; background:var(--color-bg); color:var(--color-text); -webkit-font-smoothing:antialiased; font-family:var(--font-base); }
a { color:var(--color-primary-accent); }
a:hover, nav a:hover { text-decoration:underline; }

/* Header / Nav */
header { background:var(--gradient-hero); color:#fff; position:relative; overflow:hidden; }
header:before { content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'%3E%3Cg fill='none' stroke='%23ffffff22' stroke-width='8'%3E%3Ccircle cx='200' cy='200' r='60'/%3E%3Ccircle cx='200' cy='200' r='120'/%3E%3Ccircle cx='200' cy='200' r='180'/%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat; opacity:.35; mix-blend-mode:overlay; }
header .topbar { position:relative; }
footer { background:var(--gradient-hero); color:#fff; margin-top:3rem; font-size:.85rem; text-align:center; padding:2.2rem 1rem 2.5rem; position:relative; }

nav a { color:#fff; margin:0 .75rem; text-decoration:none; font-weight:500; position:relative; padding:.35rem .25rem; border-radius:var(--radius-sm); transition:background .25s, color .25s; }
nav a[aria-current="page"] { background:rgba(255,255,255,.2); }
nav a:focus-visible { outline:3px solid #fff; outline-offset:2px; }
nav a:hover { background:rgba(255,255,255,.15); text-decoration:none; }

.brand { display:flex; align-items:center; gap:.9rem; flex-wrap:nowrap; text-decoration:none; color:#fff; font-weight:600; }
.brand img { height:68px; width:auto; display:block; object-fit:contain; filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); }
.brand-title { font-size:1.2rem; font-weight:600; line-height:1.05; letter-spacing:.5px; margin:0; text-shadow:0 2px 4px rgba(0,0,0,.25); }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; flex-wrap:wrap; padding:.6rem 1.2rem .9rem; max-width:1180px; margin:0 auto; }
.nav-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; }

/* Mobile Nav */
.nav-toggle { display:none; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.4); padding:.55rem .9rem; border-radius:var(--radius-sm); color:#fff; font-weight:600; cursor:pointer; backdrop-filter:blur(6px); }
.nav-toggle:focus-visible { outline:3px solid #fff; outline-offset:2px; }
/* collapse only on small screens (see media query below) */

/* Theme toggle */
.theme-toggle { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.4); color:#fff; padding:.55rem .75rem; border-radius:var(--radius-sm); cursor:pointer; font-weight:700; line-height:1; }
.theme-toggle:hover { background:rgba(255,255,255,.25); }
.theme-toggle:focus-visible { outline:3px solid #fff; outline-offset:2px; }

@media (max-width:820px){
	.nav-toggle { display:inline-block; }
	.nav-links { flex-direction:column; align-items:flex-start; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); padding:1rem; border-radius:var(--radius); width:100%; }
	.nav-links a { margin:.35rem 0; }
	.nav-links.is-collapsed { display:none; }
}

main { padding:2rem 1.25rem 3.5rem; max-width:1180px; margin:0 auto; }
.container-narrow { max-width:840px; margin:0 auto; }
/* Readability: limit line length for primary text blocks */
main .container-narrow p,
main .container-narrow li,
main .card p { max-width: 78ch; }
/* Proof badges */
.proof-badges { display:flex; flex-wrap:wrap; gap:.6rem .8rem; margin:1rem 0 1.25rem; }
.proof { background:var(--color-surface); color:var(--color-text); border:1px solid rgba(0,0,0,.06); padding:.4rem .7rem; border-radius:999px; font-weight:600; font-size:.9rem; box-shadow:var(--shadow-sm); }
:root[data-theme="dark"] .proof { border-color:rgba(255,255,255,.08); }

/* Hero */
.hero { position:relative; padding:3.5rem 0 2.5rem; color:#fff; }
:root[data-theme="dark"] .hero { background:linear-gradient(120deg,#0d2540 0%,#071427 70%); }
.hero-overlay { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 70% 35%,rgba(31,111,235,.25),transparent 60%), radial-gradient(circle at 20% 70%,rgba(255,112,166,.18),transparent 65%); mix-blend-mode:screen; opacity:.9; }
.hero-col { position:relative; z-index:2; }
.mini-cards { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); align-content:start; }
.mini-card { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); padding:1rem .9rem 1.1rem; border-radius:var(--radius-lg); backdrop-filter:blur(10px); position:relative; overflow:hidden; min-height:140px; display:flex; flex-direction:column; gap:.4rem; transition:transform .4s,cubic-bezier(.4,.2,.2,1), border-color .4s, background .4s; }
:root[data-theme="light"] .mini-card { background:rgba(10,77,114,.06); border:1px solid rgba(10,77,114,.18); }
.mini-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 110% -10%, var(--color-primary-accent) 0%, transparent 60%); opacity:.15; pointer-events:none; }
.mini-card:hover { transform:translateY(-6px) scale(1.02); }
.mini-card h3 { margin:.2rem 0 .1rem; font-size:1rem; letter-spacing:.5px; }
.mini-card p { margin:0; font-size:.8rem; opacity:.85; }
.mini-ico { font-size:1.4rem; line-height:1; filter:drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
.btn.ghost { --btn-bg:transparent; --btn-bg-hover:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.5); }
:root[data-theme="light"] .btn.ghost { border-color:var(--color-primary); color:var(--color-primary); }

/* Reveal Animations */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .9s cubic-bezier(.4,.2,.2,1), transform .9s cubic-bezier(.4,.2,.2,1); }
.reveal.is-visible { opacity:1; transform:translateY(0); }

/* Counters */
.counter { position:relative; }
:root[data-theme="light"] .hero { color:#000; }
:root[data-theme="light"] .hero h1 { color:#000; text-shadow:none; }
:root[data-theme="light"] .hero p.lead { color:#000; text-shadow:none; }
.hero-grid { display:grid; gap:2.5rem; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); align-items:center; }
.hero h1 { font-size:clamp(2.2rem,5.2vw,3.4rem); line-height:1.05; margin:0 0 1rem; letter-spacing:.5px; text-shadow:0 4px 18px rgba(0,0,0,.35); font-family:var(--font-display); }
.hero p.lead { font-size:clamp(1.05rem,1.7vw,1.35rem); max-width:640px; font-weight:500; margin:0 0 1.75rem; text-shadow:0 2px 9px rgba(0,0,0,.4); }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
/* Homepage upgrades */
.hero p.subclaim { margin:.2rem 0 1.2rem; font-weight:600; letter-spacing:.2px; opacity:.95; }
.hero-media { position:relative; border-radius:22px; overflow:hidden; box-shadow:0 18px 40px rgba(0,0,0,.28); margin:0 0 1rem; }
.hero-media img { display:block; width:100%; height:auto; object-fit:cover; aspect-ratio:4/3; filter:saturate(1.05) contrast(1.02); }

/* Buttons */
.btn { /* keep variables */ --btn-bg:var(--color-secondary); --btn-bg-hover:#ff4991; --btn-color:#fff; display:inline-flex; align-items:center; gap:.5rem; font-weight:600; border:none; cursor:pointer; background:var(--btn-bg); color:var(--btn-color); padding:.85rem 1.25rem; font-size:1rem; border-radius:var(--radius-sm); box-shadow:0 3px 8px -2px rgba(0,0,0,.3); text-decoration:none; position:relative; transition:background .25s, transform .2s ease, box-shadow .2s ease; }
.btn:hover { background:var(--btn-bg-hover); text-decoration:none; transform: translateY(-2px); box-shadow:0 6px 16px -2px rgba(0,0,0,.35); }
.btn:active { transform:translateY(2px); box-shadow:0 1px 4px -1px rgba(0,0,0,.4); }
.btn.outline { --btn-bg:rgba(255,255,255,.2); --btn-bg-hover:rgba(255,255,255,.32); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.5); }
/* Punchier CTAs in dark mode */
:root[data-theme="dark"] .btn { --btn-bg:linear-gradient(90deg,#ff3b7a 0%, #ff8e53 100%); --btn-bg-hover:linear-gradient(90deg,#ff4d86 0%, #ffa36e 100%); }
:root[data-theme="dark"] .btn.ghost { border-color:var(--color-primary-accent); color:var(--color-primary-accent); }

/* Adjust CTA contrast for vivid themes */
:root[data-theme="neon"] .btn { --btn-bg:linear-gradient(90deg,#39ff14 0%, #00ffa3 100%); --btn-bg-hover:linear-gradient(90deg,#57ff3a 0%, #33ffb9 100%); color:#001b0c; text-shadow:none; }
:root[data-theme="violet"] .btn { --btn-bg:linear-gradient(90deg,#ff70a6 0%, #8b5cf6 100%); --btn-bg-hover:linear-gradient(90deg,#ff8bb7 0%, #a78bfa 100%); }
:root[data-theme="forest"] .btn { --btn-bg:linear-gradient(90deg,#10b981 0%, #34d399 100%); --btn-bg-hover:linear-gradient(90deg,#1dd0a0 0%, #4ee2ad 100%); }

/* Feature Cards */
.features { margin-top:2.25rem; display:grid; gap:1.4rem; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.card { background:var(--color-surface); border-radius:var(--radius); padding:1.1rem 1.1rem 1.25rem; box-shadow:var(--shadow-sm); position:relative; overflow:hidden; display:flex; flex-direction:column; gap:.6rem; transition:box-shadow .25s, transform .25s; }
.card { border:1px solid rgba(0,0,0,.06); }
:root[data-theme="dark"] .card, :root:not([data-theme]) body.dark .card { border-color:rgba(255,255,255,.06); }
.card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 120% 0,var(--color-primary-accent) 0%,transparent 60%); opacity:.08; pointer-events:none; }
.card:hover { box-shadow:var(--shadow); transform:translateY(-4px); }
.card h3 { margin:.25rem 0 .35rem; font-size:1.15rem; }
.card p { margin:0; font-size:.95rem; }
.card .actions { margin-top:auto; }
.pill { display:inline-block; background:var(--color-secondary); color:#fff; font-size:.65rem; letter-spacing:.5px; font-weight:700; padding:.3rem .55rem .35rem; border-radius:2rem; text-transform:uppercase; box-shadow:0 2px 4px -1px #ff267e66; }
/* Team grid */
.team-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; margin-top:1rem; }
.team-card { display:flex; gap:.8rem; background:var(--color-surface); border:1px solid rgba(0,0,0,.06); border-radius:16px; padding:.9rem 1rem; box-shadow:var(--shadow-sm); }
:root[data-theme="dark"] .team-card { border-color:rgba(255,255,255,.08); }
.avatar { flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; letter-spacing:.5px; color:#fff; background:linear-gradient(135deg,var(--color-secondary),var(--color-primary-accent)); }
.team-name { margin:.1rem 0 .1rem; font-size:1.05rem; }
.team-role { font-size:.85rem; opacity:.8; }
.team-quote { margin:.35rem 0 0; font-size:.92rem; }
/* Steps */
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; counter-reset: s; margin-top:1rem; }
.steps li { list-style:none; background:var(--color-surface); border:1px solid rgba(0,0,0,.06); border-radius:16px; padding:1rem; position:relative; box-shadow:var(--shadow-sm); }
:root[data-theme="dark"] .steps li { border-color:rgba(255,255,255,.08); }
.steps li::before { counter-increment:s; content: counter(s); position:absolute; top:10px; right:12px; font-weight:800; opacity:.15; font-size:2rem; }
.step-ico { font-size:1.3rem; }
.steps h3 { margin:.3rem 0 .2rem; font-size:1rem; }
.steps p { margin:0; font-size:.92rem; }
/* Mini testimonials row */
.mini-testimonials { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:.75rem; margin-top:1rem; }
.mini-quote { background:var(--color-surface); border:1px solid rgba(0,0,0,.06); padding:.7rem .8rem; border-radius:12px; font-size:.92rem; box-shadow:var(--shadow-sm); }
:root[data-theme="dark"] .mini-quote { border-color:rgba(255,255,255,.08); }

/* Careers: job list and cards */
.jobs-list { display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); align-items:stretch; }
.job-card { background:var(--color-surface); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius); padding:1.1rem 1.1rem 1.25rem; box-shadow:var(--shadow-sm); position:relative; overflow:hidden; display:flex; flex-direction:column; gap:.6rem; transition:box-shadow .25s, transform .25s; }
:root[data-theme="dark"] .job-card { border-color:rgba(255,255,255,.06); }
.job-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 120% 0,var(--color-primary-accent) 0%,transparent 60%); opacity:.06; pointer-events:none; }
.job-card:hover { box-shadow:var(--shadow); transform:translateY(-4px); }
.job-card h3 { margin:.25rem 0 .25rem; font-size:1.05rem; }
.job-card ul { margin:.2rem 0 .2rem .95rem; padding:0; }
.job-card li { margin:.2rem 0; }
.job-card .btn { margin-top:auto; align-self:flex-start; }

/* Testimonials */
.testimonials-grid { margin-top:1.2rem; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.t-card { display:flex; flex-direction:column; gap:.6rem; }
.t-card blockquote { margin:0; font-size:.95rem; line-height:1.5; }
.t-card figcaption { font-size:.85rem; opacity:.8; }
.stars { color:#fbbf24; letter-spacing:2px; font-size:1rem; }

/* Stats */
.stats-grid { display:grid; gap:1.4rem; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); margin-top:1.5rem; }
.stat { background:var(--color-surface); padding:1.4rem 1rem 1.3rem; border-radius:var(--radius); text-align:center; position:relative; overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid rgba(0,0,0,.06); }
:root[data-theme="dark"] .stat { border-color:rgba(255,255,255,.08); }
.stat-number { font-size:clamp(1.8rem,4vw,2.6rem); font-weight:700; letter-spacing:.5px; line-height:1; margin:0 0 .4rem; background:linear-gradient(90deg,var(--color-secondary),var(--color-primary-accent)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-label { font-size:.8rem; text-transform:uppercase; letter-spacing:.5px; opacity:.85; font-weight:600; line-height:1.2; }

/* Locations */
.location-grid { display:grid; gap:1.75rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:1.75rem; }
.loc-card { background:var(--color-surface); border:1px solid rgba(0,0,0,.06); padding:1rem 1rem 1.25rem; border-radius:var(--radius); box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:.6rem; }
:root[data-theme="dark"] .loc-card { border-color:rgba(255,255,255,.08); }
.loc-card h3 { margin:.2rem 0 .2rem; font-size:1.05rem; }
.map-wrap { position:relative; aspect-ratio:4/3; background:#0a4d72; border-radius:var(--radius-sm); overflow:hidden; box-shadow:0 2px 6px -1px rgba(0,0,0,.4); }
.map-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:0; filter:brightness(.92) contrast(1.05); }
:root[data-theme="dark"] .map-wrap iframe { filter:brightness(.8) contrast(1.1) saturate(.9); }
/* Location CTA button spacing */
.loc-cta { margin-top:.4rem; }

/* Section intro */
.section-intro { opacity:.85; max-width:780px; }

/* Sections */
section { margin-top:3.5rem; padding-block:.6rem; }
section h2 { font-size:clamp(1.6rem,3.2vw,2.2rem); margin:.2rem 0 1rem; position:relative; }
section h2 span.accent { background:linear-gradient(90deg,var(--color-secondary),var(--color-primary-accent)); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* Form styling */
/* Themeable field colors */
:root { --field-border:#cfe3ef; --field-bg:transparent; --field-focus-ring:#1289b84a; }
/* In dark/vivid themes, ensure controls are not pure white */
:root[data-theme="dark"] { --field-border:#27415e; --field-bg:rgba(255,255,255,.06); --field-focus-ring:#58a6ff44; }
:root[data-theme="neon"] { --field-border:#39ff1480; --field-focus-ring:#39ff1444; }
:root[data-theme="violet"] { --field-border:#8b5cf680; --field-focus-ring:#a78bfa44; }
:root[data-theme="forest"] { --field-border:#10b98180; --field-focus-ring:#34d39944; }

form label { display:block; margin-top:1rem; font-weight:600; font-size:.9rem; color:var(--color-text); }
input[type=text], input[type=email], input[type=tel], input[type=file], select, textarea {
	width:100%; padding:.75rem .85rem; border:2px solid var(--field-border); background:var(--field-bg); border-radius:var(--radius-sm);
	font:inherit; color:var(--color-text); transition:border-color .25s, background .25s, color .25s, box-shadow .25s;
}
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--color-primary-accent); background:transparent; box-shadow:0 0 0 4px var(--field-focus-ring); }
textarea { resize:vertical; }
select { appearance:auto; background-image:none; color:var(--color-text); }
/* Force readable backgrounds for selects on dark/vivid themes */
:root[data-theme="dark"] select,
:root[data-theme="neon"] select,
:root[data-theme="violet"] select,
:root[data-theme="forest"] select { background-color: var(--field-bg); border-color: var(--field-border); color: var(--color-text); }
/* Option popup colors (best-effort, browser-dependent) */
option, optgroup { background-color: var(--color-surface); color: var(--color-text); }
input::placeholder, textarea::placeholder { color:#6b7280; opacity:.9; }
:root[data-theme="dark"] input::placeholder, :root[data-theme="dark"] textarea::placeholder { color:#98a2b3; opacity:.9; }

/* Form grid helpers used on careers page */
.grid-2 { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem 1.25rem; }
.grid-2 .full { grid-column:1 / -1; }
@media (max-width:720px){ .grid-2 { grid-template-columns:1fr; } }
.actions { display:flex; align-items:center; gap:.9rem; margin-top:.6rem; }
button { margin-top:1.1rem; }
button, .btn-primary { background:var(--color-primary); color:#fff; border:none; padding:.8rem 1.3rem; border-radius:var(--radius-sm); font-weight:600; cursor:pointer; box-shadow:0 3px 10px -2px rgba(0,0,0,.28); transition:background .25s, transform .25s; }
button:hover, .btn-primary:hover { background:var(--color-primary-accent); }
button:active { transform:translateY(2px); }
button:disabled { opacity:.55; cursor:not-allowed; }
.btn:focus-visible, button:focus-visible { outline:none; box-shadow:0 0 0 3px #7cc2ff80, 0 0 0 6px #1f6feb55; }
.consent { margin-top:1rem; font-size:.8rem; line-height:1.3; }
.status { margin-top:1rem; font-weight:600; }
/* Microcopy hints/trust */
.field-hint { font-size:.8rem; opacity:.8; margin-top:.25rem; }
.trust { margin-top:.6rem; font-size:.85rem; opacity:.85; }
/* Course result box */
.result-box { background:var(--color-surface); border:2px solid var(--color-primary-accent); border-radius:16px; padding:.8rem 1rem; font-weight:700; margin:0 0 1rem; box-shadow:var(--shadow-sm); }

/* Form dark adjustments are covered by variables above */

/* Utility */
.lead-tight { line-height:1.3; }
.text-center { text-align:center; }
.mt-0 { margin-top:0; }
.mb-0 { margin-bottom:0; }
.divider { height:2px; background:linear-gradient(90deg,transparent,var(--color-primary-accent),transparent); border:none; margin:3rem 0 2rem; opacity:.55; }
/* CTA centering */
#cta { text-align:center; }
#cta .btn { margin-top:.4rem; }

/* Footer Links */
.footer-links { display:flex; flex-wrap:wrap; gap:.85rem 1.25rem; justify-content:center; margin:0 0 1.2rem; padding:0; list-style:none; }
.footer-links a { color:#fff; text-decoration:none; font-size:.82rem; }
.footer-links a:hover { text-decoration:underline; }
/* Sticky CTA (right) */
.sticky-cta { position:fixed; right:16px; bottom:16px; z-index:3000; background:linear-gradient(90deg,var(--color-secondary),var(--color-primary-accent)); color:#fff; text-decoration:none; padding:.8rem 1rem; border-radius:999px; font-weight:700; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.sticky-cta:hover { filter:saturate(1.05) brightness(1.02); }
@media (max-width:720px){ .sticky-cta { right:12px; bottom:12px; } }
/* FAQ */
.faq details { background:var(--color-surface); border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:.65rem .8rem; box-shadow:var(--shadow-sm); margin:.6rem 0; }
:root[data-theme="dark"] .faq details { border-color:rgba(255,255,255,.08); }
.faq summary { cursor:pointer; font-weight:600; }
.faq summary::-webkit-details-marker{ display:none; }
.faq details[open] { border-color: var(--color-primary-accent); }
/* Timeline */
.timeline { list-style:none; padding:0; margin:1rem 0; position:relative; }
.timeline li { position:relative; padding:.6rem .6rem .6rem 1.4rem; margin:.4rem 0; background:var(--color-surface); border:1px solid rgba(0,0,0,.06); border-radius:12px; box-shadow:var(--shadow-sm); }
:root[data-theme="dark"] .timeline li { border-color:rgba(255,255,255,.08); }
.timeline li::before { content:""; position:absolute; left:.6rem; top:.9rem; width:8px; height:8px; border-radius:50%; background:var(--color-secondary); box-shadow:0 0 0 3px rgba(255,38,126,.2); }
/* Progress steps */
.progress-steps { display:flex; gap:.6rem; flex-wrap:wrap; margin:.5rem 0 1rem; }
.progress-steps .step { display:flex; align-items:center; gap:.4rem; padding:.35rem .6rem; border:1px solid rgba(0,0,0,.08); border-radius:999px; background:var(--color-surface); font-size:.9rem; }
:root[data-theme="dark"] .progress-steps .step { border-color:rgba(255,255,255,.08); }
.progress-steps .num { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:var(--color-secondary); color:#fff; font-weight:800; font-size:.85rem; }
.progress-steps .step.is-active { border-color: var(--color-primary-accent); box-shadow:0 0 0 3px var(--field-focus-ring); }
/* Transparency table helpers */
.mini-progress { position:relative; height:10px; background:rgba(0,0,0,.08); border-radius:999px; overflow:hidden; margin:.2rem 0 .1rem; }
:root[data-theme="dark"] .mini-progress { background:rgba(255,255,255,.08); }
.mini-progress .bar { position:absolute; left:0; top:0; bottom:0; background:var(--color-secondary); width:0%; transition:width .3s ease; }
.muted { opacity:.75; }
/* Footer CTA strip */
.footer-cta { display:flex; flex-wrap:wrap; gap:.8rem 1rem; align-items:center; justify-content:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); padding:.9rem 1rem; border-radius:14px; max-width:920px; margin:0 auto 1.2rem; }
.footer-cta .btn { --btn-bg:#fff; --btn-color:#000; --btn-bg-hover:#eaeaea; color:#000; }
:root[data-theme="light"] .footer-cta { background:#f4fbff; border-color:#d3e9f7; }

/* Theme Picker Modal */
.theme-modal-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.5); display:none; align-items:center; justify-content:center; z-index:2000; padding:1rem; }
.theme-modal-backdrop.is-open { display:flex; }
.theme-modal { background:var(--color-surface); color:var(--color-text); border-radius:var(--radius); padding:1rem 1rem 1.1rem; width:min(92vw,560px); box-shadow:var(--shadow); border:1px solid rgba(0,0,0,.12); }
.theme-modal header { background:none; color:inherit; padding:0; margin:0 0 .5rem; }
.theme-modal h3 { margin:.2rem 0 .6rem; font-size:1.15rem; }
.theme-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(120px,1fr)); gap:.75rem; }
.theme-swatch { display:flex; align-items:center; gap:.55rem; padding:.6rem .7rem; border-radius:12px; border:1px solid rgba(0,0,0,.1); background:var(--color-surface); cursor:pointer; box-shadow:var(--shadow-sm); }
.theme-swatch:hover { transform:translateY(-1px); box-shadow:var(--shadow); }
.swatch-chip { width:30px; height:30px; border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.2) inset; flex:0 0 auto; }
.theme-actions { display:flex; justify-content:flex-end; gap:.5rem; margin-top:.8rem; }
.theme-actions .btn { padding:.6rem .9rem; font-size:.95rem; }

/* Animated numbers background */
#bg-canvas { position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.18; }
@media (max-width:700px){ #bg-canvas { opacity:.14; } }
@media (prefers-reduced-motion: reduce){ #bg-canvas { display:none !important; } }

/* Keep content above background canvas */
header, main, footer { position:relative; z-index:2; }

/* Animations */
@media (prefers-reduced-motion:no-preference){
	.fade-in { animation:fadeIn .9s ease .1s both; }
	.rise { animation:rise .8s ease-out both; }
	.stagger > * { opacity:0; animation:rise .7s ease-out forwards; }
	.stagger > *:nth-child(1){ animation-delay:.15s; }
	.stagger > *:nth-child(2){ animation-delay:.28s; }
	.stagger > *:nth-child(3){ animation-delay:.41s; }
	.stagger > *:nth-child(4){ animation-delay:.54s; }
}
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes rise { from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:translateY(0)} }

/* Accessibility helpers */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); border:0; }

/* Gallery */
.gallery { margin-top:1.5rem; }
.gallery-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); }
.gallery .tile { position:relative; aspect-ratio:4/3; border-radius:18px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.18); border:1px solid rgba(0,0,0,.06); background:var(--color-surface); isolation:isolate; }
:root[data-theme="dark"] .gallery .tile { border-color:rgba(255,255,255,.08); box-shadow:0 18px 40px rgba(0,0,0,.35); }
.gallery .tile::before { content:""; position:absolute; inset:-20% -10% 30% -10%; background:radial-gradient(120% 70% at 80% 10%, var(--color-primary-accent) 0%, transparent 60%); opacity:.22; mix-blend-mode:soft-light; pointer-events:none; z-index:1; }
.gallery .tile::after { content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 50% 120%, rgba(0,0,0,.35), transparent 55%), linear-gradient(to top, rgba(0,0,0,.08), transparent 40%); pointer-events:none; z-index:2; }
.gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.2,.6,.2,1), filter .5s; filter:saturate(1.05) contrast(1.02); z-index:0; }
.gallery .tile:hover img { transform:scale(1.06); filter:saturate(1.1) contrast(1.05); }
.gallery .tile a { position:absolute; inset:0; display:block; text-decoration:none; z-index:3; }
.gallery .caption { font-size:.78rem; opacity:.9; text-align:center; margin-top:.35rem; }

/* Events: keep CTA buttons on one line and align across cards */
.features > .card { height: 100%; }
.features .card .btn { white-space: nowrap; }

/* News/blog tweaks */
#newsList .card h3 { margin-top:.1rem; font-size:1.05rem; }
#newsList .card .pill { align-self:flex-start; }
#blogTeaser .card .actions, #newsList .card .actions { margin-top:auto; }

/* Post detail image */
.post-figure { margin:.8rem 0 0; }
.post-figure img { display:block; width:100%; height:auto; border-radius:12px; box-shadow:var(--shadow-sm); }

/* Price table */
.price-table { width:100%; border-collapse:collapse; font-size:.95rem; }
.price-table th, .price-table td { text-align:left; padding:.6rem .7rem; border-bottom:1px solid rgba(0,0,0,.08); }
:root[data-theme="dark"] .price-table th, :root[data-theme="dark"] .price-table td { border-bottom-color: rgba(255,255,255,.08); }
.price-table thead th { font-size:.85rem; text-transform:uppercase; letter-spacing:.4px; opacity:.85; }
.price-table tbody tr:hover { background:rgba(0,0,0,.03); }
:root[data-theme="dark"] .price-table tbody tr:hover { background:rgba(255,255,255,.03); }
