/* ==========================================================================
   MANI block theme — WordPress adaptations (loaded after the design CSS)
   ========================================================================== */

/* ---------- Icons (CSS masks: no inline SVG needed, editable in blocks) ---------- */
.i { display: inline-block; width: 1.1em; height: 1.1em; flex: none; background-color: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; vertical-align: -.15em; }
.i-arrow { --ic: url("../icons/arrow.svg"); } .i-dl { --ic: url("../icons/dl.svg"); } .i-l { --ic: url("../icons/l.svg"); } .i-r { --ic: url("../icons/r.svg"); }
.i-chev { --ic: url("../icons/chev.svg"); } .i-mail { --ic: url("../icons/mail.svg"); } .i-chat { --ic: url("../icons/chat.svg"); } .i-play { --ic: url("../icons/play.svg"); }
.i-women { --ic: url("../icons/women.svg"); } .i-child { --ic: url("../icons/child.svg"); } .i-lead { --ic: url("../icons/lead.svg"); } .i-pray { --ic: url("../icons/pray.svg"); }
.i-care { --ic: url("../icons/care.svg"); } .i-search { --ic: url("../icons/search.svg"); } .i-north { --ic: url("../icons/north.svg"); } .i-book { --ic: url("../icons/book.svg"); }

/* decorative arrow after block buttons and link-arrow links */
.wp-block-button:not(.no-arrow) .wp-block-button__link::after,
.link-arrow a::after, a.link-arrow::after { content: ""; width: 18px; height: 18px; flex: none; background-color: currentColor; -webkit-mask: url("../icons/arrow.svg") center / contain no-repeat; mask: url("../icons/arrow.svg") center / contain no-repeat; transition: transform .3s var(--ease); }
.link-arrow a::after, a.link-arrow::after { width: 16px; height: 16px; }
.wp-block-button:not(.no-arrow) .wp-block-button__link:hover::after { transform: translateX(4px); }
.link-arrow a:hover::after, a.link-arrow:hover::after { transform: translateX(5px); }
.link-arrow, p.link-arrow { margin: 0; } p.link-arrow { display: block; } .link-arrow a, a.link-arrow { display: inline-flex; gap: 8px; align-items: center; font-weight: 700; font-size: 14px; color: var(--red); text-decoration: none; }
.link-arrow a:hover { color: var(--red); }
.dl .wp-block-button__link::before { content: ""; width: 16px; height: 16px; background-color: currentColor; -webkit-mask: url("../icons/dl.svg") center / contain no-repeat; mask: url("../icons/dl.svg") center / contain no-repeat; }
.dl .wp-block-button__link::after { display: none; }
.card:hover .ico, .ico { position: relative; }
.ico::before { content: ""; width: 26px; height: 26px; background-color: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.ico-women { --ic: url("../icons/women.svg"); } .ico-child { --ic: url("../icons/child.svg"); } .ico-lead { --ic: url("../icons/lead.svg"); } .ico-pray { --ic: url("../icons/pray.svg"); }
.ico-care { --ic: url("../icons/care.svg"); } .ico-search { --ic: url("../icons/search.svg"); } .ico-north { --ic: url("../icons/north.svg"); } .ico-book { --ic: url("../icons/book.svg"); }
.ico-mail { --ic: url("../icons/mail.svg"); } .ico-chat { --ic: url("../icons/chat.svg"); } .ico-play { --ic: url("../icons/play.svg"); }
.ccrd .ico::before { width: 22px; height: 22px; }
.chev { display: inline-block; width: 10px; height: 10px; opacity: .7; background-color: currentColor; -webkit-mask: url("../icons/chev.svg") center / contain no-repeat; mask: url("../icons/chev.svg") center / contain no-repeat; }
.tl-ctrl button::before { content: ""; width: 20px; height: 20px; background-color: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.tl-ctrl #tlPrev { --ic: url("../icons/l.svg"); } .tl-ctrl #tlNext { --ic: url("../icons/r.svg"); }

/* ---------- Core block resets so blocks render like the design ---------- */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
:where(.wp-block-group), :where(.wp-block-columns) { margin: 0; }
:where(figure.wp-block-image) { margin: 0; }
.wp-block-image img { height: auto; }
.wp-block-image.size-full img, .wp-block-image img { max-width: 100%; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
.wp-block-buttons.hero-cta { gap: 14px; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-buttons + .wp-block-buttons { margin-top: 14px; }
.prose .wp-block-buttons { margin-top: 1.6em; }

.wp-block-button .wp-block-button__link { text-decoration: none; line-height: 1.2; font-family: inherit; }
.wp-block-button.is-style-line .wp-block-button__link { border-color: var(--line); color: var(--charcoal); background: #fff; }
.wp-block-button.is-style-line .wp-block-button__link:hover { border-color: var(--red); color: var(--red); }
.wp-block-list { margin: 0; } ul.wp-block-list { padding-left: 1.2em; } .box ul.wp-block-list, .box ol.wp-block-list { padding-left: 0; }
.wp-block-quote { border: 0; margin: 0; padding: 0; } .prose .wp-block-quote, .prose blockquote.wp-block-quote { margin: 1.6em 0; padding: 6px 0 6px 26px; border-left: 4px solid var(--red); }
.wp-block-quote p { margin-bottom: 0; } .wp-block-quote cite { display: block; margin-top: 16px; font-family: var(--font-sans); font-style: normal; font-weight: 700; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.wp-block-heading { margin-top: 0; }
.wp-block-details { margin: 0; } details.wp-block-details.acc > :not(summary) { padding-left: 0; }
details.acc > p, details.acc > .wp-block-group { padding: 0 0 18px; color: var(--graphite); max-width: 70ch; }
p.t-b, p.t-span, p.t-small, p.t-strong, p.t-i, p.t-cite { margin: 0; }
.wp-block-paragraph { margin: 0 0 1em; }
.entry-content, .wp-block-post-content { margin: 0; }
.wp-block-post-content > .wp-block-group:last-child { margin-bottom: 0; }
.wp-block-separator { border: 0; }
.has-text-align-center { text-align: center; }
.screen-reader-text { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* kill the default list indent inside designed lists */
.wp-block-list.is-style-plain { list-style: none; padding: 0; }
.stat > .t-span, .stat > span { display: block; }

/* ---------- Admin bar offsets for the fixed header ---------- */
body.admin-bar .header { inset-block-start: 72px; } body.admin-bar .header.scrolled { inset-block-start: 32px; } body.admin-bar .topbar { top: 32px; }
body.admin-bar .mnav { padding-top: 142px; } body.admin-bar .mclose { top: 56px; }
@media (max-width: 782px) { body.admin-bar .header { inset-block-start: 86px; } body.admin-bar .header.scrolled { inset-block-start: 46px; } body.admin-bar .topbar { top: 46px; } }
@media (max-width: 600px) { body.admin-bar { --wp-admin-offset: 0px; } body.admin-bar .header.scrolled { inset-block-start: 0; } }

/* ---------- Header (server rendered) ---------- */
.header .logo { display: block; position: relative; }
.lang a, .lang button { display: inline-block; background: none; border: 0; padding: 3px 11px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .08em; color: rgba(255,255,255,.75); text-decoration: none; }
.lang a[aria-current="true"], .lang a.is-current, .lang [aria-pressed="true"] { background: #fff; color: var(--ink); }
.footer .lang a { color: rgba(255,255,255,.7); } .footer .lang a.is-current { background: #fff; color: var(--ink); }
.nav li.has-drop > a.nav-link { cursor: pointer; }
.nav .drop a { text-decoration: none; }
.nav-link { text-decoration: none; }
.nav > li { list-style: none; }
.mnav a.m { text-decoration: none; display: block; }

/* ---------- Hero slider (blocks) ---------- */
.hero-slides .wp-block-image { position: absolute; inset: 0; margin: 0; }
.hero-slides .wp-block-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity 1.6s ease; }
.hero-slides .wp-block-image.on img { opacity: 1; animation: kenburns 14s ease-out forwards; }
.hero-slides .wp-block-image:first-child img { opacity: 1; }
.js .hero-slides .wp-block-image:first-child:not(.on) img { opacity: 0; }
.hero-bar > .wp-block-group, .hero-bar > div { padding: 20px 26px; border-right: 1px solid var(--line-light); }
.hero-bar small, .hero-bar .t-small { display: block; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--red-bright); margin-bottom: 4px; }
.hero-bar .t-strong, .hero-bar strong { font-size: 15px; font-weight: 700; line-height: 1.35; display: block; color: #fff; }
.hero .pill p, .pill .wp-block-paragraph { margin: 0; }
.hero h1 .accent, .hero h1 .wp-block-heading .accent { display: block; }

/* ---------- Mosaic gallery (image blocks) ---------- */
.mosaic .wp-block-image { margin: 0; border-radius: var(--radius); overflow: hidden; position: relative; background: #222; cursor: zoom-in; }
.mosaic .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); display: block; }
.mosaic .wp-block-image:hover img { transform: scale(1.07); }
.mosaic .wp-block-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(186,40,47,.55)); opacity: 0; transition: .4s; pointer-events: none; }
.mosaic .wp-block-image:hover::after { opacity: 1; }
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(10,10,11,.94); display: none; place-items: center; padding: 30px; }
.lightbox.open { display: grid; } .lightbox img { max-height: 88vh; max-width: min(1400px, 94vw); border-radius: 10px; }
.lightbox button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--line-light); background: rgba(255,255,255,.08); color: #fff; font-size: 22px; cursor: pointer; }
.lb-x { top: 24px; right: 24px; } .lb-p { left: 24px; top: 50%; } .lb-n { right: 24px; top: 50%; }

/* ---------- Collage / misc blocks ---------- */
.collage .wp-block-image, .collage figure { position: absolute; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); margin: 0; }
.collage .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.collage .badge p { margin: 0; }
.consult-photo.wp-block-image { margin: 0; }
.verse .wp-block-image img { width: 130px; height: auto; }
.consult-photo img { width: 100%; height: 100%; object-fit: cover; }
.person .ph .wp-block-image, .lead-main .who .wp-block-image { margin: 0; }
.lead-main .who .wp-block-image img { width: 74px; height: 74px; border-radius: 50%; object-fit: cover; border: 3px solid var(--red); }
.member .wp-block-image img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.lead-prev .wp-block-image img { width: 92px; height: 108px; object-fit: cover; border-radius: 14px; }
.feature-person .wp-block-image img, .feature-person img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius-lg); }
.plogos .wp-block-image { margin: 0; } .plogos img { height: 46px; width: auto; max-width: 160px; object-fit: contain; filter: grayscale(1); opacity: .6; transition: .35s; mix-blend-mode: multiply; } .plogos img:hover { filter: none; opacity: 1; }
.phero .bg .wp-block-image { margin: 0; width: 100%; height: 100%; } .phero .bg img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.prose .wp-block-image img, .prose figure img { border-radius: var(--radius-lg); width: 100%; }
.callout .wp-block-image img { border-radius: 14px; }
.rmapbox .wp-block-image, .rmapbox img { margin: 0; width: 100%; display: block; }

/* ---------- Dynamic blocks ---------- */
/* regions explorer */
.rlist { display: flex; flex-direction: column; gap: 6px; }
.rpanels .rpanel { display: none; } .rpanels .rpanel.is-active { display: flex; }
.rpanel .rmap img { width: 100%; height: auto; display: block; }
.rpanel .rmap { margin: 22px 0 0; }
.rpanel[hidden] { display: none; }
.rlink { text-decoration: none; }
.rcard { text-decoration: none; color: inherit; }
.rcard .rthumb { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; margin-bottom: 18px; background: var(--stone); }
/* people */
.person .ph { aspect-ratio: 1/1; }
/* resource library */
.doc-list { display: grid; gap: 12px; }
.doc .go a { text-decoration: none; }
.doc .go .i { width: 14px; height: 14px; }
/* uotd */
.uotd { display: flex; justify-content: center; min-height: 300px; } .uotd > * { max-width: 100%; }
/* forms */
.fform .notice { padding: 16px 20px; border-radius: 14px; font-weight: 700; }
.fform .notice.ok { background: rgba(186,40,47,.08); color: var(--red-deep); }
.fform .notice.err { background: #fff1f1; color: #8f1d24; border: 1px solid #f0c4c6; }
.box.dark .fform label { color: #fff; }
.mani-hp { position: absolute !important; left: -9999px !important; opacity: 0; height: 0; width: 0; }
.fform .btn { cursor: pointer; border: 1.5px solid transparent; font-family: inherit; }
.fform .btn.btn-red { background: var(--red); color: #fff; }

/* news query loop (cards) */
.wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.news-grid.wp-block-post-template, .wp-block-post-template.news-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 22px; }
.wp-block-post-template.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.wp-block-post-template > li { margin: 0; display: flex; }
.wp-block-post-template .post { width: 100%; }
.post .wp-block-post-featured-image, .post .img { aspect-ratio: 16/10; overflow: hidden; background: var(--stone-2); margin: 0; display: block; }
.post .wp-block-post-featured-image a, .post .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.post:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.post .wp-block-post-terms.tag, .post .tag { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--red); margin-bottom: 12px; display: block; } .post .tag a { color: inherit; text-decoration: none; }
.post .wp-block-post-title { font-size: 1.18rem; letter-spacing: -.015em; margin-bottom: 10px; } .post .wp-block-post-title a { text-decoration: none; color: inherit; }
.post .wp-block-post-excerpt { font-size: 14.5px; color: var(--muted); line-height: 1.6; } .post .wp-block-post-excerpt p { margin: 0 0 1em; }
.post .wp-block-post-date, .post .date { margin-top: auto; font-size: 13px; font-weight: 600; color: var(--graphite); }
.wp-block-query-pagination { margin-top: 36px; display: flex; gap: 14px; justify-content: center; font-weight: 700; flex-wrap: wrap; }
.wp-block-query-pagination a { padding: 10px 18px; border: 1.5px solid var(--line); border-radius: 999px; text-decoration: none; } .wp-block-query-pagination a:hover { border-color: var(--red); color: var(--red); }
.filters .fbtn { text-decoration: none; display: inline-block; }

/* single post/article */
.single-post .article-meta, .article-meta { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-top: 24px; }
.article-meta a { color: inherit; text-decoration: none; }
.wp-block-post-content.prose { max-width: none; }
.phero .wp-block-post-title { color: #fff; font-size: clamp(2.3rem, 5.4vw, 4.4rem); letter-spacing: -.04em; max-width: 20ch; margin: 0; }
.phero .wp-block-post-excerpt { color: rgba(255,255,255,.82); margin-top: 22px; max-width: 60ch; font-size: clamp(1.05rem,1.6vw,1.25rem); }
.phero .wp-block-post-featured-image { margin: 0; width: 100%; height: 100%; } .phero .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }

/* sharing & misc */
.footer a { text-decoration: none; }
.skip { z-index: 9999; }
.error-404 .phero { min-height: 60vh; display: flex; align-items: center; }
.search-form, .wp-block-search { max-width: 520px; }
.wp-block-search__input { padding: 14px 20px; border-radius: 999px; border: 1.5px solid var(--line); font: inherit; }
.wp-block-search__button { border-radius: 999px; background: var(--red); color: #fff; border: 0; padding: 14px 24px; font-weight: 700; cursor: pointer; }

/* editor canvas: show reveal items and keep fixed bits harmless */
.editor-styles-wrapper .rv { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .hero { min-height: 560px; }
.editor-styles-wrapper .hero-slides .wp-block-image img { opacity: 1; }
.editor-styles-wrapper .hero-slides .wp-block-image:not(:first-child) { display: none; }
.editor-styles-wrapper .wp-block-image img { height: auto; }

/* region sidebar + misc dynamic markup */
.coordrow { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
.coordrow img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; object-position: center 20%; }
.coordrow i { width: 72px; height: 72px; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; font-style: normal; font-weight: 800; font-size: 1.4rem; }
.coord-bio { font-size: 14px; }
.box .chips { gap: 8px; } .box .chip { background: var(--stone); color: var(--ink); border-color: transparent; animation: none; font-size: 12.5px; padding: 6px 12px; }
.box.dark .chip { background: rgba(255,255,255,.08); color: #fff; }
.lang-line { margin-top: 12px; font-size: 13.5px; }
.flabel { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.fcount { margin-left: auto; font-size: 14px; color: var(--muted); }
.box .fform { margin-top: 14px; } .box.dark .fform input, .box.dark .fform select, .box.dark .fform textarea { background: #fff; }
.side .box ul li { list-style: none; }
.dl .wp-block-button .wp-block-button__link { padding: 13px 20px; border-radius: 999px; background: #fff; color: var(--ink); font-weight: 800; font-size: 13px; letter-spacing: .06em; border: 0; gap: 9px; }
.dl .wp-block-button .wp-block-button__link:hover { background: var(--ink); color: #fff; transform: translateY(-3px); }
.dl.dark .wp-block-button .wp-block-button__link, .res:not(.feature) .dl .wp-block-button .wp-block-button__link, .doc .go a { background: var(--charcoal); color: #fff; }
.res .dl .wp-block-button .wp-block-button__link:hover, .res:not(.feature) .dl .wp-block-button .wp-block-button__link:hover { background: var(--red); color: #fff; }
.res.feature .dl .wp-block-button .wp-block-button__link { background: #fff; color: var(--ink); } .res.feature .dl .wp-block-button .wp-block-button__link:hover { background: var(--ink); color: #fff; }
.gonorth .wp-block-buttons .wp-block-button__link { position: relative; z-index: 2; }

/* announcement band: pill + link keep their natural size (they are paragraphs now) */
.announce .wrap > p.tag, .announce .wrap > p.link-arrow { flex: none; min-width: 0; margin: 0; }
.announce .wrap > p.tag { display: inline-block; }
.announce .wrap > p:not(.tag):not(.link-arrow) { flex: 1; min-width: 240px; margin: 0; }

/* flex items that are image blocks must not collapse */
.member .wp-block-image, .lead-prev .wp-block-image, .lead-main .who .wp-block-image, .callout .wp-block-image, .coordrow .wp-block-image { flex: none; }
.member .wp-block-image { width: 56px; height: 56px; }
.lead-main blockquote p, .lead-main .wp-block-quote p { font-size: inherit; color: inherit; margin: 0; max-width: none; }
/* news cards: only the first card in a loop is the large one */
.wp-block-post-template > li:not(:first-child) .post h3, .wp-block-post-template > li:not(:first-child) .post .wp-block-post-title { font-size: 1.18rem; }
.wp-block-post-template > li:first-child .post .wp-block-post-title { font-size: 1.6rem; }

.fnote { margin: 0; font-size: 12.5px; color: var(--muted); }
.fnote a { text-decoration: underline; text-underline-offset: 2px; }
.box.dark .fnote { color: rgba(255,255,255,.7); }
