/*
Theme Name: Отець Павло — Молитовний простір
Author: Проєкт «Отець Павло»
Description: Готова двомовна (українська та російська) WordPress-тема для православних молитов: каталог, аудіо, відео, редактор, сторінки та форма зв’язку. Встановлюється з одного ZIP-архіву.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: otets-pavlo
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, custom-logo, custom-menu, featured-images, accessibility-ready
*/

:root {
  --op-deep: #20382f;
  --op-deeper: #182c26;
  --op-deep-2: #34594b;
  --op-gold: #b39866;
  --op-gold-dark: #967846;
  --op-gold-faint: #f5efe2;
  --op-ivory: #f9f7f2;
  --op-paper: #fffefb;
  --op-sand: #f1eee7;
  --op-line: #e8e4db;
  --op-text: #263630;
  --op-gray: #68736e;
  --op-muted: #89938d;
  --op-serif: Georgia, 'Times New Roman', 'Noto Serif', serif;
  --op-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Arial, sans-serif;
  --op-shadow: 0 19px 65px rgba(31, 53, 44, .07);
  --op-radius: 18px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { padding: 0; margin: 0; min-width: 320px; background: var(--op-ivory); color: var(--op-text); font-family: var(--op-sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.admin-bar .op-header { top: 32px; }
img, svg { max-width: 100%; }
img { display: block; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a, button, input, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--op-gold); outline-offset: 4px; }
::selection { background: #d7c39b; color: var(--op-deep); }
.op-container { width: min(1190px, calc(100% - 72px)); margin-inline: auto; }
.screen-reader-text, .op-skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.op-skip-link:focus { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 10px 15px; background: #fff; color: var(--op-deep); border-radius: 8px; }

/* Header */
.op-header { position: sticky; top: 0; z-index: 90; background: rgba(250, 248, 243, .95); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid rgba(54, 69, 60, .09); }
.op-header-inner { display: flex; align-items: center; min-height: 93px; gap: 22px; }
.op-brand { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 12px; min-width: 223px; }
.op-brand-mark { width: 47px; height: 47px; border: 1px solid #c8b78d; background: var(--op-deep); color: #decda8; display: grid; place-items: center; border-radius: 50%; font-size: 26px; }
.op-brand-text { display: flex; flex-direction: column; line-height: 1.23; }
.op-brand-text strong { font: normal 24px/1.2 var(--op-serif); letter-spacing: -.02em; color: var(--op-deep); }
.op-brand-text small { color: #8d8c7e; font-size: 10px; letter-spacing: .075em; margin-top: 4px; white-space: nowrap; }
.op-logo-image { max-height: 69px; width: auto; max-width: 225px; object-fit: contain; }
.op-navigation { margin-inline: auto; }
.op-nav-list { display: flex; align-items: center; padding: 0; margin: 0; list-style: none; gap: 27px; }
.op-nav-list a { font-size: 13px; font-weight: 600; color: #526359; white-space: nowrap; transition: color .2s ease; }
.op-nav-list a:hover, .op-nav-list a.is-active, .op-nav-list .current-menu-item a { color: var(--op-gold-dark); }
.op-header-end { display: flex; align-items: center; gap: 20px; margin-left: auto; }
.op-lang-switch { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; color: #adb0aa; }
.op-lang-switch a { color: #a1aaa2; padding-block: 5px; transition: color .15s; }
.op-lang-switch a.current, .op-lang-switch a:hover { color: var(--op-deep); }
.op-nav-cta { display: flex; align-items: center; justify-content: center; gap: 9px; background: var(--op-deep); color: #fff; border-radius: 8px; padding: 11px 17px; font-size: 12px; font-weight: 600; white-space: nowrap; transition: background .2s ease, transform .2s ease; }
.op-nav-cta:hover { background: var(--op-deep-2); transform: translateY(-1px); }
.op-nav-cta svg { color: #d1bc8c; }
.op-menu-toggle { display: none; align-items: center; justify-content: center; background: transparent; color: var(--op-deep); border: 0; padding: 6px; }

/* Shared elements */
.op-kicker { display: block; font-size: 11px; font-weight: 800; line-height: 1.4; letter-spacing: .16em; color: var(--op-gold-dark); margin-bottom: 14px; text-transform: uppercase; }
.op-kicker-light { color: #dbc692; }
.op-eyebrow { display: flex; gap: 12px; align-items: center; font-size: 11px; letter-spacing: .2em; font-weight: 750; color: var(--op-gold-dark); text-transform: uppercase; }
.op-eyebrow-line { display: inline-block; height: 1px; width: 32px; background: var(--op-gold); }
.op-section { padding: 91px 0; }
.op-section-heading { margin-bottom: 37px; }
.op-section-heading h2 { margin: 0; font: normal clamp(32px, 3.5vw, 46px)/1.17 var(--op-serif); letter-spacing: -.042em; color: var(--op-deep); }
.op-section-heading p { margin: 13px 0 0; color: #777d77; font-size: 15px; }
.op-heading-inline { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.op-text-link { display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; color: var(--op-deep); font-size: 13px; font-weight: 750; }
.op-text-link svg { color: var(--op-gold-dark); transition: transform .2s; }
.op-text-link:hover svg { transform: translateX(5px); }
.op-button { display: inline-flex; align-items: center; justify-content: center; gap: 11px; border: 1px solid transparent; border-radius: 8px; min-height: 54px; padding: 14px 20px; font-size: 13px; font-weight: 750; transition: background .2s, color .2s, transform .2s; text-align: center; }
.op-button:hover { transform: translateY(-2px); }
.op-button-primary { background: var(--op-deep); color: #fff; box-shadow: 0 6px 15px rgba(31, 54, 44, .10); }
.op-button-primary:hover { background: var(--op-deep-2); }
.op-button-quiet { background: transparent; color: var(--op-deep); border-color: #dcd8cf; }
.op-button-quiet:hover { background: #fff; border-color: var(--op-gold); }
.op-button-gold { background: #cdb683; color: #1c3029; }
.op-button-gold:hover { background: #e0cea2; }

/* Hero */
.op-hero { position: relative; overflow: hidden; background: radial-gradient(ellipse at 78% 44%, #f1eee4 0, #f8f7f1 48%, #faf8f4 74%); border-bottom: 1px solid rgba(96, 103, 80, .06); }
.op-hero::before { content: ''; position: absolute; width: 460px; height: 460px; border: 1px solid rgba(176, 151, 103, .10); border-radius: 50%; right: -200px; top: -210px; pointer-events: none; }
.op-hero-grid { display: grid; grid-template-columns: minmax(0, 1.10fr) minmax(0, .9fr); align-items: center; min-height: 675px; gap: 45px; padding: 57px 0 76px; }
.op-hero-copy { position: relative; z-index: 2; max-width: 675px; padding-bottom: 12px; }
.op-hero h1 { font: normal clamp(50px, 4.8vw, 75px)/1.13 var(--op-serif); letter-spacing: -.058em; color: var(--op-deep); margin: 25px 0 24px; text-wrap: balance; }
.op-hero h1 em { color: var(--op-gold-dark); display: inline; font-style: italic; }
.op-hero-description { max-width: 490px; color: #727b72; font-size: 16px; line-height: 1.9; margin: 0; }
.op-hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 33px; }
.op-hero-points { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; color: #777e77; margin-top: 41px; }
.op-hero-points span { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; }
.op-hero-points svg { color: var(--op-gold-dark); }
.op-hero-points i { height: 21px; width: 1px; background: #d9d7ce; }
.op-hero-art { position: relative; height: 560px; display: flex; align-items: center; justify-content: center; isolation: isolate; }
.op-arch-backdrop { position: absolute; z-index: -2; top: 12px; right: -14px; width: 91%; height: 98%; border-radius: 48% 48% 6px 6px; border: 1px solid rgba(173, 146, 99, .55); transform: translate(13px, 0); }
.op-arch { height: 530px; width: min(95%, 448px); overflow: hidden; border-radius: 48% 48% 10px 10px / 39% 39% 10px 10px; background: #6b5848; box-shadow: 0 31px 69px rgba(60, 50, 41, .16); position: relative; }
.op-arch:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(22, 28, 21, .24), transparent 26%); }
.op-arch img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 26%; }
.op-hero-note { position: absolute; display: flex; align-items: center; gap: 12px; width: 225px; padding: 17px 17px; background: #fffdfa; bottom: 38px; left: -42px; border: 1px solid #efeadf; border-radius: 12px; box-shadow: 0 12px 32px rgba(31, 53, 44, .13); color: #485a4b; font: italic 13px/1.5 var(--op-serif); z-index: 2; }
.op-mini-sun { display: inline-grid; place-items: center; flex: 0 0 39px; width: 39px; height: 39px; border-radius: 100px; background: #f3eee3; color: var(--op-gold-dark); font-size: 23px; }
.op-hero-orbit { position: absolute; right: -8px; top: 54px; color: #b89b64; font-size: 45px; }

/* Topic cards */
.op-topics { background: #fffefa; }
.op-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.op-topic { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 219px; padding: 25px 28px; border: 1px solid #eae8e0; background: #fcfbf7; border-radius: 13px; overflow: hidden; transition: box-shadow .2s, border-color .2s, transform .2s; }
.op-topic:hover { transform: translateY(-4px); box-shadow: var(--op-shadow); border-color: #d6c5a5; }
.op-topic-icon { display: grid; place-items: center; background: #f0ecdf; color: #987f4f; width: 51px; height: 51px; border-radius: 10px; margin-bottom: 15px; }
.op-topic strong { font: normal 23px/1.35 var(--op-serif); letter-spacing: -.025em; color: var(--op-deep); margin: 1px 0 7px; }
.op-topic-desc { color: #898d85; font-size: 12px; padding-right: 21px; }
.op-topic-arrow { position: absolute; right: 22px; bottom: 22px; color: #9f8c65; transition: transform .2s; }
.op-topic:hover .op-topic-arrow { transform: translateX(5px); }

/* Featured */
.op-featured { padding: 0; background: #fffefa; }
.op-featured-grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; min-height: 361px; background: var(--op-deep); color: #fff; border-radius: 17px; overflow: hidden; position: relative; isolation: isolate; }
.op-featured-grid::before { content: ''; width: 580px; height: 580px; border-radius: 50%; position: absolute; right: -220px; top: -400px; border: 1px solid #546b5c; opacity: .4; z-index: -1; }
.op-featured-mark { height: 100%; min-height: 361px; display: grid; place-items: center; background: radial-gradient(ellipse at center, #3b594d 0, #2a493c 38%, transparent 69%); }
.op-featured-mark-inner { width: 222px; height: 222px; display: grid; place-items: center; color: #c5b083; border: 1px solid rgba(200, 180, 134, .45); border-radius: 50%; font-size: 107px; position: relative; }
.op-featured-mark-inner::before { content: ''; position: absolute; inset: 16px; border: 1px solid rgba(200, 180, 134, .27); border-radius: 50%; }
.op-featured-copy { padding: 55px 62px 55px 0; }
.op-featured-copy h2 { margin: 0 0 5px; color: #e9e2d2; font: normal 26px/1.2 var(--op-serif); }
.op-featured-copy h3 { font: normal clamp(31px, 3.0vw, 43px)/1.14 var(--op-serif); margin: 6px 0 14px; color: #fff; letter-spacing: -.035em; }
.op-featured-copy p { color: #bfcdc1; max-width: 445px; font-size: 14px; line-height: 1.85; margin-bottom: 23px; }

/* Entry cards */
.op-latest { background: #fffefa; }
.op-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px; }
.op-entry-card { min-width: 0; border: 1px solid #e7e5dc; border-radius: 13px; background: #fff; display: flex; flex-direction: column; overflow: hidden; min-height: 306px; transition: box-shadow .2s, transform .2s, border-color .2s; }
.op-entry-card:hover { box-shadow: var(--op-shadow); border-color: #ccb994; transform: translateY(-3px); }
.op-card-main { display: flex; flex: 1; flex-direction: column; padding: 27px 27px 17px; }
.op-card-icon { display: grid; place-items: center; width: 53px; height: 53px; color: #a68b55; background: #f7f3ea; border-radius: 10px; margin-bottom: 20px; }
.op-card-type { font-weight: 750; color: #aa8e5c; font-size: 10px; line-height: 1.3; text-transform: uppercase; letter-spacing: .13em; margin-bottom: 8px; }
.op-entry-card h3 { font: normal 25px/1.29 var(--op-serif); letter-spacing: -.03em; color: var(--op-deep); margin: 0 0 10px; }
.op-entry-card p { color: #7e8880; font-size: 13px; line-height: 1.72; margin: 0; }
.op-card-bottom { min-height: 53px; padding: 11px 22px 14px 27px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #f3f1ea; }
.op-card-bottom > span { color: #9c9f99; font-size: 11px; display: flex; align-items: center; gap: 6px; }
.op-card-bottom svg { color: #a8926c; }
.op-card-bottom a { display: grid; place-items: center; color: #a8926c; min-width: 31px; min-height: 31px; }

/* How-to steps */
.op-how { background: #f6f3eb; }
.op-how-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 43px; }
.op-how-item { border-top: 1px solid #d4cbb9; padding-top: 24px; position: relative; }
.op-step-num { font: normal 14px var(--op-serif); color: #ab9161; }
.op-how-icon { margin: 26px 0 18px; color: var(--op-deep); }
.op-how-item h3 { font: normal 26px/1.25 var(--op-serif); color: var(--op-deep); margin: 0 0 11px; }
.op-how-item p { color: #7e867b; font-size: 14px; line-height: 1.8; margin: 0; max-width: 310px; }

/* Quote / reflection */
.op-reflection { background: #e7e8de; position: relative; overflow: hidden; }
.op-reflection::before, .op-reflection::after { content: ''; width: 430px; height: 430px; border: 1px solid #d1d2bf; border-radius: 50%; position: absolute; top: -160px; left: -300px; opacity: .7; }
.op-reflection::after { left: auto; right: -290px; top: 85px; }
.op-reflection-inner { text-align: center; padding: 92px 100px 87px; position: relative; z-index: 1; }
.op-reflection-symbol { font-size: 31px; color: var(--op-gold-dark); margin-bottom: 10px; }
.op-reflection blockquote { font: normal clamp(28px, 3.3vw, 43px)/1.31 var(--op-serif); letter-spacing: -.033em; color: #3a4e40; max-width: 850px; margin: 17px auto 19px; }
.op-reflection p { color: #6d7b71; font-size: 14px; }
.op-articles-preview { padding-bottom: 100px; }

/* Footer */
.op-footer { color: #e8eee7; background: var(--op-deeper); padding: 68px 0 23px; }
.op-footer-main { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, .7fr) minmax(0, .7fr); gap: 68px; padding-bottom: 44px; }
.op-footer-brand { display: inline-flex; gap: 10px; align-items: center; font: normal 25px var(--op-serif); color: #f5efe3; }
.op-footer-brand span { color: #c8ad7c; font-size: 28px; }
.op-footer-intro h2 { font: normal 32px/1.25 var(--op-serif); letter-spacing: -.035em; margin: 21px 0 12px; }
.op-footer-intro p { color: #a6b7a9; max-width: 415px; line-height: 1.9; font-size: 13px; margin: 0; }
.op-footer-intro .op-footer-note { margin-top: 10px; color: #c8b991; }
.op-footer-links h3 { color: #dfd9ca; font-size: 12px; font-weight: 750; margin: 0 0 17px; letter-spacing: .05em; }
.op-footer-links a { display: block; font-size: 13px; color: #aebcb0; margin-bottom: 10px; transition: color .2s; }
.op-footer-links a:hover { color: #eee2c7; }
.op-disclosure { border-top: 1px solid #405045; color: #a0b0a2; font-size: 11px; line-height: 1.75; padding: 16px 0; }
.op-disclosure span { color: #c8ad7c; margin-right: 5px; }
.op-footer-bottom { border-top: 1px solid #405045; display: flex; align-items: center; gap: 25px; padding-top: 19px; font-size: 11px; color: #879b8d; }
.op-footer-bottom a { color: #9fac9e; }
.op-footer-bottom a:hover { color: #f3efe3; }
.op-to-top { margin-left: auto; border: 1px solid #6b7d6f; border-radius: 50%; width: 33px; height: 33px; display: grid; place-items: center; font-size: 19px; }

/* Pages / directories */
.op-page-top, .op-directory-hero, .op-single-intro { background: linear-gradient(114deg, #f5f1e9, #fcfbf6 55%, #f0f2e9); border-bottom: 1px solid #e9e7df; }
.op-page-top > .op-container { padding: 67px 0 65px; }
.op-page-top h1, .op-directory-hero h1, .op-single-intro h1 { font: normal clamp(39px, 4.5vw, 60px)/1.13 var(--op-serif); letter-spacing: -.045em; color: var(--op-deep); margin: 13px 0 0; }
.op-breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; color: #a0a69d; font-size: 12px; margin-bottom: 31px; }
.op-breadcrumbs a { color: #738476; }
.op-breadcrumbs a:hover { text-decoration: underline; }
.op-breadcrumbs span:last-child { max-width: 400px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.op-directory-hero-inner { padding: 74px 0 64px; text-align: center; }
.op-directory-hero h1 { margin: 7px 0 12px; }
.op-directory-hero p { margin: 0 auto 27px; color: #777e75; max-width: 600px; font-size: 15px; }
.op-search-form { display: flex; align-items: center; background: white; border: 1px solid #e4dfd3; box-shadow: 0 14px 40px rgba(37, 60, 43, .06); border-radius: 9px; max-width: 685px; margin: auto; padding: 7px 7px 7px 19px; gap: 11px; }
.op-search-form > svg { flex: 0 0 auto; color: #b79d6d; }
.op-search-form input { border: 0; background: transparent; min-height: 42px; min-width: 0; flex: 1; color: var(--op-text); outline: none; font-size: 14px; }
.op-search-form input:focus { outline: none; }
.op-search-form button { flex: 0 0 auto; border: none; background: var(--op-deep); color: #fff; padding: 13px 25px; border-radius: 6px; font-size: 13px; font-weight: 750; }
.op-search-form button:hover { background: var(--op-deep-2); }
.op-directory-results { background: #fffefa; min-height: 440px; }
.op-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 34px; }
.op-filters a { display: inline-flex; align-items: center; border: 1px solid #e7e3d9; background: #fff; padding: 8px 15px; font-size: 12px; border-radius: 30px; color: #6a766c; transition: background .2s, color .2s; }
.op-filters a.selected, .op-filters a:hover { background: var(--op-deep); color: #fff; border-color: var(--op-deep); }
.op-pagination { display: flex; justify-content: center; align-items: center; gap: 20px; padding-top: 42px; color: #7d857e; font-size: 13px; }
.op-pagination a { display: inline-block; border: 1px solid #d9d8cd; background: white; padding: 8px 16px; border-radius: 6px; }
.op-pagination a:hover { border-color: var(--op-gold-dark); }
.op-empty { margin: 30px auto 40px; text-align: center; background: #f5f3ea; border: 1px solid #ece7da; padding: 65px 20px; border-radius: 15px; max-width: 780px; }
.op-empty > span { color: var(--op-gold-dark); }
.op-empty h2 { font: normal 34px var(--op-serif); color: var(--op-deep); margin: 18px 0 9px; }
.op-empty p { color: #747e75; max-width: 400px; margin: 0 auto 25px; }

/* Information pages and contact form */
.op-plain-wrap { padding-top: 68px; padding-bottom: 101px; }
.op-page-prose { max-width: 850px; }
.op-prose { font-size: 17px; color: #37473d; line-height: 1.9; overflow-wrap: break-word; }
.op-prose h2, .op-prose h3, .op-prose h4 { font: normal 31px/1.3 var(--op-serif); letter-spacing: -.025em; color: var(--op-deep); margin: 33px 0 14px; }
.op-prose h3 { font-size: 25px; }
.op-prose p { margin: 0 0 18px; }
.op-prose ul, .op-prose ol { padding-left: 22px; }
.op-prose blockquote { padding: 8px 25px; border-left: 3px solid var(--op-gold); font: italic 23px/1.55 var(--op-serif); color: var(--op-deep); margin: 28px 0; }
.op-prose a { color: #997a47; text-decoration: underline; text-underline-offset: 3px; }
.op-prose img { max-width: 100%; height: auto; border-radius: 8px; }
.op-info-box { max-width: 850px; background: #eef0e6; border-left: 3px solid var(--op-gold-dark); padding: 25px 30px; margin-top: 46px; border-radius: 0 10px 10px 0; color: #526357; }
.op-info-box strong { display: block; font: normal 25px var(--op-serif); color: var(--op-deep); }
.op-info-box p { font-size: 14px; margin: 10px 0 18px; }
.op-info-box a { display: inline-flex; align-items: center; gap: 8px; color: #816a3d; font-size: 13px; font-weight: 750; }
.op-contact-section { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; border-top: 1px solid #e6e2d7; max-width: 1000px; margin-top: 55px; padding-top: 58px; }
.op-contact-intro h2 { font: normal 38px/1.2 var(--op-serif); color: var(--op-deep); margin: 0 0 15px; }
.op-contact-intro p { color: #747e75; line-height: 1.75; font-size: 14px; margin: 0 0 22px; }
.op-contact-intro .op-text-link { display: flex; margin: 13px 0; white-space: normal; overflow-wrap: anywhere; }
.op-contact-form { display: flex; flex-direction: column; background: #fff; border: 1px solid #e4e2d8; border-radius: 13px; padding: 31px; gap: 18px; box-shadow: var(--op-shadow); }
.op-contact-form > label:not(.op-honeypot) { display: flex; flex-direction: column; gap: 7px; color: var(--op-deep); font-size: 13px; font-weight: 650; }
.op-contact-form input:not([type=hidden]), .op-contact-form textarea { color: var(--op-text); border: 1px solid #deddd2; background: #fdfcf8; border-radius: 7px; padding: 11px 13px; width: 100%; resize: vertical; }
.op-contact-form input:focus, .op-contact-form textarea:focus { outline: 2px solid #b39866; outline-offset: 2px; }
.op-honeypot { position: absolute !important; left: -99999px !important; opacity: 0; pointer-events: none; }
.op-form-disclaimer { font-size: 11px; color: #8b9187; margin: 0; }
.op-form-disclaimer a { text-decoration: underline; }
.op-form-status { padding: 10px 14px; margin: 0; border-radius: 5px; font-size: 13px; }
.op-form-status.success { background: #eff9ed; color: #28522c; }
.op-form-status.error { background: #fcf0ec; color: #8b362b; }
.op-contact-form .op-button { align-self: flex-start; border: 0; }

/* Single post / reading */
.op-single-intro .op-container { padding-top: 57px; padding-bottom: 51px; }
.op-single-intro h1 { max-width: 810px; }
.op-single-lead { font-size: 17px; max-width: 750px; color: #747f75; margin: 18px 0 18px; line-height: 1.75; }
.op-single-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 23px; padding-top: 5px; }
.op-single-meta span { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #78867a; }
.op-single-meta svg { color: #a28d61; }
.op-single-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 62px; align-items: start; padding-top: 62px; padding-bottom: 85px; }
.op-single-article { min-width: 0; }
.op-audio-box { background: #e8ece3; border: 1px solid #d6dfd2; padding: 19px 21px 19px; border-radius: 12px; margin-bottom: 22px; }
.op-audio-box > div { display: flex; align-items: center; gap: 12px; margin-bottom: 13px; }
.op-audio-box strong { display: block; color: var(--op-deep); font-size: 14px; }
.op-audio-box small { display: block; color: #7b877a; font-size: 12px; }
.op-audio-icon { display: inline-grid; place-items: center; width: 42px; height: 42px; background: #d4decf; color: var(--op-deep); border-radius: 50%; }
.op-audio-box audio { width: 100%; height: 48px; display: block; }
.op-reading-tools { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; padding: 11px; border: 1px solid #e6e3d9; border-radius: 9px; margin-bottom: 30px; background: #fffefa; }
.op-reading-tools button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 10px; min-height: 36px; background: transparent; border: 0; border-radius: 6px; color: #64766a; font-size: 12px; }
.op-reading-tools button:hover { background: #f2efe6; color: var(--op-deep); }
.op-size-controls { display: flex; gap: 0; margin-right: 5px; }
.op-size-controls button { font-size: 14px; font-weight: 700; min-width: 40px; }
.op-toolbar-sep { display: block; width: 1px; height: 20px; background: #e4e0d3; margin-inline: 7px; }
.op-favorite-button[aria-pressed="true"] { background: #f1ebdf; color: #866b3f; }
.op-read-content { border: 1px solid #ebe7df; background: #fff; padding: 42px clamp(24px, 4vw, 52px) 48px; border-radius: 12px; box-shadow: 0 7px 40px rgba(23, 46, 31, .03); }
.op-reading-label { display: flex; align-items: center; gap: 12px; font: normal 24px var(--op-serif); color: var(--op-deep); margin: 0 0 32px; }
.op-reading-label::after { content: ''; display: inline-block; background: #d9c9a8; flex: 0 0 45px; height: 1px; }
.op-prayer-text { font-family: var(--op-serif); font-size: var(--op-reader-size, 22px); line-height: 1.8; color: #34483b; }
.op-prayer-text p { margin: 0 0 1.15em; }
.op-prayer-text p:last-child { margin-bottom: 0; }
.op-prayer-text h2, .op-prayer-text h3 { color: var(--op-deep); font-size: 1.4em; }
.op-source { margin-top: 18px; padding: 15px 18px; border-left: 2px solid #cbb88d; color: #858c83; font-size: 12px; background: #f3f2eb; line-height: 1.75; overflow-wrap: anywhere; }
.op-source strong { color: #546357; }
.op-video-section { margin-top: 48px; }
.op-video-section h2 { font: normal 31px var(--op-serif); color: var(--op-deep); margin-bottom: 17px; }
.op-video-placeholder { background: radial-gradient(circle at center, #385c4a, #1b3128); width: 100%; aspect-ratio: 16/9; border-radius: 11px; display: grid; place-items: center; overflow: hidden; }
.op-video-trigger { border: 0; background: transparent; color: #fff; display: flex; flex-direction: column; gap: 13px; align-items: center; font-size: 13px; }
.op-video-trigger svg { display: block; background: rgba(205, 182, 131, .18); color: #ddc592; border-radius: 100%; box-sizing: content-box; padding: 18px; }
.op-video-placeholder iframe { width: 100%; height: 100%; border: 0; display: block; }
.op-video-help { color: #a0a49c; font-size: 11px; margin-top: 9px; }
.op-single-next { margin-top: 40px; padding-top: 27px; border-top: 1px solid #e3e2d8; }
.op-single-next a { color: #8d7850; font-size: 13px; font-weight: 700; }
.op-single-aside { position: sticky; top: 118px; }
.op-aside-card { background: #f1f1e8; border: 1px solid #e3e4d8; padding: 23px; border-radius: 13px; }
.op-aside-card .op-kicker { margin-bottom: 14px; }
.op-aside-portrait { width: 100%; aspect-ratio: 1.4; overflow: hidden; border-radius: 9px; }
.op-aside-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 26%; }
.op-aside-card p { color: #768275; font-size: 12px; line-height: 1.8; }
.op-aside-card a { display: inline-flex; align-items: center; gap: 6px; color: #826c44; font-size: 12px; font-weight: 700; }
.op-related { padding-top: 76px; border-top: 1px solid #ebe9e1; background: #fffefa; }
.op-not-found { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 540px; padding-top: 60px; padding-bottom: 80px; }
.op-not-found-number { font: normal 110px/1 var(--op-serif); color: #cdb88d; }
.op-not-found h1 { font: normal 47px var(--op-serif); color: var(--op-deep); margin: 9px 0; }
.op-not-found p { color: #768075; max-width: 530px; margin: 0 0 27px; }

/* WordPress content defaults */
.wp-block-image, .wp-block-embed { margin: 20px 0; }
.wp-block-separator { border: 0; border-top: 1px solid #e3decf; }
.alignwide { max-width: 1150px; }
.alignfull { max-width: none; width: 100%; }
.wp-block-cover, .wp-block-group { max-width: 100%; }
.wp-block-button__link { background: var(--op-deep); color: #fff; border-radius: 7px; }

/* Responsive */
@media (max-width: 1140px) {
  .op-container { width: min(1100px, calc(100% - 58px)); }
  .op-header-inner { gap: 12px; }
  .op-brand { min-width: 205px; }
  .op-nav-list { gap: 18px; }
  .op-header-end { gap: 14px; }
  .op-nav-cta { padding: 10px 12px; }
  .op-hero-grid { gap: 21px; }
  .op-hero h1 { font-size: clamp(47px, 5vw, 67px); }
  .op-hero-note { left: -9px; }
}
@media (max-width: 970px) {
  body.admin-bar .op-header { top: 32px; }
  .op-header-inner { min-height: 78px; }
  .op-navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 17px 29px 27px; background: #f9f7f2; border-bottom: 1px solid #dddacf; box-shadow: 0 13px 35px rgba(19,35,25,.12); }
  .op-navigation.is-open { display: block; }
  .op-nav-list { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .op-nav-list li { border-bottom: 1px solid #eeeae0; }
  .op-nav-list a { display: block; padding: 12px 3px; font-size: 15px; }
  .op-menu-toggle { display: inline-flex; }
  .op-hero-grid { min-height: auto; padding: 65px 0 80px; }
  .op-hero-art { height: 465px; }
  .op-arch { height: 455px; width: 96%; }
  .op-hero h1 { font-size: clamp(44px, 4.7vw, 58px); }
  .op-hero-description { font-size: 15px; }
  .op-hero-note { bottom: 15px; width: 196px; }
  .op-topic-grid { gap: 14px; }
  .op-topic { padding: 22px; min-height: 220px; }
  .op-featured-grid { grid-template-columns: .75fr 1.25fr; }
  .op-featured-copy { padding-right: 34px; }
  .op-footer-main { gap: 38px; }
  .op-single-layout { grid-template-columns: minmax(0, 1fr) 245px; gap: 26px; }
}
@media (max-width: 760px) {
  .op-container { width: min(640px, calc(100% - 40px)); }
  .op-section { padding-block: 65px; }
  .op-section-heading { margin-bottom: 27px; }
  .op-section-heading h2 { font-size: 35px; }
  .op-hero-grid { grid-template-columns: 1fr; gap: 18px; padding: 53px 0 53px; }
  .op-hero-copy { max-width: 620px; }
  .op-hero h1 { max-width: 620px; font-size: clamp(43px, 8.5vw, 61px); }
  .op-hero-description { max-width: 590px; }
  .op-hero-points { margin-top: 25px; }
  .op-hero-art { height: 555px; max-width: 480px; width: 100%; margin: 12px auto 0; }
  .op-arch { height: 530px; width: 88%; }
  .op-arch-backdrop { right: 20px; width: 83%; }
  .op-hero-note { left: -5px; bottom: 24px; }
  .op-hero-orbit { right: 6px; }
  .op-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .op-topic { min-height: 213px; }
  .op-featured-grid { grid-template-columns: 1fr; padding: 30px 30px 34px; }
  .op-featured-mark { min-height: 140px; height: 140px; }
  .op-featured-mark-inner { width: 124px; height: 124px; font-size: 57px; }
  .op-featured-copy { padding: 12px 0 16px; text-align: center; }
  .op-featured-copy p { margin-inline: auto; }
  .op-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
  .op-entry-card { min-height: 315px; }
  .op-how-grid { gap: 22px; }
  .op-how-item h3 { font-size: 23px; }
  .op-reflection-inner { padding: 72px 15px; }
  .op-footer-main { grid-template-columns: 1fr 1fr; gap: 34px; }
  .op-footer-intro { grid-column: 1 / -1; }
  .op-single-layout { grid-template-columns: 1fr; }
  .op-single-aside { position: static; max-width: 440px; }
  .op-contact-section { grid-template-columns: 1fr; gap: 24px; }
  .op-directory-hero-inner { padding-block: 55px; }
}
@media (max-width: 535px) {
  body.admin-bar .op-header { top: 46px; }
  .op-container { width: calc(100% - 34px); }
  .op-header-inner { min-height: 69px; }
  .op-brand { min-width: 0; gap: 8px; }
  .op-brand-mark { width: 40px; height: 40px; font-size: 23px; }
  .op-brand-text strong { font-size: 22px; }
  .op-brand-text small { font-size: 8px; letter-spacing: .04em; }
  .op-header-end { gap: 12px; }
  .op-nav-cta { display: none; }
  .op-lang-switch { font-size: 11px; }
  .op-hero-grid { padding-top: 40px; }
  .op-hero h1 { font-size: clamp(38px, 10.1vw, 52px); line-height: 1.12; margin: 19px 0; }
  .op-eyebrow { font-size: 9px; }
  .op-hero-description { font-size: 14px; }
  .op-hero-actions { gap: 9px; margin-top: 25px; }
  .op-button { min-height: 49px; padding: 12px 15px; font-size: 12px; }
  .op-hero-points { gap: 12px; }
  .op-hero-points span { font-size: 10px; }
  .op-hero-art { height: 430px; max-width: 380px; }
  .op-arch { height: 414px; width: 90%; }
  .op-arch-backdrop { width: 86%; right: 4px; }
  .op-hero-note { bottom: 14px; width: 184px; padding: 10px; font-size: 11px; }
  .op-mini-sun { width: 32px; height: 32px; flex-basis: 32px; }
  .op-section { padding: 57px 0; }
  .op-section-heading h2 { font-size: 31px; }
  .op-section-heading p { font-size: 13px; }
  .op-heading-inline { align-items: start; flex-direction: column; gap: 15px; }
  .op-topic-grid { gap: 10px; }
  .op-topic { padding: 18px 14px; min-height: 201px; }
  .op-topic-icon { width: 42px; height: 42px; margin-bottom: 12px; }
  .op-topic-icon svg { width: 23px; height: 23px; }
  .op-topic strong { font-size: 20px; }
  .op-topic-desc { font-size: 11px; line-height: 1.6; }
  .op-topic-arrow { right: 12px; bottom: 10px; }
  .op-featured-grid { padding-inline: 20px; }
  .op-featured-copy h3 { font-size: 32px; }
  .op-card-grid { grid-template-columns: 1fr; }
  .op-entry-card { min-height: 266px; }
  .op-card-main { padding: 22px 23px 14px; }
  .op-card-icon { margin-bottom: 14px; }
  .op-card-bottom { padding-left: 23px; }
  .op-how-grid { grid-template-columns: 1fr; gap: 29px; }
  .op-how-icon { margin: 17px 0 10px; }
  .op-reflection blockquote { font-size: 30px; }
  .op-reflection-inner { padding: 63px 5px; }
  .op-footer { padding-top: 48px; }
  .op-footer-main { gap: 27px; }
  .op-footer-intro h2 { font-size: 27px; }
  .op-footer-bottom { gap: 15px; flex-wrap: wrap; }
  .op-directory-hero-inner { padding-block: 45px; }
  .op-search-form { padding: 5px 5px 5px 12px; }
  .op-search-form input { font-size: 12px; }
  .op-search-form button { padding: 12px 13px; font-size: 11px; }
  .op-filters { gap: 7px; }
  .op-filters a { font-size: 11px; padding: 7px 10px; }
  .op-page-top > .op-container { padding: 48px 0; }
  .op-page-top h1, .op-directory-hero h1, .op-single-intro h1 { font-size: 41px; }
  .op-plain-wrap { padding-top: 43px; padding-bottom: 65px; }
  .op-prose { font-size: 15px; }
  .op-prose h2 { font-size: 27px; }
  .op-contact-form { padding: 23px 20px; }
  .op-single-intro .op-container { padding: 42px 0; }
  .op-single-layout { padding-top: 33px; padding-bottom: 57px; }
  .op-single-lead { font-size: 15px; }
  .op-read-content { padding: 28px 20px; }
  .op-prayer-text { font-size: var(--op-reader-size, 20px); }
  .op-reading-tools { gap: 3px; }
  .op-reading-tools button { padding: 8px; }
  .op-reading-tools button span { display: none; }
  .op-not-found { min-height: 430px; }
  .op-not-found-number { font-size: 78px; }
  .op-not-found h1 { font-size: 36px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print {
  .op-header, .op-footer, .op-reading-tools, .op-single-aside, .op-single-next, .op-video-section, .op-related, .op-breadcrumbs, .op-audio-box { display: none !important; }
  .op-single-layout { display: block; padding: 0; }
  .op-single-intro, .op-read-content { background: #fff; border: 0; box-shadow: none; }
  .op-single-intro .op-container { padding: 0; }
  .op-prayer-text { font-size: 16pt; }
  body { background: #fff; color: #000; }
}

/* Personal bookmarks link */
.op-header-favorites { display: inline-grid; place-items: center; color: #8c7750; }
.op-header-favorites:hover { color: var(--op-deep); }
@media (max-width:535px) { .op-header-favorites svg { width: 17px; height: 17px; } }
