/* ===========================================
   Rich Text (Prose) Styles
   Restores all formatting stripped by Tailwind
   for content created in the TinyMCE editor.
   Apply .prose or .description class to container.
   =========================================== */

.prose,
.description {
    line-height: 1.7;
}

/* Paragraphs */
.prose p,
.description p {
    margin-bottom: 1.25em;
}

.prose p:last-child,
.description p:last-child {
    margin-bottom: 0;
}

/* Unordered lists */
.prose ul,
.description ul {
    list-style-type: disc;
    padding-left: 1.5em;
    margin-bottom: 1em;
}

.prose ul ul,
.description ul ul {
    list-style-type: circle;
    margin-bottom: 0;
}

.prose ul ul ul,
.description ul ul ul {
    list-style-type: square;
}

/* Ordered lists */
.prose ol,
.description ol {
    list-style-type: decimal;
    padding-left: 1.5em;
    margin-bottom: 1em;
}

.prose ol ol,
.description ol ol {
    list-style-type: lower-alpha;
    margin-bottom: 0;
}

/* List items */
.prose li,
.description li {
    margin-bottom: 0.25em;
}

.prose li:last-child,
.description li:last-child {
    margin-bottom: 0;
}

/* Headings */
.prose h1,
.description h1 {
    font-size: 2em;
    font-weight: 700;
    margin-top: 1em;
    margin-bottom: 0.5em;
    line-height: 1.2;
}

.prose h2,
.description h2 {
    font-size: 1.5em;
    font-weight: 700;
    margin-top: 1em;
    margin-bottom: 0.5em;
    line-height: 1.3;
}

.prose h3,
.description h3 {
    font-size: 1.25em;
    font-weight: 600;
    margin-top: 1em;
    margin-bottom: 0.5em;
    line-height: 1.4;
}

.prose h4,
.description h4 {
    font-size: 1.1em;
    font-weight: 600;
    margin-top: 1em;
    margin-bottom: 0.5em;
}

/* Bold and italic */
.prose strong,
.description strong,
.prose b,
.description b {
    font-weight: 700;
}

.prose em,
.description em,
.prose i,
.description i {
    font-style: italic;
}

/* Links */
.prose a,
.description a {
    color: #019654;
    text-decoration: underline;
}

.prose a:hover,
.description a:hover {
    color: #017544;
}

/* Blockquotes */
.prose blockquote,
.description blockquote {
    border-left: 4px solid #d1d5db;
    padding-left: 1em;
    margin: 1em 0;
    color: #4b5563;
    font-style: italic;
}

/* Horizontal rules */
.prose hr,
.description hr {
    border: none;
    border-top: 1px solid #d1d5db;
    margin: 1.5em 0;
}

/* Images within content */
.prose img,
.description img {
    max-width: 100%;
    height: auto;
    border-radius: 0.375rem;
    margin: 1em 0;
}

/* Tables */
.prose table,
.description table {
    width: 100%;
    border-collapse: collapse;
    margin: 1em 0;
}

.prose th,
.description th {
    background-color: #f3f4f6;
    font-weight: 600;
    text-align: left;
    padding: 0.5em 0.75em;
    border: 1px solid #d1d5db;
}

.prose td,
.description td {
    padding: 0.5em 0.75em;
    border: 1px solid #d1d5db;
}

/* Code */
.prose code,
.description code {
    background-color: #f3f4f6;
    padding: 0.15em 0.35em;
    border-radius: 0.25em;
    font-size: 0.9em;
    font-family: ui-monospace, monospace;
}

.prose pre,
.description pre {
    background-color: #1f2937;
    color: #f9fafb;
    padding: 1em;
    border-radius: 0.375rem;
    overflow-x: auto;
    margin: 1em 0;
}

.prose pre code,
.description pre code {
    background: none;
    padding: 0;
    color: inherit;
}

/* Subscript and superscript */
.prose sub,
.description sub {
    vertical-align: sub;
    font-size: 0.75em;
}

.prose sup,
.description sup {
    vertical-align: super;
    font-size: 0.75em;
}

/* Strikethrough */
.prose s,
.description s,
.prose del,
.description del {
    text-decoration: line-through;
}

/* Underline */
.prose u,
.description u,
.prose ins,
.description ins {
    text-decoration: underline;
}