:root {
  --bg: #f5f7fb;
  --surface: #fff;
  --ink: #14233b;
  --muted: #62718a;
  --line: #dce4ef;
  --blue: #1769e0;
  --blue-dark: #0e4fae;
  --navy: #0a1830;
  --pale: #eaf2ff;
  --radius: 18px;
  --shadow: 0 18px 55px rgba(15, 37, 70, .09);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--bg); line-height: 1.65; }
a { color: var(--blue-dark); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--blue); }
.container { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
.topline { background: var(--navy); color: #d7e3f7; font-size: .9rem; }
.topline .container { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:9px 0; flex-wrap:wrap; }
.topline a { color:#fff; text-decoration:none; }

/* Header with the original IT-Groening logo (the logo contains the complete wordmark) */
header { background:#fff; border-bottom:1px solid var(--line); position:relative; z-index:5; }
.nav { display:flex; align-items:center; justify-content:space-between; min-height:112px; padding:12px 0; gap:34px; }
.brand { display:flex; align-items:center; flex:0 0 auto; line-height:0; text-decoration:none; }
.logo-wrap { display:flex; align-items:center; width:150px; height:92px; flex:0 0 150px; }
.logo-wrap img { display:block; width:100%; height:100%; object-fit:contain; object-position:left center; }
.navlinks { display:flex; gap:22px; align-items:center; flex-wrap:wrap; margin-left:auto; }
.navlinks a { color:#33445e; text-decoration:none; font-weight:650; font-size:.94rem; }
.navlinks a:hover, .navlinks a[aria-current="page"] { color:var(--blue); }
.menu-toggle { display:none; background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 12px; font:inherit; }

.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 18px; border-radius:12px; background:var(--blue); color:#fff; text-decoration:none; font-weight:750; border:1px solid var(--blue); cursor:pointer; }
.button:hover { background:var(--blue-dark); color:#fff; }
.button.secondary { background:#fff; color:var(--ink); border-color:var(--line); }
.button.secondary:hover { background:var(--pale); }
.hero { color:white; background:radial-gradient(circle at 78% 30%,#214b83 0,#132b4c 29%,#0a1830 67%); padding:86px 0 78px; overflow:hidden; position:relative; }
.hero-start { background:linear-gradient(100deg,#0a1830f2 0%,#0a1830d9 50%,#17375e80 100%), url("img/sicherheit-1200.webp") center / cover, var(--navy); }
.eyebrow { color:#8cc3ff; font-size:.82rem; text-transform:uppercase; letter-spacing:.16em; font-weight:800; }
h1,h2,h3 { line-height:1.16; letter-spacing:-.035em; }
h1 { font-size:clamp(2.5rem,5vw,4.5rem); margin:14px 0 20px; max-width:780px; }
h2 { font-size:clamp(1.8rem,3vw,2.7rem); margin:0 0 14px; }
h3 { font-size:1.22rem; margin:0 0 10px; }
.hero p { color:#c9d8ec; font-size:1.12rem; max-width:640px; }
.hero .button.secondary { background:transparent; color:white; border-color:#49627f; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

.trust-strip { background:white; border-bottom:1px solid var(--line); }
.trust-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:23px 0; }
.trust-item { display:flex; gap:12px; align-items:center; color:#3d4e67; font-weight:650; }
.trust-icon { width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:12px; background:var(--pale); color:var(--blue); font-weight:900; }
section { padding:76px 0; }
.section-flush { padding-top:0; }
.section-head { max-width:700px; margin-bottom:32px; }
.section-head p, .muted { color:var(--muted); }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:25px; box-shadow:0 6px 20px #102d5008; }
.card p { color:var(--muted); margin-bottom:0; }
.card-icon { width:46px; height:46px; border-radius:14px; background:var(--pale); color:var(--blue); display:grid; place-items:center; font-size:1.25rem; font-weight:800; margin-bottom:19px; }
.split { display:grid; grid-template-columns:.9fr 1.1fr; gap:52px; align-items:center; }
.panel { background:var(--navy); color:white; padding:34px; border-radius:24px; }
.panel p { color:#c9d8ec; }
.check-list { padding:0; list-style:none; display:grid; gap:12px; }
.check-list li { display:flex; gap:10px; }
.check-list li:before { content:"✓"; color:#18835d; font-weight:900; }
.cta-band { background:var(--pale); border:1px solid #d3e4ff; border-radius:24px; padding:34px; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.page-hero { background:linear-gradient(135deg,#0a1830,#17375e); color:#fff; padding:55px 0; }
.page-hero p { color:#c9d8ec; max-width:720px; }
/* Page heroes with a darkened photo behind the text (Unsplash, see bildnachweise.php) */
.page-hero.has-photo { background-color:var(--navy); background-size:cover; background-position:center; padding:80px 0; }
.hero-preise { background-image:linear-gradient(100deg,#0a1830f0 0%,#0a1830d6 45%,#17375e8c 100%), url("img/preise-zahlung-lg.webp"); }
.hero-partner { background-image:linear-gradient(100deg,#0a1830f0 0%,#0a1830d6 45%,#17375e8c 100%), url("img/partner-lg.webp"); }
.hero-help-center { background-image:linear-gradient(100deg,#0a1830f0 0%,#0a1830d6 45%,#17375e8c 100%), url("img/help-center-laptop-lg.webp"); }
.hero-kontakt { background-image:linear-gradient(100deg,#0a1830f0 0%,#0a1830d6 45%,#17375e8c 100%), url("img/kontakt-besprechung-lg.webp"); }
/* The server photo is dark by itself, so it gets a lighter overlay on the right. */
.hero-leistungen, .hero-hosting { background-image:linear-gradient(100deg,#0a1830e6 0%,#0a1830a6 45%,#0a183026 100%), url("img/leistungen-server-lg.webp"); }
.breadcrumb { color:#9db7d7; font-size:.88rem; margin-bottom:12px; }
.content { max-width:850px; }
.content h2 { font-size:1.65rem; margin-top:36px; }
.content h3 { margin-top:24px; }
.content p,.content li { color:#3e4d63; }
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.price-card { background:white; border:1px solid var(--line); border-radius:20px; padding:28px; }

/* Hosting packages (hosting.php) */
.package-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px; align-items:stretch; }
.package-card { position:relative; display:flex; flex-direction:column; background:white; border:1px solid var(--line); border-radius:20px; padding:24px 20px; }
.package-card h2 { font-size:1.45rem; margin:0 0 4px; }
.package-card > .muted { font-size:.9rem; margin:0 0 6px; min-height:2.9em; }
.package-card .price { font-size:1.9rem; margin:6px 0 14px; }
.package-highlight { border:2px solid var(--blue); box-shadow:var(--shadow); }
.package-badge { position:absolute; top:-12px; left:20px; background:var(--blue); color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:99px; }
.package-features { list-style:none; padding:0; margin:0 0 20px; display:grid; gap:8px; font-size:.92rem; flex:1; }
.package-features li { display:flex; gap:8px; }
.package-features li:before { font-weight:900; flex:none; }
.package-features .is-included:before { content:"✓"; color:#18835d; }
.package-features .is-excluded { color:var(--muted); text-decoration:line-through; }
.package-features .is-excluded:before { content:"✕"; color:#b0b8c4; text-decoration:none; }
.package-card .button { margin-top:auto; }
.package-note { margin-top:18px; }
.addon-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:16px; }
.addon-card h3 { margin:0 0 4px; }
.addon-card .price { margin:6px 0 16px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.price { font-size:2.3rem; letter-spacing:-.05em; font-weight:850; margin:15px 0 0; }
.price small { font-size:.92rem; color:var(--muted); letter-spacing:0; font-weight:500; }
form { display:grid; gap:16px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
label { display:grid; gap:7px; font-weight:700; }
input, textarea, select { width:100%; border:1px solid #cbd6e4; border-radius:10px; padding:12px 13px; font:inherit; color:var(--ink); background:white; }
input:focus,textarea:focus,select:focus { outline:3px solid #1769e028; border-color:var(--blue); }
textarea { min-height:160px; resize:vertical; }
.checkbox-row { display:flex; align-items:flex-start; gap:10px; font-weight:500; color:var(--muted); }
.checkbox-row input { width:auto; margin-top:7px; }

/* Form feedback: plain by default, clearly marked for errors and successful sends */
.notice { color:inherit; }
.notice-error, .notice-success { border:1px solid; border-radius:12px; padding:14px 16px; font-weight:600; }
.notice-error { background:#fdeeee; border-color:#f1b7b7; color:#8f1d1d; }
.notice-success { background:#e9f7f0; border-color:#a9dcc3; color:#14603e; }

.faq-list { display:grid; gap:12px; }
details { background:white; border:1px solid var(--line); border-radius:14px; padding:17px 20px; }
summary { font-weight:750; cursor:pointer; }
details p { color:var(--muted); margin-bottom:0; }
.content details { background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:18px 0; }
.content details:first-of-type { border-top:1px solid var(--line); }
.content details summary { padding:2px 0; }
.map-link { display:inline-flex; align-items:center; gap:10px; padding:15px 18px; border:1px solid var(--line); background:white; border-radius:12px; text-decoration:none; }
footer { background:#081326; color:#c5d2e5; padding:44px 0 25px; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:30px; }
footer a { color:#dceaff; text-decoration:none; }
footer a:hover { color:white; text-decoration:underline; }
.footer-links { display:grid; gap:9px; align-content:start; }
.copyright { border-top:1px solid #293951; margin-top:30px; padding-top:20px; color:#8fa2bc; font-size:.9rem; }
.small { font-size:.9rem; }

.partner-card { min-height: 210px; }
.partner-wordmark { margin: 4px 0 14px; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 850; letter-spacing: -.04em; }
.partner-wordmark.proofpoint { color: #1683b8; }
.partner-wordmark.hornetsecurity { color: #24354f; }
.partner-wordmark.eset { color: #48a942; }

/* Legal text: consistent typography and clearer hierarchy for long documents */
.legal-document {
  max-width: 74ch;
  margin-inline: auto;
  color: #34445b;
  font-family: inherit;
  font-size: 1.04rem;
  line-height: 1.82;
  overflow-wrap: anywhere;
}
.legal-document p,
.legal-document li {
  color: inherit;
  line-height: inherit;
  font-weight: 400;
}
.legal-document p {
  margin: 0 0 1.05rem;
}
.legal-document h2 {
  margin: 3.1rem 0 1.15rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: clamp(1.45rem, 2vw, 1.75rem);
  line-height: 1.3;
  letter-spacing: -.02em;
}
.legal-document h2:first-child {
  margin-top: 0;
}
.legal-document p:has(> strong:only-child) {
  margin: 1.45rem 0 .45rem;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.5;
}
.legal-document ul,
.legal-document ol {
  margin: .4rem 0 1.25rem;
  padding-left: 1.5rem;
}
.legal-document li {
  margin: .35rem 0;
  padding-left: .15rem;
}
.legal-document strong {
  color: var(--ink);
  font-weight: 700;
}

/* Help Center */
.help-search { width:100%; max-width:680px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; font:inherit; }
.help-group { margin:0 0 28px; }
.help-group h2 { margin-bottom:14px; }
.help-item { margin:0 0 12px; }
.help-item h3 { margin:0 0 10px; font-size:1.12rem; }
.help-item p, .help-item li { line-height:1.7; }
.help-item ul,.help-item ol { padding-left:24px; }
.help-item[hidden] { display:none; }
.help-meta { color:var(--muted); font-size:.92rem; }

@media(max-width:850px) {
 .split { grid-template-columns:1fr; gap:30px; }
 .hero-start { background:linear-gradient(#0a1830db,#0a1830db), url("img/sicherheit-640.webp") center / cover, var(--navy); }
 .page-hero.has-photo { padding:60px 0; }
 .hero-preise { background-image:linear-gradient(#0a1830db,#0a1830db), url("img/preise-zahlung-sm.webp"); }
 .hero-partner { background-image:linear-gradient(#0a1830db,#0a1830db), url("img/partner-sm.webp"); }
 .hero-help-center { background-image:linear-gradient(#0a1830db,#0a1830db), url("img/help-center-laptop-sm.webp"); }
 .hero-kontakt { background-image:linear-gradient(#0a1830db,#0a1830db), url("img/kontakt-besprechung-sm.webp"); }
 .hero-leistungen, .hero-hosting { background-image:linear-gradient(#0a1830db,#0a1830db), url("img/leistungen-server-sm.webp"); }
 .cards,.price-grid { grid-template-columns:1fr 1fr; }
 .nav { min-height:98px; padding:8px 0; gap:18px; }
 .logo-wrap { width:136px; height:82px; flex-basis:136px; }
 .navlinks { display:none; position:absolute; top:100%; left:0; right:0; padding:20px; background:white; border-bottom:1px solid var(--line); box-shadow:var(--shadow); flex-direction:column; align-items:flex-start; }
 .navlinks.open { display:flex; }
 .menu-toggle { display:inline-flex; }
 .footer-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px) {
 .container { width:min(100% - 28px,1120px); }
 .nav { min-height:86px; padding:6px 0; gap:10px; }
 .logo-wrap { width:120px; height:72px; flex-basis:120px; }
 .hero { padding:60px 0; }
 section { padding:54px 0; }
 .cards,.price-grid,.trust-grid,.form-grid,.footer-grid { grid-template-columns:1fr; }
 .cta-band { align-items:flex-start; flex-direction:column; }
 .topline .container { justify-content:center; }
 .legal-document { font-size: 1rem; line-height: 1.78; }
 .legal-document h2 { margin-top: 2.5rem; }
}
