/**
 * Rich text / WordPress editor content (all HTML tags).
 * Apply class .oc365-prose on any user-generated content wrapper.
 */

.oc365-prose{
font-size:1rem;
line-height:1.75;
color:var(--oc365-color-text, #333);
word-wrap:break-word;
overflow-wrap:break-word;
}

/* Headings */
.oc365-prose h1,
.oc365-prose h2,
.oc365-prose h3,
.oc365-prose h4,
.oc365-prose h5,
.oc365-prose h6{
font-weight:600;
color:var(--oc365-color-text, #111);
line-height:1.3;
margin:1.75em 0 0.65em;
}

.oc365-prose h1{
font-size:clamp(1.5rem, 4vw, 1.875rem);
margin-top:0;
}

.oc365-prose h2{
font-size:clamp(1.35rem, 3.5vw, 1.625rem);
}

.oc365-prose h3{
font-size:clamp(1.2rem, 3vw, 1.375rem);
}

.oc365-prose h4{
font-size:clamp(1.1rem, 2.5vw, 1.2rem);
}

.oc365-prose h5{
font-size:clamp(1rem, 2vw, 1.0625rem);
text-transform:uppercase;
letter-spacing:0.04em;
}

.oc365-prose h6{
font-size:0.9375rem;
text-transform:uppercase;
letter-spacing:0.06em;
color:var(--oc365-color-text-muted, #555);
}

.oc365-prose h1 + h2,
.oc365-prose h2 + h3,
.oc365-prose h3 + h4{
margin-top:0.85em;
}

/* Paragraphs & inline */
.oc365-prose p{
margin:0 0 1em;
}

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

.oc365-prose strong,
.oc365-prose b{
font-weight:600;
color:var(--oc365-color-text, #111);
}

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

.oc365-prose mark{
background:var(--oc365-color-mark-bg, #fff3bf);
padding:0 0.15em;
}

.oc365-prose small{
font-size:0.875em;
color:var(--oc365-color-text-muted, #666);
}

.oc365-prose del{
text-decoration:line-through;
color:var(--oc365-color-text-muted, #888);
}

.oc365-prose ins{
text-decoration:underline;
text-underline-offset:2px;
}

.oc365-prose sub,
.oc365-prose sup{
font-size:0.75em;
line-height:0;
position:relative;
vertical-align:baseline;
}

.oc365-prose sup{top:-0.4em}
.oc365-prose sub{bottom:-0.2em}

.oc365-prose abbr[title]{
text-decoration:underline dotted;
cursor:help;
}

/* Links */
.oc365-prose a{
color:var(--oc365-color-link, #111);
text-decoration:underline;
text-underline-offset:3px;
}

.oc365-prose a:hover,
.oc365-prose a:focus{
opacity:0.8;
}

.oc365-prose a:focus-visible{
outline:2px solid var(--oc365-color-primary, #111);
outline-offset:2px;
}

/* Lists — restore styles reset in base.css */
.oc365-prose ul,
.oc365-prose ol{
margin:0 0 1em;
padding-left:1.5em;
}

.oc365-prose ul{
list-style-type:disc;
}

.oc365-prose ol{
list-style-type:decimal;
}

.oc365-prose ul ul{
list-style-type:circle;
margin-top:0.35em;
margin-bottom:0.35em;
}

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

.oc365-prose ol ol{
list-style-type:lower-alpha;
margin-top:0.35em;
margin-bottom:0.35em;
}

.oc365-prose ol ol ol{
list-style-type:lower-roman;
}

.oc365-prose li{
margin-bottom:0.4em;
padding-left:0.25em;
}

.oc365-prose li > ul,
.oc365-prose li > ol{
margin-top:0.4em;
margin-bottom:0.4em;
}

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

/* Definition lists */
.oc365-prose dl{
margin:0 0 1.25em;
}

.oc365-prose dt{
font-weight:600;
color:var(--oc365-color-text, #111);
margin-top:1em;
}

.oc365-prose dt:first-child{
margin-top:0;
}

.oc365-prose dd{
margin:0.35em 0 0 1.25em;
color:var(--oc365-color-text-muted, #444);
}

/* Blockquote */
.oc365-prose blockquote{
margin:1.25em 0;
padding:1em 1.25em;
border-left:4px solid var(--oc365-color-primary, #111);
background:var(--oc365-color-blockquote-bg, #f8f8f8);
border-radius:0 8px 8px 0;
color:var(--oc365-color-text-muted, #444);
font-style:italic;
}

.oc365-prose blockquote p:last-child{
margin-bottom:0;
}

.oc365-prose cite{
display:block;
margin-top:0.75em;
font-size:0.875rem;
font-style:normal;
color:var(--oc365-color-text-muted, #666);
}

/* Code */
.oc365-prose code,
.oc365-prose kbd,
.oc365-prose samp{
font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
font-size:0.9em;
}

.oc365-prose code{
background:var(--oc365-color-code-bg, #f4f4f4);
padding:0.15em 0.4em;
border-radius:4px;
}

.oc365-prose pre{
margin:1.25em 0;
padding:1em 1.25em;
background:#1a1a1a;
color:#f4f4f4;
border-radius:8px;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
font-size:0.875rem;
line-height:1.6;
}

.oc365-prose pre code{
background:none;
padding:0;
color:inherit;
font-size:inherit;
}

.oc365-prose kbd{
background:var(--oc365-color-bg-alt, #eee);
border:1px solid var(--oc365-color-border, #ccc);
border-radius:4px;
padding:0.1em 0.35em;
box-shadow:0 1px 0 #bbb;
}

/* Horizontal rule */
.oc365-prose hr{
border:0;
border-top:1px solid var(--oc365-color-border, #e0e0e0);
margin:2em 0;
}

/* Tables */
.oc365-prose table{
width:100%;
margin:1.25em 0;
border-collapse:collapse;
font-size:0.9375rem;
display:block;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
}

.oc365-prose thead{
background:var(--oc365-color-code-bg, #f4f4f4);
}

.oc365-prose th,
.oc365-prose td{
border:1px solid var(--oc365-color-border, #e0e0e0);
padding:0.65em 0.85em;
text-align:left;
vertical-align:top;
}

.oc365-prose th{
font-weight:600;
color:var(--oc365-color-text, #111);
}

.oc365-prose tbody tr:nth-child(even){
background:var(--oc365-color-bg-alt, #fafafa);
}

/* Media */
.oc365-prose img,
.oc365-prose video,
.oc365-prose iframe{
max-width:100%;
height:auto;
}

.oc365-prose figure{
margin:1.5em 0;
}

.oc365-prose figcaption{
margin-top:0.5em;
font-size:0.875rem;
color:var(--oc365-color-text-muted, #666);
text-align:center;
}

.oc365-prose .wp-caption,
.oc365-prose .wp-block-image{
max-width:100%;
margin:1.5em 0;
}

.oc365-prose .wp-caption img,
.oc365-prose .wp-block-image img{
display:block;
border-radius:8px;
}

.oc365-prose .wp-caption-text{
font-size:0.875rem;
color:var(--oc365-color-text-muted, #666);
text-align:center;
margin-top:0.5em;
}

/* WordPress alignment */
.oc365-prose .alignleft{
float:left;
margin:0.25em 1.25em 1em 0;
max-width:min(100%, 320px);
}

.oc365-prose .alignright{
float:right;
margin:0.25em 0 1em 1.25em;
max-width:min(100%, 320px);
}

.oc365-prose .aligncenter,
.oc365-prose .alignnone{
display:block;
margin-left:auto;
margin-right:auto;
text-align:center;
}

.oc365-prose .alignwide,
.oc365-prose .alignfull{
max-width:100%;
}

.oc365-prose::after{
content:"";
display:table;
clear:both;
}

/* Address */
.oc365-prose address{
margin:0 0 1em;
font-style:normal;
line-height:1.6;
color:var(--oc365-color-text-muted, #444);
}

/* WordPress blocks */
.oc365-prose .wp-block-quote{
border-left:4px solid var(--oc365-color-primary, #111);
padding-left:1.25em;
margin:1.25em 0;
}

.oc365-prose .wp-block-separator{
border:0;
border-top:1px solid var(--oc365-color-border, #e0e0e0);
margin:2em auto;
}

.oc365-prose .wp-block-button__link{
text-decoration:none;
display:inline-block;
padding:0.65em 1.25em;
background:var(--oc365-color-primary, #111);
color:var(--oc365-btn-fg, #fff);
border-radius:8px;
font-weight:600;
}

.oc365-prose .wp-block-button__link:hover{
background:var(--oc365-color-primary-hover, #333);
color:var(--oc365-btn-fg, #fff);
}

.oc365-prose .wp-block-gallery{
display:grid;
gap:12px;
margin:1.5em 0;
}

/* Pagination inside content */
.oc365-prose .page-links,
.oc365-prose nav.page-links{
margin-top:1.5em;
padding-top:1em;
border-top:1px solid var(--oc365-color-border, #eee);
font-size:0.875rem;
color:var(--oc365-color-text-muted, #666);
}

.oc365-prose .page-links a{
margin:0 0.25em;
}

/* Responsive */
@media (max-width:768px){
.oc365-prose{
font-size:0.9375rem;
line-height:1.7;
}

.oc365-prose ul,
.oc365-prose ol{
padding-left:1.25em;
}

.oc365-prose blockquote{
padding:0.85em 1em;
}

.oc365-prose pre{
padding:0.85em 1em;
font-size:0.8125rem;
}

.oc365-prose th,
.oc365-prose td{
padding:0.5em 0.65em;
font-size:0.875rem;
}

.oc365-prose .alignleft,
.oc365-prose .alignright{
float:none;
display:block;
margin:1em auto;
max-width:100%;
}
}

@media (max-width:480px){
.oc365-prose h1{font-size:1.375rem}
.oc365-prose h2{font-size:1.25rem}
.oc365-prose h3{font-size:1.125rem}
}
