/* ailh-layout.css
 * Zweck: Layout-Korrekturen am vorkompilierten Theme-Bundle. Neue Tailwind-Utility-Klassen
 * wirken auf ailinkhub.de NICHT (das CSS-Bundle wird nicht neu gebaut), deshalb stehen solche
 * Regeln hier als klassisches CSS. Wird in default/layout/app.blade.php,
 * default/blog/app.blade.php und default/panel/layout/partials/head.blade.php
 * direkt vor ailh-legal.css eingebunden (ailh-totop-Block unten braucht das Panel-Include).
 *
 * ailh-fix 2026-07-31 -- Startseite scrollte horizontal (scrollWidth 1366 bei clientWidth 1324).
 * Ursache: dekorative, absolut positionierte bzw. gedrehte Elemente in den Landingpage-Sektionen
 * ragen bewusst ueber den Sektionsrand hinaus. Der Hauptverursacher war
 * <section id="banner-ig"> (modern/landing-page/banner/section.blade.php:161): sie besitzt als
 * einzige Hero-Sektion KEIN overflow-hidden, enthaelt aber ein <figure class="w-full rotate-6">.
 * Ein um 6 Grad gedrehtes 100%-breites Element hat eine breitere Bounding-Box als sein Container
 * und zieht damit die Dokumentbreite auf. Gleiches Muster bei den ueberbreiten Deko-SVGs und dem
 * Marquee-Text in #features.
 *
 * Loesung: die Sektions-Container clippen, nicht die Deko verkleinern -- das Ueberstehen ist
 * gestalterisch gewollt und bleibt sichtbar, es darf nur nicht die Seitenbreite bestimmen.
 *
 * Warum "overflow-x: clip" und nicht "overflow-x: hidden":
 *   - clip erzeugt KEINEN Scroll-Container. Damit bleibt "overflow-y: visible" erhalten
 *     (die Kombination clip/visible ist laut CSS-Overflow-3 zulaessig und wird nicht
 *     umgerechnet), waehrend "overflow-x: hidden" das gegenueberliegende "visible" zu "auto"
 *     macht und die Sektion zum Scroll-Container wuerde.
 *   - Genau daran zerbricht sonst position:sticky in Nachfahren und vertikal ueberstehende
 *     Deko (z.B. das Blob-SVG mit -bottom-20 in #banner-ig) wuerde abgeschnitten.
 * Nicht auf html/body anwenden: der Header nutzt einen sticky/fixed-Zustand
 * (.lqd-is-sticky) und die Dropdowns oeffnen ausserhalb ihres Sektionsflusses.
 *
 * Hinweis: overflow-x: clip braucht Chrome 90+/Firefox 81+/Safari 16+. Aeltere Browser
 * verhalten sich wie bisher (kein Regress, nur kein Fix) -- bewusst kein hidden-Fallback,
 * weil der die vertikal ueberstehende Deko sichtbar abschneiden wuerde.
 */

.site-section {
    overflow-x: clip;
}

/* ailh-totop -- "Nach oben"-Button (Scroll-to-Top), siehe
 * resources/views/default/components/back-to-top.blade.php fuer die HTML/JS-Seite.
 * Eingebunden in default/layout/app.blade.php, default/blog/app.blade.php UND
 * default/panel/layout/partials/head.blade.php (Panel hatte ailh-layout.css vorher
 * gar nicht geladen -- dort ergaenzt, sonst waere die Position hier wirkungslos).
 *
 * Position bewusst NICHT im ueblichen bottom-6/right-6-Eck: der Panel-Chatbot-Trigger
 * (.lqd-chatbot) sitzt dort bereits fix bei right:2.5rem / bottom:5rem (mobil) bzw.
 * 4rem (lg), Groesse 56x56px (siehe default/panel/chatbot/widget.blade.php, live gegen
 * /login geprueft). Dieser Button steht deshalb bei bottom:9.5rem -- mindestens 16px
 * Abstand zur Oberkante des Chatbot-Triggers auf jeder Bildschirmgroesse, damit sich
 * beide nie ueberlappen. Auf Frontend/Blog gibt es aktuell keinen weiteren schwebenden
 * Button; die Position bleibt trotzdem identisch (eine Partial/ein CSS statt
 * kontextabhaengiger Varianten).
 *
 * Farben ueber die vorhandenen Theme-CSS-Variablen (--background/--foreground/--primary/
 * --primary-foreground/--border, von den kompilierten Vite-Bundles gesetzt und unter
 * body.theme-dark automatisch auf die Dark-Werte umgeschaltet) -- kein eigenes
 * Dark-Mode-Handling noetig, folgt damit automatisch dem bestehenden Hell/Dunkel-Umschalter.
 */
#ailh-back-to-top {
    position: fixed;
    right: 1.5rem;
    bottom: 9.5rem;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 9999px;
    border: 1px solid hsl(var(--border));
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
    cursor: pointer;
    padding: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

#ailh-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

#ailh-back-to-top:hover,
#ailh-back-to-top:focus-visible {
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    border-color: hsl(var(--primary));
}

#ailh-back-to-top:focus-visible {
    outline: 2px solid hsl(var(--primary));
    outline-offset: 2px;
}

#ailh-back-to-top .ailh-back-to-top-icon {
    width: 20px;
    height: 20px;
}

@media (prefers-reduced-motion: reduce) {
    #ailh-back-to-top {
        transition: opacity 0.01ms linear;
        transform: none;
    }
}

/* ==========================================================================
   ailh-share (2026-07-31) -- Teilen-Leiste
   Eigenes CSS, weil das Tailwind-Bundle vorkompiliert ist: neue Utility-Klassen
   landen NICHT im Build und wuerden wirkungslos bleiben.
   Markup: resources/views/default/components/ailh-share.blade.php
   ========================================================================== */

.ailh-share {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.ailh-share__label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.6;
}

.ailh-share__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ailh-share__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 36px;
    min-width: 36px;
    padding: 0 0.6rem;
    border: 1px solid currentColor;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    opacity: 0.65;
    transition: opacity 0.2s ease, background-color 0.2s ease, transform 0.15s ease;
}

.ailh-share__btn:hover,
.ailh-share__btn:focus-visible {
    opacity: 1;
    transform: translateY(-1px);
}

.ailh-share__btn:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Icon-only Netzwerk-Buttons brauchen keine Innenabstaende fuer Text. */
.ailh-share__btn:not(.ailh-share__btn--native):not(.ailh-share__btn--copy) {
    padding: 0;
}

.ailh-share__btn svg {
    width: 18px;
    height: 18px;
    flex: none;
}

.ailh-share__btn--native,
.ailh-share__btn--copy {
    padding: 0 0.75rem;
}

.ailh-share__btn--copy.is-copied {
    opacity: 1;
    border-color: #16a34a;
    color: #16a34a;
}

.ailh-share__toast {
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.ailh-share__toast.is-visible {
    opacity: 0.8;
}

@media (max-width: 640px) {
    .ailh-share {
        justify-content: center;
    }

    /* Auf Mobil ist der native Dialog der beste Weg -- Text der Netzwerk-Buttons
       bleibt aus, damit die Leiste nicht umbricht. */
    .ailh-share__btn--copy .ailh-share__copy-text {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ailh-share__btn {
        transition: opacity 0.01ms linear;
        transform: none;
    }
}

/* ==========================================================================
   ailh-cookie-panel (2026-07-31)
   CCM19 laedt im Panel UND im Frontend (settings.frontend_code_before_head und
   settings.dashboard_code_before_head enthalten beide das app.js).
   Enrico will das schwebende Cookie-Icon NUR im Dashboard weghaben.

   WICHTIG: Hier wird ausschliesslich das Aufruf-Icon (Summoner) visuell entfernt.
   Das CCM19-Script selbst bleibt geladen und der Consent-Layer voll funktionsfaehig
   -- sonst waere die DSGVO-Konformitaet kaputt. Im Frontend bleibt das Icon sichtbar,
   weil die Regel an .ailh-panel auf dem <body> haengt (nur Panel-Layout).
   ========================================================================== */

body.ailh-panel .ccm-settings-summoner,
body.ailh-panel .ccm-settings-summoner--link {
    display: none !important;
}
