/**
 * WP ProofGallery – Frontend CSS
 *
 * Enthält:
 *  - Passwort-Formular-Seite
 *  - Galerie abgelaufen-Seite
 *  - Galerie-Header
 *  - Masonry-Grid / Gleichmäßiges Grid
 *  - Bild-Overlay-Aktionen
 *  - Buttons
 *  - Barrierefreiheits-Hilfklassen
 *
 * @package WPProofGallery
 * @since   1.0.0
 */

/* ==========================================================================
   CSS-Variablen
   ========================================================================== */

:root {
	--wppg-primary:       #1a1a2e;
	--wppg-accent:        #e94560;
	--wppg-accent-hover:  #c73652;
	--wppg-surface:       #ffffff;
	--wppg-surface-muted: #f8f8fb;
	--wppg-border:        #e8e8ef;
	--wppg-text:          #1a1a2e;
	--wppg-text-muted:    #6b6b8a;
	--wppg-success:       #16a34a;
	--wppg-danger:        #dc2626;
	--wppg-radius-sm:     6px;
	--wppg-radius:        12px;
	--wppg-radius-lg:     20px;
	--wppg-shadow-sm:     0 1px 3px rgba(0,0,0,.08);
	--wppg-shadow:        0 4px 24px rgba(0,0,0,.10);
	--wppg-shadow-lg:     0 12px 48px rgba(0,0,0,.15);
	--wppg-transition:    0.2s ease;
	--wppg-grid-gap:      12px;
	--wppg-grid-cols:     3;
}

/* ==========================================================================
   Barrierefreiheit
   ========================================================================== */

.wppg-sr-only {
	position: absolute;
	width:    1px;
	height:   1px;
	padding:  0;
	margin:   -1px;
	overflow: hidden;
	clip:     rect(0,0,0,0);
	white-space: nowrap;
	border:   0;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.wppg-btn {
	display:         inline-flex;
	align-items:     center;
	gap:             8px;
	padding:         10px 20px;
	border-radius:   var(--wppg-radius-sm);
	font-size:       14px;
	font-weight:     600;
	line-height:     1;
	text-decoration: none;
	border:          2px solid transparent;
	cursor:          pointer;
	transition:      background var(--wppg-transition),
	                 color       var(--wppg-transition),
	                 border-color var(--wppg-transition),
	                 box-shadow  var(--wppg-transition),
	                 transform   var(--wppg-transition);
	white-space:     nowrap;
}

.wppg-btn:focus-visible {
	outline:        2px solid var(--wppg-accent);
	outline-offset: 3px;
}

.wppg-btn:active {
	transform: scale(0.97);
}

/* Primär */
.wppg-btn--primary {
	background: var(--wppg-accent);
	color:      #fff;
	border-color: var(--wppg-accent);
	width:      100%;
	justify-content: center;
	padding:    14px 20px;
}

.wppg-btn--primary:hover {
	background:  var(--wppg-accent-hover);
	border-color: var(--wppg-accent-hover);
}

/* Outline */
.wppg-btn--outline {
	background:  transparent;
	color:       var(--wppg-text);
	border-color: var(--wppg-border);
}

.wppg-btn--outline:hover {
	border-color: var(--wppg-accent);
	color:        var(--wppg-accent);
}

/* Sekundär */
.wppg-btn--secondary {
	background:  var(--wppg-surface-muted);
	color:       var(--wppg-text);
	border-color: var(--wppg-border);
}

.wppg-btn--secondary:hover {
	background: var(--wppg-border);
}

/* Ghost */
.wppg-btn--ghost {
	background:  transparent;
	color:       var(--wppg-text-muted);
	border-color: transparent;
}

.wppg-btn--ghost:hover {
	color:       var(--wppg-text);
	background:  var(--wppg-surface-muted);
}

/* ==========================================================================
   Passwort-Seite
   ========================================================================== */

.wppg-password-page,
.wppg-expired-page {
	display:         flex;
	align-items:     center;
	justify-content: center;
	min-height:      70vh;
	padding:         40px 20px;
}

.wppg-password-card,
.wppg-expired-card {
	background:    var(--wppg-surface);
	border:        1px solid var(--wppg-border);
	border-radius: var(--wppg-radius-lg);
	box-shadow:    var(--wppg-shadow-lg);
	padding:       48px 40px;
	width:         100%;
	max-width:     440px;
	text-align:    center;
}

/* Icon-Bereich */
.wppg-password-card__icon,
.wppg-expired-card__icon {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           80px;
	height:          80px;
	border-radius:   50%;
	background:      var(--wppg-surface-muted);
	margin:          0 auto 24px;
	color:           var(--wppg-accent);
}

/* Texte */
.wppg-password-card__title,
.wppg-expired-card__title {
	font-size:     22px;
	font-weight:   700;
	color:         var(--wppg-text);
	margin:        0 0 8px;
	line-height:   1.3;
}

.wppg-password-card__subtitle,
.wppg-expired-card__subtitle {
	font-size:   15px;
	font-weight: 600;
	color:       var(--wppg-text);
	margin:      0 0 16px;
}

.wppg-password-card__description,
.wppg-expired-card__description {
	font-size:   14px;
	color:       var(--wppg-text-muted);
	line-height: 1.6;
	margin:      0 0 28px;
}

/* Fehlermeldung */
.wppg-alert {
	display:       flex;
	align-items:   center;
	gap:           8px;
	padding:       12px 14px;
	border-radius: var(--wppg-radius-sm);
	font-size:     13px;
	text-align:    left;
	margin-bottom: 20px;
}

.wppg-alert--error {
	background:  #fef2f2;
	border:      1px solid #fca5a5;
	color:       var(--wppg-danger);
}

.wppg-alert--error svg {
	flex-shrink: 0;
}

/* Formular */
.wppg-password-form {
	text-align: left;
}

.wppg-form-group {
	margin-bottom: 20px;
}

.wppg-form-label {
	display:       block;
	font-size:     13px;
	font-weight:   600;
	color:         var(--wppg-text);
	margin-bottom: 6px;
}

.wppg-form-required {
	color:       var(--wppg-accent);
	margin-left: 2px;
}

.wppg-password-wrap {
	display:   flex;
	gap:       8px;
	align-items: stretch;
}

.wppg-form-input {
	flex:          1;
	padding:       10px 14px;
	border:        1.5px solid var(--wppg-border);
	border-radius: var(--wppg-radius-sm);
	font-size:     15px;
	color:         var(--wppg-text);
	background:    var(--wppg-surface);
	transition:    border-color var(--wppg-transition),
	               box-shadow   var(--wppg-transition);
	outline:       none;
}

.wppg-form-input:focus {
	border-color: var(--wppg-accent);
	box-shadow:   0 0 0 3px rgba(233,69,96,.12);
}

.wppg-form-input--error {
	border-color: var(--wppg-danger);
	box-shadow:   0 0 0 3px rgba(220,38,38,.10);
}

/* Sichtbarkeits-Toggle */
.wppg-password-toggle {
	padding:       10px 12px;
	border:        1.5px solid var(--wppg-border);
	border-radius: var(--wppg-radius-sm);
	background:    var(--wppg-surface-muted);
	cursor:        pointer;
	color:         var(--wppg-text-muted);
	display:       flex;
	align-items:   center;
	transition:    border-color var(--wppg-transition),
	               color        var(--wppg-transition);
}

.wppg-password-toggle:hover {
	border-color: var(--wppg-accent);
	color:        var(--wppg-accent);
}

.wppg-password-toggle:focus-visible {
	outline:        2px solid var(--wppg-accent);
	outline-offset: 2px;
}

/* ==========================================================================
   Galerie-Seite
   ========================================================================== */

.wppg-gallery-page {
	max-width:  1400px;
	margin:     0 auto;
	padding:    0 20px 60px;
}

/* --- Header --- */

.wppg-gallery-header {
	padding:       40px 0 32px;
	border-bottom: 1px solid var(--wppg-border);
	margin-bottom: 32px;
}

.wppg-gallery-header__inner {
	display:         flex;
	align-items:     flex-start;
	justify-content: space-between;
	gap:             24px;
	flex-wrap:       wrap;
}

.wppg-gallery-header__title {
	font-size:   28px;
	font-weight: 800;
	color:       var(--wppg-text);
	margin:      0 0 8px;
	line-height: 1.2;
}

.wppg-gallery-header__description {
	font-size:   15px;
	color:       var(--wppg-text-muted);
	margin:      0 0 8px;
	max-width:   600px;
}

.wppg-gallery-header__meta {
	font-size:   13px;
	color:       var(--wppg-text-muted);
	margin:      0;
}

.wppg-gallery-header__actions {
	display:    flex;
	gap:        8px;
	flex-wrap:  wrap;
	flex-shrink: 0;
}

/* --- Leer-Zustand --- */

.wppg-gallery-empty {
	padding:       80px 20px;
	text-align:    center;
	color:         var(--wppg-text-muted);
	border:        2px dashed var(--wppg-border);
	border-radius: var(--wppg-radius);
}

/* ==========================================================================
   Grid-Layouts
   ========================================================================== */

/* --- Gemeinsame Grid-Basis --- */

.wppg-grid {
	display: grid;
	gap:     var(--wppg-grid-gap);
}

/* --- Gleichmäßiges Raster --- */

.wppg-grid--grid {
	grid-template-columns: repeat( var(--wppg-grid-cols), 1fr );
}

.wppg-grid--grid .wppg-grid__item {
	aspect-ratio: 1 / 1;
}

.wppg-grid--grid .wppg-grid__img {
	aspect-ratio: 1 / 1;
	object-fit:   cover;
}

/* --- Masonry (CSS-Columns-Ansatz, kein JS nötig) --- */

.wppg-grid--masonry {
	display:    block; /* Überschreibt grid für column-count. */
	column-count: var(--wppg-grid-cols);
	column-gap:   var(--wppg-grid-gap);
}

.wppg-grid--masonry .wppg-grid__item {
	break-inside:  avoid;
	margin-bottom: var(--wppg-grid-gap);
	display:       block;
}

.wppg-grid--masonry .wppg-grid__img {
	width:   100%;
	height:  auto;
	display: block;
}

/* ==========================================================================
   Grid-Item
   ========================================================================== */

.wppg-grid__item {
	position: relative;
	margin:   0;
	cursor:   pointer;
}

.wppg-grid__item-inner {
	position:      relative;
	overflow:      hidden;
	border-radius: var(--wppg-radius-sm);
	background:    var(--wppg-surface-muted);
}

.wppg-grid__img {
	display:    block;
	width:      100%;
	cursor:     zoom-in;
	transition: transform 0.35s ease, filter 0.35s ease;
}

/* Hover: Bild leicht skalieren & abdunkeln. */
.wppg-grid__item:hover .wppg-grid__img {
	transform: scale(1.03);
	filter:    brightness(0.75);
}

/* ==========================================================================
   Overlay-Aktionen
   ========================================================================== */

.wppg-grid__overlay {
	position:      absolute;
	inset:         0;
	display:       flex;
	align-items:   flex-end;
	padding:       10px;
	gap:           6px;
	opacity:       0;
	pointer-events: none;              /* Klick geht im Ruhezustand durch aufs Bild */
	transition:    opacity var(--wppg-transition);
	flex-wrap:     wrap;
}

.wppg-grid__item:hover .wppg-grid__overlay,
.wppg-grid__item:focus-within .wppg-grid__overlay {
	opacity:        1;
	pointer-events: auto;              /* Buttons im Hover-Zustand klickbar */
}

/* Aktions-Button (Basis) */
.wppg-action-btn {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           36px;
	height:          36px;
	border-radius:   50%;
	border:          none;
	cursor:          pointer;
	background:      rgba(255,255,255,.90);
	color:           var(--wppg-text);
	transition:      background var(--wppg-transition),
	                 color      var(--wppg-transition),
	                 transform  var(--wppg-transition);
	text-decoration: none;
	backdrop-filter: blur(4px);
	flex-shrink:     0;
}

.wppg-action-btn:hover {
	transform: scale(1.1);
}

.wppg-action-btn:focus-visible {
	outline:        2px solid var(--wppg-accent);
	outline-offset: 2px;
}

/* Favorit */
.wppg-action-btn--favorite[aria-pressed="true"] {
	background: var(--wppg-accent);
	color:      #fff;
}

.wppg-action-btn--favorite[aria-pressed="true"] svg {
	fill: currentColor;
}

/* Farbpunkte */
.wppg-color-dots {
	display:    flex;
	gap:        5px;
	align-items: center;
	margin-left: auto; /* Nach rechts schieben. */
}

.wppg-color-dot {
	width:         18px;
	height:        18px;
	border-radius: 50%;
	border:        2px solid rgba(255,255,255,.7);
	cursor:        pointer;
	transition:    transform var(--wppg-transition),
	               border-color var(--wppg-transition);
	flex-shrink:   0;
}

.wppg-color-dot:hover,
.wppg-color-dot[aria-pressed="true"] {
	transform:    scale(1.25);
	border-color: #fff;
}

.wppg-color-dot--green  { background: #16a34a; }
.wppg-color-dot--yellow { background: #ca8a04; }
.wppg-color-dot--red    { background: #dc2626; }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media ( max-width: 1100px ) {
	:root { --wppg-grid-cols: 3; }
}

@media ( max-width: 768px ) {
	:root { --wppg-grid-cols: 2; }

	.wppg-gallery-header__inner {
		flex-direction: column;
		gap:            16px;
	}

	.wppg-gallery-header__actions {
		width: 100%;
	}

	.wppg-gallery-header__title {
		font-size: 22px;
	}

	.wppg-password-card,
	.wppg-expired-card {
		padding: 32px 24px;
	}
}

@media ( max-width: 480px ) {
	:root { --wppg-grid-cols: 1; }

	.wppg-gallery-page {
		padding: 0 12px 40px;
	}
}


/* ==========================================================================
   Modul 4 – Farbmarkierungs-Rahmen, Summary-Bar, Toasts, Animationen
   ========================================================================== */

/* --- Farbrahmen am Grid-Item --- */

.wppg-grid__item-inner.wppg-color-green  { box-shadow: 0 0 0 3px #16a34a; }
.wppg-grid__item-inner.wppg-color-yellow { box-shadow: 0 0 0 3px #ca8a04; }
.wppg-grid__item-inner.wppg-color-red    { box-shadow: 0 0 0 3px #dc2626; }

/* --- Favoriten-Button aktiver Zustand --- */

.wppg-action-btn--favorite.is-active {
    background: var(--wppg-accent);
    color:      #fff;
}

.wppg-action-btn--favorite.is-active svg {
    fill: currentColor;
}

/* Pop-Animation für Favorit-Toggle */
@keyframes wppg-pop {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.35); }
    100% { transform: scale(1); }
}

.wppg-action-btn.wppg-pop {
    animation: wppg-pop 0.28s ease;
}

/* --- Farbpunkt aktiver Zustand --- */

.wppg-color-dot.is-active {
    border-color: #fff;
    box-shadow:   0 0 0 2px rgba(0,0,0,.4);
    transform:    scale(1.25);
}

/* ==========================================================================
   Summary-Bar
   ========================================================================== */

.wppg-summary-bar {
    background:    var(--wppg-surface);
    border:        1px solid var(--wppg-border);
    border-radius: var(--wppg-radius);
    padding:       10px 16px;
    margin-bottom: 20px;

    /* Standardmäßig unsichtbar, wird per JS eingeblendet */
    max-height: 0;
    overflow:   hidden;
    opacity:    0;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
    padding-top: 0;
    padding-bottom: 0;
}

.wppg-summary-bar.is-visible {
    max-height:     60px;
    opacity:        1;
    padding-top:    10px;
    padding-bottom: 10px;
}

.wppg-summary-bar__inner {
    display:     flex;
    align-items: center;
    gap:         16px;
    flex-wrap:   wrap;
}

.wppg-summary-item {
    display:     flex;
    align-items: center;
    gap:         5px;
    font-size:   13px;
    font-weight: 600;
    color:       var(--wppg-text);
}

.wppg-summary-item--favorite {
    color: var(--wppg-accent);
}

.wppg-summary-dot {
    display:       inline-block;
    width:         10px;
    height:        10px;
    border-radius: 50%;
    flex-shrink:   0;
}

.wppg-summary-dot--green  { background: #16a34a; }
.wppg-summary-dot--yellow { background: #ca8a04; }
.wppg-summary-dot--red    { background: #dc2626; }

.wppg-summary-reset {
    margin-left:  auto;
    font-size:    12px;
    color:        var(--wppg-text-muted);
    background:   none;
    border:       none;
    cursor:       pointer;
    padding:      4px 8px;
    border-radius: var(--wppg-radius-sm);
    transition:   background var(--wppg-transition), color var(--wppg-transition);
}

.wppg-summary-reset:hover {
    background: var(--wppg-surface-muted);
    color:      var(--wppg-danger);
}

.wppg-summary-reset:focus-visible {
    outline:        2px solid var(--wppg-accent);
    outline-offset: 2px;
}

/* ==========================================================================
   Toast-Benachrichtigungen
   ========================================================================== */

#wppg-toast-container {
    position:   fixed;
    bottom:     24px;
    left:       50%;
    transform:  translateX(-50%);
    z-index:    99999;
    display:    flex;
    flex-direction: column;
    align-items: center;
    gap:        8px;
    pointer-events: none;
}

.wppg-toast {
    display:       flex;
    align-items:   center;
    gap:           10px;
    padding:       12px 18px;
    border-radius: 100px;
    font-size:     13px;
    font-weight:   600;
    box-shadow:    var(--wppg-shadow-lg);
    white-space:   nowrap;
    pointer-events: auto;

    /* Start-Zustand (unsichtbar, leicht nach unten verschoben) */
    opacity:   0;
    transform: translateY(8px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.wppg-toast.is-visible {
    opacity:   1;
    transform: translateY(0);
}

.wppg-toast--success {
    background: #1a1a2e;
    color:      #fff;
}

.wppg-toast--error {
    background: var(--wppg-danger);
    color:      #fff;
}

.wppg-toast--info {
    background: var(--wppg-surface);
    color:      var(--wppg-text);
    border:     1px solid var(--wppg-border);
}

/* Kleines Icon vor der Meldung (via CSS content) */
.wppg-toast--success .wppg-toast__icon::before { content: "✓"; }
.wppg-toast--error   .wppg-toast__icon::before { content: "✕"; }
.wppg-toast--info    .wppg-toast__icon::before { content: "ℹ"; }


/* ==========================================================================
   Modul 5 – Download-Button-Zustände & Spinner
   ========================================================================== */

/* --- Lade-Spinner --- */

@keyframes wppg-spin {
    to { transform: rotate(360deg); }
}

.wppg-spinner {
    display:          inline-block;
    width:            14px;
    height:           14px;
    border:           2px solid currentColor;
    border-top-color: transparent;
    border-radius:    50%;
    animation:        wppg-spin 0.7s linear infinite;
    flex-shrink:      0;
}

/* --- Button: Lade-Zustand --- */

.wppg-btn.is-loading {
    opacity:        0.7;
    pointer-events: none;
    gap:            8px;
}

/* --- Kleiner Button-Variant (Summary-Bar) --- */

.wppg-btn--sm {
    padding:   6px 12px;
    font-size: 12px;
}

/* --- Download-Button im Overlay --- */

.wppg-action-btn--download {
    text-decoration: none;
}

.wppg-action-btn--download:hover {
    background: var(--wppg-accent);
    color:      #fff;
}


/* ==========================================================================
   Mailer – Sende-Modal
   ========================================================================== */

/* --- Modal-Overlay --- */

.wppg-modal {
    position:   fixed;
    inset:      0;
    z-index:    100000;
    display:    flex;
    align-items: center;
    justify-content: center;
    padding:    16px;
}

.wppg-modal__backdrop {
    position:   absolute;
    inset:      0;
    background: rgba(15,15,26,.75);
    backdrop-filter: blur(4px);
    opacity:    0;
    transition: opacity 0.25s ease;
}

.wppg-modal.is-open .wppg-modal__backdrop {
    opacity: 1;
}

/* --- Modal-Box --- */

.wppg-modal__box {
    position:      relative;
    background:    var(--wppg-surface);
    border:        1px solid var(--wppg-border);
    border-radius: 16px;
    box-shadow:    0 24px 80px rgba(0,0,0,.25);
    width:         100%;
    max-width:     480px;
    max-height:    90vh;
    overflow-y:    auto;
    padding:       36px 32px 28px;
    text-align:    center;

    /* Start-Position für Einblend-Animation */
    transform: translateY(16px) scale(0.97);
    opacity:   0;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.wppg-modal.is-open .wppg-modal__box {
    transform: translateY(0) scale(1);
    opacity:   1;
}

/* Schließen-Button */
.wppg-modal__close {
    position:   absolute;
    top:        14px;
    right:      14px;
    width:      32px;
    height:     32px;
    border:     none;
    background: var(--wppg-surface-muted);
    border-radius: 50%;
    cursor:     pointer;
    display:    flex;
    align-items: center;
    justify-content: center;
    color:      var(--wppg-text-muted);
    transition: background var(--wppg-transition), color var(--wppg-transition);
    padding:    0;
}

.wppg-modal__close:hover {
    background: var(--wppg-border);
    color:      var(--wppg-text);
}

/* Schließen-Button als primärer CTA (Erfolgsstate) */
.wppg-modal__success .wppg-modal__close {
    position: static;
    width:    auto;
    height:   auto;
    border-radius: var(--wppg-radius-sm);
    padding:  13px 28px;
    background: var(--wppg-accent);
    color:    #fff;
    margin-top: 8px;
}

/* Icon, Titel, Subtitle */
.wppg-modal__icon {
    font-size:   40px;
    line-height: 1;
    margin-bottom: 12px;
}

.wppg-modal__title {
    font-size:   20px;
    font-weight: 700;
    color:       var(--wppg-text);
    margin:      0 0 6px;
}

.wppg-modal__subtitle {
    font-size:  13px;
    color:      var(--wppg-text-muted);
    margin:     0 0 20px;
    line-height: 1.5;
}

/* --- Zusammenfassungs-KPIs --- */

.wppg-modal__summary {
    margin-bottom: 20px;
}

.wppg-modal__kpis {
    display:         flex;
    justify-content: center;
    gap:             10px;
    flex-wrap:       wrap;
    margin-bottom:   8px;
}

.wppg-modal__kpi {
    padding:       6px 14px;
    border-radius: 100px;
    font-size:     13px;
    font-weight:   700;
    background:    var(--wppg-surface-muted);
    border:        1px solid var(--wppg-border);
}

.wppg-modal__total {
    font-size:  12px;
    color:      var(--wppg-text-muted);
    margin:     0;
}

.wppg-modal__empty {
    font-size:   13px;
    color:       #ca8a04;
    background:  #fefce8;
    border:      1px solid #fde68a;
    border-radius: var(--wppg-radius-sm);
    padding:     12px 16px;
    margin:      0;
    text-align:  left;
}

/* --- Formular-Felder --- */

.wppg-modal__form {
    text-align:    left;
    margin-bottom: 16px;
}

.wppg-modal__field {
    margin-bottom: 14px;
}

.wppg-modal__field label {
    display:       block;
    font-size:     13px;
    font-weight:   600;
    color:         var(--wppg-text);
    margin-bottom: 5px;
}

.wppg-modal__field-hint {
    font-weight: 400;
    color:       var(--wppg-text-muted);
    font-size:   11px;
}

.wppg-modal__field input,
.wppg-modal__field textarea {
    width:         100%;
    box-sizing:    border-box;
    padding:       10px 14px;
    border:        1.5px solid var(--wppg-border);
    border-radius: var(--wppg-radius-sm);
    font-size:     14px;
    font-family:   inherit;
    color:         var(--wppg-text);
    background:    var(--wppg-surface);
    outline:       none;
    transition:    border-color var(--wppg-transition), box-shadow var(--wppg-transition);
    resize:        vertical;
}

.wppg-modal__field input:focus,
.wppg-modal__field textarea:focus {
    border-color: var(--wppg-accent);
    box-shadow:   0 0 0 3px rgba(233,69,96,.12);
}

/* --- Fehler-Banner --- */

.wppg-modal__error {
    background:    #fef2f2;
    border:        1px solid #fca5a5;
    border-radius: var(--wppg-radius-sm);
    color:         #dc2626;
    font-size:     13px;
    padding:       10px 14px;
    margin-bottom: 14px;
    text-align:    left;
}

/* --- Footer-Buttons --- */

.wppg-modal__footer {
    display:         flex;
    gap:             10px;
    justify-content: flex-end;
    flex-wrap:       wrap;
}

/* --- Erfolgs-State --- */

.wppg-modal__success {
    padding: 12px 0;
}

.wppg-modal__success-icon {
    font-size:     48px;
    margin-bottom: 16px;
}

.wppg-modal__success h2 {
    font-size:   22px;
    font-weight: 700;
    color:       var(--wppg-text);
    margin:      0 0 10px;
}

.wppg-modal__success p {
    font-size:   14px;
    color:       var(--wppg-text-muted);
    line-height: 1.6;
    margin:      0 0 20px;
}

/* --- body-Scroll-Lock wenn Modal offen --- */

body.wppg-modal-open {
    overflow: hidden;
}

/* --- Responsive --- */

@media ( max-width: 480px ) {
    .wppg-modal__box { padding: 28px 20px 20px; }
    .wppg-modal__footer { flex-direction: column-reverse; }
    .wppg-modal__footer .wppg-btn { width: 100%; justify-content: center; }
}
