:root{
  /* Intern-aligned palette: light glass + cyan accents */
  --bg:#f7fbff;
  --bg-soft:#eef4fb;
  --bg-grad: linear-gradient(160deg,#f7fbff 0%, #e6eef9 45%, #d4e2f3 100%);
  --ink:#1a2a3a;
  --text:#1a2a3a;
  --muted:#5d6b7a;
  --muted-2:#8a9bb0;
  --accent:#7ec8ff;     /* cyan from intern */
  --accent-2:#4ea8e0;   /* deeper cyan */
  --accent-ink:#0e3a52; /* dark ink on cyan buttons */
  --navy:#1a2a3a;
  --panel:#ffffff;
  --panel-soft:rgba(126,200,255,.07);
  --card:#ffffff;
  --border:rgba(26,42,58,.10);
  --border-strong:rgba(26,42,58,.18);
  --border-cyan:rgba(126,200,255,.28);
  --container:1280px;
  --mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden;max-width:100%;width:100%}
.hero{overflow:hidden}
body{
  font-family:"DM Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg-grad);
  background-attachment:fixed;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:var(--accent-2);text-decoration:none}
.container{max-width:var(--container);margin-inline:auto;padding:0 20px}

/* Header */
.header{
  position:fixed;inset-inline:0;top:0;z-index:50;
  background:rgba(247,251,255,.78);
  backdrop-filter:saturate(160%) blur(12px);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--border);
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.header.scrolled{background:rgba(247,251,255,.94);box-shadow:0 10px 30px rgba(26,42,58,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:3px 0}
.brand{display:flex;gap:6px;align-items:center}
.brand__logo{width:70px;height:auto;filter:none}
.brand__name{font-family:"Outfit", sans-serif;font-weight:700;letter-spacing:.2px;color:var(--navy);font-size:18px}
.menu{display:flex;gap:22px;align-items:center}
.menu .btn{margin-left:6px}
.menu a{color:var(--ink);font-weight:500;font-size:17px}
/* Smaller pill button in header */
.header .btn{padding:9px 16px;font-size:15px;border-radius:999px;line-height:1.1}
.menu a:not(.btn):hover{color:var(--accent-2)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:10px;padding:11px 20px;border:1px solid var(--accent);
  color:var(--accent-ink);
  background:linear-gradient(180deg,#a8dbff 0%, #7ec8ff 100%);
  font-weight:700;letter-spacing:.2px;border-radius:999px;
  box-shadow:0 8px 18px rgba(126,200,255,.32), 0 2px 6px rgba(26,42,58,.06);
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(126,200,255,.42), 0 3px 8px rgba(26,42,58,.08)}
.btn--ghost{
  background:rgba(255,255,255,.7);
  color:var(--ink);
  border:1px solid var(--border-cyan);
  box-shadow:0 4px 12px rgba(26,42,58,.04);
  backdrop-filter:saturate(140%) blur(6px);
  -webkit-backdrop-filter:saturate(140%) blur(6px);
}
.btn--ghost:hover{background:#ffffff;color:var(--accent-ink);border-color:var(--accent);box-shadow:0 10px 20px rgba(126,200,255,.22)}

/* Hero */
.hero{
  position:relative;min-height:86vh;display:grid;place-items:end center;
  background:transparent;isolation:isolate;
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(900px 380px at 80% 10%, rgba(126,200,255,.28), transparent 60%),
    radial-gradient(700px 320px at 10% 90%, rgba(78,168,224,.22), transparent 60%),
    linear-gradient(160deg,#f7fbff 0%, #dde9f8 55%, #bfd5ec 100%);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background-image:url("assets/imgs/hintergrund2.png");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  filter:blur(3px);
  opacity:.55;
}
/* Soft readability overlay between image and text */
.hero{isolation:isolate}
.hero__inner{position:relative;z-index:1}
.hero__inner::before{
  content:"";position:absolute;inset:-40px -200px;z-index:-1;
  background:radial-gradient(ellipse at center, rgba(247,251,255,.78) 0%, rgba(247,251,255,.55) 45%, rgba(247,251,255,0) 75%);
  pointer-events:none;
}
.hero__inner{padding:160px 0 72px}
.eyebrow{display:block;color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.18em;margin-bottom:12px}
.h1{
  font-family:"Outfit", sans-serif;font-size:clamp(32px, 5vw, 54px);
  line-height:1.08;margin:0;text-align:center;color:var(--navy);font-weight:800;
  letter-spacing:-.5px;
}
.h1 u{color:transparent;-webkit-text-stroke:0 var(--accent);text-decoration:none;background-image:linear-gradient(90deg, #4ea8e0 0%, #7ec8ff 55%);-webkit-background-clip:text;background-clip:text}
.hero__cta{margin-top:28px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.muted{color:var(--muted)}

/* Section */
section{padding:90px 0;position:relative}
.section--alt{background:rgba(232,240,249,.6)}
.section__title{font-family:"Outfit", sans-serif;font-size:clamp(26px, 3.2vw, 40px);margin:0 0 14px;color:var(--navy);text-align:center;letter-spacing:-.4px;font-weight:800}
.section__lead{max-width:860px;margin:0 auto 28px;text-align:center;color:var(--muted)}

/* Grid */
.grid{display:grid;gap:24px}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 1024px){.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 768px){.grid--2,.grid--3{grid-template-columns:1fr}}

/* Card */
.card{background:rgba(255,255,255,.92);border:1px solid var(--border);padding:24px 24px 22px;border-radius:18px;box-shadow:0 18px 40px rgba(26,42,58,.06);transition:transform .18s ease, box-shadow .22s ease, border-color .18s ease;backdrop-filter:saturate(140%) blur(6px);-webkit-backdrop-filter:saturate(140%) blur(6px)}
.card:hover{transform:translateY(-2px);box-shadow:0 22px 48px rgba(26,42,58,.10);border-color:var(--border-cyan)}
.card h3{margin:0 0 6px;color:var(--ink);font-family:"Outfit",sans-serif}
.badge{display:inline-block;background:rgba(126,200,255,.15);color:var(--accent-ink);padding:5px 12px;font-weight:700;font-size:12px;letter-spacing:.04em;margin-bottom:12px;border-radius:999px;border:1px solid rgba(126,200,255,.28)}

/* List with icons */
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.checklist li{display:flex;gap:10px;align-items:flex-start}
.check{width:20px;height:20px;display:inline-grid;place-items:center;background:linear-gradient(180deg,#a8dbff 0%, #7ec8ff 100%);border:1px solid var(--accent);color:var(--accent-ink);border-radius:50%;flex:0 0 20px;margin-top:2px;font-size:12px;font-weight:700}

/* CTA block */
.cta{padding:100px 0;background:#0b2c5e;position:relative}
.cta::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(11,44,94,.35) 0%, rgba(11,44,94,.55) 100%)}
.cta .container{position:relative}
.cta .h2{font-family:"Outfit", sans-serif;font-size:clamp(24px,3vw,40px);margin:0 0 14px;color:#ffffff}
.cta .lead{color:#e5e7eb}

/* Footer */
.footer{background:linear-gradient(180deg,#1a2a3a 0%, #0f1c2b 100%);padding:70px 0 30px;color:#e7eef7;border-top:1px solid rgba(126,200,255,.12)}
.footer a{color:#e7eef7}
.footer .small{color:#8a9bb0;font-size:14px;font-family:var(--mono);letter-spacing:.02em}
.footer .section__title{color:#ffffff}
.footer .muted{color:#8a9bb0}
.footer .accent{color:#7ec8ff}
.divider{height:1px;background:rgba(126,200,255,.14);margin:30px 0}

/* Helper */
.lead{color:var(--muted)}
.center{text-align:center}
.accent{color:var(--accent-2)}
.spacer{height:30px}

/* Utilities */
.text-left{text-align:left}
.narrow{max-width:860px;margin:0 auto 18px}
.items-start{align-items:start}
.mt-10{margin-top:10px}

/* Hide removed sections */
#ankaufsprofil, #expats, #beispielrechnung{display:none !important}

/* Custom caret for Typed.js (no gap, no flicker) */
#typed{white-space:nowrap}
#typed::after{
  content:"";
  display:inline-block;
  width:1px;
  height:0.9em;
  background: currentColor;
  margin-left:0;
  vertical-align:-0.1em;
  animation: caretBlink .9s steps(1, end) infinite;
}
@keyframes caretBlink{50%{opacity:0}}

/* Footer legal buttons */
.footer .btn.btn--ghost{background:rgba(126,200,255,.08);border-color:rgba(126,200,255,.22);color:#ffffff;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.footer .btn.btn--ghost:hover{background:rgba(126,200,255,.16);color:#ffffff;border-color:rgba(126,200,255,.42)}
.footer .btn{background:linear-gradient(180deg,#a8dbff 0%, #7ec8ff 100%);color:var(--accent-ink);border-color:var(--accent)}

/* Ensure Contact button hover stays visible */
.menu .btn.btn--ghost:hover{color:var(--accent-ink) !important;background:#ffffff;border-color:#bcd6ea}

/* Legal pages: tighter header/content spacing */
.page.legal .page-header{padding:12px 0 4px}
.page.legal .page-header h1{margin:0 0 4px}
.page.legal > .container, .page.legal section.container{padding:16px 20px 28px}
.page.legal .section__title{text-align:left !important;margin:0 0 6px}
.page.legal .section__lead{text-align:left !important;margin:0 0 12px}

/* Mobile tweaks */
@media (max-width: 1100px){
  .menu{gap:16px}
  .menu a{font-size:16px}
  .header .btn{font-size:14px;padding:8px 14px}
}
@media (max-width: 900px){
  .brand__name{font-size:15px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand__logo{width:54px}
  .nav{padding:6px 0}
}
@media (max-width: 720px){
  .nav{flex-wrap:wrap;gap:8px;padding:8px 0}
  .brand__logo{width:48px}
  .brand__name{font-size:14px;max-width:none}
  .hero__inner{padding:110px 0 50px}
  .hero__cta{gap:10px}
  section{padding:56px 0}
  .section__title{font-size:clamp(22px,6vw,30px)}
  .section__lead{font-size:15px}
  .h1{font-size:clamp(26px,7vw,38px);padding:0 6px}
  .hero__inner::before{inset:-20px -40px}
  .footer{padding:48px 0 24px}
  .card{padding:20px}
  /* Re-frame hero background image for portrait viewport:
     Scale the image larger than the hero so the meaningful lower part
     fills the whole area instead of showing the empty sky portion. */
  .hero::after{
    background-position:center bottom;
    background-size:auto 180%;
    opacity:.78;
    filter:blur(3px);
  }
  .hero__inner::before{
    background:radial-gradient(ellipse at center, rgba(247,251,255,.82) 0%, rgba(247,251,255,.55) 55%, rgba(247,251,255,.1) 88%, rgba(247,251,255,0) 100%);
  }
}
@media (max-width: 520px){
  .hero::after{
    background-position:center bottom;
    background-size:auto 200%;
    opacity:.82;
  }
}
@media (max-width: 520px){
  .container{padding:0 14px}
  .brand__name{display:none}
  .hero__cta{flex-direction:column;width:100%;align-items:stretch}
  .hero__cta .btn{width:100%}
  .card{padding:16px;border-radius:14px}
  .h1{font-size:clamp(24px,8vw,32px)}
  .hero__inner{padding:100px 0 40px}
  .eyebrow{font-size:11px}
  /* Footer buttons stack */
  .footer .mt-10{display:flex;flex-direction:column;gap:8px}
  .footer .mt-10 .btn{width:100%}
}

/* Burger menu */
.nav-toggle{
  display:none;align-items:center;justify-content:center;gap:8px;
  background:rgba(255,255,255,.7);
  border:1px solid var(--border-cyan);
  padding:9px 12px;border-radius:10px;cursor:pointer;
  box-shadow:0 4px 12px rgba(26,42,58,.04);
  backdrop-filter:saturate(140%) blur(6px);
  -webkit-backdrop-filter:saturate(140%) blur(6px);
}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--ink);position:relative;border-radius:2px;transition:transform .22s ease, opacity .18s ease, background .18s ease}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .22s ease, top .22s ease}
.nav-toggle span::before{top:-6px}
.nav-toggle span::after{top:6px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media (max-width: 900px){
  .nav-toggle{display:inline-flex}
  .menu{display:none}
  .menu.is-open{
    display:flex;flex-direction:column;align-items:stretch;gap:10px;
    background:rgba(255,255,255,.95);
    border:1px solid var(--border);
    border-radius:14px;padding:14px;
    width:100%;margin-top:8px;
    box-shadow:0 18px 40px rgba(26,42,58,.08);
    backdrop-filter:saturate(140%) blur(10px);
    -webkit-backdrop-filter:saturate(140%) blur(10px);
  }
  .menu.is-open a:not(.btn){
    padding:10px 12px;border-radius:10px;text-align:left;
    color:var(--ink);font-weight:600;
  }
  .menu.is-open a:not(.btn):hover{background:var(--panel-soft);color:var(--accent-2)}
  .menu.is-open .btn{width:100%;justify-content:center;padding:11px 16px;font-size:15px}
}
