/* ==========================================================================
   Cybersafe CMS – TNM theme overrides (Nunito, CMS content styles, blocks, consent)
   Loaded after /front/css/style.css and the dynamic inline CSS.
   ========================================================================== */

/* ---------- Typography: Nunito everywhere ---------- */
body, button, input, select, textarea, .navigation, .post__title, .entry-title, .page-heading__title,
h1, h2, h3, h4, h5, h6, .block-heading__title, .meta-font, .post__meta, .post__cat, .btn, .widget__title-text,
.mnmd-news-ticker__heading, .navigation-bar-btn, .mobile-header-btn, .social-tile__title, .social-tile__count,
.comment-reply-title, .comments-title, .typography-copy, .typography-copy blockquote, .author-box .author-name a {
  font-family: Nunito, Arial, Helvetica, sans-serif;
}
.post__title, .entry-title, .page-heading__title, .block-heading__title { letter-spacing: -0.01em; }
.post__title.typescale-2, .post__title.typescale-3, .post__title.typescale-4, .post__title.typescale-5, .post__title.typescale-6, .entry-title, .page-heading__title, .block-heading__title, .single-body h1, .single-body h2, .single-body h3, .single-body h4 { font-weight: 800; }
.post__title.typescale-0, .post__title.typescale-1, .post__title.typescale--1 { font-weight: 700; }
.navigation--main > li > a { font-weight: 700; }
.post__meta, .entry-meta { font-weight: 600; }
.mdicon { font-family: 'mdicon' !important; }

/* ---------- Accessibility ---------- */
.cms-skip-link { position: absolute; left: -9999px; top: 8px; z-index: 10000; background: #fff; color: #111; padding: 8px 14px; border-radius: 4px; font-weight: 700; }
.cms-skip-link:focus { left: 8px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--cms-primary, #EF3A2B); outline-offset: 2px; }

/* ---------- Image ratios (imported images are not pre-cropped) ---------- */
img.cms-r-16x9, img.cms-r-4x3, img.cms-r-2x1, img.cms-r-1x1 { width: 100%; height: auto; object-fit: cover; display: block; background: #e9edf2; }
img.cms-r-16x9 { aspect-ratio: 16 / 9; }
img.cms-r-4x3 { aspect-ratio: 4 / 3; }
img.cms-r-2x1 { aspect-ratio: 2 / 1; }
img.cms-r-1x1 { aspect-ratio: 1 / 1; }
.background-img { background-color: #2b2d42; }
.cms-single-thumb { max-height: 520px; }
.cms-thumb-caption { display: block; font-size: 13px; color: rgba(0, 0, 0, .55); margin-top: 8px; text-align: center; }

/* ---------- Header / logos (SVG marks have no intrinsic size → explicit heights) ---------- */
.cms-logo { width: auto; max-width: 100%; }
.navigation-bar .header-logo img { height: 64px; max-height: 64px; padding: 16px 0; width: auto; max-width: 220px; }
.sticky-header .navigation-bar .header-logo img { height: 56px; max-height: 56px; padding: 14px 0; }
.header-logo--mobile img { height: 50px; max-height: 50px; padding: 12px 0; width: auto; max-width: 180px; }
@media (min-width: 768px) { .header-logo--mobile img { height: 60px; max-height: 60px; padding: 15px 0; } }
.mnmd-offcanvas__title .site-logo { margin: 0; line-height: 1; }
.mnmd-offcanvas__title .site-logo img { height: 34px; width: auto; max-width: 170px; }
.site-footer .site-logo img { width: auto; height: 40px; max-width: 220px; max-height: 56px; }
.cms-logo--on-dark { display: none !important; }
[data-theme="dark"] .cms-logo--on-light { display: none !important; }
[data-theme="dark"] .cms-logo--on-dark { display: inline-block !important; }
.subscribe-form h3, .cms-cta__title, .cms-feature__title { font-weight: 800; }
.cms-top-bar { background: #111; color: rgba(255, 255, 255, .85); font-size: 13px; font-weight: 600; text-align: center; padding: 7px 0; }
.cms-nav-cta { padding: 0 10px; }
.cms-nav-cta .btn { border-radius: 3px; }
.cms-sicon { width: 1em; height: 1em; display: inline-block; vertical-align: -0.125em; }
.social-list .cms-sicon { width: 15px; height: 15px; }
.social-list--lg .cms-sicon { width: 18px; height: 18px; }
.navigation .menu-item .mdicon--first { margin-right: 6px; }

/* ---------- Preview / maintenance ribbon ---------- */
.cms-preview-ribbon { position: sticky; top: 0; z-index: 10001; background: #1f2937; color: #fff; font-size: 13px; font-weight: 600; text-align: center; padding: 8px 12px; }
.cms-preview-ribbon a { color: #fff; text-decoration: underline; }
.cms-preview-ribbon__badge { display: inline-block; background: var(--cms-primary, #EF3A2B); color: #fff; padding: 2px 8px; border-radius: 3px; margin-right: 8px; text-transform: uppercase; letter-spacing: .08em; font-size: 11px; }
.cms-preview-ribbon--warn { background: #92400e; }

/* ---------- Social tiles for networks missing from TNM ---------- */
.x-theme-bg { background-color: #111 !important; }
.tiktok-theme-bg { background-color: #010101 !important; }
.telegram-theme-bg { background-color: #229ED9 !important; }
.whatsapp-theme-bg { background-color: #25D366 !important; }
.rss-theme-bg { background-color: #f26522 !important; }
.social-tile .cms-sicon { width: 18px; height: 18px; color: #fff; }
.sharing-btn .cms-sicon { width: 15px; height: 15px; }
.post-sharing--simple .cms-whatsapp-btn, .post-sharing--simple .cms-copy-btn { color: #fff; }
.post-sharing--simple .cms-copy-btn { background: #6b7280; }
.post-sharing--simple .cms-copy-btn.is-copied { background: #16a34a; }

/* ---------- Lists / widgets ---------- */
.cms-widget-categories ul { list-style: none; margin: 0; padding: 0; }
.cms-widget-categories li { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(0, 0, 0, .07); }
.cms-widget-categories li a { font-weight: 700; color: #222; display: inline-flex; align-items: center; gap: 8px; }
.cms-widget-categories li a:hover { color: var(--cms-primary, #EF3A2B); }
.cms-cat-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cms-primary, #EF3A2B); display: inline-block; }
.cms-cat-count { font-size: 12px; font-weight: 700; color: rgba(0, 0, 0, .62); background: rgba(0, 0, 0, .05); border-radius: 20px; padding: 1px 9px; }
.cms-side-banner { display: block; position: relative; border-radius: 4px; overflow: hidden; }
.cms-side-banner img { width: 100%; height: auto; display: block; }
.cms-side-banner .post__cat { position: absolute; left: 12px; top: 12px; }
.cms-subcats { margin-top: 16px; }
.cms-subcats li { margin: 4px; }
.cms-heading-parent { margin-bottom: 10px; }
.cms-archive-search { max-width: 520px; margin: 20px auto 0; }

/* ---------- Empty states / notices ---------- */
.cms-empty-state { text-align: center; padding: 50px 20px; color: rgba(0, 0, 0, .55); border: 2px dashed rgba(0, 0, 0, .08); border-radius: 6px; }
.cms-empty-state .mdicon { font-size: 42px; color: rgba(0, 0, 0, .2); }
.cms-empty-state h3 { margin: 10px 0 6px; color: #222; }
.cms-notice { padding: 12px 16px; border-radius: 4px; margin: 0 0 24px; font-weight: 600; }
.cms-notice--success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.cms-notice--error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.cms-form-response:empty { display: none; }
.cms-form-response { margin-top: 12px; font-weight: 700; }
.cms-form-response.is-success { color: #16a34a; }
.cms-form-response.is-error { color: #dc2626; }
.subscribe-form--has-background .cms-form-response.is-success, .subscribe-form--has-background .cms-form-response.is-error { color: #fff; }
.cms-hp { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.has-error input, .has-error textarea { border-color: #dc2626 !important; }
.cms-field-error { color: #dc2626; font-size: 13px; font-weight: 600; display: block; margin-top: 4px; }
.cms-comments-closed { font-weight: 600; color: rgba(0, 0, 0, .55); }

/* ---------- Comments ---------- */
.cms-avatar { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: #43c6ac; color: #fff; font-weight: 800; font-size: 20px; flex-shrink: 0; float: left; margin-right: 15px; border: 2px solid transparent; }
.comment-author.vcard { overflow: hidden; }
.comment-list .children .cms-avatar { width: 48px; height: 48px; font-size: 16px; }
#respond.is-replying { margin-top: 20px; padding: 20px; background: rgba(0, 0, 0, .025); border-radius: 4px; }

/* ---------- Single content (matches the admin editor CONTENT_STYLE) ---------- */
.cms-content { overflow-wrap: break-word; }
.cms-content img { max-width: 100%; height: auto; }
.cms-content figure { margin: 1.5em 0; max-width: 100%; }
.cms-content figcaption, .cms-content .wp-caption-text { font-size: .85em; color: #6b7280; text-align: center; margin-top: .4em; }
.cms-content .wp-caption { max-width: 100%; }
.cms-content .align-left, .cms-content .alignleft { float: left; margin: .3em 1.4em 1em 0; max-width: 50%; }
.cms-content .align-right, .cms-content .alignright { float: right; margin: .3em 0 1em 1.4em; max-width: 50%; }
.cms-content .align-center, .cms-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.cms-content .img-full { width: 100%; }
.cms-content .img-rounded { border-radius: 12px; }
.cms-content .img-shadow { box-shadow: 0 12px 30px -12px rgba(0, 0, 0, .35); }
.cms-content .lead { font-size: 1.25em; color: #374151; line-height: 1.6; }
.cms-content .text-small { font-size: .85em; }
.cms-content .drop-cap::first-letter { float: left; font-size: 3.4em; line-height: .9; padding: .05em .12em 0 0; font-weight: 800; color: var(--cms-primary, #EF3A2B); }
.cms-content .callout { padding: 1em 1.25em; border-radius: 10px; margin: 1.25em 0; border: 1px solid; }
.cms-content .callout > :last-child { margin-bottom: 0; }
.cms-content .callout-info { background: #eff6ff; border-color: #bfdbfe; }
.cms-content .callout-warning { background: #fffbeb; border-color: #fde68a; }
.cms-content .callout-danger { background: #fef2f2; border-color: #fecaca; }
.cms-content .callout-success { background: #f0fdf4; border-color: #bbf7d0; }
.cms-content .highlight-box { background: #f3f4f6; padding: 1.2em 1.4em; border-radius: 10px; }
.cms-content .text-uppercase-label { text-transform: uppercase; letter-spacing: .12em; font-size: .8em; font-weight: 700; color: #6b7280; }
.cms-content .cms-btn-wrap { margin: 1.25em 0; }
.cms-content .cms-button { display: inline-block; padding: .7em 1.4em; border-radius: 8px; font-weight: 700; text-decoration: none !important; border: 2px solid transparent; line-height: 1.3; }
.cms-content .cms-button--primary { background: #1b84ff; color: #fff !important; }
.cms-content .cms-button--dark { background: #111827; color: #fff !important; }
.cms-content .cms-button--success { background: #17c653; color: #fff !important; }
.cms-content .cms-button--danger { background: #f8285a; color: #fff !important; }
.cms-content .cms-button--outline { border-color: #1b84ff; color: #1b84ff !important; background: transparent; }
.cms-content .cms-button--light { background: #f1f5f9; color: #111827 !important; }
.cms-content .cms-button--sm { font-size: .85em; padding: .5em 1em; }
.cms-content .cms-button--lg { font-size: 1.1em; padding: .9em 1.8em; }
.cms-content .cms-button--block { display: block; text-align: center; }
.cms-content .cms-button:hover { filter: brightness(.94); }
.cms-content .cms-file { display: inline-flex; align-items: center; gap: .5em; padding: .6em 1em; border: 1px solid #e5e7eb; border-radius: 8px; text-decoration: none; color: #111827; background: #f9fafb; font-weight: 600; }
.cms-content .cms-file::before { content: '\1F4CE'; }
.cms-content .cms-file:hover { border-color: var(--cms-primary, #EF3A2B); }
.cms-content .cms-file small { color: #6b7280; font-weight: 400; }
.cms-content .cms-embed { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; margin: 1.5em 0; }
.cms-content .cms-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cms-content table { border-collapse: collapse; width: 100%; margin: 1.5em 0; }
.cms-content table td, .cms-content table th { border: 1px solid #e5e7eb; padding: .5em .75em; }
.cms-content table th { background: #f9fafb; }
.cms-content pre { background: #0f172a; color: #e2e8f0; padding: 1em; border-radius: 8px; overflow: auto; }
.cms-content video, .cms-content audio, .cms-content iframe { max-width: 100%; }
.cms-content::after { content: ''; display: table; clear: both; }
.cms-updated { white-space: nowrap; }

/* ---------- Pages ---------- */
.cms-main-full { width: 100% !important; float: none !important; }
.cms-container-narrow { max-width: 960px; }
.cms-breadcrumbs { font-size: 13px; font-weight: 600; margin-bottom: 8px; opacity: .8; }
.cms-breadcrumbs li + li::before { content: '/'; margin: 0 6px 0 2px; opacity: .6; }
.cms-contact-card { background: #f7f8fa; border-radius: 6px; padding: 24px; border-top: 3px solid var(--cms-primary, #EF3A2B); }
.cms-contact-card__title { margin-top: 0; }
.cms-contact-card__list li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid rgba(0, 0, 0, .06); }
.cms-contact-card__list li:last-child { border-bottom: 0; }
.cms-contact-card__icon { color: var(--cms-primary, #EF3A2B); flex-shrink: 0; }
.cms-contact-card__icon svg { width: 20px; height: 20px; }
.cms-contact-card__list p { margin: 0; }
.cms-contact-card__social { margin-top: 12px; }
.cms-contact-form { margin-top: 24px; }
.cms-map { margin-top: 30px; border-radius: 6px; overflow: hidden; }
.cms-map iframe { width: 100%; min-height: 360px; border: 0; display: block; }
.cms-404-latest { margin: 50px 0 20px; }

/* ---------- Footer ---------- */
.cms-footer-widgets { padding: 50px 0 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.cms-footer-col { margin-bottom: 26px; }
.cms-footer-title { color: #fff; font-size: 15px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; margin: 0 0 14px; }
.cms-footer-text, .cms-footer-text p { color: rgba(255, 255, 255, .65); font-size: 14px; line-height: 1.7; }
.cms-footer-links li, .cms-footer-contact li { padding: 4px 0; }
.cms-footer-links a, .cms-footer-contact a, .cms-footer-contact span { color: rgba(255, 255, 255, .75); font-weight: 600; font-size: 14px; }
.cms-footer-links a:hover, .cms-footer-contact a:hover { color: #fff; }
.cms-footer-contact .mdicon { margin-right: 8px; color: rgba(255, 255, 255, .45); }
.cms-consent-reopen { margin-left: 12px; color: rgba(255, 255, 255, .6) !important; text-decoration: underline; font-size: 13px; }

/* ---------- Banner slider ---------- */
.cms-banner-slider { position: relative; overflow: hidden; background: #191654; }
.cms-banner-slide { width: 100%; position: relative; display: flex; align-items: center; min-height: 440px; }
.cms-banner-slider--sm .cms-banner-slide { min-height: 320px; }
.cms-banner-slider--lg .cms-banner-slide { min-height: 560px; }
.cms-banner-slide__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.cms-banner-slide__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 12, 40, .85) 0%, rgba(10, 12, 40, .45) 55%, rgba(10, 12, 40, .1) 100%); }
.cms-banner-slide__content { position: relative; z-index: 2; padding-top: 50px; padding-bottom: 60px; }
.cms-banner-slide__title { color: #fff; max-width: 720px; margin: 12px 0 10px; font-weight: 800; }
.cms-banner-slide__subtitle { color: rgba(255, 255, 255, .9); font-size: 18px; font-weight: 700; max-width: 640px; margin-bottom: 6px; }
.cms-banner-slide__desc { color: rgba(255, 255, 255, .75); max-width: 620px; }
.cms-banner-slide__btn { margin-top: 12px; }
.js-cms-banner-slider:not(.flickity-enabled) .cms-banner-slide + .cms-banner-slide { display: none; }
.cms-banner-slider .flickity-page-dots { bottom: 20px; }
.cms-banner-slider .flickity-page-dots .dot { background: #fff; }
.cms-banner-slider .flickity-prev-next-button { background: rgba(255, 255, 255, .15); }
.cms-banner-slider .flickity-prev-next-button .arrow { fill: #fff; }

/* ---------- Reusable blocks ---------- */
.cms-flex-row { display: flex; flex-wrap: wrap; }
.cms-flex-row > [class*='col-'] { float: none; }
.cms-cta { border-radius: 6px; overflow: hidden; background-size: cover; background-position: center; position: relative; }
.cms-cta--dark { background-color: #14161f; }
.cms-cta--light { background-color: #f3f5f8; }
.cms-cta--primary { background-color: var(--cms-primary, #EF3A2B); }
.cms-cta--image::before { content: ''; position: absolute; inset: 0; background: rgba(10, 12, 40, .65); }
.cms-cta__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 36px 40px; flex-wrap: wrap; }
.cms-cta__title { margin: 0 0 8px; font-weight: 800; }
.cms-cta__text p { margin: 0; opacity: .85; font-size: 16px; max-width: 640px; }
.cms-cta--light .cms-cta__title { color: #111; }
.cms-btn-white { background: #fff !important; color: #111 !important; border-color: #fff !important; }
.cms-btn-white:hover { background: rgba(255, 255, 255, .9) !important; }
.cms-faq__intro, .cms-features__intro { color: rgba(0, 0, 0, .6); margin-bottom: 20px; }
.cms-faq__item { border: 1px solid rgba(0, 0, 0, .09); border-radius: 4px; margin-bottom: 10px; background: #fff; }
.cms-faq__q { list-style: none; cursor: pointer; padding: 16px 20px; font-weight: 800; font-size: 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cms-faq__q::-webkit-details-marker { display: none; }
.cms-faq__q .mdicon { transition: transform .2s; color: var(--cms-primary, #EF3A2B); font-size: 22px; }
.cms-faq__item[open] .cms-faq__q .mdicon { transform: rotate(180deg); }
.cms-faq__item[open] .cms-faq__q { border-bottom: 1px solid rgba(0, 0, 0, .06); }
.cms-faq__a { padding: 14px 20px 6px; color: rgba(0, 0, 0, .72); }
.cms-testimonial { background: #f7f8fa; border-radius: 6px; padding: 26px; height: calc(100% - 30px); margin: 0 0 30px; position: relative; }
.cms-testimonial__icon { color: var(--cms-primary, #EF3A2B); font-size: 26px; }
.cms-testimonial__quote { border: 0; padding: 0; margin: 10px 0 18px; font-size: 16px; font-style: italic; color: #333; }
.cms-testimonial__author { display: flex; align-items: center; gap: 12px; }
.cms-testimonial__author small { display: block; color: rgba(0, 0, 0, .5); font-size: 13px; }
.cms-testimonial__avatar { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; margin: 0; float: none; font-size: 16px; }
.cms-feature { padding: 24px 0; height: 100%; }
.cms-feature__icon { display: inline-flex; width: 56px; height: 56px; border-radius: 14px; align-items: center; justify-content: center; background: rgba(var(--cms-primary-rgb, 239, 58, 43), .1); color: var(--cms-primary, #EF3A2B); margin-bottom: 14px; }
.cms-feature__title { margin: 0 0 8px; font-weight: 800; }
.cms-feature__text { color: rgba(0, 0, 0, .62); margin: 0; }
.cms-logos__list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 30px 50px; margin: 10px 0 0; }
.cms-logos__item img { max-height: 48px; max-width: 160px; width: auto; transition: filter .2s, opacity .2s; }
.cms-logos--gray .cms-logos__item img { filter: grayscale(1); opacity: .65; }
.cms-logos--gray .cms-logos__item img:hover { filter: none; opacity: 1; }
.cms-category-block .block-heading__title a { color: inherit; }

/* ---------- Cookie consent ---------- */
.cms-consent { position: fixed; z-index: 9999; left: 16px; right: 16px; bottom: 16px; max-width: 1140px; margin: 0 auto; background: #14161f; color: rgba(255, 255, 255, .85); border-radius: 6px; box-shadow: 0 18px 50px -12px rgba(0, 0, 0, .5); transform: translateY(20px); opacity: 0; transition: transform .3s, opacity .3s; }
.cms-consent.is-visible { transform: none; opacity: 1; }
.cms-consent[hidden] { display: none; }
.cms-consent--top { top: 16px; bottom: auto; transform: translateY(-20px); }
.cms-consent--bottom-left { right: auto; max-width: 420px; }
.cms-consent--bottom-right { left: auto; max-width: 420px; }
.cms-consent__inner { display: flex; align-items: center; gap: 20px; padding: 18px 22px; flex-wrap: wrap; }
.cms-consent--bottom-left .cms-consent__inner, .cms-consent--bottom-right .cms-consent__inner { flex-direction: column; align-items: stretch; }
.cms-consent__text { flex: 1 1 380px; }
.cms-consent--bottom-left .cms-consent__text, .cms-consent--bottom-right .cms-consent__text { flex: 0 0 auto; }
@media (max-width: 767px) { .cms-consent__text { flex: 0 0 100%; } }
.cms-consent__title { color: #fff; margin: 0 0 4px; font-size: 16px; font-weight: 800; }
.cms-consent__title .mdicon { color: var(--cms-primary, #EF3A2B); margin-right: 4px; }
.cms-consent__text p { margin: 0; font-size: 14px; line-height: 1.55; }
.cms-consent__text a { color: #fff; text-decoration: underline; }
.cms-consent__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cms-consent__btn { white-space: nowrap; }
.cms-consent .btn-default { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .3); }
.cms-consent .btn-default:hover { border-color: #fff; }
.cms-consent-modal .modal-title { font-weight: 800; }
.cms-consent-modal__intro { color: rgba(0, 0, 0, .6); }
.cms-consent-cat { border: 1px solid rgba(0, 0, 0, .08); border-radius: 4px; padding: 14px 16px; margin-bottom: 10px; }
.cms-consent-cat p { margin: 6px 0 0; font-size: 13px; color: rgba(0, 0, 0, .6); }
.cms-consent-cat__head { display: flex; align-items: center; justify-content: space-between; }
.cms-switch { position: relative; display: inline-block; width: 42px; height: 24px; margin: 0; cursor: pointer; }
.cms-switch input { opacity: 0; width: 0; height: 0; position: absolute; }
.cms-switch span { position: absolute; inset: 0; background: #cbd2d9; border-radius: 24px; transition: background .2s; }
.cms-switch span::before { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .2s; }
.cms-switch input:checked + span { background: var(--cms-primary, #EF3A2B); }
.cms-switch input:checked + span::before { transform: translateX(18px); }
.cms-switch.is-locked { opacity: .6; cursor: not-allowed; }
.cms-switch input:focus-visible + span { outline: 2px solid var(--cms-primary, #EF3A2B); outline-offset: 2px; }

/* ---------- Maintenance page ---------- */
body.cms-maintenance { margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center; font-family: Nunito, Arial, sans-serif; color: #fff; background: linear-gradient(0deg, #43c6ac 0, #191654 100%); padding: 20px; }
.cms-maintenance__box { max-width: 560px; text-align: center; }
.cms-maintenance__logo { max-width: 240px; height: 56px; width: auto; margin-bottom: 30px; }
.cms-maintenance__icon svg { width: 64px; height: 64px; opacity: .9; }
.cms-maintenance h1 { font-size: 36px; font-weight: 800; margin: 16px 0 10px; }
.cms-maintenance p { font-size: 17px; line-height: 1.6; opacity: .85; }
.cms-maintenance a { color: #fff; font-weight: 700; margin: 0 4px; }

/* ---------- Responsive ---------- */
@media (max-width: 767px) {
  .cms-cta__inner { padding: 26px 22px; }
  .cms-banner-slide { min-height: 360px; }
  .cms-consent { left: 8px; right: 8px; bottom: 8px; }
  .cms-consent__actions { width: 100%; }
  .cms-consent__btn { flex: 1 1 auto; }
  .cms-content .align-left, .cms-content .alignleft, .cms-content .align-right, .cms-content .alignright { float: none; max-width: 100%; margin: 1em auto; display: block; }
  .cms-footer-widgets { padding-top: 34px; }
}
.cms-404-logo { max-width: 220px; height: 64px; width: auto; }

/* ==========================================================================
   Layout – 1504px max content width (replaces the theme's 1170px container)
   ========================================================================== */
:root { --cms-max: 1504px; --cms-gutter: 16px; }
@media (min-width: 768px) { :root { --cms-gutter: 24px; } }
@media (min-width: 1200px) { :root { --cms-gutter: 32px; } }
.container, .container--wide { width: 100%; max-width: var(--cms-max); padding-left: var(--cms-gutter); padding-right: var(--cms-gutter); }
.container.container--narrow { max-width: 1040px; }
.cms-container-narrow.container { max-width: calc(960px + 2 * var(--cms-gutter)); }
.navigation-bar--fullwidth .navigation-bar__inner { max-width: var(--cms-max); margin-left: auto; margin-right: auto; padding-left: calc(var(--cms-gutter) - 8px); padding-right: calc(var(--cms-gutter) - 8px); }
.mobile-header__inner { max-width: var(--cms-max); margin-left: auto; margin-right: auto; padding-left: var(--cms-gutter); padding-right: calc(var(--cms-gutter) - 6px); }
.mnmd-mega-menu, .sticky-header .navigation--main li > .mnmd-mega-menu, .sticky-header .navigation--main li:hover > .mnmd-mega-menu { width: min(calc(var(--cms-max) - 2 * var(--cms-gutter)), calc(100vw - 2 * var(--cms-gutter))); max-width: none; }

/* Main column + sticky sidebar scale with the container */
@media (min-width: 992px) {
  .mnmd-main-col { width: calc(100% - 320px); }
  .mnmd-sub-col { width: 320px; }
}
@media (min-width: 1200px) {
  .mnmd-main-col { width: calc(100% - 360px); padding-right: 40px; }
  .mnmd-main-col.has-left-sidebar { padding-left: 40px; padding-right: 15px; }
  .mnmd-sub-col { width: 360px; }
}
@media (min-width: 1440px) {
  .mnmd-main-col { width: calc(100% - 390px); padding-right: 50px; }
  .mnmd-main-col.has-left-sidebar { padding-left: 50px; }
  .mnmd-sub-col { width: 390px; }
}
/* Long-form reading (single posts + pages with a sidebar): keep a comfortable measure, sidebar stays on the far side */
@media (min-width: 1200px) {
  .single-entry .mnmd-main-col, .cms-page--default .mnmd-main-col, .cms-page--sidebar-left .mnmd-main-col { max-width: 960px; }
  .single-entry .mnmd-sub-col, .cms-page--default .mnmd-sub-col { float: right; }
  .single-header { max-width: 1100px; }
}
.row::after { content: ''; display: table; clear: both; }

/* Featured block / listings at wide widths */
.mnmd-featured-block-b .post--horizontal-lg .post__thumb img { width: 100%; }
@media (min-width: 1200px) {
  .mnmd-featured-block-b .post--horizontal-lg .post__text { padding-right: 40px; }
}
@media (min-width: 1440px) {
  .post--horizontal-sm .post__thumb { width: 300px; }
}

/* ==========================================================================
   Header tools: colour-mode toggle (sun / moon)
   ========================================================================== */
.cms-nav-tools { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; overflow: visible; }
.cms-theme-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: transparent; border: 0; box-shadow: none; color: inherit; cursor: pointer; font: inherit; line-height: 1; }
.cms-theme-toggle__icon { width: 20px; height: 20px; flex-shrink: 0; transition: transform .2s ease; }
.cms-theme-toggle__sun { display: none; }
[data-theme="dark"] .cms-theme-toggle__sun { display: inline-block; }
[data-theme="dark"] .cms-theme-toggle__moon { display: none; }
.navigation-bar-btn.cms-theme-toggle { min-width: 44px; height: 60px; padding: 0 10px; vertical-align: top; }
.cms-theme-toggle:hover .cms-theme-toggle__icon { transform: rotate(-15deg); }
.mobile-header-btn { min-width: 44px; }
.mobile-header-btn.cms-theme-toggle { height: 50px; padding: 0 10px; vertical-align: middle; }
@media (min-width: 768px) { .mobile-header-btn.cms-theme-toggle { height: 60px; } }
.mobile-header--inverse .mobile-header-btn.cms-theme-toggle { color: #fff; }
.cms-offcanvas-theme.mnmd-offcanvas__section { padding-top: 4px; padding-bottom: 4px; }
.cms-theme-toggle--block { width: 100%; min-height: 48px; padding: 6px 0; justify-content: flex-start; font-size: 14px; font-weight: 700; color: rgba(0, 0, 0, .75); text-align: left; }
.cms-theme-toggle--block .cms-theme-toggle__label { flex: 1 1 auto; }
.cms-theme-toggle__switch { position: relative; width: 42px; height: 24px; border-radius: 24px; background: #b8c0c9; flex-shrink: 0; transition: background .2s; }
.cms-theme-toggle__switch::before { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .2s; }
.cms-theme-toggle[aria-pressed="true"] .cms-theme-toggle__switch { background: var(--cms-primary, #EF3A2B); }
.cms-theme-toggle[aria-pressed="true"] .cms-theme-toggle__switch::before { transform: translateX(18px); }
.cms-theme-switching, .cms-theme-switching *, .cms-theme-switching *::before, .cms-theme-switching *::after { transition: none !important; }

/* ==========================================================================
   Responsive / mobile friendliness
   ========================================================================== */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-x: hidden; }
@supports (overflow: clip) { body { overflow-x: clip; } }
img, video, iframe, embed, object { max-width: 100%; }
.cms-content, .entry-content, .comment-content, .post__title, .entry-title, .page-heading__title { overflow-wrap: break-word; word-wrap: break-word; }
.cms-content a { overflow-wrap: anywhere; }
.cms-content img, .cms-content video { height: auto; }
.cms-content iframe { width: 100%; }
.cms-content iframe[src*="youtube"], .cms-content iframe[src*="vimeo"], .cms-content iframe[src*="dailymotion"], .cms-content iframe[src*="loom.com"], .cms-content iframe[src*="wistia"] { height: auto; aspect-ratio: 16 / 9; }
.cms-content .cms-embed iframe, .cms-content .fluid-width-video-wrapper iframe { height: 100%; aspect-ratio: auto; }
/* Tables in content are wrapped server-side in .cms-table-scroll (services/front-view.contentHtml) */
.cms-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.5em 0; }
.cms-table-scroll > table { margin: 0; min-width: 100%; }
.cms-table-scroll:focus-visible { outline: 2px solid var(--cms-primary, #EF3A2B); outline-offset: 2px; }
@media (max-width: 767px) {
  .cms-table-scroll > table td, .cms-table-scroll > table th { min-width: 110px; }
}
.cms-content pre { max-width: 100%; white-space: pre; overflow-wrap: normal; }
.cms-content :not(pre) > code { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Touch targets ≥ 44px on small screens */
@media (max-width: 991px) {
  .navigation--offcanvas li > a { padding-top: 11px; padding-bottom: 11px; min-height: 44px; }
  .mnmd-offcanvas-close { width: 44px; height: 44px; line-height: 42px; top: 6px; right: 6px; }
  .mnmd-offcanvas__title { padding-right: 60px; }
  .mnmd-offcanvas__title .social-list > li > a, .cms-contact-card__social > li > a { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 44px; }
  .navigation--footer > li > a { display: inline-block; padding: 12px 6px; }
  .site-footer .social-list > li > a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .cms-footer-links a, .cms-footer-contact a { display: inline-block; padding: 8px 0; }
  .mnmd-pagination__item { min-width: 44px; height: 44px; line-height: 44px; }
  .post-sharing--simple .sharing-btn { width: 44px; height: 44px; line-height: 44px; }
  .entry-action-btn { min-height: 44px; display: inline-flex; align-items: center; padding: 0 14px; }
  .mnmd-go-top { width: 44px; height: 44px; }
  .btn { min-height: 44px; }
  .entry-tags ul > li > a { display: inline-block; padding-top: 6px; padding-bottom: 6px; }
  .cms-consent-reopen { display: inline-block; padding: 10px 0; }
}

@media (max-width: 767px) {
  /* 16px inputs stop iOS from zooming into forms */
  input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select, .form-control { font-size: 16px; }
  .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; }
  .comment-form .form-submit input[type="submit"] { width: 100%; min-height: 48px; }
  .comment-list .children { padding-left: 12px; margin-left: 0; }
  .cms-avatar { width: 44px; height: 44px; font-size: 16px; margin-right: 10px; }
  .comment-list .children .cms-avatar { width: 36px; height: 36px; font-size: 14px; }
  .cms-form .btn, .cms-contact-form .btn { width: 100%; min-height: 48px; }
  .cms-contact-card { margin-top: 30px; padding: 20px; }
  .cms-archive-search, .page-404-search .search-form { display: flex; gap: 8px; }
  .cms-archive-search .search-form__input, .page-404-search .search-form__input { flex: 1 1 auto; min-width: 0; }
  .site-footer__section-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
  .site-footer__section--flex .site-footer__section-right { margin-left: 0; text-align: left; }
  .navigation--footer { margin-left: -6px; }
  .single-header .entry-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; }
  .single-header .entry-meta > * { margin: 0 !important; }
  .entry-interaction--horizontal { flex-wrap: wrap; gap: 10px; }
  .mnmd-featured-block-b { padding-top: 24px; }
  .cms-content .cms-button { max-width: 100%; white-space: normal; }
  .page-heading--has-background { padding-top: 24px; padding-bottom: 24px; }
  .cms-page .page-heading__title { font-size: 1.6rem; line-height: 1.25; }
  .author-box { padding: 20px; }
  .page-404-image img { max-width: 100%; height: auto; }
  .page-404-logo { margin-bottom: 30px; }
}
@media (max-width: 374px) {
  .mobile-header-btn, .mobile-header-btn.cms-theme-toggle { min-width: 40px; padding: 0 6px; }
  .header-logo--mobile img { max-width: 120px; }
}
/* Cookie banner – compact on phones so it does not bury the page */
@media (max-width: 767px) {
  .cms-consent { left: 8px; right: 8px; bottom: 8px; max-height: 60vh; overflow-y: auto; }
  .cms-consent__inner { padding: 14px 14px 12px; gap: 10px; }
  .cms-consent__title { font-size: 15px; }
  .cms-consent__text p { font-size: 13px; line-height: 1.5; }
  .cms-consent__actions { gap: 6px; }
  .cms-consent__btn { flex: 1 1 30%; min-height: 44px; padding: 8px 6px; white-space: normal; font-size: 12px; line-height: 1.2; }
  .cms-consent-modal .modal-dialog { margin: 10px; }
  .cms-consent-modal .modal-footer { display: flex; gap: 8px; }
  .cms-consent-modal .modal-footer .btn { flex: 1 1 auto; margin: 0; }
}

/* ==========================================================================
   Dark mode – html[data-theme="dark"] (set before first paint by partials/head.ejs, toggled by cms-front.js).
   Light mode is untouched TNM. Images are never inverted / filtered.
   ========================================================================== */
html[data-theme="dark"] {
  color-scheme: dark;
  --d-bg: #0e1016;
  --d-surface: #161a23;
  --d-surface-2: #1d222d;
  --d-surface-3: #272d3a;
  --d-border: rgba(255, 255, 255, .12);
  --d-border-soft: rgba(255, 255, 255, .08);
  --d-text: #d9dce3;
  --d-text-strong: #f2f4f8;
  --d-text-2: #b9bfcb;
  --d-muted: #a2a9b6;
  --d-link: #ff7466;
  --d-link-hover: #ff9a8f;
  background: var(--d-bg);
}
html[data-theme="dark"] body { background: var(--d-bg); color: var(--d-text); }
:where(html[data-theme="dark"]) a { color: var(--d-link); }
:where(html[data-theme="dark"]) a:hover, :where(html[data-theme="dark"]) a:focus { color: var(--d-link-hover); }
html[data-theme="dark"] ::selection { color: #fff; }
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3, html[data-theme="dark"] h4, html[data-theme="dark"] h5, html[data-theme="dark"] h6,
html[data-theme="dark"] .h1, html[data-theme="dark"] .h2, html[data-theme="dark"] .h3, html[data-theme="dark"] .h4 { color: var(--d-text-strong); }
html[data-theme="dark"] hr { border-color: var(--d-border); }
html[data-theme="dark"] .text-muted, html[data-theme="dark"] small { color: var(--d-muted); }

/* ---- Post cards & meta ---- */
html[data-theme="dark"] .post__title, html[data-theme="dark"] .entry-title, html[data-theme="dark"] .page-heading__title { color: var(--d-text-strong); }
html[data-theme="dark"] .post__excerpt, html[data-theme="dark"] .entry-excerpt { color: var(--d-text-2); }
html[data-theme="dark"] .post__meta, html[data-theme="dark"] .post__meta a, html[data-theme="dark"] .entry-meta, html[data-theme="dark"] .entry-meta a,
html[data-theme="dark"] .meta-text, html[data-theme="dark"] a.meta-text { color: var(--d-muted); }
html[data-theme="dark"] .post__meta .entry-author__name, html[data-theme="dark"] .post__meta a.entry-author__name,
html[data-theme="dark"] .entry-meta .entry-author__name { color: var(--d-text-2); }
html[data-theme="dark"] .entry-teaser, html[data-theme="dark"] .page-heading__subtitle { color: var(--d-text-2); }
html[data-theme="dark"] .post__meta--border-top, html[data-theme="dark"] .entry-meta--border-top { border-top-color: var(--d-border-soft); }
html[data-theme="dark"] img.cms-r-16x9, html[data-theme="dark"] img.cms-r-4x3, html[data-theme="dark"] img.cms-r-2x1, html[data-theme="dark"] img.cms-r-1x1 { background: var(--d-surface-2); }
html[data-theme="dark"] .cms-thumb-caption, html[data-theme="dark"] .cms-content figcaption, html[data-theme="dark"] .cms-content .wp-caption-text { color: var(--d-muted); }
html[data-theme="dark"] .single-entry-thumb, html[data-theme="dark"] .single-entry-featured-media { box-shadow: none; }
/* text sitting on photos / gradients stays white */
html[data-theme="dark"] .inverse-text .post__title, html[data-theme="dark"] .inverse-text .post__title a, html[data-theme="dark"] .inverse-text .entry-title { color: #fff; }
html[data-theme="dark"] .inverse-text .post__excerpt { color: rgba(255, 255, 255, .85); }
html[data-theme="dark"] .inverse-text .post__meta, html[data-theme="dark"] .inverse-text .post__meta a, html[data-theme="dark"] .inverse-text .entry-meta, html[data-theme="dark"] .inverse-text .entry-meta a { color: rgba(255, 255, 255, .78); }
html[data-theme="dark"] .inverse-text .entry-author__name.entry-author__name { color: rgba(255, 255, 255, .92); }

/* ---- Headings / blocks / lists ---- */
html[data-theme="dark"] .block-heading__title, html[data-theme="dark"] .widget__title-text { color: var(--d-text-strong); }
html[data-theme="dark"] .block-heading__subtitle, html[data-theme="dark"] .block-heading__secondary { color: var(--d-muted); }
html[data-theme="dark"] .block-heading--line.block-heading::after, html[data-theme="dark"] .has-block-heading-line .widget__title::after { border-top-color: var(--d-border); }
html[data-theme="dark"] .block-heading--line-under.block-heading { border-bottom-color: var(--d-border); }
html[data-theme="dark"] .list-seperated > *:not(:last-child), html[data-theme="dark"] .list-seperated-exclude-first > *:not(:last-child),
html[data-theme="dark"] .list-seperated-only-last > *:last-child { border-color: var(--d-border-soft); }
html[data-theme="dark"] .page-heading--has-background { background-color: var(--d-surface); box-shadow: 0 0 0 1px var(--d-border-soft); }
html[data-theme="dark"] .cms-breadcrumbs, html[data-theme="dark"] .cms-breadcrumbs a { color: var(--d-text-2); }

/* ---- Sidebar widgets ---- */
html[data-theme="dark"] .mnmd-widget-indexed-posts-c .list-index { color: var(--d-text-strong); }
html[data-theme="dark"] .mnmd-widget-indexed-posts-c .posts-list > li .post--overlay .list-index { color: #fff; }
html[data-theme="dark"] .mnmd-widget-most-commented .comments-count-box { background: var(--d-surface-3); }
html[data-theme="dark"] .mnmd-widget-most-commented .comments-count-box::before { border-top-color: var(--d-surface-3); }
html[data-theme="dark"] .cms-widget-categories li { border-bottom-color: var(--d-border-soft); }
html[data-theme="dark"] .cms-widget-categories li a { color: var(--d-text); }
html[data-theme="dark"] .cms-widget-categories li a:hover { color: var(--d-link-hover); }
html[data-theme="dark"] .cms-cat-count { color: var(--d-text-2); background: var(--d-surface-2); }
html[data-theme="dark"] .social-tile { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); }
html[data-theme="dark"] .mnmd-widget--box .widget__inner, html[data-theme="dark"] .widget-subscribe__inner { background: var(--d-surface); }

/* ---- Buttons & forms ---- */
html[data-theme="dark"] .btn { border-color: var(--d-border); box-shadow: none; }
html[data-theme="dark"] .btn-default { background: var(--d-surface-2); color: var(--d-text-strong); border-color: var(--d-border); }
html[data-theme="dark"] .btn-default:hover, html[data-theme="dark"] .btn-default:focus, html[data-theme="dark"] .btn-default:active { background: var(--d-surface-3); color: #fff; border-color: rgba(255, 255, 255, .22); }
html[data-theme="dark"] .btn-frame { color: var(--d-text); border-color: var(--d-border); }
html[data-theme="dark"] input[type="text"], html[data-theme="dark"] input[type="email"], html[data-theme="dark"] input[type="url"], html[data-theme="dark"] input[type="password"],
html[data-theme="dark"] input[type="search"], html[data-theme="dark"] input[type="tel"], html[data-theme="dark"] input[type="number"], html[data-theme="dark"] input[type="date"],
html[data-theme="dark"] textarea, html[data-theme="dark"] select, html[data-theme="dark"] .form-control {
  background-color: var(--d-surface-2); color: var(--d-text-strong); border-color: rgba(255, 255, 255, .18);
}
html[data-theme="dark"] input:focus, html[data-theme="dark"] textarea:focus, html[data-theme="dark"] select:focus, html[data-theme="dark"] .form-control:focus { border-color: rgba(255, 255, 255, .4); }
html[data-theme="dark"] ::placeholder { color: #8d94a1; opacity: 1; }
html[data-theme="dark"] input[type="button"]:not(.btn), html[data-theme="dark"] input[type="reset"]:not(.btn) { background: var(--d-surface-2); color: var(--d-text-strong); border-color: var(--d-border); }
html[data-theme="dark"] label, html[data-theme="dark"] .control-label { color: var(--d-text); }
html[data-theme="dark"] .help-block, html[data-theme="dark"] .cms-form .cms-form-text { color: var(--d-text-2); }
html[data-theme="dark"] .cms-form .cms-form-error, html[data-theme="dark"] .cms-field-error, html[data-theme="dark"] .cms-form-response.is-error { color: #ff8a80; }
html[data-theme="dark"] .cms-form-response.is-success { color: #6ee7a0; }
html[data-theme="dark"] .alert-success { background: rgba(34, 197, 94, .12); border-color: rgba(34, 197, 94, .35); color: #a7f3c4; }
html[data-theme="dark"] .alert-danger { background: rgba(239, 68, 68, .12); border-color: rgba(239, 68, 68, .35); color: #fecaca; }
html[data-theme="dark"] .alert-info, html[data-theme="dark"] .alert-warning { background: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }
html[data-theme="dark"] .search-form__input { color: var(--d-text-strong); }
html[data-theme="dark"] .search-form--btn-inside .search-form__submit, html[data-theme="dark"] .widget_search .search-form__submit { color: var(--d-muted); }
html[data-theme="dark"] .subscribe-form--has-background { background-color: var(--d-surface); border-color: var(--d-border-soft); }
html[data-theme="dark"] .subscribe-form, html[data-theme="dark"] .subscribe-form h3, html[data-theme="dark"] .subscribe-form__title { color: var(--d-text-strong); }
html[data-theme="dark"] .subscribe-form p, html[data-theme="dark"] .subscribe-form__note { color: var(--d-text-2); }
html[data-theme="dark"] .cms-switch span { background: #4a5263; }

/* ---- Pagination ---- */
html[data-theme="dark"] .mnmd-pagination__item { background: var(--d-surface-2); color: var(--d-text-strong); }
html[data-theme="dark"] .mnmd-pagination__item:hover, html[data-theme="dark"] .mnmd-pagination__item:focus { background: var(--d-surface-3); color: #fff; }
html[data-theme="dark"] .mnmd-pagination__item-current, html[data-theme="dark"] .mnmd-pagination__item-current:hover { background: var(--cms-primary, #EF3A2B); color: #fff; }
html[data-theme="dark"] .mnmd-pagination__dots { color: var(--d-muted); }
html[data-theme="dark"] .mnmd-pagination .tnm-no-more-button { background: var(--d-surface-2); }
html[data-theme="dark"] .mnmd-pagination.mnmd-pagination--next-n-prev { border-top-color: var(--d-border-soft); }

/* ---- Header: dropdowns, mega menu, search, ticker ---- */
html[data-theme="dark"] .navigation--main > li > .sub-menu, html[data-theme="dark"] .navigation--main li > .sub-menu .sub-menu, html[data-theme="dark"] .mnmd-mega-menu {
  background: var(--d-surface); box-shadow: 0 0 0 1px var(--d-border-soft), 0 12px 28px rgba(0, 0, 0, .45);
}
html[data-theme="dark"] .navigation--main .sub-menu, html[data-theme="dark"] .navigation--main .sub-menu a { color: var(--d-text); }
html[data-theme="dark"] .navigation--main .sub-menu li:hover > a { background: var(--d-surface-2); color: #fff; }
html[data-theme="dark"] .mnmd-mega-menu .post__title a { color: var(--d-text-strong); }
html[data-theme="dark"] .header-search-dropdown { background-color: var(--d-surface); }
html[data-theme="dark"] .header-search-dropdown.is-active { box-shadow: 0 1px 0 var(--d-border-soft), 0 12px 28px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .header-search-dropdown .search-form__input { background: transparent; color: var(--d-text-strong); }
html[data-theme="dark"] .search-results, html[data-theme="dark"] .noresult-text { color: var(--d-text); }
html[data-theme="dark"] .search-results__section-heading { border-bottom-color: var(--d-border-soft); }
html[data-theme="dark"] .search-results__section-heading-title { color: var(--d-text-strong); }
html[data-theme="dark"] .typing-loader { box-shadow: 9984px 0 0 0 var(--d-text-2), 9999px 0 0 0 var(--d-text-2), 10014px 0 0 0 var(--d-text-2); }
html[data-theme="dark"] .mnmd-news-ticker__inner, html[data-theme="dark"] .mnmd-news-ticker--fw { background-color: var(--d-surface); border-color: var(--d-border-soft); }
html[data-theme="dark"] .mnmd-news-ticker__content .post__title a, html[data-theme="dark"] .mnmd-news-ticker .post__title { color: var(--d-text-strong); }
html[data-theme="dark"] .mnmd-news-ticker__next, html[data-theme="dark"] .mnmd-news-ticker__prev { background: var(--d-surface-2); color: var(--d-text); }
html[data-theme="dark"] .cms-top-bar { background: #05060a; }

/* ---- Off-canvas menu ---- */
html[data-theme="dark"] .mnmd-offcanvas { background: var(--d-surface); color: var(--d-text); }
html[data-theme="dark"] .mnmd-offcanvas.is-active { box-shadow: 0 0 0 1px var(--d-border-soft), 0 10px 40px rgba(0, 0, 0, .6); }
html[data-theme="dark"] .mnmd-offcanvas-backdrop { background: rgba(0, 0, 0, .6); }
html[data-theme="dark"] .mnmd-offcanvas-close { border-color: var(--d-border); color: var(--d-text-2) !important; }
html[data-theme="dark"] .mnmd-offcanvas__title .social-list, html[data-theme="dark"] .mnmd-offcanvas .social-list > li > a { color: var(--d-text-2); }
html[data-theme="dark"] .mnmd-offcanvas .social-list > li > a:hover { color: #fff; }
html[data-theme="dark"] .mnmd-offcanvas__section:not(:first-child) { border-top-color: var(--d-border-soft); }
html[data-theme="dark"] .navigation--offcanvas li, html[data-theme="dark"] .navigation--offcanvas li > a { color: var(--d-text); }
html[data-theme="dark"] .navigation--offcanvas li > a:hover { background: var(--d-surface-2); color: #fff; }
html[data-theme="dark"] .navigation--offcanvas .sub-menu, html[data-theme="dark"] .navigation--offcanvas .sub-menu li > a { color: var(--d-text-2); }
html[data-theme="dark"] .navigation--offcanvas li.menu-item-has-children > a .submenu-toggle, html[data-theme="dark"] .navigation--offcanvas .submenu-toggle { color: var(--d-text-2); }
html[data-theme="dark"] .cms-theme-toggle--block { color: var(--d-text); }
html[data-theme="dark"] .cms-theme-toggle__switch { background: #4a5263; }

/* ---- Single post ---- */
html[data-theme="dark"] .post--single .single-body, html[data-theme="dark"] .typography-copy { color: var(--d-text); }
html[data-theme="dark"] .typography-copy h1, html[data-theme="dark"] .typography-copy h2, html[data-theme="dark"] .typography-copy h3, html[data-theme="dark"] .typography-copy h4, html[data-theme="dark"] .typography-copy h6 { color: var(--d-text-strong); }
html[data-theme="dark"] .typography-copy h5, html[data-theme="dark"] .comment-content h5 { color: var(--d-text-2); }
html[data-theme="dark"] .typography-copy blockquote, html[data-theme="dark"] .comment-content blockquote { border-left-color: var(--cms-primary, #EF3A2B); color: var(--d-text-2); background: transparent; }
html[data-theme="dark"] .typography-copy blockquote::before, html[data-theme="dark"] .comment-content blockquote::before { color: var(--d-surface-3); }
html[data-theme="dark"] .typography-copy mark, html[data-theme="dark"] .comment-content mark { background: #f5e86a; color: #111; }
html[data-theme="dark"] .typography-copy .wp-block-pullquote cite { color: var(--d-text-2); }
html[data-theme="dark"] .entry-tags__icon, html[data-theme="dark"] .entry-categories__icon { color: var(--d-muted); }
html[data-theme="dark"] .entry-tags ul > li > a { color: var(--d-text-2); }
html[data-theme="dark"] .entry-tags ul > li > a:hover { color: #fff; }
html[data-theme="dark"] .entry-interaction--border-top { border-top-color: var(--d-border-soft); }
html[data-theme="dark"] .post-sharing--simple .sharing-btn, html[data-theme="dark"] .entry-action-btn { box-shadow: none; }
html[data-theme="dark"] .post-sharing--simple .cms-copy-btn { background: #4b5563; }
html[data-theme="dark"] .author-box { background: var(--d-surface); border-color: var(--d-border-soft); }
html[data-theme="dark"] .author-box .author-avatar { border-color: var(--d-surface-3); box-shadow: none; }
html[data-theme="dark"] .author-box .author-name a { color: var(--d-link); }
html[data-theme="dark"] .author-box .author-bio, html[data-theme="dark"] .author-box .author-info, html[data-theme="dark"] .author-box .author-info a, html[data-theme="dark"] .author-box .author-bio a, html[data-theme="dark"] .cms-author-role { color: var(--d-text-2); }
html[data-theme="dark"] .author-box .author-info a:hover { color: #fff; }

/* ---- Rich content (matches the admin editor CONTENT_STYLE) ---- */
html[data-theme="dark"] .cms-content .lead { color: var(--d-text-2); }
html[data-theme="dark"] .cms-content .callout-info { background: rgba(59, 130, 246, .12); border-color: rgba(96, 165, 250, .4); }
html[data-theme="dark"] .cms-content .callout-warning { background: rgba(245, 158, 11, .12); border-color: rgba(251, 191, 36, .4); }
html[data-theme="dark"] .cms-content .callout-danger { background: rgba(239, 68, 68, .12); border-color: rgba(248, 113, 113, .4); }
html[data-theme="dark"] .cms-content .callout-success { background: rgba(34, 197, 94, .12); border-color: rgba(74, 222, 128, .4); }
html[data-theme="dark"] .cms-content .callout { color: var(--d-text); }
html[data-theme="dark"] .cms-content .highlight-box { background: var(--d-surface-2); }
html[data-theme="dark"] .cms-content .text-uppercase-label { color: var(--d-muted); }
html[data-theme="dark"] .cms-content .cms-button--primary { background: #2563eb; }
html[data-theme="dark"] .cms-content .cms-button--dark { background: #f2f4f8; color: #111827 !important; }
html[data-theme="dark"] .cms-content .cms-button--success { background: #15803d; }
html[data-theme="dark"] .cms-content .cms-button--danger { background: #be123c; }
html[data-theme="dark"] .cms-content .cms-button--outline { border-color: #60a5fa; color: #93c5fd !important; }
html[data-theme="dark"] .cms-content .cms-button--light { background: var(--d-surface-3); color: var(--d-text-strong) !important; }
html[data-theme="dark"] .cms-content .cms-file { background: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text-strong); }
html[data-theme="dark"] .cms-content .cms-file small { color: var(--d-muted); }
html[data-theme="dark"] .cms-content table td, html[data-theme="dark"] .cms-content table th, html[data-theme="dark"] .wp-block-table td, html[data-theme="dark"] .wp-block-table th { border-color: var(--d-border); }
html[data-theme="dark"] .cms-content table th { background: var(--d-surface-2); color: var(--d-text-strong); }
html[data-theme="dark"] .wp-block-table tbody tr:nth-child(2n), html[data-theme="dark"] .cms-content table tbody tr:nth-child(2n) td { background-color: rgba(255, 255, 255, .025); }
html[data-theme="dark"] .cms-content pre { background: #05070c; color: #e2e8f0; border: 1px solid var(--d-border-soft); }
html[data-theme="dark"] .cms-content :not(pre) > code, html[data-theme="dark"] .typography-copy :not(pre) > code, html[data-theme="dark"] code, html[data-theme="dark"] kbd { background: var(--d-surface-3); color: #ffd1cc; }
html[data-theme="dark"] .cms-content pre code { background: transparent; color: inherit; }
html[data-theme="dark"] .cms-content hr, html[data-theme="dark"] .typography-copy hr { border-color: var(--d-border); }
html[data-theme="dark"] .cms-content [style*="color: rgb(0, 0, 0)"], html[data-theme="dark"] .cms-content [style*="color: #000"], html[data-theme="dark"] .cms-content [style*="color:#000"] { color: var(--d-text) !important; }
html[data-theme="dark"] .cms-content [style*="background-color: rgb(255, 255, 255)"], html[data-theme="dark"] .cms-content [style*="background-color: #fff"] { background-color: transparent !important; }

/* ---- Comments ---- */
html[data-theme="dark"] .comments-title, html[data-theme="dark"] .comment-reply-title, html[data-theme="dark"] .comments-title .add-comment { color: var(--d-text-strong); border-top-color: var(--d-border-soft); }
html[data-theme="dark"] .comments-title::before, html[data-theme="dark"] .comment-reply-link::before, html[data-theme="dark"] .comment-metadata .comment-edit-link::before { color: var(--d-muted); }
html[data-theme="dark"] .comment-list > li:not(:first-child), html[data-theme="dark"] .comment-list ol.children > li { border-top-color: var(--d-border-soft); }
html[data-theme="dark"] .comment-author, html[data-theme="dark"] .comment-author .fn, html[data-theme="dark"] .comment-author a { color: var(--d-text-strong); }
html[data-theme="dark"] .comment-metadata, html[data-theme="dark"] .comment-metadata a, html[data-theme="dark"] .comment-metadata a:hover { color: var(--d-muted); }
html[data-theme="dark"] .comment-content, html[data-theme="dark"] .comment-notes, html[data-theme="dark"] .cms-comments-closed { color: var(--d-text-2); }
html[data-theme="dark"] .comment-reply-link, html[data-theme="dark"] .comment-reply-link:hover { color: var(--d-text-strong); }
html[data-theme="dark"] .comment-content .info { background: var(--d-surface-2); }
html[data-theme="dark"] #respond.is-replying { background: var(--d-surface); }
html[data-theme="dark"] .cms-avatar { color: #06261f; }

/* ---- CMS components ---- */
html[data-theme="dark"] .cms-empty-state { color: var(--d-text-2); border-color: var(--d-border); }
html[data-theme="dark"] .cms-empty-state .mdicon { color: var(--d-surface-3); }
html[data-theme="dark"] .cms-empty-state h3 { color: var(--d-text-strong); }
html[data-theme="dark"] .cms-notice--success { background: rgba(34, 197, 94, .12); color: #a7f3c4; border-color: rgba(34, 197, 94, .35); }
html[data-theme="dark"] .cms-notice--error { background: rgba(239, 68, 68, .12); color: #fecaca; border-color: rgba(239, 68, 68, .35); }
html[data-theme="dark"] .cms-contact-card { background: var(--d-surface); }
html[data-theme="dark"] .cms-contact-card__list li { border-bottom-color: var(--d-border-soft); }
html[data-theme="dark"] .cms-contact-card__list a, html[data-theme="dark"] .cms-contact-card .social-list > li > a { color: var(--d-text-strong); }
html[data-theme="dark"] .cms-contact-card__icon { color: var(--d-link); }
html[data-theme="dark"] .social-list > li > a { color: var(--d-text-2); }
html[data-theme="dark"] .social-list > li > a:hover { color: #fff; }
html[data-theme="dark"] .cms-faq__item { background: var(--d-surface); border-color: var(--d-border-soft); }
html[data-theme="dark"] .cms-faq__item[open] .cms-faq__q { border-bottom-color: var(--d-border-soft); }
html[data-theme="dark"] .cms-faq__a, html[data-theme="dark"] .cms-faq__intro, html[data-theme="dark"] .cms-features__intro, html[data-theme="dark"] .cms-feature__text { color: var(--d-text-2); }
html[data-theme="dark"] .cms-testimonial { background: var(--d-surface); }
html[data-theme="dark"] .cms-testimonial__quote { color: var(--d-text); }
html[data-theme="dark"] .cms-testimonial__author small { color: var(--d-muted); }
html[data-theme="dark"] .cms-cta--light { background-color: var(--d-surface); }
html[data-theme="dark"] .cms-cta--light .cms-cta__title { color: var(--d-text-strong); }
html[data-theme="dark"] .cms-cta--dark { background-color: #05060a; box-shadow: inset 0 0 0 1px var(--d-border-soft); }
html[data-theme="dark"] .cms-logos--gray .cms-logos__item img { opacity: .8; }
html[data-theme="dark"] .cms-skip-link { background: var(--d-surface-3); color: #fff; }

/* ---- Cookie banner + modals ---- */
html[data-theme="dark"] .cms-consent { background: var(--d-surface-2); box-shadow: 0 0 0 1px var(--d-border), 0 18px 50px -12px rgba(0, 0, 0, .8); }
html[data-theme="dark"] .modal-content { background: var(--d-surface); color: var(--d-text); border-color: var(--d-border); box-shadow: 0 20px 60px rgba(0, 0, 0, .7); }
html[data-theme="dark"] .modal-header, html[data-theme="dark"] .modal-footer { border-color: var(--d-border-soft); }
html[data-theme="dark"] .modal-title { color: var(--d-text-strong); }
html[data-theme="dark"] .modal .close { color: #fff; text-shadow: none; opacity: .7; }
html[data-theme="dark"] .modal-backdrop.in { opacity: .7; }
html[data-theme="dark"] .cms-consent-modal__intro, html[data-theme="dark"] .cms-consent-cat p { color: var(--d-text-2); }
html[data-theme="dark"] .cms-consent-cat { border-color: var(--d-border); }
html[data-theme="dark"] .cms-consent-cat strong { color: var(--d-text-strong); }

/* ---- 404 ---- */
html[data-theme="dark"] .page-404-text, html[data-theme="dark"] .page-404-text p { color: var(--d-text-2); }
html[data-theme="dark"] .page-404-image img { border-radius: 6px; }

/* ---- Footer (already dark navy in TNM footer-6 – slightly deeper so it separates from the page) ---- */
html[data-theme="dark"] .footer-6.site-footer { background-color: #0b0a2b; box-shadow: 0 -1px 0 var(--d-border-soft); }
html[data-theme="dark"] .mnmd-go-top { background: var(--d-surface-2); color: var(--d-text-strong); border-color: var(--d-border); }

/* ---- Misc theme elements ---- */
html[data-theme="dark"] .tooltip-inner { background: #f2f4f8; color: #111; }
html[data-theme="dark"] .tooltip.top .tooltip-arrow { border-top-color: #f2f4f8; }
html[data-theme="dark"] .cms-preview-ribbon { background: #05060a; }
html[data-theme="dark"] .single-entry--template-4-alt .single-header-with-bg, html[data-theme="dark"] .block-heading--box, html[data-theme="dark"] .post__meta--box { background: var(--d-surface); border-color: var(--d-border-soft); }
html[data-theme="dark"] .bk-preload-wrapper { background: var(--d-bg); }
/* category accent colours are admin-defined for light backgrounds – lift them on dark backgrounds */
html[data-theme="dark"] .post__cat.cat-theme, html[data-theme="dark"] .entry-cat.cat-theme, html[data-theme="dark"] .block-heading__title .cat-theme { filter: brightness(1.75) saturate(.9); }
html[data-theme="dark"] .social-tile__count { color: rgba(255, 255, 255, .88); }
html[data-theme="dark"] .social-tile__title { color: #fff; }
@media (max-width: 991px) {
  .mnmd-news-ticker__next, .mnmd-news-ticker__prev { width: 44px; height: 44px; }
}
@media (max-width: 767px) {
  input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], select, .form-control:not(textarea) { min-height: 44px; }
  select, select.form-control { height: auto; padding-top: 8px; padding-bottom: 8px; line-height: 1.4; }
  .cms-form .checkbox label, .cms-form .radio label { min-height: 32px; padding-top: 4px; }
}
@media (max-width: 767px) {
  .cms-table-scroll > table:has(tr > :nth-child(3)) { min-width: 540px; }
  .cms-table-scroll > table:has(tr > :nth-child(4)) { min-width: 680px; }
  .cms-table-scroll > table code { white-space: nowrap; }
}
/* Header: give the menu room on small desktops (social links remain in the off-canvas menu + footer) */
@media (min-width: 992px) and (max-width: 1279px) {
  .navigation-bar .navigation-bar__section .social-list--inverse { display: none; }
  .navigation-bar .navigation-bar__section:has(> .social-list--inverse) { display: none; }
}
/* Page content headings (pages don't use .single-body) */
.cms-page .cms-content h2, .cms-page .cms-content h3, .cms-page .cms-content h4 { font-weight: 800; }
.cms-page .cms-content h2 { font-size: 1.75em; margin-top: 1.6em; }
.cms-page .cms-content h3 { font-size: 1.3em; }
.cms-page .cms-content .highlight-box ol { margin-bottom: 0; }
/* Share on X uses the X brand colour (white text passes AA) */
.post-sharing--simple .cms-x-btn { background-color: #000 !important; }
html[data-theme="dark"] .post-sharing--simple .cms-x-btn { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
/* Primary actions: slightly deeper brand red in dark mode so white labels reach 4.5:1 */
html[data-theme="dark"] .btn-primary, html[data-theme="dark"] .btn-primary:focus, html[data-theme="dark"] .comment-form .form-submit input[type="submit"], html[data-theme="dark"] .subscribe-form__fields input[type="submit"],
html[data-theme="dark"] .mnmd-pagination__item-current, html[data-theme="dark"] .entry-action-btn { background-color: #d42f22 !important; border-color: #d42f22; }
html[data-theme="dark"] .btn-primary:hover, html[data-theme="dark"] .comment-form .form-submit input[type="submit"]:hover { background-color: #bf2a1e !important; }
html[data-theme="dark"] .social-tile__title, html[data-theme="dark"] .social-tile__count { text-shadow: 0 1px 2px rgba(0, 0, 0, .45); }

/* ───────── Newsletter unsubscribe page ───────── */
.cms-unsub { max-width: 560px; margin: 48px auto 72px; padding: 40px 32px; text-align: center; background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; box-shadow: 0 20px 40px -24px rgba(0,0,0,.25); }
.cms-unsub__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: rgba(var(--cms-primary-rgb, 239,58,43), .1); color: var(--cms-primary, #da3527); margin-bottom: 18px; }
.cms-unsub__icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cms-unsub__title { font-size: 26px; font-weight: 800; margin: 0 0 12px; line-height: 1.25; }
.cms-unsub__text { color: #555; font-size: 16px; line-height: 1.6; margin: 0 0 24px; word-break: break-word; }
.cms-unsub__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.cms-unsub__actions .btn, .cms-unsub__form .btn { min-height: 44px; padding: 10px 22px; border-radius: 6px; font-weight: 700; }
.cms-unsub__form { display: grid; gap: 12px; max-width: 380px; margin: 0 auto; text-align: left; }
.cms-unsub__form .form-control { height: 46px; font-size: 16px; }
.cms-unsub__error { color: #b42318; font-size: 14px; margin: 0; }
.cms-unsub-link { text-decoration: underline; color: inherit; margin-left: 4px; }
@media (max-width: 575px) { .cms-unsub { margin: 24px auto 48px; padding: 28px 20px; } .cms-unsub__title { font-size: 22px; } .cms-unsub__actions .btn { width: 100%; } }
html[data-theme="dark"] .cms-unsub { background: #1b1f2a; border-color: rgba(255,255,255,.08); }
html[data-theme="dark"] .cms-unsub__text { color: #c7cbd6; }
html[data-theme="dark"] .cms-unsub__icon { color: #ff7a6e; }
html[data-theme="dark"] .cms-unsub__error { color: #ff8a80; }

/* ==========================================================================
   Motion layer (public/front/js/cms-motion.js – GSAP ScrollTrigger + Lenis).
   Every rule is gated by a class that JS sets (html.cms-motion*, html.lenis), so without JS or with
   prefers-reduced-motion the site renders exactly as before. Only opacity / transform / clip-path are used.
   ========================================================================== */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth iframe { pointer-events: none; }
.lenis [data-lenis-prevent], .lenis .mnmd-offcanvas, .lenis .header-search-dropdown, .lenis .cms-table-scroll, .lenis pre { overscroll-behavior: contain; }

/* Above-the-fold intro start states (head.ejs adds .cms-motion-intro; cms-motion.js swaps them for inline GSAP states) */
html.cms-motion-intro .mnmd-featured-block-b .post--horizontal-lg .post__text > *,
html.cms-motion-intro .mnmd-featured-block-b .row .post--vertical,
html.cms-motion-intro .mnmd-featured-block-b .mnmd-news-ticker,
html.cms-motion-intro .single-header > *,
html.cms-motion-intro .page-heading > .container > *,
html.cms-motion-intro .page-404-logo, html.cms-motion-intro .page-404-image,
html.cms-motion-intro .page-404-text, html.cms-motion-intro .page-404-search { opacity: 0; }
html.cms-motion-intro .mnmd-featured-block-b .post--horizontal-lg .post__thumb { clip-path: inset(7% 7% 7% 7% round 18px); }

/* Hero (featured block B): layered light on the gradient + cursor glow */
html.cms-motion .mnmd-featured-block-b { overflow: hidden; overflow: clip; }
html.cms-motion .mnmd-featured-block-b .mnmd-block__background { overflow: hidden; will-change: transform; }
html.cms-motion .mnmd-featured-block-b .post--horizontal-lg .post__thumb { overflow: hidden; }
html.cms-motion .mnmd-featured-block-b .post--horizontal-lg .post__thumb > a { transform-origin: 50% 50%; }
.cms-hero-fx { display: none; }
html.cms-motion .cms-hero-fx { display: block; position: absolute; inset: 0; pointer-events: none; }
.cms-hero-fx > span { position: absolute; border-radius: 50%; pointer-events: none; }
.cms-hero-fx__a { width: 70vw; height: 70vw; left: -18vw; top: -38vw; background: radial-gradient(closest-side, rgba(255, 255, 255, .30), rgba(255, 255, 255, 0)); mix-blend-mode: soft-light; }
.cms-hero-fx__b { width: 56vw; height: 56vw; right: -14vw; bottom: -30vw; background: radial-gradient(closest-side, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0)); mix-blend-mode: overlay; }
.cms-hero-fx__glow { width: 640px; height: 640px; left: 0; top: 0; opacity: 0; transition: opacity .6s ease; background: radial-gradient(closest-side, rgba(255, 255, 255, .34), rgba(255, 255, 255, 0)); mix-blend-mode: soft-light; }
.mnmd-featured-block-b.is-pointer .cms-hero-fx__glow { opacity: 1; }

/* Cards: masked thumbnails (for inner zoom / parallax) + pointer sheen */
html.cms-motion .post__thumb > a { position: relative; overflow: hidden; }
.cms-sheen { display: none; }
html.cms-motion-fine .cms-sheen { display: block; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .45s ease; background: radial-gradient(circle at var(--sx, 50%) var(--sy, 50%), rgba(255, 255, 255, .38), rgba(255, 255, 255, 0) 55%); mix-blend-mode: soft-light; }
html.cms-motion-fine .is-hovered .cms-sheen { opacity: 1; }
html.cms-motion-fine .post--overlay { transition: box-shadow .5s ease; }
html.cms-motion-fine #main-content .post--overlay.is-hovered { box-shadow: 0 26px 50px -22px rgba(0, 0, 0, .5); }

/* Section headings: underline draws in */
html.cms-motion #main-content .block-heading--line::after { transform-origin: 0 50%; transition: transform 1.1s cubic-bezier(.16, 1, .3, 1) .15s; }
html.cms-motion #main-content .block-heading--line:not(.is-drawn)::after { transform: scaleX(0); }

/* Subscribe / CTA: slow drifting light (compositor-only transform animation) */
html.cms-motion .subscribe-form--has-background { position: relative; overflow: hidden; isolation: isolate; }
html.cms-motion .subscribe-form--has-background::before { content: ''; position: absolute; inset: -50%; z-index: -1; pointer-events: none; background: radial-gradient(32% 32% at 30% 40%, rgba(var(--cms-primary-rgb, 239, 58, 43), .10), rgba(var(--cms-primary-rgb, 239, 58, 43), 0) 70%), radial-gradient(28% 28% at 70% 62%, rgba(var(--cms-primary-rgb, 239, 58, 43), .08), rgba(var(--cms-primary-rgb, 239, 58, 43), 0) 70%); animation: cms-drift 16s ease-in-out infinite alternate; }
html.cms-motion .cms-cta { isolation: isolate; }
html.cms-motion .cms-cta__inner { z-index: 1; }
html.cms-motion .cms-cta::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 45%; pointer-events: none; background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .14) 50%, rgba(255, 255, 255, 0) 100%); transform: translateX(-120%) skewX(-12deg); animation: cms-sweep 7s cubic-bezier(.45, 0, .2, 1) 1.5s infinite; }
@keyframes cms-drift { from { transform: translate3d(-6%, -4%, 0) rotate(0deg); } to { transform: translate3d(6%, 4%, 0) rotate(28deg); } }
@keyframes cms-sweep { 0% { transform: translateX(-120%) skewX(-12deg); } 45%, 100% { transform: translateX(340%) skewX(-12deg); } }

/* Single post: reading progress + featured image mask */
.cms-read-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 10002; pointer-events: none; transform: scaleX(0); transform-origin: 0 50%; background: var(--cms-primary, #EF3A2B); box-shadow: 0 0 10px rgba(var(--cms-primary-rgb, 239, 58, 43), .55); }
html:not(.cms-motion) .cms-read-progress { display: none; }
.cms-zoom-mask { display: block; overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .cms-hero-fx, .cms-sheen, .cms-read-progress { display: none !important; }
  html.cms-motion .subscribe-form--has-background::before, html.cms-motion .cms-cta::after { animation: none; display: none; }
}
@media print {
  .cms-hero-fx, .cms-sheen, .cms-read-progress { display: none !important; }
  html.cms-motion #main-content *, html.cms-motion .site-footer * { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}

/* ───────── Header: off-canvas (hamburger) toggle only on mobile & tablet ───────── */
@media (min-width: 1200px) {
  .navigation-bar .offcanvas-menu-toggle, .sticky-header .offcanvas-menu-toggle { display: none !important; }
}

/* ───────── Sticky footer: footer always sits at the bottom of the viewport on short pages ───────── */
.site-wrapper { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.site-wrapper > .site-content { flex: 1 0 auto; }
.site-wrapper > .site-footer { flex-shrink: 0; margin-top: auto; }

/* ───────── Contact page (template: contact) ───────── */
.cms-page--contact .page-heading { background: linear-gradient(135deg, #f6f7fb 0%, #eef1f8 100%); position: relative; overflow: hidden; }
.cms-page--contact .page-heading::after { content: ""; position: absolute; right: -120px; top: -140px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(var(--cms-primary-rgb, 239,58,43), .12), transparent 65%); pointer-events: none; }
.cms-page--contact .page-heading .container { position: relative; z-index: 1; }
.cms-page--contact .single-content { padding-top: 8px; }
.cms-contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; margin: 8px 0 24px; }
.cms-contact-main { background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: 18px; padding: 40px 44px; box-shadow: 0 24px 60px -32px rgba(15, 23, 42, .28); }
.cms-contact-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--cms-primary, #da3527); }
.cms-contact-eyebrow::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.cms-contact-main__title { font-size: 30px; font-weight: 800; line-height: 1.2; margin: 10px 0 8px; letter-spacing: -.01em; }
.cms-contact-main__body { color: #4b5563; font-size: 16px; }
.cms-contact-main__body > p:first-child { margin-bottom: 26px; }
.cms-contact-main .cms-form .form-group { margin-bottom: 20px; }
.cms-contact-main .cms-form .control-label { font-size: 14px; font-weight: 700; color: #1f2937; }
.cms-contact-main .cms-form .form-control { height: 50px; border-radius: 10px; border: 1px solid #dfe3ea; background: #f9fafc; box-shadow: none; padding: 12px 16px; font-size: 16px; transition: border-color .2s, box-shadow .2s, background-color .2s; }
.cms-contact-main .cms-form textarea.form-control { height: auto; min-height: 170px; resize: vertical; }
.cms-contact-main .cms-form select.form-control { padding-top: 10px; padding-bottom: 10px; }
.cms-contact-main .cms-form .form-control:hover { border-color: #c9cfda; }
.cms-contact-main .cms-form .form-control:focus { background: #fff; border-color: var(--cms-primary, #da3527); box-shadow: 0 0 0 4px rgba(var(--cms-primary-rgb, 239,58,43), .14); outline: 0; }
.cms-contact-main .cms-form .checkbox label { color: #4b5563; }
.cms-contact-main .cms-form .btn-primary { min-height: 52px; padding: 12px 34px; border-radius: 10px; font-weight: 800; letter-spacing: .02em; border: 0; box-shadow: 0 12px 24px -12px rgba(var(--cms-primary-rgb, 239,58,43), .7); transition: transform .2s, box-shadow .2s; }
.cms-contact-main .cms-form .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 16px 28px -12px rgba(var(--cms-primary-rgb, 239,58,43), .8); }
.cms-contact-side { display: grid; gap: 20px; position: sticky; top: 90px; }
.cms-contact-highlights { display: grid; gap: 12px; }
.cms-contact-hl { display: flex; gap: 14px; align-items: flex-start; padding: 18px; background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: 14px; transition: transform .2s, box-shadow .2s, border-color .2s; }
.cms-contact-hl:hover { transform: translateY(-2px); border-color: rgba(var(--cms-primary-rgb, 239,58,43), .3); box-shadow: 0 14px 30px -20px rgba(15, 23, 42, .35); }
.cms-contact-hl strong { display: block; font-size: 15px; color: #111827; margin-bottom: 2px; }
.cms-contact-hl span:not(.cms-contact-hl__icon) { display: block; font-size: 14px; color: #5b6472; line-height: 1.5; }
.cms-contact-hl__icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(var(--cms-primary-rgb, 239,58,43), .1); color: var(--cms-primary, #da3527); }
.cms-contact-hl__icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cms-contact-layout .cms-contact-card { margin: 0; border-top: 0; border-radius: 16px; padding: 26px; color: #fff; background: radial-gradient(120% 120% at 100% 0%, #3b2a8c 0%, transparent 55%), linear-gradient(160deg, #1c1957 0%, #12162d 100%); box-shadow: 0 24px 50px -28px rgba(18, 22, 45, .7); }
.cms-contact-layout .cms-contact-card__title { color: #fff; font-size: 22px; font-weight: 800; }
.cms-contact-layout .cms-contact-card__company, .cms-contact-layout .cms-contact-card__text { color: rgba(255,255,255,.82); }
.cms-contact-layout .cms-contact-card__list li { border-bottom-color: rgba(255,255,255,.1); color: rgba(255,255,255,.9); }
.cms-contact-layout .cms-contact-card__list a { color: #fff; }
.cms-contact-layout .cms-contact-card__icon { color: #ff8a7e; }
.cms-contact-layout .cms-contact-card__social { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; }
.cms-contact-layout .cms-contact-card__social > li { margin: 0; }
.cms-contact-layout .cms-contact-card__social > li > a { color: #fff; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: rgba(255,255,255,.08); transition: background-color .2s, transform .2s; }
.cms-contact-layout .cms-contact-card__social > li > a:hover { background: var(--cms-primary, #da3527); transform: translateY(-2px); }
@media (max-width: 1199px) { .cms-contact-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; } .cms-contact-main { padding: 32px; } }
@media (max-width: 991px) {
  .cms-contact-layout { grid-template-columns: 1fr; }
  .cms-contact-side { position: static; }
  .cms-contact-highlights { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .cms-contact-main { padding: 24px 20px; border-radius: 14px; }
  .cms-contact-main__title { font-size: 24px; }
  .cms-contact-highlights { grid-template-columns: 1fr; }
  .cms-contact-main .cms-form .btn-primary { width: 100%; }
}
html[data-theme="dark"] .cms-page--contact .page-heading { background: linear-gradient(135deg, var(--d-surface) 0%, var(--d-bg) 100%); }
html[data-theme="dark"] .cms-contact-main, html[data-theme="dark"] .cms-contact-hl { background: var(--d-surface); border-color: var(--d-border-soft); box-shadow: 0 24px 60px -32px rgba(0,0,0,.8); }
html[data-theme="dark"] .cms-contact-main__title, html[data-theme="dark"] .cms-contact-hl strong, html[data-theme="dark"] .cms-contact-main .cms-form .control-label { color: var(--d-text-strong); }
html[data-theme="dark"] .cms-contact-main__body, html[data-theme="dark"] .cms-contact-hl span:not(.cms-contact-hl__icon), html[data-theme="dark"] .cms-contact-main .cms-form .checkbox label { color: var(--d-text-2); }
html[data-theme="dark"] .cms-contact-main .cms-form .form-control { background: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text-strong); }
html[data-theme="dark"] .cms-contact-main .cms-form .form-control:focus { background: var(--d-surface-3); border-color: var(--d-link); box-shadow: 0 0 0 4px rgba(255, 116, 102, .18); }
html[data-theme="dark"] .cms-contact-eyebrow, html[data-theme="dark"] .cms-contact-hl__icon { color: var(--d-link); }
html[data-theme="dark"] .cms-contact-layout .cms-contact-card { background: radial-gradient(120% 120% at 100% 0%, #2c2470 0%, transparent 55%), linear-gradient(160deg, #1d222d 0%, #12151d 100%); border: 1px solid var(--d-border-soft); }

/* ───────── Ads Manager slots (views/front/partials/ad-slot.ejs · services/ads.js) ───────── */
.cms-ad { position: relative; display: block; margin: 0 auto; max-width: 100%; clear: both; }
.cms-ad__frame { display: block; position: relative; overflow: hidden; border-radius: 10px; background: #f3f4f7; border: 1px solid rgba(0,0,0,.06); line-height: 0; text-decoration: none !important; transition: transform .25s, box-shadow .25s; }
a.cms-ad__frame:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -20px rgba(0,0,0,.4); }
.cms-ad__frame picture, .cms-ad__frame img { display: block; width: 100%; }
.cms-ad__frame img { height: auto; }
.cms-ad__html { line-height: 1.5; padding: 0; }
.cms-ad__html img { max-width: 100%; height: auto; }
.cms-ad__label { display: block; text-align: right; font-size: 10px; line-height: 1; letter-spacing: .14em; text-transform: uppercase; color: #6b7280; font-weight: 700; margin: 0 2px 6px; }
/* Wide (970 × 250 billboard / 728 × 90 leaderboard): full width of the main column, sensible max height */
.cms-ad--wide { width: 100%; }
.cms-ad--wide .cms-ad__frame img { max-height: 320px; object-fit: cover; }
/* Square 300 × 250 / tall 300 × 600: natural width, centred */
.cms-ad--square, .cms-ad--tall { width: 300px; }
.cms-ad--tall .cms-ad__frame img { max-height: 600px; object-fit: cover; }
.cms-ad-widget .cms-ad + .cms-ad { margin-top: 16px; }
/* Feed + content spacing */
.cms-ad-item { border: 0; }
.posts-list .cms-ad-item .cms-ad { margin: 4px auto; }
.single-body .cms-ad, .cms-content .cms-ad { margin: 30px auto 34px; }
.cms-ad-bottom { margin-top: 30px; }
/* Placeholder ("Advertise with us" → /contact/) */
.cms-ad__placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 250px; padding: 28px 22px; line-height: 1.4; text-align: center; color: #fff; border: 0;
  background: radial-gradient(120% 120% at 100% 0%, rgba(var(--cms-primary-rgb, 239,58,43), .45) 0%, transparent 55%), linear-gradient(160deg, #1c1957 0%, #12162d 100%); }
.cms-ad__ph-text { display: flex; flex-direction: column; gap: 6px; }
.cms-ad__ph-text strong { font-size: 19px; line-height: 1.3; color: #fff; font-weight: 800; }
.cms-ad__ph-text span { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.82); }
.cms-ad__ph-cta { font-style: normal; font-weight: 800; color: #ffb1a9; white-space: nowrap; }
.cms-ad__ph-cta span { display: inline-block; transition: transform .2s; }
.cms-ad__placeholder:hover .cms-ad__ph-cta span { transform: translateX(3px); }
.cms-ad__ph-size { position: absolute; right: 10px; bottom: 8px; font-size: 10px; color: rgba(255,255,255,.45); letter-spacing: .08em; }
.cms-ad__ph-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 48px; height: 48px; border-radius: 14px; background: rgba(255,255,255,.1); color: #fff; }
.cms-ad__ph-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cms-ad--wide .cms-ad__placeholder { flex-direction: row; justify-content: flex-start; gap: 20px; min-height: 0; aspect-ratio: 970 / 250; max-height: 250px; padding: 24px 36px; text-align: left; }
.cms-ad--wide .cms-ad__placeholder .cms-ad__ph-text { flex: 1 1 auto; min-width: 0; }
.cms-ad--tall .cms-ad__placeholder { min-height: 600px; }
@media (max-width: 767px) {
  .cms-ad--wide .cms-ad__frame img { max-height: 260px; }
  .cms-ad--wide .cms-ad__placeholder { flex-direction: column; align-items: center; text-align: center; aspect-ratio: auto; max-height: none; padding: 26px 20px 30px; }
  .cms-ad--wide .cms-ad__placeholder .cms-ad__ph-text strong { font-size: 17px; }
  .cms-ad--tall { width: 300px; }
  .cms-ad--tall .cms-ad__frame img { max-height: 250px; }
  .single-body .cms-ad, .cms-content .cms-ad { margin: 24px auto 28px; }
}
html[data-theme="dark"] .cms-ad__frame { background: var(--d-surface); border-color: var(--d-border-soft); }
html[data-theme="dark"] .cms-ad__placeholder { background: radial-gradient(120% 120% at 100% 0%, rgba(var(--cms-primary-rgb, 239,58,43), .35) 0%, transparent 55%), linear-gradient(160deg, #221f63 0%, #12151d 100%); border: 1px solid var(--d-border-soft); }
html[data-theme="dark"] .cms-ad__label { color: var(--d-muted); }
html[data-theme="dark"] .cms-ad__html { color: var(--d-text); }

/* ───────── Hero: story lede + read more ───────── */
.mnmd-featured-block-b .cms-hero-lede .excerpt { font-size: 17px; line-height: 1.7; color: rgba(255,255,255,.88); display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; max-width: 46em; }
.mnmd-featured-block-b .cms-hero-more { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; padding: 11px 22px; min-height: 44px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); color: #fff !important; font-weight: 800; font-size: 14px; letter-spacing: .02em; text-decoration: none !important; background: rgba(255,255,255,.08); backdrop-filter: blur(4px); transition: background-color .2s, border-color .2s, transform .2s; }
.mnmd-featured-block-b .cms-hero-more:hover { background: #fff; color: #12162d !important; border-color: #fff; transform: translateY(-1px); }
.mnmd-featured-block-b .cms-hero-more span { transition: transform .2s; }
.mnmd-featured-block-b .cms-hero-more:hover span { transform: translateX(3px); }
@media (max-width: 991px) { .mnmd-featured-block-b .cms-hero-lede .excerpt { font-size: 16px; -webkit-line-clamp: 4; } }
@media (max-width: 575px) { .mnmd-featured-block-b .cms-hero-lede .excerpt { -webkit-line-clamp: 3; } }

/* Ad slots follow the site dark-mode toggle (ads.css handles prefers-color-scheme) */
html[data-theme="dark"] .ad__slot { background: #141926; border-color: #262c3b; color: #5e6678; }
html[data-theme="dark"] .ad__label { color: #8b93a6; }
html[data-theme="dark"] .ad--house .ad__slot { background: #0b1020; border-color: #1c2338; }

/* House ad billboard on phones: the 320:100 banner is ~100px tall, so show a compact creative (name + CTA) */
@media (max-width:640px){
  .ad--billboard .ha__text{ padding:10px 16px; gap:4px; }
  .ad--billboard .ha__kicker, .ad--billboard .ha__tag{ display:none; }
  .ad--billboard .ha__name{ font-size:16px; line-height:1.15; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .ad--billboard .ha__cta{ margin-top:4px; padding:6px 12px; font-size:12px; }
  .ad--billboard .ha__art{ flex-basis:84px; }
  .ad--billboard .ha__art svg{ width:72px; height:72px; }
}
