/*!
Theme Name: Patron 2026
Theme URI: https://www.patroninchief.com
Description: The personal website of Founding Patron in Chief Advocate Soba Sorya, Senior Advocate High Court, Lahore, founder of Christian Lawyers Alliance Pakistan (CLAP). Fast, editable in the Customizer, navy, cream and gold.
Author: Gerizim Digital Ltd for Advocate Soba Sorya
Author URI: https://www.clap.com.pk
Version: 1.0.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: patron-2026
Requires at least: 6.0
Requires PHP: 7.4
*/

/* ============================================
   TOKENS
   ============================================ */
:root {
	--navy: #0e4f8a;
	--navy-deep: #0a3a66;
	--navy-soft: #e8f0f8;
	--charcoal: #333333;
	--gold: #c9a227;
	--gold-deep: #a8861c;
	--gold-soft: #faf5e4;
	--cream: #f7f3ea;
	--cream-deep: #efe8d8;
	--white: #ffffff;
	--ink: #1f2428;
	--body: #4a5561;
	--muted: #7c8794;
	--line: #e6e1d4;
	--radius: 14px;
	--shadow: 0 10px 30px rgba(14, 79, 138, 0.08);
	--serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ============================================
   BASE
   ============================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--sans); font-size: 16px; line-height: 1.68; color: var(--body); background: var(--white); overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-decoration: none; transition: color .2s; }
a:hover { color: var(--gold-deep); }
h1, h2, h3, h4, h5 { font-family: var(--serif); color: var(--ink); line-height: 1.2; font-weight: 700; }
h1 { font-size: clamp(30px, 4.6vw, 50px); }
h2 { font-size: clamp(25px, 3.4vw, 37px); }
h3 { font-size: 21px; }
h4 { font-size: 17px; font-family: var(--sans); font-weight: 700; }
p { margin: 0 0 16px; }
ul, ol { padding-left: 22px; }
strong, b { color: var(--ink); }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.screen-reader-text:focus { position: fixed; top: 10px; left: 10px; width: auto; height: auto; clip: auto; background: #fff; color: var(--navy); padding: 10px 16px; z-index: 1000; border-radius: 8px; }

.container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.narrow { max-width: 820px; margin-left: auto; margin-right: auto; }
.overline { display: inline-flex; align-items: center; gap: 10px; color: var(--gold-deep); font-size: 12.5px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; margin-bottom: 12px; }
.overline::before { content: ''; width: 26px; height: 2px; background: var(--gold); }
.section { padding: 80px 0; }
.section--cream { background: var(--cream); }
.section--navy { background: var(--navy); color: #fff; }
.section--navy h2, .section--navy h3 { color: #fff; }
.section--navy .overline { color: var(--gold); }
.section--tight { padding: 44px 0; }
.section-head { max-width: 760px; margin: 0 auto 44px; text-align: center; }
.section-head p { font-size: 17px; margin-top: 12px; }
.section-head h2::after, .gold-rule::after { content: ''; display: block; width: 64px; height: 3px; background: var(--gold); margin: 18px auto 0; border-radius: 2px; }
.section-head--left { text-align: left; margin-left: 0; }
.section-head--left h2::after { margin-left: 0; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 26px; border-radius: 8px; font-weight: 700; font-size: 15px; letter-spacing: .2px; cursor: pointer; border: 1.5px solid transparent; white-space: nowrap; transition: background .2s, color .2s, border-color .2s, transform .2s; line-height: 1.2; }
.btn:hover { transform: translateY(-1px); }
.btn svg { width: 18px; height: 18px; flex: 0 0 18px; }
.btn-navy { background: var(--navy); color: #fff; }
.btn-navy:hover { background: var(--gold); color: var(--ink); }
.btn-gold { background: var(--gold); color: var(--ink); }
.btn-gold:hover { background: var(--navy); color: #fff; }
.btn-outline { background: transparent; color: var(--navy); border-color: rgba(14,79,138,0.45); }
.btn-outline:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn-outline-light { background: transparent; color: #fff; border-color: rgba(255,255,255,0.6); }
.btn-outline-light:hover { background: #fff; color: var(--navy); }
.link-more { font-weight: 700; color: var(--navy); }
.link-more:hover { color: var(--gold-deep); }

/* ============================================
   HEADER — sticky, wordmark left, menu right
   ============================================ */
#site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,0.97); backdrop-filter: saturate(140%) blur(6px); border-bottom: 1px solid var(--line); box-shadow: 0 2px 14px rgba(14,79,138,0.06); }
#site-header::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold) 70%, transparent); opacity: .7; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 76px; }
.brand { display: flex; align-items: center; flex: 0 0 auto; }
.brand img { height: 32px; width: auto; }
.nav-primary { display: flex; align-items: center; }
.nav-menu { display: flex; align-items: center; gap: 2px; list-style: none; padding: 0; }
.nav-menu > li { position: relative; }
.nav-menu > li > a { display: inline-flex; align-items: center; gap: 4px; padding: 9px 10px; color: var(--charcoal); font-weight: 600; font-size: 13.5px; border-radius: 8px; white-space: nowrap; }
.nav-menu > li > a:hover, .nav-menu > li.current-menu-item > a, .nav-menu > li.current-menu-ancestor > a, .nav-menu > li.current_page_parent > a { color: var(--navy); background: var(--navy-soft); }
.nav-menu > li.menu-item-has-children > a::after { content: ''; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); margin-left: 4px; opacity: .7; }
.nav-menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 240px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 0 0 10px 10px; box-shadow: 0 16px 40px rgba(14,79,138,0.14); list-style: none; padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.nav-menu > li:hover > .sub-menu, .nav-menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-menu .sub-menu a { display: block; padding: 9px 18px; color: var(--charcoal); font-size: 14px; font-weight: 500; }
.nav-menu .sub-menu a:hover, .nav-menu .sub-menu .current-menu-item > a { background: var(--cream); color: var(--navy); }
.nav-menu > li.menu-item-cta > a { background: var(--navy); color: #fff; margin-left: 8px; padding: 10px 18px; }
.nav-menu > li.menu-item-cta > a:hover { background: var(--gold); color: var(--ink); }
.sub-toggle { display: none; }
.menu-toggle { display: none; background: none; border: 0; width: 44px; height: 44px; border-radius: 8px; color: var(--navy); cursor: pointer; align-items: center; justify-content: center; }
.menu-toggle svg { width: 26px; height: 26px; }

/* ============================================
   HOME HERO — full-width banner, CTA band, then the animated navy band
   ============================================ */
.hero-banner { background: var(--cream); }
.hero-banner img { width: 100%; height: auto; max-height: 760px; object-fit: cover; object-position: left center; }
.hero-cta { background: var(--cream); border-top: 1px solid var(--cream-deep); padding: 18px 0; }
.hero-cta .container { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.hero-band { background: linear-gradient(120deg, #071f3d 0%, var(--navy-deep) 30%, var(--navy) 55%, #1a6bb5 75%, var(--navy-deep) 100%); background-size: 260% 260%; animation: pic-gradient 14s ease-in-out infinite; color: #fff; padding: 54px 0 58px; position: relative; overflow: hidden; }
@keyframes pic-gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
.hero-band::before { content: ''; position: absolute; left: -160px; bottom: -200px; width: 480px; height: 480px; border-radius: 50%; border: 70px solid rgba(255,255,255,0.05); animation: pic-drift 18s ease-in-out infinite alternate; pointer-events: none; }
@keyframes pic-drift { from { transform: translate(0, 0) scale(1); } to { transform: translate(60px, -40px) scale(1.12); } }
.hero-band h1, .hero-band .hero-tag, .hero-band .hero-lead { animation: pic-rise .9s cubic-bezier(.2,.7,.2,1) both; }
.hero-band .hero-tag { animation-delay: .15s; } .hero-band .hero-lead { animation-delay: .3s; }
@keyframes pic-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.hero-band .hero-tag { background: linear-gradient(90deg, var(--gold) 0%, #fff3c4 45%, var(--gold) 60%, var(--gold) 100%); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: pic-rise .9s cubic-bezier(.2,.7,.2,1) .15s both, pic-shimmer 6s linear 1.2s infinite; }
@keyframes pic-shimmer { from { background-position: 120% 0; } to { background-position: -120% 0; } }
@media (prefers-reduced-motion: reduce) { .hero-band, .hero-band::before, .hero-band::after, .hero-band h1, .hero-band .hero-tag, .hero-band .hero-lead { animation: none !important; } .hero-band .hero-tag { color: var(--gold); background: none; } }
.hero-band::after { content: ''; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; border: 60px solid rgba(201,162,39,0.12); animation: pic-drift 22s ease-in-out infinite alternate-reverse; pointer-events: none; }
.hero-band .container { position: relative; text-align: center; }
.hero-band h1 { color: #fff; font-size: clamp(26px, 3.8vw, 42px); margin-bottom: 10px; }
.hero-tag { font-family: var(--serif); font-style: italic; font-size: clamp(17px, 2vw, 22px); color: var(--gold); margin-bottom: 0; }
.hero-lead { font-size: 17.5px; line-height: 1.7; color: rgba(255,255,255,0.9); max-width: 760px; margin: 0 auto 26px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero-band .hero-actions { justify-content: center; }
.hero-lead a, .cta-band p a, .side-help p a, .patron-panel p a, .section--navy p a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.hero-lead a:hover, .cta-band p a:hover, .side-help p a:hover, .patron-panel p a:hover { color: #fff; }

/* Inner page hero: centred navy, breadcrumbs, gold rule */
.page-hero { background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%); color: #fff; padding: 56px 0 54px; position: relative; overflow: hidden; }
.page-hero::before { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--gold); }
.page-hero .container { text-align: center; }
.page-hero .overline { display: inline-flex; color: var(--gold); }
.page-hero .overline::before { background: var(--gold); }
.page-hero h1 { color: #fff; margin-bottom: 12px; }
.page-hero .hero-lead { margin-left: auto; margin-right: auto; margin-bottom: 0; }
.page-hero .hero-lead + .hero-actions { margin-top: 24px; }
.page-hero .hero-actions { justify-content: center; }
.crumbs { font-size: 13px; color: rgba(255,255,255,0.7); margin-bottom: 16px; }
.crumbs a { color: rgba(255,255,255,0.85); }
.crumbs a:hover { color: var(--gold); }
.crumbs span { margin: 0 6px; }
.page-hero--split .hero-split { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 40px; align-items: center; }
.page-hero--split .hero-split > div:first-child { text-align: center; }
.page-hero--split .hero-photo { border-radius: var(--radius); overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,0.3); border: 4px solid rgba(201,162,39,0.55); }
.page-hero--split .hero-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.single-hero-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; color: rgba(255,255,255,0.85); font-size: 14px; margin-top: 10px; }

/* ============================================
   CONTENT BLOCKS
   ============================================ */
.prose { font-size: 16.5px; line-height: 1.82; }
.prose p { margin-bottom: 18px; }
.prose h2 { margin: 38px 0 14px; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 28px 0 10px; }
.prose ul, .prose ol { margin: 0 0 20px 4px; }
.prose li { margin-bottom: 8px; }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.lead-text { font-size: 19.5px; line-height: 1.7; color: var(--ink); font-family: var(--serif); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }

/* Intro with portrait on the right (home, statesman look) */
.founder-block { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 56px; align-items: center; }
.founder-frame { position: relative; max-width: 420px; margin-left: auto; }
.founder-frame::before { content: ''; position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--gold); border-radius: var(--radius); z-index: 0; }
.founder-frame img { position: relative; z-index: 1; border-radius: var(--radius); width: 100%; aspect-ratio: 4/5; object-fit: cover; box-shadow: var(--shadow); }
.founder-role { color: var(--gold-deep); font-weight: 700; font-size: 14.5px; letter-spacing: .4px; margin: 6px 0 18px; }

/* Numbers tiles: navy gradient, gold numerals */
.facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.fact { position: relative; text-align: center; padding: 36px 18px 32px; background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 100%); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--radius); box-shadow: 0 14px 34px rgba(10,58,102,0.22); overflow: hidden; transition: transform .25s, box-shadow .25s; }
.fact::before { content: ''; position: absolute; left: 50%; top: 0; width: 64px; height: 4px; transform: translateX(-50%); background: var(--gold); border-radius: 0 0 4px 4px; }
.fact::after { content: ''; position: absolute; right: -50px; bottom: -50px; width: 150px; height: 150px; border-radius: 50%; border: 22px solid rgba(201,162,39,0.14); pointer-events: none; }
.fact:hover { transform: translateY(-5px); box-shadow: 0 22px 44px rgba(10,58,102,0.3); }
.fact b { display: block; font-family: var(--serif); font-size: 48px; color: var(--gold); line-height: 1; margin-bottom: 10px; position: relative; }
.fact span { font-size: 14px; color: rgba(255,255,255,0.88); letter-spacing: .2px; position: relative; }

/* Areas of practice */
.areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.areas--2 { grid-template-columns: repeat(2, 1fr); }
.area { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; position: relative; transition: transform .25s, box-shadow .25s; }
.area::before { content: ''; position: absolute; left: 0; top: 18px; bottom: 18px; width: 4px; background: var(--gold); border-radius: 0 4px 4px 0; opacity: 0; transition: opacity .25s; }
.area:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(14,79,138,0.12); }
.area:hover::before { opacity: 1; }
.tile-icon { width: 52px; height: 52px; border-radius: 12px; background: var(--navy-soft); color: var(--navy); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.tile-icon svg { width: 26px; height: 26px; }
.area h3 { font-size: 20px; margin-bottom: 8px; }
.area p { font-size: 15.5px; margin: 0; }

.checks { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 32px; }
.checks--1 { grid-template-columns: 1fr; }
.checks li { position: relative; padding-left: 34px; font-size: 16px; line-height: 1.6; }
.checks li::before { content: ''; position: absolute; left: 0; top: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--gold-soft); border: 1px solid rgba(201,162,39,0.5); }
.checks li::after { content: ''; position: absolute; left: 7px; top: 8px; width: 6px; height: 10px; border-right: 2.5px solid var(--gold-deep); border-bottom: 2.5px solid var(--gold-deep); transform: rotate(45deg); }
.callout { background: var(--gold-soft); border-left: 4px solid var(--gold); padding: 20px 24px; border-radius: 0 12px 12px 0; color: var(--ink); font-size: 16.5px; line-height: 1.7; margin: 0 0 24px; }
.quote { font-family: var(--serif); font-style: italic; font-size: clamp(20px, 2.4vw, 26px); color: var(--navy-deep); line-height: 1.5; padding: 8px 0 8px 28px; border-left: 4px solid var(--gold); margin: 28px 0; }
.quote cite { display: block; font-style: normal; font-family: var(--sans); font-size: 14px; color: var(--muted); margin-top: 10px; }
.verse { font-family: var(--serif); font-style: italic; font-size: 20px; color: var(--navy-deep); text-align: center; max-width: 720px; margin: 28px auto 0; }

/* Timeline */
.timeline { list-style: none; padding: 0; position: relative; margin: 10px 0 0; }
.timeline::before { content: ''; position: absolute; left: 88px; top: 8px; bottom: 8px; width: 2px; background: var(--cream-deep); }
.timeline li { position: relative; display: grid; grid-template-columns: 70px 1fr; gap: 36px; padding: 0 0 22px; }
.timeline li::before { content: ''; position: absolute; left: 82px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--gold); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--gold); }
.timeline b { font-family: var(--serif); color: var(--navy); font-size: 20px; text-align: right; }
.timeline span { color: var(--body); font-size: 16px; padding-top: 2px; }

/* FAQ accordion */
.faq { max-width: 860px; margin: 0 auto; }
.faq details { background: #fff; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 12px; overflow: hidden; }
.faq summary { list-style: none; cursor: pointer; padding: 18px 54px 18px 22px; font-family: var(--serif); font-size: 18px; font-weight: 700; color: var(--ink); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ''; position: absolute; right: 22px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.faq details[open] summary { color: var(--navy); border-bottom: 1px solid var(--line); }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq .faq-a { padding: 16px 22px 20px; font-size: 16px; line-height: 1.75; }
.faq .faq-a p:last-child { margin-bottom: 0; }

/* Office holders (CLAP page) and press-kit items */
.people { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.person { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 22px; border-left: 4px solid var(--gold); }
.person h3 { font-size: 19px; margin-bottom: 4px; }
.person-role { color: var(--gold-deep); font-weight: 700; font-size: 13.5px; letter-spacing: .3px; margin-bottom: 8px; }
.person p { font-size: 14.5px; margin: 0; }
.kit { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kit-item { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.kit-item img { width: 100%; aspect-ratio: 16/9; object-fit: cover; background: var(--cream); }
.kit-item img.kit-portrait { object-position: center 15%; }
.kit-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.kit-body h3 { font-size: 18px; }
.kit-body p { font-size: 14.5px; margin: 0; flex: 1; }
.kit-text { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 26px; margin-bottom: 18px; }
.kit-text h3 { font-size: 19px; margin-bottom: 10px; }
.kit-text p { font-size: 15.5px; line-height: 1.75; }
.kit-text .kit-meta { font-size: 13px; color: var(--muted); text-transform: uppercase; letter-spacing: 1px; font-weight: 600; margin-top: 8px; }
.kit-text p:last-child { margin-bottom: 0; }
.banner-image { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.banner-image img { width: 100%; }
.links-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; list-style: none; padding: 0; }
.links-grid li a { display: block; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; font-weight: 600; color: var(--ink); }
.links-grid li a:hover { border-color: var(--gold); color: var(--navy); }
.links-grid li a span { display: block; font-size: 13px; color: var(--muted); font-weight: 500; margin-top: 3px; }
.clap-block { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 48px; align-items: center; }
.clap-logo { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 36px 32px; box-shadow: var(--shadow); }
.clap-logo img { width: 100%; max-width: 380px; margin: 0 auto; }

/* CTA band */
.cta-band { background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%); color: #fff; padding: 64px 0; text-align: center; position: relative; overflow: hidden; }
.cta-band::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--gold); }
.cta-band h2 { color: #fff; margin-bottom: 12px; }
.cta-band p { color: rgba(255,255,255,0.88); font-size: 17px; max-width: 720px; margin: 0 auto 24px; }
.cta-band .hero-actions { justify-content: center; }

/* ============================================
   STATEMENTS (posts)
   ============================================ */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.post-card { background: #fff; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.post-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(14,79,138,0.12); }
.post-card-img { display: block; aspect-ratio: 1200/630; overflow: hidden; background: var(--navy-soft); }
.post-card-img img { width: 100%; height: 100%; object-fit: cover; }
.post-card-img .ph { height: 100%; display: flex; align-items: center; justify-content: center; color: var(--navy); }
.post-card-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.post-card-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; margin-bottom: 8px; color: var(--muted); text-transform: uppercase; letter-spacing: .6px; font-weight: 600; }
.post-card-meta span:first-child { color: var(--gold-deep); }
.post-card h3 { font-size: 18.5px; margin-bottom: 8px; }
.post-card h3 a { color: var(--ink); }
.post-card h3 a:hover { color: var(--navy); }
.post-card p { font-size: 14.5px; flex: 1; }
.post-card .link-more { font-size: 14px; }
.statement-list { list-style: none; padding: 0; max-width: 900px; margin: 10px auto 0; }
.statement-row { display: grid; grid-template-columns: 150px 1fr; gap: 28px; padding: 28px 0; border-top: 1px solid var(--cream-deep); }
.statement-row:first-child { border-top: 0; }
.statement-row time { font-family: var(--serif); color: var(--navy); font-size: 17px; font-weight: 700; padding-top: 4px; }
.statement-row h2 { font-size: 23px; margin-bottom: 8px; }
.statement-row h2 a { color: var(--ink); }
.statement-row h2 a:hover { color: var(--navy); }
.statement-row p { font-size: 15.5px; margin-bottom: 8px; }
.statement-note { max-width: 900px; margin: 30px auto 0; font-size: 14.5px; color: var(--muted); text-align: center; }
.blog-search { display: flex; max-width: 520px; margin: 22px auto 0; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,0.2); }
.blog-search input { flex: 1; border: 0; padding: 13px 16px; font-size: 15px; color: var(--ink); min-width: 0; }
.blog-search button { border: 0; background: var(--gold); color: var(--ink); font-weight: 700; padding: 0 20px; cursor: pointer; }
.pagination { margin-top: 36px; text-align: center; }
.pagination .nav-links { display: inline-flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.pagination ul { list-style: none; padding: 0; display: inline-flex; gap: 6px; flex-wrap: wrap; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 8px; background: #fff; border: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: 14px; }
.page-numbers.current, .page-numbers:hover { background: var(--navy); color: #fff; border-color: var(--navy); }

.single-layout { display: grid; grid-template-columns: 1fr 320px; gap: 36px; align-items: start; }
.single-main { background: #fff; border-radius: var(--radius); padding: 36px 40px; border: 1px solid var(--line); min-width: 0; }
.single-content-wrap { padding: 44px 0 64px; background: var(--cream); }
.breadcrumbs { font-size: 13px; color: var(--muted); margin-bottom: 18px; }
.breadcrumbs a { color: var(--navy); }
.breadcrumbs span { margin: 0 4px; }
.single-featured { margin: 0 0 26px; border-radius: 12px; overflow: hidden; }
.single-featured img { width: 100%; }
.entry-content { font-size: 17px; line-height: 1.85; color: var(--charcoal); }
.entry-content > * + * { margin-top: 18px; }
.entry-content h2, .entry-content h3 { margin-top: 32px; }
.entry-content img { border-radius: 10px; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.entry-content blockquote { border-left: 4px solid var(--gold); padding: 6px 0 6px 20px; font-family: var(--serif); font-style: italic; color: var(--navy-deep); font-size: 19px; }
.entry-content ul, .entry-content ol { padding-left: 24px; }
.entry-content p:last-child { font-family: var(--serif); font-style: italic; color: var(--navy-deep); border-top: 1px solid var(--line); padding-top: 16px; }
.entry-content figure figcaption { font-size: 13.5px; color: var(--muted); margin-top: 8px; text-align: center; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.entry-content th, .entry-content td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; }
.entry-content iframe, .entry-content video { max-width: 100%; }
.single-share { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 14px; color: var(--muted); }
.single-share a { font-weight: 600; }
.post-cta { margin-top: 30px; padding: 26px 28px; border-radius: 12px; background: var(--navy); color: #fff; display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.post-cta h3 { color: #fff; font-size: 20px; margin-bottom: 6px; }
.post-cta p { color: rgba(255,255,255,0.85); margin: 0; font-size: 15px; }
.related { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--line); }
.related h3 { margin-bottom: 18px; }
.related .blog-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }
.related .post-card h3 { font-size: 16px; }
.related .post-card p { display: none; }
.sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 100px; }
.side-card { background: #fff; border-radius: var(--radius); padding: 22px 24px; border: 1px solid var(--line); }
.side-card h4 { font-family: var(--serif); font-size: 18px; margin-bottom: 12px; }
.side-card p { font-size: 14.5px; }
.side-author { text-align: center; }
.side-author img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0 auto 12px; border: 3px solid var(--gold); }
.side-card.side-help { background: var(--navy); color: #fff; border-color: transparent; }
.side-card.side-help h4 { color: var(--gold); }
.side-card.side-help p { color: rgba(255,255,255,0.88); }
.side-recent a { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); color: var(--ink); }
.side-recent a:first-of-type { border-top: 0; padding-top: 0; }
.side-recent b { display: block; font-size: 14px; line-height: 1.35; font-weight: 600; }
.side-recent small { color: var(--muted); font-size: 12.5px; }
.side-card .row { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-top: 1px solid var(--line); font-size: 14.5px; }
.side-card .row:first-of-type { border-top: 0; }
.side-card .row svg { width: 20px; height: 20px; flex: 0 0 20px; color: var(--gold-deep); margin-top: 2px; }
.side-card .row b { display: block; font-size: 12.5px; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); margin-bottom: 2px; }
.side-card .row span, .side-card .row a { color: var(--ink); overflow-wrap: anywhere; }
.side-card .row > div { min-width: 0; }
.contact-layout > *, .single-layout > *, .two-col > *, .founder-block > *, .clap-block > * { min-width: 0; }

/* ============================================
   FORMS
   ============================================ */
.contact-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: 32px; align-items: start; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 34px 34px 30px; box-shadow: var(--shadow); }
.form-card h2 { font-size: 26px; margin-bottom: 18px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group.span { grid-column: 1 / -1; }
.form-group label { font-size: 13.5px; font-weight: 600; color: var(--ink); }
.form-group .req { color: #b3261e; }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 8px; font-size: 15px; color: var(--ink); background: #fff; transition: border-color .2s, box-shadow .2s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: 0; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(14,79,138,0.12); }
.form-group textarea { min-height: 150px; resize: vertical; }
.form-actions { margin-top: 20px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.form-note-small { font-size: 13px; color: var(--muted); }
.pic-form-note { margin-top: 16px; padding: 14px 16px; border-radius: 10px; font-size: 14.5px; line-height: 1.55; background: var(--gold-soft); color: var(--ink); }
.pic-form-note.is-ok { background: #e7f5ec; color: #14532d; }
.pic-form-note.is-error { background: #fdecec; color: #7f1d1d; }
.contact-side { display: flex; flex-direction: column; gap: 18px; }
.urgent { background: var(--gold-soft); border: 1px solid rgba(201,162,39,0.5); border-radius: 12px; padding: 18px 20px; font-size: 15px; }
.urgent b { color: var(--ink); }
.map-embed { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); min-height: 280px; background: var(--cream); }
.map-embed iframe { width: 100%; height: 300px; border: 0; display: block; }
.contact-empty { font-size: 14px; color: var(--muted); }

/* ============================================
   QUOTE BAND + FOOTER
   ============================================ */
.quote-rotator { display: grid; grid-template-areas: "quote"; }
.quote-rotator blockquote { grid-area: quote; font-family: var(--serif); font-style: italic; line-height: 1.55; margin: 0; opacity: 0; visibility: hidden; transition: opacity .8s, visibility .8s; }
.quote-rotator blockquote.is-active { opacity: 1; visibility: visible; }
.quote-rotator blockquote::before { content: '\201C'; color: var(--gold); } .quote-rotator blockquote::after { content: '\201D'; color: var(--gold); }
.patron-footer { background: var(--cream); color: var(--charcoal); padding: 56px 0; border-top: 1px solid var(--cream-deep); }
.patron-footer::before { content: ''; display: block; width: 72px; height: 4px; background: var(--gold); margin: 0 auto 32px; }
.patron-footer-inner { display: grid; grid-template-columns: 120px 1fr; gap: 28px; align-items: center; }
.patron-footer-photo img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 3px solid var(--gold); box-shadow: 0 8px 24px rgba(0,0,0,0.25); }
.patron-footer-quotes blockquote { font-size: clamp(17px, 1.9vw, 21px); color: var(--navy-deep); }
.patron-kicker { display: block; color: var(--gold-deep); font-size: 12.5px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; margin-bottom: 8px; }
.patron-footer-cite { margin: 12px 0 0; font-size: 14.5px; color: var(--charcoal); }
.patron-footer-cite a { color: var(--navy); font-weight: 700; }
.patron-footer-cite span { margin: 0 6px; }

/* Word from the Patron in Chief (designed block) */
.patron-section { padding: 36px 0; }
.patron-block { display: grid; grid-template-columns: 0.72fr 1.28fr; gap: 0; align-items: stretch; border-radius: 18px; overflow: hidden; box-shadow: 0 18px 50px rgba(10,58,102,0.18); }
.patron-frame { position: relative; background: var(--cream-deep); min-height: 340px; }
.patron-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.patron-frame::after { content: ''; position: absolute; top: 0; bottom: 0; right: 0; width: 6px; background: var(--gold); }
.patron-panel { position: relative; background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 55%, #123c62 100%); color: #fff; padding: 40px 44px 36px; display: flex; flex-direction: column; justify-content: center; }
.patron-panel .patron-kicker { color: var(--gold); }
.patron-name { color: #fff; font-size: 28px; margin-bottom: 4px; }
.patron-title { color: rgba(255,255,255,0.85); font-weight: 600; font-size: 15px; margin-bottom: 10px; }
.patron-quotes blockquote { font-size: clamp(18px, 2vw, 22px); color: #fff; padding-left: 18px; border-left: 3px solid var(--gold); }
.patron-quotes { margin: 12px 0 22px; }
.patron-actions { display: flex; flex-wrap: wrap; gap: 12px; }

#site-footer { background: var(--navy-deep); color: rgba(255,255,255,0.82); padding: 60px 0 0; border-top: 5px solid var(--gold); }
#site-footer a { color: rgba(255,255,255,0.85); }
#site-footer a:hover { color: var(--gold); }
.footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding-bottom: 36px; }
.footer-wordmark { width: 260px; height: auto; margin-bottom: 16px; }
.footer-about { font-size: 14px !important; line-height: 1.65 !important; color: rgba(255,255,255,0.78); }
.footer-credit { margin: 6px 0 0; }
.footer-credit img { width: 150px; height: auto; background: #fff; padding: 8px 10px; border-radius: 8px; }
#site-footer p { font-size: 14.5px; line-height: 1.7; }
#site-footer h3 { color: #fff; font-family: var(--sans); font-size: 13.5px; text-transform: uppercase; letter-spacing: 1.6px; margin-bottom: 16px; }
#site-footer ul { list-style: none; padding: 0; }
#site-footer ul li { margin-bottom: 9px; font-size: 14.5px; }
.footer-posts li { margin-bottom: 12px !important; }
.footer-posts a { display: block; line-height: 1.4; }
.footer-posts small { display: block; color: rgba(255,255,255,0.55); font-size: 12.5px; margin-top: 2px; }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; }
.footer-contact svg { width: 18px; height: 18px; flex: 0 0 18px; color: var(--gold); margin-top: 3px; }
.footer-line { font-size: 13.5px !important; color: rgba(255,255,255,0.6); border-top: 1px solid rgba(255,255,255,0.12); padding-top: 18px; margin: 0 0 4px; text-align: center; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.12); padding: 18px 0; font-size: 13.5px; margin-top: 14px; }
.footer-bottom .container { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.footer-legal { display: flex; gap: 16px; }
.back-to-top { position: fixed; right: 18px; bottom: 22px; width: 44px; height: 44px; border-radius: 50%; background: var(--gold); color: var(--ink); border: 0; font-size: 20px; cursor: pointer; display: none; z-index: 80; box-shadow: 0 6px 18px rgba(0,0,0,0.25); }
.back-to-top.show { display: block; }

/* Gutenberg content on plain pages */
.legal .entry-content { max-width: 820px; margin: 0 auto; }
.alignwide { max-width: 1180px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; }
.wp-block-separator { border-color: var(--line); }
.search-form { display: flex; max-width: 480px; margin: 0 auto; gap: 8px; }
.search-form input[type=search] { flex: 1; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 8px; min-width: 0; }
.search-form button, .search-form input[type=submit] { background: var(--navy); color: #fff; border: 0; border-radius: 8px; padding: 0 18px; font-weight: 700; cursor: pointer; }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1080px) {
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.areas { grid-template-columns: repeat(2, 1fr); }
	.kit, .links-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1140px) {
	.menu-toggle { display: inline-flex; }
	.nav-primary { position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 20px 40px rgba(14,79,138,0.12); display: none; max-height: calc(100vh - 84px); overflow-y: auto; }
	.nav-primary.is-open { display: block; }
	.nav-menu { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 16px 16px; }
	.nav-menu > li { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; }
	.nav-menu > li:first-child { border-top: 0; }
	.nav-menu > li > a { flex: 1; padding: 13px 4px; font-size: 16px; border-radius: 0; }
	.nav-menu > li > a:hover, .nav-menu > li.current-menu-item > a { background: none; }
	.nav-menu > li.menu-item-has-children > a::after { display: none; }
	.sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: none; border: 0; color: var(--navy); cursor: pointer; }
	.sub-toggle svg { width: 20px; height: 20px; transition: transform .2s; }
	.nav-menu > li.sub-open > .sub-toggle svg { transform: rotate(180deg); }
	.nav-menu .sub-menu { position: static; display: none; width: 100%; flex-basis: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; border-radius: 0; padding: 0 0 8px 14px; }
	.nav-menu > li.sub-open > .sub-menu { display: block; }
	.nav-menu > li.menu-item-cta > a { margin: 10px 0 0; justify-content: center; border-radius: 8px; padding: 12px; }
}
@media (max-width: 900px) {
	.section { padding: 56px 0; }
	.two-col, .founder-block, .contact-layout, .single-layout, .clap-block { grid-template-columns: 1fr; }
	.founder-frame { max-width: 380px; margin: 0 auto; }
	.page-hero--split .hero-split { grid-template-columns: 1fr; }
	.page-hero--split .hero-photo { max-width: 320px; margin: 0 auto; }
	.blog-grid { grid-template-columns: repeat(2, 1fr); }
	.checks { grid-template-columns: 1fr; }
	.people { grid-template-columns: 1fr; }
	.sidebar { position: static; }
	.single-main { padding: 26px 22px; }
	.timeline::before { left: 66px; }
	.timeline li { grid-template-columns: 50px 1fr; gap: 30px; }
	.timeline li::before { left: 60px; }
	.timeline b { font-size: 17px; }
	.patron-block { grid-template-columns: 1fr; }
	.patron-frame { min-height: 0; }
	.patron-frame::after { top: auto; right: 0; left: 0; width: auto; height: 6px; }
	.patron-frame img { aspect-ratio: 4/3; object-position: center 20%; }
	.patron-panel { padding: 32px 26px 28px; }
	.patron-footer-inner { grid-template-columns: 1fr; text-align: center; gap: 18px; }
	.patron-footer-photo img { margin: 0 auto; }
	.statement-row { grid-template-columns: 1fr; gap: 6px; }
}
@media (max-width: 600px) {
	.container { width: calc(100% - 32px); }
	.hero-band { padding: 32px 0 36px; }
	.hero-band h1 { font-size: 24px; }
	.hero-lead { font-size: 15px; }
	.hero-actions .btn, .hero-cta .btn { width: 100%; white-space: normal; text-align: center; }
	.facts { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.facts .fact { padding: 22px 10px 20px; }
	.facts .fact b { font-size: 32px; }
	.facts .fact span { font-size: 12px; }
	.areas, .areas--2 { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.area { padding: 18px 14px; }
	.area h3 { font-size: 16px; }
	.area p { font-size: 13.5px; }
	.tile-icon { width: 42px; height: 42px; margin-bottom: 12px; }
	.kit, .links-grid { grid-template-columns: 1fr; }
	.section { padding: 44px 0; }
	.blog-grid, .related .blog-grid { grid-template-columns: 1fr; }
	.form-grid { grid-template-columns: 1fr; }
	.form-card { padding: 24px 18px; }
	.footer-grid { grid-template-columns: 1fr; gap: 30px; }
	.footer-bottom .container { flex-direction: column; align-items: flex-start; }
	.brand img { height: 36px; }
	.quote { font-size: 19px; padding-left: 18px; }
	.founder-frame::before { display: none; }
	.faq summary { font-size: 16px; padding: 16px 46px 16px 18px; }
	.faq .faq-a { padding: 14px 18px 18px; }
	h1 { font-size: 30px; }
	.post-cta { padding: 20px; }
	.clap-logo { padding: 24px 20px; }
}
