/* Zwei globale Lichtflächen begleiten die gesamte Hauptwebsite. */
:root { --af-section-bg:#120D0B; }
body { position:relative; isolation:isolate; }
/* Die exportierte Laufzeit begrenzt diese Hüllen sonst auf eine Bildschirmhöhe. */
html body,body #dc-root,body #dc-root > .sc-host { height:auto; min-height:100svh; }
.af-ambient-light {
 position:fixed;z-index:-1;pointer-events:none;border-radius:50%;
 width:clamp(440px,76vw,1040px);height:clamp(440px,76vw,1040px);
 filter:blur(48px);will-change:transform;
}
.af-ambient-light--warm {
 left:calc(26vw - clamp(220px,38vw,520px));top:calc(34svh - clamp(220px,38vw,520px));
 background:radial-gradient(circle,rgba(255,90,54,.24),rgba(255,90,54,.07) 34%,transparent 68%);
 transform:translate3d(0,0,0);
}
.af-ambient-light--soft {
 width:clamp(360px,60vw,820px);height:clamp(360px,60vw,820px);
 left:calc(78vw - clamp(180px,30vw,410px));top:calc(72svh - clamp(180px,30vw,410px));
 background:radial-gradient(circle,rgba(246,166,132,.16),rgba(246,166,132,.04) 38%,transparent 68%);
 transform:translate3d(0,0,0);
}
.af-surface {position:relative;isolation:isolate;overflow:clip;background:transparent;color:#F6EEE5;}
@media(prefers-reduced-motion:reduce){.af-ambient-light{transform:none!important;will-change:auto;}}

/* Die vorberechnete Körnung wird nur im Hintergrund gezeichnet. */
html body {
 background-image:url('/assets/af-background-grain.png');
 background-size:96px 96px;
 background-repeat:repeat;
}
/* Touch-Scrollen benötigt keine bewegten, gefilterten Licht-Ebenen.
   Die Lichtflecken verblassen vor der Kachelgrenze vollständig. */
@media(hover:none),(pointer:coarse) {
 html body {
  background-image:url('/assets/af-background-grain.png'),
   radial-gradient(ellipse 360px 400px at 20% 350px,rgba(255,90,54,.20),rgba(255,90,54,.055) 38%,transparent 75%),
   radial-gradient(ellipse 340px 390px at 85% 1000px,rgba(246,166,132,.14),rgba(246,166,132,.035) 42%,transparent 75%);
  background-size:96px 96px,100% 1400px,100% 1400px;
 }
 .af-ambient-light {display:none;}
}

/* Standort und Land bilden je eine zentrierte Gruppe; Module stehen klar darunter. */
.af-locations-section{text-align:center}
.af-locations-section>.af-flow,.af-locations-section>div>.af-flow{justify-content:center;margin-inline:auto}
.af-locations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(36px,5vh,56px)}
.af-location{min-width:0;text-align:center}
.af-location h3{font-size:20px;line-height:1.35;font-weight:650;margin:0;text-wrap:balance}
.af-location-country{font-size:14px;font-weight:600;color:var(--af-text-secondary);margin:8px 0 0}
.af-location-modules{font-size:14px;font-weight:650;color:#e7b689;margin:18px 0 0;padding-top:14px;border-top:1px solid #f6eee518}
@media(max-width:899px){.af-locations{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:599px){.af-locations{grid-template-columns:minmax(0,1fr);gap:14px}.af-location{padding:22px 18px}}
.af-footer-bottom{justify-content:center!important;text-align:center}

/* Detailmotive: geringer Zoom, feste Geometrie und keine verzögerte Effektinitialisierung. */
.af-media img[data-detail-image]{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;transform-origin:center;transform:scale(1.035)}
@media(prefers-reduced-motion:reduce){.af-media img[data-detail-image]{transform:none!important}}
