/* AST Solutions – Joomla 6 Template. Keine externen Ressourcen (DSGVO-freundlich). */
:root{
	--blue:#145990; --blue-dark:#0C2B49; --blue-mid:#2A78B5; --steel:#E8F0F7; --steel-2:#D3E2EF;
	--amber:#F0A62B; --amber-dark:#C9831A; --ink:#12202E; --muted:#51647A; --white:#fff;
	--measure:none; /* Zeilenlänge im Beitragsbereich, z. B. 90ch für schmaleren Text */
	--frame:5px; --r-frame:26px; --r-ui:10px; --wrap:1180px;
	--font:"Avenir Next","Segoe UI","Helvetica Neue",Arial,system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--blue);text-underline-offset:.18em}
a:hover{color:var(--blue-dark)}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{font-weight:800;line-height:1.15;letter-spacing:-.015em;color:var(--blue-dark);margin:0 0 .6em;text-wrap:balance}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem)} h2{font-size:clamp(1.6rem,3vw,2.2rem)} h3{font-size:1.3rem} h4{font-size:1.1rem}
p{margin:0 0 1.1em;max-width:70ch}
.ast-wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.ast-skip{position:absolute;left:-999px;top:0;background:var(--amber);color:var(--ink);padding:.7rem 1rem;z-index:100;font-weight:700}
.ast-skip:focus{left:0}

/* Buttons */
.ast-btn,.btn,button.btn,input[type=submit]{display:inline-block;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;border:var(--frame) solid var(--blue);background:var(--blue);color:var(--white);padding:.65rem 1.4rem;border-radius:var(--r-ui);transition:background .15s,color .15s,border-color .15s}
.ast-btn:hover,.btn:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:var(--white)}
.ast-btn--accent{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.ast-btn--accent:hover{background:var(--white);border-color:var(--white);color:var(--blue-dark)}
.ast-btn--ghost{background:transparent;border-color:currentColor;color:inherit}
.ast-btn--ghost:hover{background:var(--white);border-color:var(--white);color:var(--blue-dark)}

/* Kopfbereich */
.ast-header{background:var(--white);z-index:50}
.has-sticky .ast-header{position:sticky;top:0}
.ast-topbar{background:var(--blue-dark);color:var(--steel);font-size:.9rem}
.ast-topbar__inner{display:flex;justify-content:flex-end;gap:1.6rem;padding-block:.35rem}
.ast-topbar a{color:var(--steel);text-decoration:none}
.ast-topbar a:hover{color:var(--amber)}
.ast-topbar__link{display:inline-flex;align-items:center;gap:.45rem}
.ast-ico{flex:none;color:var(--amber)}
.ast-bar{border-bottom:var(--frame) solid var(--blue)}
.ast-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:76px}
.ast-brand{flex-shrink:0;white-space:nowrap;display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--blue-dark)}
.ast-brand__icon{height:40px;width:auto}
.ast-brand__text{display:flex;flex-direction:column;line-height:1.1}
.ast-brand__text strong{font-size:1.45rem;font-weight:800;letter-spacing:-.01em;color:var(--blue)}
.ast-brand__text small{font-size:.74rem;color:var(--muted);margin-top:.15rem}

/* Navigation */
.ast-nav ul{list-style:none;margin:0;padding:0}
.ast-nav a{white-space:nowrap;display:block;text-decoration:none;color:var(--blue-dark);font-weight:600;padding:.55rem .75rem;border-radius:var(--r-ui)}
.ast-nav a:hover,.ast-nav .active>a,.ast-nav .current>a{background:var(--steel);color:var(--blue)}
.ast-nav .active>a,.ast-nav .current>a{box-shadow:inset 0 -3px 0 var(--blue)}
.ast-burger{display:none;align-items:center;gap:.6rem;font:inherit;font-weight:700;color:var(--blue-dark);background:none;border:var(--frame) solid var(--blue);border-radius:var(--r-ui);padding:.35rem .8rem;cursor:pointer}
.ast-burger__bars,.ast-burger__bars::before,.ast-burger__bars::after{display:block;width:20px;height:3px;background:var(--blue);border-radius:2px;content:"";position:relative;transition:transform .2s}
.ast-burger__bars::before{position:absolute;top:-7px}.ast-burger__bars::after{position:absolute;top:7px}
.nav-open .ast-burger__bars{background:transparent}
.nav-open .ast-burger__bars::before{transform:translateY(7px) rotate(45deg)}
.nav-open .ast-burger__bars::after{transform:translateY(-7px) rotate(-45deg)}

@media (max-width:1079px){
	.ast-burger{display:inline-flex}
	.ast-bar__inner{flex-wrap:wrap}
	.ast-nav{display:none;width:100%;padding-bottom:1rem}
	.nav-open .ast-nav{display:block}
	.ast-nav ul ul{padding-left:1rem;border-left:3px solid var(--steel-2);margin-left:.85rem}
	.ast-topbar__inner{justify-content:space-between;gap:.6rem;flex-wrap:wrap}
}
@media (min-width:1080px){
	.ast-nav>ul,.ast-nav .mod-menu{display:flex;gap:.15rem}
	.ast-nav li{position:relative}
	.ast-nav li>ul{display:none;position:absolute;left:0;top:100%;min-width:15rem;background:var(--white);border:var(--frame) solid var(--blue);border-radius:var(--r-ui);padding:.4rem;z-index:20}
	.ast-nav li:hover>ul,.ast-nav li:focus-within>ul{display:block}
}

/* Joomla-Standardmodule: Hilfsklassen, die sonst Bootstrap/Cassiopeia liefern */
.visually-hidden,.sr-only,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.list-unstyled{list-style:none;padding-left:0}
.d-none{display:none!important}
/* Menümodul (mod_menu): Listen, Trenner, Platzhalter, Untermenü-Schalter */
.ast-nav ul,.ast-nav li{list-style:none;margin:0;padding:0}
.ast-nav li::marker{content:""}
.ast-nav .mod-menu__heading,.ast-nav .nav-header,.ast-nav .separator>span,.ast-nav li>span:not(.visually-hidden):not(.icon-chevron-down){display:block;font-weight:600;color:var(--blue-dark);padding:.55rem .85rem}
.ast-nav .mod-menu__toggle-sub,.ast-nav button:not(.ast-burger){display:none}
.ast-nav .mod-menu__sub a{font-weight:500}
.ast-nav img{display:none}
@media (min-width:960px){
	.ast-nav li.parent>a::after,.ast-nav li.deeper>a::after{content:"";display:inline-block;width:.45em;height:.45em;margin-left:.45em;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-.15em) rotate(45deg)}
}

/* Hero (Modul-HTML siehe Startseite-Bausteine.html) */
.ast-hero{background:var(--blue-dark);color:var(--white);position:relative;overflow:hidden}
.ast-hero::after{content:"";position:absolute;right:-8%;top:-30%;width:620px;height:620px;border:28px solid rgba(42,120,181,.28);border-radius:50%;pointer-events:none}
.ast-hero__inner{display:grid;gap:3rem;padding-block:clamp(3rem,7vw,5.5rem);position:relative;z-index:1}
@media (min-width:1080px){.ast-hero__inner{grid-template-columns:1.35fr 1fr;align-items:center}}
.ast-hero h1{color:var(--white);margin-bottom:.45em}
.ast-hero p{font-size:1.2rem;color:var(--steel-2)}
.ast-hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.ast-frame{border:var(--frame) solid var(--blue-mid);border-radius:var(--r-frame);padding:1.6rem 1.8rem;background:rgba(255,255,255,.04)}
.ast-frame h2{font-size:1.2rem;color:var(--white);margin-bottom:.8rem}
.ast-frame ul{list-style:none;margin:0;padding:0}
.ast-frame li+li{border-top:1px solid rgba(255,255,255,.14)}
.ast-frame a{display:block;color:var(--white);text-decoration:none;font-weight:600;padding:.75rem 0}
.ast-frame a:hover{color:var(--amber)}
.ast-frame small{display:block;font-weight:400;color:var(--steel-2)}

/* Bänder & Raster */
.ast-band{padding-block:clamp(2.5rem,6vw,4.5rem)}
.ast-band--1{background:var(--white)}
.ast-band--2{background:var(--steel)}
.ast-band--3{background:var(--blue);color:var(--white)}
.ast-band--3 h2,.ast-band--3 h3{color:var(--white)}
.ast-section-head{max-width:46rem;margin-bottom:2.2rem}
.ast-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr))}
.ast-card{display:flex;flex-direction:column;border:var(--frame) solid var(--blue);border-radius:var(--r-frame);padding:1.6rem;background:var(--white);text-decoration:none;color:var(--ink);transition:background .15s,color .15s}
.ast-card h3{margin-bottom:.4em}
.ast-card p{font-size:.98rem;color:var(--muted);margin-bottom:1rem}
.ast-card__link{margin-top:auto;font-weight:700;color:var(--blue)}
a.ast-card:hover{background:var(--blue);color:var(--white)}
a.ast-card:hover h3,a.ast-card:hover p,a.ast-card:hover .ast-card__link{color:var(--white)}
.ast-card__icon{width:56px;height:56px;margin-bottom:1rem;color:var(--blue)}
a.ast-card:hover .ast-card__icon{color:var(--amber)}
.ast-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.ast-steps li{counter-increment:step;position:relative;padding-top:3.4rem}
.ast-steps li::before{content:counter(step);position:absolute;top:0;left:0;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--blue);color:var(--white);display:grid;place-items:center;font-weight:800}
.ast-steps li::after{content:"";position:absolute;top:1.3rem;left:3.2rem;right:-1rem;height:3px;background:var(--steel-2)}
.ast-steps li:last-child::after{display:none}
.ast-steps h3{font-size:1.1rem;margin-bottom:.25em}
.ast-steps p{font-size:.97rem;color:var(--muted)}
.ast-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem}
.ast-cta h2{margin:0}

/* Inhalt */
.ast-crumbs{background:var(--steel);font-size:.9rem;padding-block:.6rem}
.ast-crumbs ol,.ast-crumbs ul{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0}
.ast-crumbs a{color:var(--blue)}
.ast-layout{display:grid;gap:3rem;padding-block:clamp(2rem,5vw,3.5rem)}
@media (min-width:1080px){.has-sidebar .ast-layout{grid-template-columns:minmax(0,1fr) 19rem}}
.ast-main{min-width:0}
.ast-main img{border-radius:var(--r-ui)}
.ast-main :is(p,ul,ol){max-width:var(--measure)}
.ast-main ul,.ast-main ol{padding-left:1.3rem}
.ast-main li::marker{color:var(--blue)}
.page-header h1,.com-content-article__header h1{margin-bottom:.5em}
table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}
th,td{border:1px solid var(--steel-2);padding:.6rem .8rem;text-align:left}
th{background:var(--steel);color:var(--blue-dark)}
blockquote{margin:1.5rem 0;padding:.4rem 0 .4rem 1.2rem;border-left:var(--frame) solid var(--blue);color:var(--muted)}
input,select,textarea{font:inherit;width:100%;max-width:34rem;padding:.6rem .8rem;border:2px solid var(--steel-2);border-radius:var(--r-ui);background:var(--white);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--blue)}
input[type=checkbox],input[type=radio]{width:auto}
label{display:block;font-weight:600;margin:1rem 0 .3rem}
.alert,.alert-message{border:var(--frame) solid var(--blue);border-radius:var(--r-ui);padding:1rem 1.2rem;margin-bottom:1.2rem;background:var(--steel)}
.alert-danger,.alert-error{border-color:#B3261E}
.alert-success{border-color:#2E7D32}

/* Seitenleiste */
.ast-side .moduletable{border:var(--frame) solid var(--blue);border-radius:var(--r-frame);padding:1.2rem 1.4rem;margin-bottom:1.4rem}
.ast-side h3{font-size:1.1rem}
.ast-side ul{list-style:none;margin:0;padding:0}
.ast-side li+li{border-top:1px solid var(--steel-2)}
.ast-side li a{display:block;padding:.55rem 0;text-decoration:none;font-weight:600}

/* Fuß */
.ast-footer{background:var(--blue-dark);color:var(--steel-2);padding-top:3.2rem;margin-top:0;font-size:.97rem}
.ast-footer a{color:var(--white);text-decoration:none}
.ast-footer a:hover{color:var(--amber);text-decoration:underline}
.ast-footer h3{color:var(--white);font-size:1.05rem}
.ast-footer ul{list-style:none;margin:0;padding:0}
.ast-footer li{padding:.25rem 0}
.ast-footer__grid{display:grid;gap:2.2rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));padding-bottom:2.4rem}
.ast-footer__col--brand img{margin-bottom:1rem}
.ast-footer__contact{display:flex;flex-direction:column;gap:.35rem}
.ast-footer__link{display:inline-flex;align-items:center;gap:.5rem}
.ast-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;border-top:1px solid rgba(255,255,255,.18);padding-block:1.2rem;font-size:.9rem}
.ast-footer__base p{margin:0}
.ast-footer__base ul{display:flex;gap:1.4rem;flex-wrap:wrap}

/* Eigenständige Seiten (Fehler, Offline) */
.ast-standalone{max-width:34rem;margin:0 auto;padding:4rem 1.2rem;text-align:center}
.ast-standalone p{margin-inline:auto}
.ast-error__code{font-size:4.5rem;font-weight:800;color:var(--blue);margin-bottom:0;line-height:1}
.ast-login{text-align:left;margin-top:2rem;border:var(--frame) solid var(--blue);border-radius:var(--r-frame);padding:1.2rem 1.6rem 1.6rem}
.ast-login input{max-width:none}
.ast-login .ast-btn{margin-top:1.2rem}
.ast-component{padding:1rem}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.ast-header,.ast-footer,.ast-side,.ast-hero-area,.ast-crumbs{display:none}}
