/* css/article-content.css */
/* Shared Rich Text Engine Styles for Articles and About Us */

.article-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px;
    background: white;
    position: relative;
    z-index: 10;
}

.content-body {
    font-family: 'Montserrat', sans-serif;
    line-height: 1.8;
    font-size: 1.1rem;
    color: #2d3748;
    text-align: justify;
}

.content-body p {
    margin-bottom: 20px;
}

.content-body h2 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #5e1c26;
    margin: 30px 0 15px 0;
    line-height: 1.3;
}

.content-body h3 {
    font-size: 1.4rem;
    font-weight: 600;
    color: #2d3748;
    margin: 25px 0 12px 0;
    line-height: 1.4;
}

.content-body ul,
.content-body ol {
    margin: 15px 0;
    padding-left: 30px;
}

.content-body ul {
    list-style: none;
}

.content-body ul li {
    position: relative;
}

.content-body ul li::before {
    content: '—';
    position: absolute;
    left: -22px;
    color: #5e1c26;
    font-weight: 600;
}

.content-body li {
    margin-bottom: 8px;
}

.content-body a {
    color: #3498db;
    text-decoration: underline;
}

.content-body a:hover {
    color: #5e1c26;
}

/* Callouts - Hook Design */
.callout {
    position: relative;
    padding: 20px 20px 20px 60px;
    margin: 40px 0;
    background: transparent;
    border: none;
}

/* Hook Shared */
.callout::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 15px;
    bottom: 0;
    width: 25px;
    border-left: 5px solid #ccc;
    border-bottom: 5px solid #ccc;
    border-bottom-left-radius: 20px;
    z-index: 1;
}

/* Icon Shared */
.callout::after {
    position: absolute;
    top: -30px;
    left: -13px;
    font-size: 80px;
    line-height: 1;
    font-family: 'Times New Roman', serif;
    background: #fff;
    padding-bottom: 10px;
    height: 60px;
    width: 60px;
    text-align: center;
    z-index: 2;
}

.callout-content {
    font-size: 1.05rem;
    line-height: 1.6;
    color: #2d3748;
}

/* Variants */
.callout-info::before {
    border-color: #4299e1;
}

.callout-info::after {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234299e1'%3E%3Cpath d='M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    width: 60px;
    height: 60px;
    top: -30px;
    left: -12px;
}

.callout-warning::before {
    border-color: #ed8936;
}

.callout-warning::after {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ed8936'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath fill='%23fff' d='M11 15h2v2h-2zm0-8h2v6h-2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    width: 60px;
    height: 60px;
    top: -30px;
    left: -13px;
}

.callout-tip::before {
    border-color: #dbac00;
}

.callout-tip::after {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23dbac00'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6A4.997 4.997 0 0 1 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1zM9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    width: 60px;
    height: 60px;
    top: -30px;
    left: -13px;
}

/* Custom Quotes - New Design */
.custom-quote {
    position: relative;
    padding: 20px 20px 20px 60px;
    margin: 50px 0;
    background: transparent;
    border: none;
}

.custom-quote::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 15px;
    bottom: 0;
    width: 25px;
    border-left: 5px solid #1a365d;
    border-bottom: 5px solid #1a365d;
    border-bottom-left-radius: 20px;
    z-index: 1;
}

.custom-quote::after {
    content: '“';
    position: absolute;
    top: -30px;
    left: -13px;
    font-size: 100px;
    line-height: 1;
    color: #1a365d;
    font-family: Georgia, serif;
    background: #fff;
    padding-bottom: 10px;
    height: 60px;
    width: 60px;
    text-align: center;
    z-index: 2;
}

.custom-quote p:nth-of-type(2),
.custom-quote-content:nth-of-type(2) {
    display: block;
    margin-top: 15px;
    font-weight: 700;
    font-size: 1.15rem;
    color: #1a365d;
}

.custom-quote-content {
    font-family: 'Montserrat', sans-serif;
    font-style: normal;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #4a5568;
    margin: 0;
}

/* Reference List Styles */
.ref-section {
    margin-top: 50px;
    border-top: 1px solid #ddd;
    padding-top: 20px;
    font-size: 0.9rem;
    color: #718096;
}

.ref-entry {
    margin-bottom: 8px;
}

.ref-entry a {
    color: #5e1c26;
    word-break: break-all;
}

/* CMS TABLE STYLES (Shared) */
.cms-table {
    width: 100%;
    margin: 30px 0;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    table-layout: fixed;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    background: white;
}

.cms-table th,
.cms-table td {
    padding: 16px 20px;
    border-bottom: 1px solid #edf2f7;
    border-right: 1px solid #edf2f7;
    text-align: left;
    vertical-align: middle;
    word-break: break-word;
    font-size: 0.95rem;
    color: #4a5568;
}

.cms-table th {
    background-color: #f8fafc;
    font-weight: 700;
    color: #2d3748;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
}

.cms-table tr:last-child td {
    border-bottom: none;
}

.cms-table tr th:last-child,
.cms-table tr td:last-child {
    border-right: none;
}

.cms-table tr:hover td {
    background-color: #fcfdfe;
}

/* CMS Media Styles (Shared) */
.cms-article-img-container {
    width: 100%;
    margin: 35px 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    background: #f1f5f9;
}

.cms-article-img-container img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.cms-video-container {
    width: 100%;
    margin: 35px 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    background: #000;
}

.cms-img-caption {
    font-size: 0.9rem;
    color: #718096;
    text-align: center;
    margin-top: 12px;
    font-style: italic;
    line-height: 1.5;
    display: block;
}

/* Hide CMS UI in public view */
.btn-delete-element,
.callout-delete,
.quote-delete {
    display: none !important;
}
