/* =========================================================================
   CSThemes – article content styles.
   Loaded on the front-end AND inside the block/classic editor so what you
   write looks the same everywhere.
   ========================================================================= */

.entry-content, .editor-styles-wrapper { font-family: var(--cs-font-body); font-size: 1.0625rem; line-height: 1.8; color: var(--cs-text); }
.editor-styles-wrapper { background: var(--cs-bg); }
.entry-content > * { margin-top: 0; margin-bottom: 1.4em; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6,
.editor-styles-wrapper h1, .editor-styles-wrapper h2, .editor-styles-wrapper h3, .editor-styles-wrapper h4, .editor-styles-wrapper h5, .editor-styles-wrapper h6 { font-family: var(--cs-font-heading); font-weight: var(--cs-heading-weight); color: var(--cs-heading); line-height: 1.3; margin-top: 1.6em; margin-bottom: .6em; scroll-margin-top: 100px; }
.entry-content h2, .editor-styles-wrapper h2 { font-size: 1.55rem; }
.entry-content h3, .editor-styles-wrapper h3 { font-size: 1.3rem; }
.entry-content h4, .editor-styles-wrapper h4 { font-size: 1.12rem; }
.entry-content h2:first-child, .entry-content h3:first-child { margin-top: 0; }
.entry-content a:not(.wp-block-button__link):not(.cs-btn):not(.cs-share__btn), .editor-styles-wrapper a:not(.wp-block-button__link) { color: var(--cs-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.entry-content a:hover { color: var(--cs-link-hover); }
.entry-content img { border-radius: var(--cs-radius); height: auto; }
.entry-content figure { margin-left: 0; margin-right: 0; }
.entry-content figcaption, .editor-styles-wrapper figcaption { font-size: .85rem; color: var(--cs-text-light); text-align: center; margin-top: 8px; }
.entry-content ul, .entry-content ol, .editor-styles-wrapper ul, .editor-styles-wrapper ol { padding-left: 1.5em; }
.entry-content li, .editor-styles-wrapper li { margin-bottom: .4em; }
.entry-content li > ul, .entry-content li > ol { margin-top: .4em; margin-bottom: 0; }
.entry-content strong, .editor-styles-wrapper strong { color: var(--cs-heading); }
.entry-content hr, .editor-styles-wrapper hr { border: 0; border-top: 1px solid var(--cs-border); margin: 2em 0; }
.entry-content blockquote, .editor-styles-wrapper blockquote { border-left: 4px solid var(--cs-primary); background: var(--cs-bg-alt); padding: 16px 22px; margin: 0 0 1.4em; border-radius: 0 var(--cs-radius) var(--cs-radius) 0; font-style: italic; }
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content blockquote cite, .editor-styles-wrapper blockquote cite { display: block; font-style: normal; font-size: .85rem; color: var(--cs-text-light); margin-top: 8px; }
.wp-block-pullquote { border-top: 3px solid var(--cs-primary); border-bottom: 3px solid var(--cs-primary); padding: 1.5em 0; }
.wp-block-pullquote blockquote { border: 0; background: transparent; padding: 0; font-size: 1.3rem; }
.entry-content table, .editor-styles-wrapper table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.entry-content th, .entry-content td, .editor-styles-wrapper th, .editor-styles-wrapper td { border: 1px solid var(--cs-border); padding: 10px 12px; text-align: left; vertical-align: top; }
.entry-content th, .editor-styles-wrapper th { background: var(--cs-bg-alt); color: var(--cs-heading); }
.wp-block-table { overflow-x: auto; }
.wp-block-table.is-style-cs-table-striped tbody tr:nth-child(odd) td { background: var(--cs-bg-alt); }
.entry-content pre, .editor-styles-wrapper pre { background: #1e1e1e; color: #f3f3f3; padding: 16px 20px; border-radius: var(--cs-radius); overflow: auto; font-size: .9rem; line-height: 1.6; }
.entry-content code, .editor-styles-wrapper code { background: var(--cs-bg-alt); padding: 2px 6px; border-radius: 4px; font-size: .9em; }
.entry-content pre code { background: none; padding: 0; color: inherit; }
.entry-content iframe { max-width: 100%; }
.cs-embed { position: relative; padding-top: 56.25%; margin-bottom: 1.4em; border-radius: var(--cs-radius); overflow: hidden; background: #000; }
.cs-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.wp-block-embed__wrapper { border-radius: var(--cs-radius); overflow: hidden; }
.wp-block-embed.is-type-video .wp-block-embed__wrapper { position: relative; padding-top: 56.25%; }
.wp-block-embed.is-type-video .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper { padding-top: 56.25%; }
.wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper { padding-top: 75%; }
.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe, .wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.wp-block-image img { height: auto; }
.wp-block-image.is-style-cs-image-rounded img { border-radius: 18px; }
.wp-block-gallery { margin-bottom: 1.4em; }
.wp-block-separator { border: 0; border-top: 1px solid var(--cs-border); }
.wp-block-separator.is-style-wide { border-top-width: 1px; }
.wp-block-separator.is-style-dots::before { color: var(--cs-text-light); }
.wp-block-details { border: 1px solid var(--cs-border); border-radius: var(--cs-radius); padding: 12px 16px; background: var(--cs-bg-alt); }
.wp-block-details summary { font-weight: 600; color: var(--cs-heading); cursor: pointer; }
.wp-block-details[open] summary { margin-bottom: 8px; }
.wp-block-columns { gap: 24px; }
.wp-block-group.has-background { padding: 1.5rem; border-radius: var(--cs-radius); }
.wp-block-cover { border-radius: var(--cs-radius); overflow: hidden; }
.wp-block-media-text { border-radius: var(--cs-radius); overflow: hidden; }
.wp-block-search__button { background: var(--cs-primary); color: var(--cs-primary-text); border: 0; border-radius: var(--cs-radius-sm); }
.wp-block-search__input { border: 1px solid var(--cs-border); border-radius: var(--cs-radius-sm); padding: 8px 12px; }
.wp-block-latest-posts li, .wp-block-categories li, .wp-block-archives li { margin-bottom: .5em; }
.wp-block-quote.is-style-plain { border: 0; background: transparent; padding: 0; }
.has-text-align-center { text-align: center; }
.has-primary-background-color { background-color: var(--cs-primary); }
.has-primary-color { color: var(--cs-primary); }
.has-secondary-background-color { background-color: var(--cs-secondary); }
.has-secondary-color { color: var(--cs-secondary); }
.has-accent-background-color { background-color: var(--cs-accent); }
.has-accent-color { color: var(--cs-accent); }
.has-surface-background-color { background-color: var(--cs-bg-alt); }
.has-background-background-color { background-color: var(--cs-bg); }
.has-white-color { color: #fff; }
.has-white-background-color { background-color: #fff; }
.has-black-color { color: #111; }
.has-black-background-color { background-color: #111; }
.has-text-color { color: var(--cs-text); }
.has-heading-color { color: var(--cs-heading); }
.has-text-light-color { color: var(--cs-text-light); }

/* Buttons (core + theme) */
.wp-block-button__link { background: var(--cs-primary); color: var(--cs-primary-text); border-radius: var(--cs-radius); padding: 10px 22px; font-weight: 600; text-decoration: none !important; transition: background .2s, transform .2s; }
.wp-block-button__link:hover { background: var(--cs-primary-dark); color: var(--cs-primary-text); transform: translateY(-1px); }
.is-style-outline .wp-block-button__link, .is-style-cs-btn-outline .wp-block-button__link { background: transparent !important; border: 2px solid var(--cs-primary); color: var(--cs-primary) !important; }
.is-style-outline .wp-block-button__link:hover, .is-style-cs-btn-outline .wp-block-button__link:hover { background: var(--cs-primary) !important; color: var(--cs-primary-text) !important; }
.entry-content .cs-btn { text-decoration: none !important; }

/* Callout boxes (block styles + [cs_box] shortcode) */
.cs-box, .is-style-cs-box-info, .is-style-cs-box-tip, .is-style-cs-box-warning, .is-style-cs-box-danger { --box: 37,99,235; position: relative; padding: 16px 20px 16px 54px; border-radius: var(--cs-radius); border: 1px solid rgba(var(--box), .35); background: rgba(var(--box), .07); margin-bottom: 1.4em; color: var(--cs-text); }
.cs-box::before, .is-style-cs-box-info::before, .is-style-cs-box-tip::before, .is-style-cs-box-warning::before, .is-style-cs-box-danger::before { content: ""; position: absolute; left: 18px; top: 17px; width: 24px; height: 24px; border-radius: 50%; background-color: rgb(var(--box)); background-repeat: no-repeat; background-position: center; background-size: 14px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><line x1='12' y1='8' x2='12.01' y2='8'/></svg>"); }
.cs-box--tip, .is-style-cs-box-tip { --box: 22,163,74; }
.cs-box--tip::before, .is-style-cs-box-tip::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>"); }
.cs-box--warning, .is-style-cs-box-warning { --box: 217,119,6; }
.cs-box--warning::before, .is-style-cs-box-warning::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/><line x1='12' y1='9' x2='12' y2='13'/><line x1='12' y1='17' x2='12.01' y2='17'/></svg>"); }
.cs-box--danger, .is-style-cs-box-danger { --box: 220,38,38; }
.cs-box--danger::before, .is-style-cs-box-danger::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='5' x2='12' y2='14'/><line x1='12' y1='18' x2='12.01' y2='18'/></svg>"); }
.cs-box__title { display: block; margin-bottom: 4px; color: var(--cs-heading); }
.cs-box__body > :last-child, .is-style-cs-box-info > :last-child, .is-style-cs-box-tip > :last-child, .is-style-cs-box-warning > :last-child, .is-style-cs-box-danger > :last-child { margin-bottom: 0; }

/* Other block styles */
.is-style-cs-lead { font-size: 1.25rem; line-height: 1.6; color: var(--cs-heading); font-weight: 500; }
.is-style-cs-list-check { list-style: none; padding-left: 0; }
.is-style-cs-list-check li { position: relative; padding-left: 30px; }
.is-style-cs-list-check li::before { content: ""; position: absolute; left: 0; top: .3em; width: 20px; height: 20px; border-radius: 50%; background: var(--cs-primary) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 12px no-repeat; }
.is-style-cs-heading-bar { padding-left: 14px; border-left: 5px solid var(--cs-primary); }

/* Alignment helpers inside content */
.entry-content .alignwide { max-width: 100%; }
.entry-content .alignfull { max-width: 100%; }
@media (max-width: 599px) {
	.entry-content, .editor-styles-wrapper { font-size: 1rem; }
	.entry-content .alignleft, .entry-content .alignright { float: none; margin: 1em auto; display: block; }
}

/* =========================================================================
   About / Contact templates (inc/page-patterns.php) – front-end + editor
   ========================================================================= */
.cs-pg-kicker { font-size: .8rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cs-primary) !important; margin-bottom: .4em !important; }
.cs-pg-title { font-size: clamp(1.7rem, 3.2vw, 2.4rem) !important; line-height: 1.2 !important; margin-top: 0 !important; }
.cs-pg-hero { align-items: center !important; gap: 2.5rem !important; margin-bottom: 2.5em !important; }
.cs-pg-hero img { width: 100%; }
/* Cards: each column becomes a soft card (mission/values/departments). */
.cs-pg-cards { gap: 1.25rem !important; margin-bottom: 1.25rem !important; }
.cs-pg-cards > .wp-block-column { background: var(--cs-bg-alt); border: 1px solid var(--cs-border); border-top: 3px solid var(--cs-primary); border-radius: var(--cs-radius); padding: 1.4rem 1.4rem 1.1rem; }
.cs-pg-cards > .wp-block-column > * { margin-top: 0; margin-bottom: .5em; }
.cs-pg-cards h3 { font-size: 1.12rem !important; margin-top: 0 !important; }
.cs-pg-cards p:last-child { margin-bottom: 0; }
/* Numbers. */
.cs-pg-stats { text-align: center; gap: 1rem !important; margin: .5em 0 2.5em !important; }
.cs-pg-stats > .wp-block-column { padding: 1.2rem .5rem; border-radius: var(--cs-radius); background: rgba(var(--cs-primary-rgb), .06); }
.cs-pg-stat { font-family: var(--cs-font-heading); font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; line-height: 1; color: var(--cs-primary); margin: 0 0 .25em !important; }
.cs-pg-stat-label { margin: 0 !important; color: var(--cs-text-light); font-size: .95rem; }
/* Process steps with numbers. */
.cs-pg-steps { counter-reset: cs-step; gap: 1.25rem !important; margin-bottom: 2em !important; }
.cs-pg-steps > .wp-block-column { position: relative; padding-top: 3.2rem; }
.cs-pg-steps > .wp-block-column::before { counter-increment: cs-step; content: counter(cs-step); position: absolute; top: 0; left: 0; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--cs-primary); color: var(--cs-primary-text); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.cs-pg-steps h3 { font-size: 1.08rem !important; margin: 0 0 .4em !important; }
/* Team grid. */
.cs-pg-team { gap: 1.5rem !important; text-align: center; margin-bottom: 1.5rem !important; }
.cs-pg-team .wp-block-image img { width: 140px; height: 140px; object-fit: cover; border-radius: 50% !important; margin: 0 auto; display: block; }
.cs-pg-team .wp-block-image { margin-bottom: .8em; }
.cs-pg-team h3 { font-size: 1.08rem !important; margin: 0 0 .15em !important; }
.cs-pg-role { color: var(--cs-primary); font-weight: 600; font-size: .9rem; margin-bottom: .5em !important; }
.cs-pg-team p { font-size: .95rem; }
/* Timeline. */
.entry-content .cs-pg-timeline, .editor-styles-wrapper .cs-pg-timeline { list-style: none; padding-left: 0; border-left: 2px solid var(--cs-border); margin-left: .5rem; }
.cs-pg-timeline li { position: relative; padding: 0 0 1rem 1.4rem; margin: 0; }
.cs-pg-timeline li::before { content: ""; position: absolute; left: -7px; top: .55em; width: 12px; height: 12px; border-radius: 50%; background: var(--cs-primary); box-shadow: 0 0 0 3px var(--cs-bg); }
/* Call-to-action band. */
.cs-pg-band { background: linear-gradient(135deg, var(--cs-primary), var(--cs-primary-dark, var(--cs-primary))); color: var(--cs-primary-text); border-radius: var(--cs-radius); padding: 2.2rem 1.5rem !important; margin-top: 2.5em !important; }
.cs-pg-band h2, .cs-pg-band p { color: inherit !important; margin-top: 0 !important; }
.cs-pg-band .wp-block-button__link { background: var(--cs-primary-text) !important; color: var(--cs-primary) !important; }
.cs-pg-quote { text-align: center; font-size: 1.15rem; border-left: 0 !important; border-radius: var(--cs-radius) !important; padding: 1.6rem 2rem !important; }
/* Contact layouts. */
.cs-pg-contact { gap: 2.5rem !important; }
.cs-pg-formcard { background: var(--cs-bg-alt); border: 1px solid var(--cs-border); border-radius: var(--cs-radius); padding: 1.6rem !important; }
.cs-pg-formcard h3 { margin-top: 0 !important; }
.cs-pg-narrow { max-width: 720px; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 781px) { .cs-pg-hero, .cs-pg-contact { gap: 1.5rem !important; } }

/* Contact details (csthemes/contact-info). */
.entry-content .cs-contact-info, .editor-styles-wrapper .cs-contact-info { list-style: none; padding: 0; margin: 0 0 1.4em; display: grid; gap: .9rem; }
.cs-contact-info__item { display: flex; gap: .85rem; align-items: flex-start; margin: 0 !important; }
.cs-contact-info__icon { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; background: rgba(var(--cs-primary-rgb), .1); color: var(--cs-primary); display: inline-flex; align-items: center; justify-content: center; }
.cs-contact-info__text { display: flex; flex-direction: column; line-height: 1.45; min-width: 0; overflow-wrap: anywhere; }
.cs-contact-info__label { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--cs-text-light); font-weight: 600; }
.cs-contact-info__value, .cs-contact-info__value a { color: var(--cs-heading) !important; font-weight: 600; text-decoration: none !important; }
.cs-contact-info__value a:hover { color: var(--cs-primary) !important; }
.cs-contact-info--cards { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.cs-contact-info--cards .cs-contact-info__item { flex-direction: column; align-items: center; text-align: center; background: var(--cs-bg-alt); border: 1px solid var(--cs-border); border-radius: var(--cs-radius); padding: 1.3rem 1rem; }
.cs-contact-info--cards .cs-contact-info__text { align-items: center; }
.cs-social--contact { margin-bottom: 1.4em; }
.cs-contact-empty { padding: .8rem 1rem; border: 1px dashed var(--cs-border); border-radius: var(--cs-radius); color: var(--cs-text-light); font-size: .92rem; }

/* Map (csthemes/map). */
.cs-map { border-radius: var(--cs-radius); overflow: hidden; border: 1px solid var(--cs-border); margin-bottom: 1.4em; background: var(--cs-bg-alt); }
.cs-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Contact form (csthemes/contact-form). */
.cs-contact-form { margin: 0 0 1.4em; }
.cs-contact-form__title { margin-top: 0 !important; }
.cs-contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.cs-contact-form__field { margin: 0 0 1rem !important; }
.cs-contact-form label { display: block; font-size: .9rem; font-weight: 600; color: var(--cs-heading); margin-bottom: .35rem; }
.cs-contact-form .req { color: #dc2626; }
.cs-contact-form input[type=text], .cs-contact-form input[type=email], .cs-contact-form input[type=tel], .cs-contact-form textarea { width: 100%; padding: .7rem .9rem; border: 1px solid var(--cs-border); border-radius: var(--cs-radius-sm, 6px); background: var(--cs-bg); color: var(--cs-text); font: inherit; font-size: 1rem; line-height: 1.5; box-sizing: border-box; transition: border-color .2s, box-shadow .2s; }
.cs-contact-form input:focus, .cs-contact-form textarea:focus { outline: none; border-color: var(--cs-primary); box-shadow: 0 0 0 3px rgba(var(--cs-primary-rgb), .15); }
.cs-contact-form textarea { resize: vertical; min-height: 140px; }
.cs-contact-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cs-contact-form__submit { margin: 0 !important; }
.cs-contact-form button[type=submit] { display: inline-flex; align-items: center; gap: 8px; padding: .75rem 1.6rem; border: 0; border-radius: var(--cs-radius); background: var(--cs-primary); color: var(--cs-primary-text); font-weight: 700; font-size: 1rem; cursor: pointer; transition: opacity .2s; }
.cs-contact-form button[type=submit]:hover { opacity: .9; }
.cs-contact-form button[disabled] { opacity: .6; cursor: wait; }
.cs-contact-form__notice { padding: .8rem 1rem; border-radius: var(--cs-radius); background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; margin-bottom: 1rem; font-weight: 500; }
.cs-contact-form__notice.is-error { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.cs-contact-form__notice[hidden] { display: none; }
@media (max-width: 599px) { .cs-contact-form__row { grid-template-columns: 1fr; } }
.entry-content .cs-social--contact, .editor-styles-wrapper .cs-social--contact { padding-left: 0; }

/* Contact page template (templates/contact.php, inc/contact-page.php) */
.cs-cp__kicker { font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cs-primary); margin: 0 0 .5em !important; }
.cs-cp__title { font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.2; margin: 0 0 .5em !important; }
.cs-cp__intro { color: var(--cs-text); margin-bottom: 1.6em; }
.cs-cp__intro p { margin: 0 0 .6em; }
.cs-cp__extra { margin-bottom: 1.6em; }
.cs-cp__split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 3rem; align-items: start; margin-bottom: 2.5em; }
.cs-cp__split--single { grid-template-columns: minmax(0, 760px); }
.cs-cp__formcard { background: var(--cs-bg-alt); border: 1px solid var(--cs-border); border-radius: var(--cs-radius); padding: 1.6rem 1.6rem .4rem; }
.cs-cp__formtitle { margin: 0 0 1rem !important; font-size: 1.3rem; }
.cs-cp__center { max-width: 760px; margin: 2.5em auto 0; text-align: center; }
.cs-cp__center .cs-contact-form, .cs-cp__center .cs-cp__formcard { text-align: left; }
.cs-cp__center--left { margin-top: 0; text-align: left; }
.cs-cp--simple .cs-cp__formcard { margin: 1em 0 2em; }
.cs-cp--map .cs-map { margin-bottom: 1.5em; }
@media (max-width: 900px) { .cs-cp__split { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }
.cs-contact-note { margin: -.4em 0 1.4em; padding: .9rem 1.1rem; border-left: 3px solid var(--cs-primary); background: var(--cs-bg-alt); border-radius: 0 var(--cs-radius) var(--cs-radius) 0; }
.cs-contact-note p { margin: 0 0 .5em; }
.cs-contact-note p:last-child { margin-bottom: 0; }
