/**
 * comai | Core – Post-Detail Modal
 * ConstructMedia – https://constructmedia.de
 * Version: 1.3.1
 *
 * Alle Regeln mit !important, damit Elementor / Theme nichts überschreibt.
 */

/* ------------------------------------------------------------------ */
/* Animation Keyframes                                                  */
/* ------------------------------------------------------------------ */
@keyframes comai-modal-fade-in {
    from { opacity: 0 !important; }
    to   { opacity: 1 !important; }
}

@keyframes comai-modal-dialog-in {
    from {
        opacity: 0 !important;
        transform: translateY(24px) scale(0.96) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
    }
}

@keyframes comai-modal-content-in {
    from { opacity: 0 !important; transform: translateY(8px) !important; }
    to   { opacity: 1 !important; transform: translateY(0) !important; }
}

/* ------------------------------------------------------------------ */
/* Overlay                                                              */
/* ------------------------------------------------------------------ */
.comai-modal {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
    font-family: 'Noto Sans TC', Helvetica, Arial, sans-serif !important;
    color: #1a1a1a !important;
    opacity: 0 !important;
    transition: opacity 0.28s ease !important;
}

.comai-modal.is-open {
    display: block !important;
    opacity: 1 !important;
    animation: comai-modal-fade-in 0.28s ease both !important;
}

.comai-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.55) !important;
    cursor: pointer !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
}

@media (prefers-reduced-motion: reduce) {
    .comai-modal,
    .comai-modal.is-open,
    .comai-modal.is-open .comai-modal-dialog,
    .comai-modal.is-open .comai-modal-article {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* ------------------------------------------------------------------ */
/* Dialog                                                               */
/* ------------------------------------------------------------------ */
.comai-modal-dialog {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 760px !important;
    max-height: calc(100vh - 40px) !important;
    margin: 20px auto !important;
    background: #fff !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45), 0 6px 20px rgba(0, 0, 0, 0.2) !important;
    display: flex !important;
    flex-direction: column !important;
    transform: translateY(24px) scale(0.96) !important;
    opacity: 0 !important;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.28s ease !important;
    box-sizing: border-box !important;
    will-change: transform, opacity !important;
}

@media (min-width: 768px) {
    .comai-modal-dialog {
        margin: 40px auto !important;
        max-height: calc(100vh - 80px) !important;
        border-radius: 6px !important;
    }
}

.comai-modal.is-open .comai-modal-dialog {
    transform: translateY(0) scale(1) !important;
    opacity: 1 !important;
    animation: comai-modal-dialog-in 0.36s cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

.comai-modal.is-open .comai-modal-article {
    animation: comai-modal-content-in 0.4s ease 0.08s both !important;
}

/* ------------------------------------------------------------------ */
/* Close button                                                          */
/* ------------------------------------------------------------------ */
.comai-modal-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    z-index: 5 !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    background: rgba(0, 0, 0, 0.55) !important;
    color: #fff !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s ease !important;
    box-shadow: none !important;
    line-height: 1 !important;
    font-size: 0 !important;
}

.comai-modal-close:hover,
.comai-modal-close:focus {
    background: rgba(0, 0, 0, 0.85) !important;
    outline: none !important;
    transform: rotate(90deg) !important;
}

.comai-modal-close {
    transition: background 0.18s ease, transform 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

/* ------------------------------------------------------------------ */
/* Body / scrollable area                                                */
/* ------------------------------------------------------------------ */
.comai-modal-body {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    background: #fff !important;
    flex: 1 1 auto !important;
}

.comai-modal-loading,
.comai-modal-error {
    padding: 60px 30px !important;
    text-align: center !important;
    font-size: 16px !important;
    color: #5a4a3a !important;
}

.comai-modal-error {
    color: #c53030 !important;
}

/* ------------------------------------------------------------------ */
/* Article layout                                                        */
/* ------------------------------------------------------------------ */
.comai-modal-article {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.comai-modal-media {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    background: #1a1a1a !important;
}

.comai-modal-media img,
.comai-modal-media .comai-modal-image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: 420px !important;
    object-fit: cover !important;
    margin: 0 !important;
}

/* Date bar (dark green like screenshot) */
.comai-modal-date-bar {
    background: #1e3a26 !important;
    padding: 14px 28px !important;
    margin: 0 !important;
}

.comai-modal-date {
    display: inline-block !important;
    color: #fff !important;
    font-family: 'Noto Sans TC', Helvetica, Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 1.5px !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

.comai-modal-content-wrap {
    padding: 28px 28px 36px 28px !important;
}

@media (min-width: 768px) {
    .comai-modal-content-wrap {
        padding: 36px 44px 48px 44px !important;
    }
}

.comai-modal-title {
    font-family: 'Noto Sans TC', Helvetica, Arial, sans-serif !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    color: #1a1a1a !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    letter-spacing: -0.2px !important;
}

@media (min-width: 768px) {
    .comai-modal-title {
        font-size: 32px !important;
        margin-bottom: 24px !important;
    }
}

/* Content typography */
.comai-modal-content {
    font-family: 'Noto Sans TC', Helvetica, Arial, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #1a1a1a !important;
}

.comai-modal-content p {
    margin: 0 0 16px 0 !important;
}

.comai-modal-content p:last-child {
    margin-bottom: 0 !important;
}

.comai-modal-content strong { font-weight: 700 !important; }
.comai-modal-content em     { font-style: italic !important; }

.comai-modal-content h1,
.comai-modal-content h2,
.comai-modal-content h3,
.comai-modal-content h4,
.comai-modal-content h5,
.comai-modal-content h6 {
    font-family: 'Noto Sans TC', Helvetica, Arial, sans-serif !important;
    color: #1a1a1a !important;
    line-height: 1.3 !important;
    margin: 24px 0 12px 0 !important;
    padding: 0 !important;
    font-weight: 700 !important;
}

.comai-modal-content h2 { font-size: 22px !important; }
.comai-modal-content h3 { font-size: 19px !important; }
.comai-modal-content h4 { font-size: 17px !important; }

.comai-modal-content a {
    color: #d88a3d !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}

.comai-modal-content a:hover {
    color: #b87029 !important;
}

.comai-modal-content ul,
.comai-modal-content ol {
    margin: 0 0 16px 0 !important;
    padding-left: 24px !important;
}

.comai-modal-content li {
    margin: 4px 0 !important;
    line-height: 1.6 !important;
}

.comai-modal-content blockquote {
    margin: 18px 0 !important;
    padding: 12px 18px !important;
    border-left: 3px solid #d88a3d !important;
    background: #faf6f1 !important;
    color: #4a3a2a !important;
    font-style: italic !important;
}

.comai-modal-content img {
    max-width: 100% !important;
    height: auto !important;
    margin: 16px 0 !important;
    border-radius: 4px !important;
}

.comai-modal-content iframe,
.comai-modal-content video {
    max-width: 100% !important;
    margin: 16px 0 !important;
}

/* ------------------------------------------------------------------ */
/* Gutenberg Block-Inhalte                                              */
/* ------------------------------------------------------------------ */
.comai-modal-content .wp-block-image,
.comai-modal-content figure {
    margin: 20px 0 !important;
    max-width: 100% !important;
}

.comai-modal-content .wp-block-image img,
.comai-modal-content figure img {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
    border-radius: 4px !important;
}

.comai-modal-content figcaption,
.comai-modal-content .wp-element-caption {
    font-size: 13px !important;
    color: #6a5a4a !important;
    text-align: center !important;
    margin-top: 8px !important;
    line-height: 1.5 !important;
}

/* alignwide / alignfull innerhalb des Modals begrenzen, damit nichts überläuft */
.comai-modal-content .alignwide,
.comai-modal-content .alignfull {
    width: auto !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.comai-modal-content .alignleft {
    float: left !important;
    margin: 6px 18px 12px 0 !important;
    max-width: 50% !important;
}

.comai-modal-content .alignright {
    float: right !important;
    margin: 6px 0 12px 18px !important;
    max-width: 50% !important;
}

.comai-modal-content .aligncenter {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
}

/* Gallery */
.comai-modal-content .wp-block-gallery,
.comai-modal-content .blocks-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
    gap: 8px !important;
    margin: 20px 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.comai-modal-content .wp-block-gallery .wp-block-image,
.comai-modal-content .blocks-gallery-item {
    margin: 0 !important;
}

/* Cover */
.comai-modal-content .wp-block-cover {
    position: relative !important;
    min-height: 240px !important;
    margin: 20px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.comai-modal-content .wp-block-cover img.wp-block-cover__image-background,
.comai-modal-content .wp-block-cover video.wp-block-cover__video-background {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

/* Quote / Pullquote */
.comai-modal-content .wp-block-quote,
.comai-modal-content .wp-block-pullquote {
    margin: 22px 0 !important;
    padding: 12px 20px !important;
    border-left: 3px solid #d88a3d !important;
    background: #faf6f1 !important;
    color: #4a3a2a !important;
    font-style: italic !important;
}

.comai-modal-content .wp-block-quote cite,
.comai-modal-content .wp-block-pullquote cite {
    display: block !important;
    margin-top: 6px !important;
    font-size: 13px !important;
    font-style: normal !important;
    color: #6a5a4a !important;
}

/* Embed */
.comai-modal-content .wp-block-embed {
    margin: 20px 0 !important;
}

.comai-modal-content .wp-block-embed__wrapper {
    position: relative !important;
}

.comai-modal-content .wp-block-embed iframe {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    margin: 0 !important;
}

/* Buttons */
.comai-modal-content .wp-block-button__link {
    display: inline-block !important;
    background: #d88a3d !important;
    color: #fff !important;
    padding: 12px 24px !important;
    border-radius: 4px !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    transition: background 0.15s ease !important;
}

.comai-modal-content .wp-block-button__link:hover {
    background: #b87029 !important;
    color: #fff !important;
}

/* Separator / Spacer */
.comai-modal-content .wp-block-separator {
    border: none !important;
    border-top: 1px solid #e5d8c8 !important;
    margin: 28px auto !important;
    max-width: 80px !important;
}

.comai-modal-content .wp-block-spacer {
    display: block !important;
}

/* Tabellen */
.comai-modal-content .wp-block-table,
.comai-modal-content table {
    width: 100% !important;
    margin: 20px 0 !important;
    border-collapse: collapse !important;
}

.comai-modal-content .wp-block-table th,
.comai-modal-content .wp-block-table td,
.comai-modal-content table th,
.comai-modal-content table td {
    border: 1px solid #e5d8c8 !important;
    padding: 8px 12px !important;
    text-align: left !important;
}

/* Code */
.comai-modal-content .wp-block-code,
.comai-modal-content pre {
    background: #f5f1ec !important;
    padding: 14px 16px !important;
    border-radius: 4px !important;
    overflow-x: auto !important;
    font-family: 'SFMono-Regular', Menlo, Consolas, monospace !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin: 18px 0 !important;
}

/* Clearfix nach Floats */
.comai-modal-content::after {
    content: '' !important;
    display: block !important;
    clear: both !important;
}

/* Body scroll lock */
body.comai-modal-open {
    overflow: hidden !important;
}

/* Trigger affordance — make any element with the trigger class look clickable */
.comai-open-post {
    cursor: pointer !important;
}
