/*
Theme Name: Ammersee Premium V8
Description: Premium-Redesign mit Header, Dashboard, Leistungen, Warum-Bereich, Timeline, Branchen, Region und CTA. Inhalte über Customizer bearbeitbar.
Version: 8.0.2
Requires at least: 6.0
Requires PHP: 7.4
*/

/* Webfont: Manrope wird über Google Fonts geladen. */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800;900&display=swap');

/* Design-Tokens: zentrale Farben, maximale Inhaltsbreite und Schatten. */
:root{
  --bg:#050b16;--bg2:#0b1729;--card:rgba(255,255,255,.075);--border:rgba(255,255,255,.12);
  --text:#eaf2ff;--muted:#aebdd4;--cyan:#38bdf8;--blue:#2563eb;--green:#34d399;
  --orange:#f59e0b;--violet:#8b5cf6;--max:1180px;--shadow:0 22px 70px rgba(0,0,0,.33)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);
  background:radial-gradient(circle at 12% 10%,rgba(56,189,248,.22),transparent 24%),radial-gradient(circle at 88% 12%,rgba(139,92,246,.19),transparent 27%),radial-gradient(circle at 68% 92%,rgba(245,158,11,.12),transparent 30%),linear-gradient(180deg,var(--bg),var(--bg2));min-height:100vh
}
body:before{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;opacity:.58}
a{color:var(--cyan);text-decoration:none}.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.site-header{position:sticky;top:0;z-index:90;background:rgba(2,6,23,.76);border-bottom:1px solid rgba(255,255,255,.09);backdrop-filter:blur(18px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 0}
.site-logo-link{display:flex;align-items:center;color:#fff;min-width:210px}.custom-logo-link,.site-logo-link img{display:block}.custom-logo{max-height:78px!important;width:auto!important;filter:drop-shadow(0 16px 30px rgba(0,0,0,.25))}
.brand-title{font-size:31px;line-height:1;font-weight:950;letter-spacing:-.04em}.brand-title span{color:var(--cyan)}.brand-sub{font-size:13px;color:var(--muted);margin-top:4px}
.main-nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-left:auto}
.main-nav a{font-size:14px;color:#dceaff;font-weight:800;letter-spacing:.01em;position:relative;padding:10px 0}
.main-nav a:after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:linear-gradient(90deg,var(--cyan),var(--blue));transform:scaleX(0);transform-origin:left;transition:.22s ease;border-radius:99px}
.main-nav a:hover:after{transform:scaleX(1)}
.btn,.wp-block-button__link{display:inline-flex!important;align-items:center;justify-content:center;border-radius:18px!important;padding:15px 22px!important;font-weight:900!important;line-height:1!important;transition:transform .25s ease,box-shadow .25s ease!important}
.btn-primary,.has-vivid-cyan-blue-background-color,.wp-block-button__link.has-vivid-cyan-blue-background-color{color:#fff!important;background:linear-gradient(135deg,var(--cyan),var(--blue))!important;box-shadow:0 16px 38px rgba(37,99,235,.38)!important}
.btn-secondary{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#fff}.btn:hover,.wp-block-button__link:hover{transform:translateY(-2px)}
.site-main{padding-bottom:80px}

.as-hero{position:relative;overflow:hidden;min-height:82vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(370px,500px);gap:56px;align-items:center;padding:78px 0 64px}.as-hero-bg{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}.as-glow{position:absolute;border-radius:999px;filter:blur(78px);opacity:.62;animation:asDrift 16s ease-in-out infinite}.as-glow.one{width:360px;height:360px;left:0;top:8%;background:rgba(56,189,248,.34)}.as-glow.two{width:420px;height:420px;right:-5%;top:3%;background:rgba(139,92,246,.22);animation-delay:-5s}.as-glow.three{width:310px;height:310px;right:18%;bottom:4%;background:rgba(245,158,11,.16);animation-delay:-10s}.as-network{position:absolute;inset:0;opacity:.48;background:radial-gradient(circle at 18% 25%,rgba(56,189,248,.7) 0 2px,transparent 3px),radial-gradient(circle at 42% 18%,rgba(56,189,248,.55) 0 2px,transparent 3px),radial-gradient(circle at 70% 25%,rgba(56,189,248,.55) 0 2px,transparent 3px),radial-gradient(circle at 82% 62%,rgba(245,158,11,.45) 0 2px,transparent 3px),radial-gradient(circle at 28% 70%,rgba(139,92,246,.45) 0 2px,transparent 3px)}.as-network:after{content:"";position:absolute;inset:10%;background:linear-gradient(25deg,transparent 0 25%,rgba(56,189,248,.13) 25.3% 25.8%,transparent 26% 100%),linear-gradient(155deg,transparent 0 36%,rgba(139,92,246,.12) 36.3% 36.8%,transparent 37% 100%);animation:asPulseLine 4.8s ease-in-out infinite}@keyframes asDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(20px,-18px) scale(1.06)}}@keyframes asPulseLine{0%,100%{opacity:.28}50%{opacity:.85}}
.as-copy,.as-visual{position:relative;z-index:2}.as-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.07);color:#caefff;font-size:14px}.as-dot{width:10px;height:10px;border-radius:99px;background:var(--green);box-shadow:0 0 18px var(--green);animation:asDot 1.8s infinite}@keyframes asDot{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}.as-hero h1{font-size:clamp(54px,8vw,96px);line-height:.88;letter-spacing:-.065em;margin:.32em 0 .22em}.as-gradient{background:linear-gradient(135deg,#fff 0%,#e6f8ff 42%,#7dd3fc 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.as-lead{font-size:clamp(18px,2vw,24px);line-height:1.45;color:var(--muted);max-width:720px;margin:0 0 26px}.as-tags{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 26px}.as-tag{border-radius:999px;padding:9px 13px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);color:#dceaff;font-size:14px}.as-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px;position:relative;z-index:10}.as-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:680px}.as-kpi{padding:18px;border-radius:22px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow)}.as-kpi b{display:block;font-size:24px;color:#fff}.as-kpi span{font-size:13px;color:var(--muted)}

.as-visual{min-height:610px;display:flex;align-items:center;justify-content:center;isolation:isolate;overflow:visible}.as-photo-card{position:absolute;left:0;top:6%;width:225px;height:155px;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow);background:linear-gradient(135deg,rgba(56,189,248,.30),rgba(245,158,11,.18));transform:rotate(-3deg);z-index:1;opacity:.95}.as-photo-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 35%),radial-gradient(circle at 65% 35%,rgba(255,255,255,.22),transparent 28%)}.as-photo-card span{position:absolute;left:18px;bottom:16px;font-weight:900;font-size:18px;color:white;text-shadow:0 2px 16px rgba(0,0,0,.5)}.as-ring{position:absolute;width:455px;height:455px;border-radius:999px;border:1px solid rgba(255,255,255,.13);animation:asSpin 24s linear infinite;box-shadow:inset 0 0 100px rgba(56,189,248,.07);z-index:0}.as-ring:before,.as-ring:after{content:"";position:absolute;border-radius:inherit;border:1px dashed rgba(255,255,255,.09)}.as-ring:before{inset:30px}.as-ring:after{inset:82px}@keyframes asSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.as-dashboard{width:min(100%,440px);border-radius:32px;padding:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);box-shadow:var(--shadow);backdrop-filter:blur(14px);animation:asFloat 6.4s ease-in-out infinite;position:relative;z-index:10}@keyframes asFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.as-dash-inner{overflow:hidden;border-radius:26px;background:linear-gradient(180deg,rgba(11,21,38,.97),rgba(7,15,27,.96));border:1px solid rgba(255,255,255,.09)}.as-dash-top{padding:26px;background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(139,92,246,.10),rgba(245,158,11,.05));border-bottom:1px solid rgba(255,255,255,.09)}.as-mini-label{text-transform:uppercase;letter-spacing:.24em;color:#7dd3fc;font-size:12px;font-weight:900;margin-bottom:12px}.as-dash-title{font-size:32px;line-height:1.02;font-weight:950;margin-bottom:14px}.as-scan{display:grid;gap:10px;padding:16px}.as-scan-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:#dbeafe}.as-check{color:var(--green);font-weight:950}.as-floating-card{position:absolute;min-width:145px;padding:13px 15px;border-radius:20px;background:rgba(255,255,255,.105);border:1px solid rgba(255,255,255,.17);box-shadow:0 14px 40px rgba(0,0,0,.24);backdrop-filter:blur(14px);animation:asFloatCard 6s ease-in-out infinite;z-index:14;opacity:.98;pointer-events:none}.as-floating-card.card-2{right:-30px;top:10%;animation-delay:-2.5s}.as-floating-card.card-3{right:-22px;bottom:0;animation-delay:-4s}.as-floating-card small{display:block;color:#9fb0c8;margin-bottom:4px}.as-floating-card strong{display:block;color:#fff;font-size:16px}@keyframes asFloatCard{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

.as-section{max-width:var(--max);margin:84px auto 0;padding:0 24px}.as-section h2{font-size:clamp(34px,5vw,58px);line-height:1;margin:0 0 12px;color:#fff}.as-section>p{color:var(--muted);font-size:19px;max-width:780px}.as-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:24px}.as-card{padding:26px;border-radius:26px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .25s ease,border-color .25s ease,background .25s ease}.as-card:hover{transform:translateY(-6px);border-color:rgba(56,189,248,.38);background:rgba(255,255,255,.09)}.as-icon{width:64px;height:64px;border-radius:21px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(56,189,248,.22),rgba(245,158,11,.13));border:1px solid rgba(56,189,248,.25);margin-bottom:16px;font-size:31px}.as-card h3{margin:0 0 8px;color:#fff;font-size:23px}.as-card p{margin:0;color:var(--muted);font-size:16px}.as-why .as-card{min-height:210px}.as-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:28px}.as-step{position:relative;padding:22px;border-radius:24px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow)}.as-step b{display:flex;width:36px;height:36px;border-radius:99px;background:linear-gradient(135deg,var(--cyan),var(--blue));align-items:center;justify-content:center;margin-bottom:14px}.as-step h3{font-size:18px;margin:0 0 7px}.as-chips{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}.as-chip{padding:16px 20px;border-radius:999px;background:var(--card);border:1px solid var(--border);font-weight:900;box-shadow:var(--shadow)}.as-region{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}.as-map{min-height:340px;border-radius:30px;background:radial-gradient(circle at 40% 40%,rgba(56,189,248,.28),transparent 30%),radial-gradient(circle at 68% 58%,rgba(245,158,11,.18),transparent 28%),rgba(255,255,255,.05);border:1px solid var(--border);box-shadow:var(--shadow);position:relative;overflow:hidden}.as-map span{position:absolute;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);font-weight:900}.as-map .u{left:46%;top:48%}.as-map .l{left:20%;top:62%}.as-map .s{right:12%;top:35%}.as-map .d{left:32%;top:42%}.as-map .h{right:24%;top:50%}.as-cta{padding:48px;border-radius:34px;background:linear-gradient(135deg,rgba(56,189,248,.14),rgba(37,99,235,.12),rgba(139,92,246,.10));border:1px solid var(--border);box-shadow:var(--shadow);text-align:center}.entry-content{font-size:18px;line-height:1.7}.entry-content>*{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}.entry-content h1,.entry-content h2,.entry-content h3{color:#fff;line-height:1.05}.entry-content h1{font-size:clamp(42px,6vw,64px)}.entry-content p,.entry-content li{color:var(--muted)}
.site-footer{border-top:1px solid rgba(255,255,255,.09);padding:26px 0 45px;color:var(--muted);font-size:14px;margin-top:70px}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.mobile-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:99;display:none;gap:10px}.mobile-cta a{flex:1;text-align:center}
@media(max-width:980px){.main-nav{display:none}.site-logo-link img,.custom-logo{max-height:62px!important}.as-hero{grid-template-columns:1fr;min-height:auto;padding-top:48px}.as-visual{min-height:600px}.as-kpis,.as-grid,.as-region,.as-timeline{grid-template-columns:1fr}.as-floating-card.card-2{right:2%;top:4%;transform:none}.as-floating-card.card-3{right:5%;bottom:0;transform:none}.as-photo-card{left:2%;top:1%;width:170px;height:118px}.mobile-cta{display:flex}.site-footer{padding-bottom:86px}}


/* V8 MOBILE RESPONSIVE FIX */
.mobile-menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.07);
  color: #fff;
  font-size: 24px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

@media (max-width: 1080px) {
  .header-inner {
    gap: 14px;
  }

  .main-nav {
    gap: 14px;
  }

  .main-nav a {
    font-size: 13px;
  }

  .header-inner > .btn-primary {
    padding: 13px 16px !important;
    font-size: 13px;
  }
}

@media (max-width: 980px) {
  body {
    overflow-x: hidden;
  }

  .wrap {
    padding-left: 18px;
    padding-right: 18px;
  }

  .header-inner {
    min-height: 74px;
    padding: 10px 0;
  }

  .site-logo-link {
    min-width: 0;
    max-width: calc(100vw - 150px);
  }

  .custom-logo {
    max-height: 58px !important;
    max-width: 190px !important;
    object-fit: contain;
  }

  .brand-title {
    font-size: 22px;
  }

  .brand-sub {
    display: none;
  }

  .mobile-menu-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .main-nav {
    position: fixed;
    left: 14px;
    right: 14px;
    top: 82px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px;
    border-radius: 22px;
    background: rgba(5, 11, 22, .96);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 22px 70px rgba(0,0,0,.45);
    backdrop-filter: blur(18px);
  }

  body.mobile-menu-open .main-nav {
    display: flex;
  }

  .main-nav a {
    padding: 15px 14px;
    font-size: 15px;
    border-radius: 14px;
  }

  .main-nav a:hover {
    background: rgba(255,255,255,.07);
  }

  .main-nav a:after {
    display: none;
  }

  .header-inner > .btn-primary {
    display: none !important;
  }

  .as-hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-top: 38px;
    padding-bottom: 38px;
    gap: 22px;
  }

  .as-eyebrow {
    font-size: 12px;
    padding: 9px 12px;
  }

  .as-hero h1 {
    font-size: clamp(42px, 13vw, 62px);
    line-height: .92;
    letter-spacing: -.055em;
    margin-top: 18px;
  }

  .as-lead {
    font-size: 17px;
    line-height: 1.55;
  }

  .as-tags {
    gap: 8px;
  }

  .as-tag {
    font-size: 12px;
    padding: 8px 10px;
  }

  .as-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .as-hero-actions .btn {
    width: 100%;
  }

  .as-kpis {
    grid-template-columns: 1fr;
  }

  .as-kpi {
    padding: 15px;
  }

  .as-visual {
    min-height: auto;
    padding-top: 32px;
    padding-bottom: 20px;
  }

  .as-ring {
    width: 320px;
    height: 320px;
  }

  .as-dashboard {
    width: 100%;
    max-width: 390px;
    padding: 14px;
  }

  .as-dash-title {
    font-size: 27px;
  }

  .as-dash-top {
    padding: 22px;
  }

  .as-scan {
    padding: 13px;
  }

  .as-scan-row {
    padding: 12px;
    font-size: 14px;
  }

  .as-photo-card,
  .as-floating-card {
    display: none;
  }

  .as-section {
    margin-top: 54px;
    padding-left: 18px;
    padding-right: 18px;
  }

  .as-section h2 {
    font-size: clamp(31px, 10vw, 44px);
  }

  .as-section > p {
    font-size: 16px;
  }

  .as-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .as-card {
    padding: 22px;
    border-radius: 22px;
  }

  .as-timeline {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .as-step {
    padding: 20px;
  }

  .as-chips {
    gap: 10px;
  }

  .as-chip {
    width: 100%;
    text-align: center;
    padding: 15px 16px;
  }

  .as-region {
    grid-template-columns: 1fr;
  }

  .as-map {
    min-height: 280px;
  }

  .as-map span {
    font-size: 12px;
    padding: 7px 10px;
  }

  .as-cta {
    padding: 30px 20px;
    border-radius: 26px;
  }

  .mobile-cta {
    display: flex;
  }

  .site-footer {
    padding-bottom: 92px;
  }
}

@media (max-width: 420px) {
  .custom-logo {
    max-width: 160px !important;
    max-height: 52px !important;
  }

  .as-hero h1 {
    font-size: 40px;
  }

  .as-dashboard {
    max-width: 100%;
  }

  .as-dash-title {
    font-size: 24px;
  }

  .as-section h2 {
    font-size: 32px;
  }
}

/* Einsatzgebietskarte: aus front-page.php zentralisiert */
/* Einsatzgebietskarte aus der WordPress-Mediathek */
.as-region .as-map.as-map-image {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 18px;
    background: #03152e;
}
.as-region .as-map.as-map-image::before,
.as-region .as-map.as-map-image::after { content: none; display: none; }
.as-region .as-map.as-map-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: inherit;
}
@media (max-width: 767px) {
    .as-region .as-map.as-map-image { border-radius: 12px; }
}


/* Über mich: eigenständiger responsiver Bereich */
.entry-content > .as-about {max-width:1180px;margin:36px auto;padding:clamp(22px,4vw,48px);}
.as-about {border:1px solid rgba(56,189,248,.55);border-radius:26px;background:linear-gradient(125deg,#06172c,#072744 65%,#04152b);box-shadow:0 18px 55px rgba(0,0,0,.28);overflow:hidden;color:#fff}
.as-about-inner{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);align-items:center;gap:36px}
.as-about-content{min-width:0}.as-about-kicker{font-size:13px;letter-spacing:1.8px;text-transform:uppercase;font-weight:800;color:#4bd6ff;margin-bottom:15px}
.as-about-content h2{font-size:clamp(34px,4vw,55px);line-height:1.1;color:#fff;margin:0 0 24px;font-weight:800}
.as-about-content>p{font-size:16px;line-height:1.8;color:#d9e8f6;margin:0 0 18px}
.as-about-highlight{border-left:3px solid #2ad1ff;padding:14px 18px;background:rgba(35,160,240,.1);border-radius:0 12px 12px 0;margin-top:24px}
.as-about-highlight p{font-size:15px;line-height:1.7;color:#eaf7ff;margin:0}
.as-about-photo{position:relative;min-width:0;margin:0;overflow:hidden;border:1px solid #39bdf6;border-radius:22px;box-shadow:0 0 28px rgba(40,174,245,.17)}
.as-about-photo img{display:block;width:100%;height:auto;max-width:100%;margin:0;padding:0}
.as-about-name{position:absolute;bottom:12px;left:12px;right:12px;padding:13px 15px;background:rgba(3,19,37,.93);border:1px solid rgba(86,195,255,.45);border-radius:13px;color:#fff}
.as-about-name strong{display:block;font-size:19px;color:#fff}.as-about-name span{display:block;font-size:12px;color:#c0d8e8;margin-top:3px}
@media(max-width:760px){.as-about-inner{grid-template-columns:1fr}.as-about-photo{width:min(100%,390px);margin:0 auto}}

/* Historische Customizer-Regeln: in das Theme übernommen.
 * Reihenfolge bewusst beibehalten, damit das bestehende Layout unverändert bleibt.
 * Weitere Zusammenführung erfordert einen visuellen Regressionstest.
 */
.main-menu {
  display: flex;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}

.main-menu li {
  list-style: none;
}

.main-menu a {
  font-size: 14px;
  color: #dceaff;
  font-weight: 800;
  padding: 10px 0;
}

.main-nav .main-menu {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-nav .main-menu li {
  position: relative;
  list-style: none;
}

.main-nav .main-menu > li > a {
  display: block;
  padding: 18px 0;
  color: #dceaff;
  font-weight: 800;
  text-decoration: none;
  transition: .25s;
}

.main-nav .main-menu > li > a:hover {
  color: #39b6ff;
}

.main-nav .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  padding: 10px;
  margin: 0;
  list-style: none;
  background: rgba(5,11,22,.96);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  box-shadow: 0 22px 70px rgba(0,0,0,.42);
  backdrop-filter: blur(18px);
  z-index: 999;
}

.main-nav .main-menu > li:hover > .sub-menu {
  display: block;
}

.main-nav .sub-menu li a {
  display: block;
  padding: 12px 14px;
  color: #dceaff;
  font-size: 14px;
  font-weight: 700;
  border-radius: 12px;
  white-space: nowrap;
  transition: .25s;
}

.main-nav .sub-menu li a:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}


/* =======================================================
   10 Jahre Jubiläumsbanner
======================================================= */

.as-anniversary{

    display:flex;
    justify-content:center;
    align-items:center;

    margin:18px auto -45px;

    position:relative;
    z-index:50;

    background:transparent;

    pointer-events:none;

}

.as-anniversary img{

    width:min(980px,92%);
    height:auto;
    display:block;

    border:none;
    background:none;
    border-radius:0;
    box-shadow:none;

    filter:drop-shadow(0 18px 35px rgba(0,0,0,.30));

    transition:.35s ease;

    pointer-events:auto;

}

.as-anniversary img:hover{

    transform:translateY(-4px) scale(1.02);

    filter:drop-shadow(0 28px 55px rgba(0,0,0,.40));

}

@media (max-width:992px){

    .as-anniversary{

        margin:16px auto -25px;

    }

    .as-anniversary img{

        width:94%;

    }

}

@media (max-width:768px){

    .as-anniversary{

        margin:12px auto 8px;

    }

    .as-anniversary img{

        width:96%;

        filter:drop-shadow(0 10px 22px rgba(0,0,0,.25));

    }

}


/* =========================================
   AMMERSEE SOLUTIONS – IT ERSTBERATUNG
   ========================================= */

.as-consult-modal[hidden] {
    display: none !important;
}

.as-consult-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 20px;
    overflow-y: auto;

    background: rgba(2, 8, 20, .88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.as-consult-modal.is-open {
    display: flex;
    animation: asModalFade .25s ease;
}

.as-consult-panel {
    position: relative;

    width: 100%;
    max-width: 760px;
    max-height: min(90vh, 900px);

    overflow-y: auto;
    overscroll-behavior: contain;

    padding: 42px;

    border-radius: 26px;

    background: linear-gradient(
        145deg,
        #142844 0%,
        #0b172c 55%,
        #080e1c 100%
    );

    border: 1px solid rgba(255,255,255,.16);

    box-shadow:
        0 35px 110px rgba(0,0,0,.65),
        0 0 60px rgba(37,99,235,.12);

    color: #fff;

    scrollbar-width: thin;
    scrollbar-color: #385b87 transparent;
}

.as-consult-panel h2 {
    margin: 0 45px 12px 0;

    font-size: clamp(26px, 4vw, 38px);
    line-height: 1.15;

    color: #fff;
}

.as-consult-panel > p {
    margin-bottom: 28px;
    color: #b9c9df;
    line-height: 1.7;
}

.as-consult-close {
    position: absolute;
    top: 20px;
    right: 20px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.15);

    background: rgba(255,255,255,.08);
    color: #fff;

    font-size: 30px;
    line-height: 1;

    cursor: pointer;
    transition: .25s;
}

.as-consult-close:hover {
    background: #2563eb;
    transform: rotate(90deg);
}

.as-consult-panel input,
.as-consult-panel select,
.as-consult-panel textarea {
    max-width: 100%;
}

@keyframes asModalFade {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (max-width: 768px) {

    .as-consult-modal {
        padding: 10px;
        align-items: center;
    }

    .as-consult-panel {
        padding: 28px 20px;
        max-height: 94vh;
        border-radius: 20px;
    }

    .as-consult-close {
        top: 12px;
        right: 12px;
        width: 38px;
        height: 38px;
    }

    .as-consult-panel h2 {
        font-size: 27px;
        margin-right: 35px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .as-consult-modal.is-open {
        animation: none;
    }
}


/* ==============================================
   AMMERSEE SOLUTIONS – EINSATZGEBIET
   ============================================== */

.as-region-section {
    position: relative;
    padding-top: 80px;
    padding-bottom: 90px;
}

.as-region-heading {
    max-width: 950px;
    margin-bottom: 35px;
}

.as-region-kicker {
    display: inline-block;
    margin-bottom: 14px;
    color: #38bdf8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .22em;
}

.as-region-heading h2 {
    margin: 0 0 18px;
    color: #f5f9ff;
    font-size: clamp(30px, 4vw, 52px);
    line-height: 1.15;
    letter-spacing: -.035em;
}

.as-region-heading p {
    max-width: 760px;
    color: #aebfd6;
    font-size: 18px;
    line-height: 1.7;
}

/* Layout */

.as-region-layout {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr);
    gap: 22px;
    align-items: stretch;
}

/* Linke Infobox */

.as-region-info {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 30px;

    padding: 36px;
    border-radius: 26px;

    background:
        radial-gradient(
            circle at top left,
            rgba(56,189,248,.13),
            transparent 65%
        ),
        linear-gradient(
            145deg,
            #13243c,
            #091426
        );

    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 20px 55px rgba(0,0,0,.18);
}

.as-region-symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 55px;
    height: 55px;

    margin-bottom: 22px;

    border-radius: 17px;
    background: rgba(56,189,248,.12);
    border: 1px solid rgba(56,189,248,.25);

    color: #38bdf8;
    font-size: 34px;
}

.as-region-info h3 {
    margin: 0 0 18px;
    color: #fff;
    font-size: clamp(25px, 2.4vw, 35px);
    line-height: 1.2;
}

.as-region-info h3 span {
    display: block;
    color: #38bdf8;
}

.as-region-info p {
    color: #b9c9df;
    font-size: 16px;
    line-height: 1.8;
}

.as-region-benefits {
    display: grid;
    gap: 12px;
}

.as-region-benefit {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 13px 15px;

    border-radius: 13px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);

    color: #dceaff;
    font-size: 14px;
    font-weight: 650;
}

.as-region-benefit span {
    color: #34d399;
    font-size: 19px;
    font-weight: 900;
}

.as-region-info > .btn {
    text-align: center;
    align-self: flex-start;
}

/* Kartenpanel */

.as-region-map-panel {
    position: relative;
    min-width: 0;
    overflow: hidden;

    border-radius: 26px;

    background:
        radial-gradient(
            ellipse at 43% 52%,
            rgba(0,126,255,.16),
            transparent 52%
        ),
        linear-gradient(
            135deg,
            #0b2037,
            #06101f
        );

    border: 1px solid rgba(56,189,248,.22);

    box-shadow:
        0 20px 65px rgba(0,0,0,.22),
        inset 0 0 60px rgba(56,189,248,.025);
}

.as-region-map-label {
    position: absolute;
    top: 25px;
    left: 25px;
    z-index: 2;

    display: flex;
    align-items: center;
    gap: 9px;

    padding: 10px 14px;
    border-radius: 30px;

    background: rgba(8,19,36,.82);
    border: 1px solid rgba(255,255,255,.12);

    color: #bce9ff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .13em;
}

.as-region-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 12px rgba(52,211,153,.5);
}

.as-region-svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 380px;
    overflow: visible;
}

/* SVG-Beschriftungen */

.as-map-city-label {
    fill: #dceaff;
    font-size: 16px;
    font-weight: 750;
    paint-order: stroke;
    stroke: #071528;
    stroke-width: 5px;
    stroke-linejoin: round;
}

.as-map-city-label.is-major {
    fill: #ffffff;
    font-size: 23px;
    font-weight: 900;
}

.as-map-place.is-home .as-map-city-label {
    fill: #65d8ff;
    font-size: 21px;
    font-weight: 900;
}

.as-map-home-label {
    fill: #80dfff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .11em;
    paint-order: stroke;
    stroke: #071528;
    stroke-width: 3px;
}

.as-map-lake-label {
    fill: #d5f5ff;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .12em;
    text-anchor: middle;
    paint-order: stroke;
    stroke: #0759c9;
    stroke-width: 3px;
}

/* Kartenfooter */

.as-region-map-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin: 0 22px 15px;
    padding: 17px 20px;

    border-radius: 16px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.1);

    color: #b9c9df;
    font-size: 12px;
}

.as-region-map-footer span {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.as-region-map-footer strong {
    color: #fff;
    font-size: 14px;
}

.as-map-attribution {
    padding: 0 25px 15px;
    color: #8ba0b8;
    font-size: 10px;
    text-align: right;
}

.as-map-data-notice {
    margin: 0 22px 15px;
    padding: 12px;
    border-radius: 12px;
    background: rgba(255,255,255,.06);
    color: #c7d7eb;
    font-size: 13px;
}

/* Tablet */

@media (max-width: 1100px) {

    .as-region-layout {
        grid-template-columns: 1fr;
    }

    .as-region-info {
        padding: 30px;
    }

    .as-region-svg {
        min-height: 0;
    }
}

/* Smartphone */

@media (max-width: 768px) {

    .as-region-section {
        padding-top: 55px;
        padding-bottom: 55px;
    }

    .as-region-heading {
        margin-bottom: 25px;
    }

    .as-region-heading h2 {
        font-size: clamp(28px, 7vw, 38px);
    }

    .as-region-heading p {
        font-size: 16px;
    }

    .as-region-layout {
        gap: 18px;
    }

    .as-region-info {
        padding: 25px 20px;
        border-radius: 20px;
    }

    .as-region-info h3 {
        font-size: 27px;
    }

    .as-region-info > .btn {
        width: 100%;
        align-self: stretch;
    }

    .as-region-map-panel {
        border-radius: 20px;
    }

    .as-region-map-label {
        position: relative;
        top: auto;
        left: auto;
        margin: 15px 15px 0;
        width: fit-content;
        font-size: 9px;
    }

    .as-region-svg {
        width: 100%;
        min-height: 0;
    }

    .as-map-city-label {
        font-size: 19px;
    }

    .as-map-city-label.is-major {
        font-size: 25px;
    }

    .as-region-map-footer {
        flex-direction: column;
        align-items: flex-start;
        margin: 0 14px 12px;
        padding: 14px;
    }

    .as-map-attribution {
        padding: 0 15px 12px;
    }
}
/* Jubiläumsbanner: finale Positionskorrektur; Reihenfolge gegenüber Hero-Regeln relevant. */
.as-anniversary {
    position: relative !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
    width: min(100% - 32px, 1200px);
    height: auto !important;
    margin: 28px auto 48px !important;
    padding: 0 !important;
    clear: both;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 16px 50px rgba(0, 0, 0, .25);
}

.as-anniversary img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto !important;
    object-fit: contain;
}

/* Hero unterhalb des Banners */
.as-hero {
    position: relative;
    clear: both;
    margin-top: 0 !important;
    padding-top: 60px;
}

@media (max-width: 768px) {
    .as-anniversary {
        width: calc(100% - 24px);
        margin: 20px auto 28px !important;
        border-radius: 12px;
    }

    .as-hero {
        padding-top: 30px;
    }
}
