:root {
    --ink: #1f2423;
    --muted: #68716f;
    --paper: #fffdf9;
    --soft: #f5f2ec;
    --line: #dedbd4;
    --teal: #176b68;
    --deep-teal: #133f3d;
    --magenta: #c22d72;
    --gold: #c7923d;
    --green: #6b8d68;
    --white: #fff;
    --shadow: 0 22px 60px rgba(31, 36, 35, .1);
    --radius: 22px;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Inter, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.08; }
h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; }
.site-main { min-height: 75vh; }
.content-width { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.content-width-narrow { width: min(760px, calc(100% - 48px)); margin-inline: auto; }
.section-pad { padding-top: 104px; padding-bottom: 104px; }
.section-pad-sm { padding-top: 64px; padding-bottom: 64px; }
.surface-soft { background: var(--soft); }
.eyebrow { display: block; margin-bottom: 16px; color: var(--magenta); font-size: .71rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow.light { color: #f3c7da; }
.lead { font-family: var(--serif); font-size: 1.55rem; line-height: 1.45; }
.text-link { color: var(--teal); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.text-link span { margin-left: 5px; transition: margin .2s; }
.text-link:hover span { margin-left: 10px; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.button-row.centered { justify-content: center; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 23px; border: 1px solid transparent; border-radius: 999px; cursor: pointer; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; transition: transform .2s, box-shadow .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--magenta); color: var(--white); box-shadow: 0 10px 24px rgba(194, 45, 114, .22); }
.button-primary:hover { background: #a91e60; color: white; }
.button-dark { background: var(--ink); color: white; }
.button-light { background: white; color: var(--ink); }
.button-outline { border-color: #b4b7b5; background: transparent; color: var(--ink); }
.button-outline:hover { border-color: var(--teal); color: var(--teal); }
.button-ghost-light { border-color: rgba(255,255,255,.65); color: white; }
.button-danger { background: #fff3f3; border-color: #e9bcbc; color: #9a2e2e; }

/* Navigation */
.site-header { position: relative; z-index: 100; background: rgba(255,253,249,.96); border-bottom: 1px solid rgba(31,36,35,.08); }
.announcement-bar { display: flex; justify-content: center; gap: 28px; padding: 7px 24px; background: var(--deep-teal); color: rgba(255,255,255,.78); font-size: .72rem; letter-spacing: .03em; }
.announcement-bar a { color: white; font-weight: 700; }
.nav-shell { display: flex; width: min(1360px, calc(100% - 48px)); min-height: 82px; margin: auto; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; flex-shrink: 0; align-items: center; gap: 11px; }
.brand-mark { display: inline-grid; width: 48px; height: 48px; place-items: center; border-radius: 50% 50% 47% 53% / 44% 55% 45% 56%; background: var(--magenta); color: white; font-family: var(--serif); font-size: 1.45rem; font-style: italic; box-shadow: inset -9px -8px 0 rgba(23,107,104,.35); }
.brand-mark.small { width: 37px; height: 37px; font-size: 1.08rem; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-family: var(--serif); font-size: 1.22rem; font-weight: 500; }
.brand-copy small { margin-top: 7px; color: var(--muted); font-size: .52rem; letter-spacing: .15em; }
.primary-nav { display: flex; align-items: center; gap: 22px; color: #3d4543; font-size: .78rem; font-weight: 700; }
.primary-nav > a, .nav-more > span { position: relative; padding: 30px 0; white-space: nowrap; }
.primary-nav > a.active::after, .primary-nav > a:hover::after { position: absolute; right: 0; bottom: 20px; left: 0; height: 2px; background: var(--magenta); content: ""; }
.primary-nav .nav-cta { padding: 10px 18px; border-radius: 999px; background: var(--magenta); color: white; }
.primary-nav .nav-cta::after { display: none; }
.primary-nav .nav-dashboard { color: var(--teal); }
.nav-more { position: relative; cursor: default; }
.nav-dropdown { position: absolute; top: 62px; left: -25px; display: none; width: 170px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: var(--shadow); }
.nav-dropdown a { display: block; padding: 9px 12px; border-radius: 8px; }
.nav-dropdown a:hover { background: var(--soft); color: var(--teal); }
.nav-more:hover .nav-dropdown { display: block; }
.nav-logout button { padding: 0; border: 0; background: transparent; color: var(--muted); font-size: .73rem; cursor: pointer; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: none; }
.menu-toggle span { display: block; height: 2px; margin: 5px 0; background: var(--ink); }

/* Homepage */
.hero { position: relative; min-height: 690px; overflow: hidden; background: #292f2d; color: white; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21,35,33,.88) 0%, rgba(21,35,33,.68) 35%, rgba(21,35,33,.05) 72%); }
.hero-content { position: relative; z-index: 2; padding-top: 158px; padding-bottom: 140px; }
.hero h1 { max-width: 660px; margin-bottom: 24px; font-size: clamp(4.3rem, 9vw, 8rem); line-height: .85; }
.hero h1 em { color: #f4b3d1; font-weight: 400; }
.hero-content > p { max-width: 620px; margin-bottom: 34px; color: rgba(255,255,255,.84); font-size: 1.2rem; line-height: 1.65; }
.hero-note { position: absolute; z-index: 3; right: 5vw; bottom: 35px; display: flex; align-items: center; gap: 15px; padding: 16px 22px; border: 1px solid rgba(255,255,255,.25); border-radius: 15px; background: rgba(20,35,33,.62); backdrop-filter: blur(14px); }
.hero-note > span { color: #f4b3d1; font-family: var(--serif); font-size: 2rem; }
.hero-note div { display: flex; flex-direction: column; }
.hero-note small { color: rgba(255,255,255,.65); }
.manifesto { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; }
.manifesto h2 { max-width: 450px; font-size: clamp(2.8rem, 5vw, 4.6rem); }
.manifesto-copy > p:not(.lead) { color: var(--muted); }
.section-heading { display: flex; margin-bottom: 42px; align-items: end; justify-content: space-between; gap: 30px; }
.section-heading h2 { margin-bottom: 8px; font-size: clamp(2.4rem, 4.5vw, 4rem); }
.section-heading p { max-width: 670px; margin-bottom: 0; color: var(--muted); }
.featured-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 28px; }
.featured-stack { display: grid; gap: 24px; }
.featured-stack .content-card { display: grid; grid-template-columns: 42% 58%; }
.featured-stack .content-card .content-image { min-height: 100%; border-radius: 16px 0 0 16px; }
.featured-stack .content-card .content-card-body { padding: 23px; }
.featured-stack .content-card h3 { font-size: 1.35rem; }
.featured-stack .content-card p { display: none; }
.content-card { overflow: hidden; border: 1px solid rgba(31,36,35,.09); border-radius: var(--radius); background: white; box-shadow: 0 9px 25px rgba(31,36,35,.055); transition: transform .25s, box-shadow .25s; }
.content-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.content-image { position: relative; display: block; height: 220px; overflow: hidden; background: #d9ded9; }
.content-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.content-card:hover .content-image img { transform: scale(1.035); }
.content-type { position: absolute; top: 16px; left: 16px; padding: 6px 9px; border-radius: 7px; background: rgba(20,35,33,.84); color: white; font-size: .6rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; backdrop-filter: blur(6px); }
.content-card-body { padding: 26px; }
.content-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 12px; color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.access-pill { color: var(--magenta); }
.content-card h3 { margin-bottom: 13px; font-size: 1.62rem; letter-spacing: -.025em; }
.content-card h3 a:hover { color: var(--teal); }
.content-card p { display: -webkit-box; overflow: hidden; margin-bottom: 20px; color: var(--muted); font-size: .9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.content-byline { display: flex; align-items: center; justify-content: space-between; gap: 15px; color: var(--muted); font-size: .7rem; }
.content-byline a { color: var(--teal); font-weight: 800; text-transform: uppercase; }
.content-card-large .content-image { height: 370px; }
.content-card-large h3 { font-size: clamp(2rem, 3vw, 3rem); }
.topic-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.topic-card { position: relative; min-height: 370px; padding: 30px; overflow: hidden; border-radius: var(--radius); color: white; transition: transform .25s; }
.topic-card:hover { transform: translateY(-5px); }
.topic-card::after { position: absolute; right: -55px; bottom: -70px; width: 210px; height: 210px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 35px rgba(255,255,255,.04), 0 0 0 70px rgba(255,255,255,.03); content: ""; }
.topic-card.leadership { background: var(--deep-teal); }
.topic-card.enterprise { background: #a82b65; }
.topic-card.career { background: #916c32; }
.topic-card.faith { background: #526d58; }
.topic-card > span { color: rgba(255,255,255,.55); font-family: var(--serif); font-size: 1.7rem; }
.topic-card h3 { max-width: 220px; margin-top: 70px; font-size: 2rem; }
.topic-card p { color: rgba(255,255,255,.74); font-size: .87rem; }
.topic-card b { position: absolute; z-index: 2; bottom: 28px; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.devotional-band { padding: 100px 0; background: #483142; color: white; }
.devotional-layout { display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: 9vw; }
.devotional-layout > div:first-child h2 { font-size: 4rem; }
.devotional-layout > div:first-child p { margin-bottom: 30px; color: rgba(255,255,255,.7); font-size: 1.05rem; }
.devotional-layout .content-card { color: var(--ink); }
.media-split { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.media-panel { position: relative; min-height: 420px; padding: 58px; overflow: hidden; border-radius: var(--radius); color: white; }
.media-panel::after { position: absolute; right: -80px; bottom: -90px; width: 300px; height: 300px; border: 70px solid rgba(255,255,255,.06); border-radius: 50%; content: ""; }
.podcast-panel { background: var(--deep-teal); }
.video-panel { background: linear-gradient(145deg, rgba(35,28,34,.86), rgba(35,28,34,.65)), url("/images/lif-hero.png") center/cover; }
.media-panel h3 { max-width: 600px; font-size: 2.5rem; }
.media-panel p { max-width: 530px; color: rgba(255,255,255,.73); }
.media-symbol, .play-button { display: grid; width: 58px; height: 58px; margin-bottom: 60px; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; font-size: 1.2rem; }
.membership-preview { background: #efeae1; }
.tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.tier-card { position: relative; padding: 40px 34px; border: 1px solid #d5d0c8; border-radius: var(--radius); background: var(--paper); }
.tier-card.recommended { border-color: var(--magenta); box-shadow: var(--shadow); transform: translateY(-8px); }
.tier-ribbon { position: absolute; top: 0; right: 25px; padding: 6px 12px; border-radius: 0 0 8px 8px; background: var(--magenta); color: white; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tier-index { color: var(--magenta); font-family: var(--serif); font-size: 2rem; }
.tier-card h2, .tier-card h3 { margin: 26px 0 13px; font-size: 2.25rem; }
.tier-card > p { min-height: 75px; color: var(--muted); font-size: .9rem; }
.price { margin: 25px 0; font-family: var(--serif); font-size: 2rem; }
.price small { color: var(--muted); font-family: var(--sans); font-size: .75rem; }
.tier-card ul { min-height: 125px; padding: 0; color: #59615f; font-size: .85rem; list-style: none; }
.tier-card li { margin: 8px 0; }
.community-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: start; }
.community-copy { position: sticky; top: 35px; }
.community-copy h2 { font-size: clamp(3rem, 5vw, 4.7rem); }
.community-copy p { margin-bottom: 28px; color: var(--muted); }
.event-row { display: grid; grid-template-columns: 75px 1fr 32px; padding: 25px 0; border-bottom: 1px solid var(--line); align-items: center; gap: 22px; }
.event-row time { display: flex; flex-direction: column; align-items: center; border-right: 1px solid var(--line); }
.event-row time strong { font-family: var(--serif); font-size: 2.3rem; font-weight: 500; line-height: 1; }
.event-row time span { color: var(--magenta); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.event-row div > span { color: var(--teal); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.event-row h3 { margin: 7px 0; font-size: 1.42rem; }
.event-row p { margin: 0; color: var(--muted); font-size: .83rem; }
.event-row > a { color: var(--magenta); font-weight: bold; }
.contributor-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 17px; }
.contributor-card { padding: 28px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.avatar { display: grid; width: 64px; height: 64px; margin-bottom: 22px; place-items: center; border-radius: 50%; background: linear-gradient(145deg, var(--teal), var(--magenta)); color: white; font-family: var(--serif); font-size: 1.3rem; }
.avatar.small { width: 48px; height: 48px; margin: 0; font-size: .9rem; }
.avatar.xs { width: 35px; height: 35px; margin: 0; font-size: .7rem; }
.avatar.xl { width: 100px; height: 100px; margin-inline: auto; font-size: 2rem; }
.contributor-card h3 { margin-bottom: 8px; font-size: 1.4rem; }
.contributor-card > span { color: var(--magenta); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.contributor-card p { margin-top: 12px; color: var(--muted); font-size: .82rem; }
.partner-strip { display: flex; padding: 30px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); align-items: center; justify-content: space-between; gap: 18px; color: var(--muted); font-size: .75rem; }
.partner-strip strong { color: #454b49; font-family: var(--serif); font-size: 1rem; font-weight: 500; }
.partner-strip a { color: var(--magenta); font-weight: 800; }
.newsletter-band { display: grid; grid-template-columns: 1fr 1fr; padding: 60px; border-radius: var(--radius); background: var(--deep-teal); color: white; align-items: center; gap: 8%; }
.newsletter-band h2 { max-width: 500px; font-size: 3rem; }
.newsletter-band p { margin: 0; color: rgba(255,255,255,.68); }
.newsletter-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.newsletter-form .button { grid-column: 1 / -1; }
.newsletter-form .form-control { border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: white; }
.newsletter-form .form-control::placeholder { color: rgba(255,255,255,.6); }
.newsletter-success { display: flex; padding: 26px; border: 1px solid rgba(255,255,255,.25); border-radius: 15px; flex-direction: column; }
.final-cta { padding: 115px 0; background: var(--magenta); color: white; text-align: center; }
.final-cta h2 { margin-bottom: 15px; font-size: clamp(3.5rem, 8vw, 6.5rem); }
.final-cta p { max-width: 650px; margin: 0 auto 30px; color: rgba(255,255,255,.78); font-size: 1.08rem; }

/* Footer */
.site-footer { padding: 70px max(24px, calc((100% - 1180px) / 2)) 25px; background: #18201f; color: white; }
.footer-main { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 55px; }
.footer-brand h2 { margin: 22px 0 12px; font-size: 2.4rem; }
.footer-brand p { max-width: 360px; color: rgba(255,255,255,.5); }
.footer-main > div:not(.footer-brand) { display: flex; flex-direction: column; gap: 9px; }
.footer-main h3 { margin-bottom: 10px; color: #eea8c9; font-family: var(--sans); font-size: .7rem; letter-spacing: .13em; text-transform: uppercase; }
.footer-main a { color: rgba(255,255,255,.65); font-size: .84rem; }
.footer-main a:hover { color: white; }
.footer-bottom { display: flex; margin-top: 55px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); justify-content: space-between; color: rgba(255,255,255,.4); font-size: .7rem; }

/* Public pages */
.page-hero { padding: 120px 0 95px; overflow: hidden; background: #ece9e2; }
.page-hero.compact { padding: 75px 0 60px; }
.page-hero .content-width { position: relative; }
.page-hero .content-width::after { position: absolute; top: -190px; right: -120px; width: 470px; height: 470px; border: 1px solid rgba(23,107,104,.14); border-radius: 50%; box-shadow: 0 0 0 70px rgba(23,107,104,.03), 0 0 0 140px rgba(194,45,114,.025); content: ""; }
.page-hero h1 { position: relative; z-index: 1; max-width: 960px; margin-bottom: 20px; font-size: clamp(3.5rem, 7vw, 6.5rem); }
.page-hero p { position: relative; z-index: 1; max-width: 720px; margin: 0; color: var(--muted); font-size: 1.12rem; }
.editorial-hero { background: #e7efed; }
.membership-hero { background: #f2e4ea; }
.community-hero { background: #e5ede4; }
.contact-hero { background: #eee8dd; }
.filter-bar { margin-bottom: 50px; }
.search-box { display: grid; grid-template-columns: 35px 1fr auto; max-width: 720px; margin-bottom: 27px; padding: 7px 8px 7px 16px; border: 1px solid var(--line); border-radius: 999px; background: white; align-items: center; }
.search-box input { width: 100%; padding: 9px; border: 0; outline: none; background: transparent; }
.search-box button { padding: 9px 19px; border: 0; border-radius: 999px; background: var(--ink); color: white; cursor: pointer; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.search-box.compact { width: 470px; margin: 0; }
.category-tabs { display: flex; padding-bottom: 4px; overflow-x: auto; gap: 8px; scrollbar-width: none; }
.category-tabs button { padding: 8px 15px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.category-tabs button.active, .category-tabs button:hover { border-color: var(--teal); background: var(--teal); color: white; }
.listing-feature { max-width: 850px; margin-bottom: 65px; }
.results-heading { display: flex; margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid var(--line); justify-content: space-between; color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.content-grid.compact .content-image { height: 170px; }
.skeleton-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.skeleton-card { height: 420px; border-radius: var(--radius); background: linear-gradient(100deg, #eee 30%, #f7f7f7 50%, #eee 70%); background-size: 400% 100%; animation: shimmer 1.4s infinite; }
@keyframes shimmer { to { background-position: -100% 0; } }
.empty-state { padding: 90px 20px; color: var(--muted); text-align: center; }
.empty-state > span { color: var(--magenta); font-family: var(--serif); font-size: 3rem; }
.empty-state h1, .empty-state h2 { color: var(--ink); font-size: 2.8rem; }
.empty-state.full-page { min-height: 60vh; display: grid; place-content: center; justify-items: center; }
.article-page { padding: 100px 0; }
.article-header { text-align: center; }
.article-header .content-meta { justify-content: center; }
.article-header h1 { margin: 25px 0; font-size: clamp(3rem, 6.5vw, 5.7rem); }
.article-deck { color: var(--muted); font-family: var(--serif); font-size: 1.4rem; line-height: 1.45; }
.article-byline { display: flex; max-width: 520px; margin: 35px auto 50px; align-items: center; justify-content: center; gap: 15px; text-align: left; }
.article-byline > div:nth-child(2) { display: flex; flex-direction: column; }
.article-byline small, .article-byline span { color: var(--muted); font-size: .72rem; }
.article-access { margin-left: auto; padding: 7px 12px; border-radius: 999px; background: #f3e6ec; color: var(--magenta) !important; font-weight: 800; }
.article-image { height: min(58vw, 650px); margin-bottom: 60px; overflow: hidden; border-radius: var(--radius); }
.article-image img { width: 100%; height: 100%; object-fit: cover; }
.article-body { font-family: var(--serif); font-size: 1.22rem; line-height: 1.88; }
.article-body p:first-of-type::first-letter { float: left; margin: .1em .1em 0 0; color: var(--magenta); font-size: 4.5rem; line-height: .8; }
.article-end { margin-top: 60px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-family: var(--sans); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.media-embed { position: relative; margin-bottom: 40px; padding-bottom: 56.25%; overflow: hidden; border-radius: 18px; background: #111; }
.media-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.download-card { display: flex; margin: 40px 0; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); align-items: center; gap: 18px; font-family: var(--sans); }
.download-card > span { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 50%; background: var(--teal); color: white; }
.download-card div { display: flex; flex: 1; flex-direction: column; }
.download-card small { color: var(--muted); }
.download-card b { color: var(--magenta); font-size: .75rem; }
.locked-content { margin-bottom: 40px; padding: 70px 55px; border: 1px solid #dbc4cf; border-radius: var(--radius); background: linear-gradient(150deg, #f8f0f4, #f2eee6); text-align: center; }
.lock-mark { display: grid; width: 65px; height: 65px; margin: 0 auto 25px; place-items: center; border-radius: 50%; background: var(--magenta); color: white; font-size: 2rem; }
.locked-content h2 { font-size: 2.6rem; }
.locked-content > p { color: var(--muted); }
.locked-benefits { display: flex; margin: 25px 0; justify-content: center; gap: 24px; color: var(--teal); font-size: .78rem; font-weight: 700; }
.story-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px 10vw; }
.story-layout h2 { font-size: 3.5rem; }
.story-layout p { color: var(--muted); }
.story-number { color: var(--magenta); font-family: var(--serif); font-size: 1.8rem; }
.values-band { padding: 40px 0; background: var(--deep-teal); color: white; }
.values-band .content-width { display: flex; justify-content: space-between; gap: 20px; font-family: var(--serif); font-size: 1.15rem; }
.corporate-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.corporate-main { grid-row: span 2; padding: 60px; border-radius: var(--radius); background: var(--deep-teal); color: white; }
.corporate-main h2 { font-size: 3.7rem; }
.corporate-main p { color: rgba(255,255,255,.7); }
.corporate-grid article { padding: 36px; border: 1px solid var(--line); border-radius: var(--radius); }
.corporate-grid article > span { color: var(--magenta); font-family: var(--serif); font-size: 1.8rem; }
.corporate-grid article h3 { margin-top: 30px; font-size: 1.7rem; }
.corporate-grid article p { margin: 0; color: var(--muted); }
.contributor-grid.expanded { grid-template-columns: repeat(3, 1fr); }
.contributor-grid.expanded .contributor-card p { min-height: 75px; }
.inline-cta { display: flex; margin-top: 50px; padding: 50px; border-radius: var(--radius); background: var(--magenta); color: white; align-items: center; justify-content: space-between; }
.inline-cta h2 { margin: 0; font-size: 2.8rem; }
.logo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.logo-grid article { padding: 35px; border: 1px solid var(--line); border-radius: var(--radius); }
.logo-placeholder { display: grid; width: 74px; height: 74px; margin-bottom: 30px; place-items: center; border-radius: 20px; background: var(--soft); color: var(--teal); font-family: var(--serif); font-size: 1.4rem; }
.logo-grid article > span { color: var(--magenta); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.logo-grid article p { color: var(--muted); font-size: .85rem; }
.partnership-callout, .payment-readiness { margin-top: 60px; padding: 70px; border-radius: var(--radius); background: #e8efed; text-align: center; }
.partnership-callout h2, .payment-readiness h2 { font-size: 3.5rem; }
.partnership-callout p, .payment-readiness p { max-width: 700px; margin-inline: auto; color: var(--muted); }
.payment-readiness > div { display: flex; margin-top: 30px; justify-content: center; flex-wrap: wrap; gap: 10px; }
.payment-readiness > div span { padding: 8px 14px; border: 1px solid #b9c9c6; border-radius: 999px; background: white; font-size: .74rem; font-weight: 700; }
.tier-grid.detailed .tier-card { padding-top: 55px; }
.faq-section details { padding: 20px 0; border-bottom: 1px solid var(--line); }
.faq-section summary { cursor: pointer; font-family: var(--serif); font-size: 1.35rem; }
.faq-section details p { padding-top: 12px; color: var(--muted); }
.event-list .event-row.large { grid-template-columns: 100px 1fr auto; padding: 30px; border: 1px solid var(--line); border-radius: 18px; margin-bottom: 13px; }
.programme-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.programme-grid article { padding: 36px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.programme-grid article > span, .programme-grid article small { color: var(--magenta); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.programme-grid h3 { margin: 35px 0 13px; font-size: 2rem; }
.programme-grid p { color: var(--muted); }
.programme-grid a { color: var(--teal); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.contact-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 8vw; }
.contact-aside h2 { font-size: 3rem; }
.contact-aside > p { color: var(--muted); }
.contact-aside > div { display: flex; margin-top: 25px; padding-top: 18px; border-top: 1px solid var(--line); flex-direction: column; }
.contact-aside span { color: var(--muted); font-size: .8rem; }
.form-card { padding: 35px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 10px 30px rgba(31,36,35,.04); }
.form-grid { display: grid; gap: 18px; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.form-field { margin-bottom: 19px; }
.form-field label { display: block; margin-bottom: 7px; font-size: .72rem; font-weight: 800; }
.form-control, .form-select { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #cccac4; border-radius: 10px; background: white; color: var(--ink); outline: none; }
.form-control:focus, .form-select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(23,107,104,.1); }
.validation-message, .text-danger { color: #ad2e4e; font-size: .73rem; }
.thank-you-page { display: grid; min-height: 67vh; padding: 80px 24px; place-items: center; background: #edf2ef; text-align: center; }
.thank-you-page > div { max-width: 680px; }
.thank-you-page h1 { font-size: 4.5rem; }
.thank-you-page p { color: var(--muted); font-size: 1.1rem; }
.success-mark { display: grid; width: 75px; height: 75px; margin: 0 auto 25px; place-items: center; border-radius: 50%; background: var(--teal); color: white; font-size: 1.7rem; }
.legal-copy h2 { margin-top: 45px; font-size: 2rem; }
.legal-copy p { color: var(--muted); }
.upgrade-notice { display: flex; margin-bottom: 30px; padding: 28px; border-radius: 16px; background: #e8efed; gap: 20px; }
.upgrade-notice > span { height: fit-content; padding: 5px 9px; border-radius: 6px; background: var(--teal); color: white; font-size: .65rem; font-weight: 800; }
.upgrade-row { margin-bottom: 20px; padding: 35px; border: 1px solid var(--line); border-radius: var(--radius); }
.upgrade-row h3 { font-family: var(--serif); font-size: 2.5rem; }
.upgrade-row p { color: var(--muted); }
.payment-buttons { display: flex; margin: 20px 0; flex-wrap: wrap; gap: 8px; }
.payment-buttons button { padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); color: var(--muted); font-size: .7rem; }

/* Accounts */
.account-shell { display: grid; grid-template-columns: 1fr 1fr; min-height: 75vh; background: var(--soft); }
.account-intro { display: flex; padding: 10vw; background: linear-gradient(145deg, rgba(19,63,61,.93), rgba(19,63,61,.73)), url("/images/lif-hero.png") center/cover; color: white; flex-direction: column; justify-content: center; }
.account-intro h1 { font-size: clamp(3rem, 5.5vw, 5rem); }
.account-intro p { color: rgba(255,255,255,.72); font-size: 1.05rem; }
.quote-line { margin-top: 40px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.25); color: #f3bfd7; font-family: var(--serif); font-size: 1.25rem; }
.account-card { width: min(580px, calc(100% - 50px)); margin: auto; padding: 50px; border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.account-card h2 { font-size: 2.5rem; }
.account-switch, .account-links { margin-top: 22px; color: var(--muted); font-size: .78rem; text-align: center; }
.account-links { display: flex; justify-content: space-between; }
.account-card a { color: var(--teal); font-weight: 700; }
.form-floating > .form-control { border-radius: 10px; }
.checkbox { color: var(--muted); font-size: .8rem; }

/* Portal shared */
.portal-shell { display: grid; grid-template-columns: 245px minmax(0, 1fr); min-height: calc(100vh - 117px); background: #f5f5f2; }
.portal-nav { position: sticky; top: 0; display: flex; height: 100vh; padding: 30px 20px; overflow-y: auto; background: #1a2725; color: white; flex-direction: column; }
.portal-brand { display: flex; margin-bottom: 35px; align-items: center; gap: 10px; font-family: var(--serif); font-size: 1.05rem; }
.portal-label { margin: 10px 12px; color: rgba(255,255,255,.35); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.portal-nav > a:not(.portal-brand):not(.portal-back) { padding: 8px 12px; border-radius: 8px; color: rgba(255,255,255,.68); font-size: .76rem; }
.portal-nav > a.active, .portal-nav > a:hover { background: rgba(255,255,255,.09); color: white !important; }
.portal-back { margin-top: auto; padding: 20px 12px 0; color: rgba(255,255,255,.45); font-size: .7rem; }
.portal-content { min-width: 0; padding: 55px 4vw 90px; }
.portal-header { display: flex; margin-bottom: 42px; align-items: end; justify-content: space-between; gap: 25px; }
.portal-header h1 { margin-bottom: 8px; font-size: clamp(2.7rem, 5vw, 4.5rem); }
.portal-header p { margin: 0; color: var(--muted); }
.portal-loading { display: grid; height: 50vh; place-items: center; color: var(--muted); }
.dashboard-top-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 18px; }
.welcome-card, .tier-summary, .profile-progress, .dashboard-panel { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.welcome-card { background: var(--deep-teal); color: white; }
.welcome-card > span { color: #e8abc7; font-size: .62rem; font-weight: 800; letter-spacing: .13em; }
.welcome-card h2 { margin-top: 24px; font-size: 2.2rem; }
.welcome-card p { color: rgba(255,255,255,.64); }
.welcome-card a { color: #f5bdd7; font-size: .73rem; font-weight: 800; }
.tier-summary, .profile-progress { display: flex; align-items: center; gap: 20px; }
.tier-orbit { display: grid; width: 72px; height: 72px; flex: 0 0 72px; place-items: center; border: 8px solid #dfeceb; border-radius: 50%; color: var(--teal); font-family: var(--serif); font-size: 1.8rem; }
.tier-summary small, .profile-progress small { color: var(--magenta); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.tier-summary h3, .profile-progress h3 { margin: 5px 0; font-size: 1.4rem; }
.tier-summary p, .profile-progress p { margin-bottom: 8px; color: var(--muted); font-size: .76rem; }
.tier-summary a, .profile-progress a { color: var(--teal); font-size: .7rem; font-weight: 800; }
.progress-ring { display: grid; width: 72px; height: 72px; flex: 0 0 72px; place-items: center; border-radius: 50%; background: conic-gradient(var(--magenta) calc(var(--progress) * 1%), #eee 0); }
.progress-ring::before { position: absolute; width: 55px; height: 55px; border-radius: 50%; background: white; content: ""; }
.progress-ring span { position: relative; z-index: 1; font-size: .7rem; font-weight: 800; }
.portal-section-heading { display: flex; margin: 48px 0 20px; align-items: end; justify-content: space-between; gap: 20px; }
.portal-section-heading h2 { margin: 0; font-size: 2rem; }
.portal-section-heading a, .portal-section-heading > span { color: var(--teal); font-size: .7rem; font-weight: 800; }
.member-feed-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 24px; }
.member-feed-grid > section .content-card { display: grid; margin-bottom: 15px; grid-template-columns: 35% 65%; }
.member-feed-grid > section .content-image { height: 100%; }
.announcement-card { padding: 20px; border-bottom: 1px solid var(--line); background: white; }
.announcement-card > span { color: var(--magenta); font-size: .65rem; font-weight: 800; }
.announcement-card h3 { margin: 10px 0; font-size: 1.25rem; }
.announcement-card p { margin: 0; color: var(--muted); font-size: .78rem; }
.dashboard-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.dashboard-panel .portal-section-heading { margin-top: 0; }
.mini-event { display: flex; padding: 14px 0; border-bottom: 1px solid var(--line); align-items: center; gap: 15px; }
.mini-event time { display: flex; width: 50px; flex-direction: column; align-items: center; color: var(--magenta); }
.mini-event time strong { font-family: var(--serif); font-size: 1.7rem; }
.mini-event time span, .mini-event div span { color: var(--muted); font-size: .63rem; text-transform: uppercase; }
.mini-event h3 { margin: 0 0 4px; font-family: var(--sans); font-size: .9rem; }
.quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.quick-actions a { display: flex; padding: 14px; border: 1px solid var(--line); border-radius: 11px; align-items: center; gap: 10px; font-size: .75rem; font-weight: 700; }
.quick-actions span { color: var(--magenta); font-size: 1.1rem; }
.member-tabs { margin-bottom: 25px; }
.member-programmes article { background: white; }
.profile-layout, .member-admin-grid { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; }
.profile-card { padding: 35px; border: 1px solid var(--line); border-radius: var(--radius); background: white; text-align: center; }
.profile-card > span { color: var(--magenta); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.profile-card > p, .profile-card > small { color: var(--muted); }
.profile-card dl { margin-top: 30px; text-align: left; }
.profile-card dt { color: var(--muted); font-size: .65rem; text-transform: uppercase; }
.profile-card dd { margin: 0 0 13px; }
.alert-success { margin-bottom: 20px; padding: 13px 16px; border-radius: 10px; background: #e5f3eb; color: #276341; font-size: .8rem; }

/* Admin */
.admin-portal .portal-content { background: #f3f3f0; }
.admin-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.metric-card { position: relative; padding: 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: white; }
.metric-card::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--line); content: ""; }
.metric-card.teal::before { background: var(--teal); }.metric-card.magenta::before { background: var(--magenta); }.metric-card.gold::before { background: var(--gold); }.metric-card.green::before { background: var(--green); }
.metric-card > span { display: block; color: var(--muted); font-size: .67rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.metric-card strong { display: block; margin: 8px 0; font-family: var(--serif); font-size: 2.3rem; font-weight: 500; }
.metric-card small { color: var(--teal); font-size: .65rem; }
.admin-dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.progress { height: 7px; overflow: hidden; border-radius: 999px; background: #e3e5e3; }
.progress > div { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--teal), var(--magenta)); }
.progress.large { height: 11px; margin-bottom: 25px; }
.launch-mini { display: flex; padding: 11px 0; border-bottom: 1px solid var(--line); align-items: center; gap: 12px; }
.status-dot { width: 11px; height: 11px; flex: 0 0 11px; border: 2px solid #a8acab; border-radius: 50%; }
.status-dot.done { border-color: var(--teal); background: var(--teal); box-shadow: inset 0 0 0 2px white; }
.launch-mini div { display: flex; flex-direction: column; }
.launch-mini small { color: var(--muted); }
.editorial-pulse { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.editorial-pulse div { padding: 18px; border-radius: 13px; background: var(--soft); }
.editorial-pulse strong { display: block; font-family: var(--serif); font-size: 2rem; }
.editorial-pulse span { color: var(--muted); font-size: .65rem; }
.admin-callout { margin-top: 25px; padding: 25px; border-radius: 15px; background: #ede4e8; }
.admin-callout > span { color: var(--magenta); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.admin-callout h3 { margin: 10px 0; font-size: 1.45rem; }
.admin-callout p { color: var(--muted); font-size: .8rem; }
.admin-toolbar { display: flex; margin-bottom: 20px; align-items: center; justify-content: space-between; color: var(--muted); font-size: .7rem; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: white; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .77rem; }
.admin-table th { padding: 13px 16px; background: #eeeeeb; color: var(--muted); font-size: .62rem; letter-spacing: .07em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.admin-table td { max-width: 380px; padding: 15px 16px; border-top: 1px solid #ecece8; vertical-align: middle; }
.admin-table tr:hover td { background: #fbfbf9; }
.admin-table td > a { color: var(--teal); font-weight: 800; white-space: nowrap; }
.table-person { display: flex; align-items: center; gap: 10px; }
.table-person div { display: flex; flex-direction: column; }
.table-person small, .table-sub { display: block; color: var(--muted); font-size: .66rem; }
.status-badge { display: inline-block; padding: 5px 9px; border-radius: 999px; background: #eee; color: #555; font-size: .61rem; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.status-badge.success, .status-badge.published, .status-badge.approved { background: #e1f1e8; color: #276441; }
.status-badge.warning, .status-badge.submitted { background: #fff0d6; color: #8b611f; }
.status-badge.danger, .status-badge.rejected { background: #fae1e1; color: #913838; }
.status-badge.tier { background: #e3efee; color: var(--teal); }
.status-badge.muted, .status-badge.draft { background: #eee; color: #777; }
.back-link { display: inline-block; margin-bottom: 28px; color: var(--teal); font-size: .75rem; font-weight: 800; }
.check-row { display: flex; margin: 14px 0; align-items: center; gap: 9px; font-size: .78rem; }
.editor-form .editor-main { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; }
.editor-sidebar { position: sticky; top: 20px; }
.title-input { height: 62px; font-family: var(--serif); font-size: 1.4rem; }
.editor-body { min-height: 410px; line-height: 1.7; }
.editor-sidebar .button + .button { margin-top: 10px; }
.inline-admin-form { margin-bottom: 24px; }
.admin-create-grid { grid-template-columns: 1fr 1.5fr auto; align-items: end; }
.admin-create-grid .form-field { margin: 0; }
.detail-cell { color: var(--muted); }
.table-action { padding: 5px 9px; border: 0; background: none; color: var(--teal); cursor: pointer; font-size: .68rem; font-weight: 800; }
.table-action.danger { color: #9b3535; }
.launch-score { display: flex; flex-direction: column; align-items: end; }
.launch-score strong { color: var(--magenta); font-family: var(--serif); font-size: 3.6rem; font-weight: 500; line-height: 1; }
.launch-score span { color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.hero-progress { height: 13px; margin: -20px 0 30px; }
.tracker-summary { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 40px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.tracker-summary div { padding: 20px; border-right: 1px solid var(--line); }
.tracker-summary div:last-child { border: 0; }
.tracker-summary strong { display: block; font-family: var(--serif); font-size: 1.8rem; }
.tracker-summary span { color: var(--muted); font-size: .65rem; }
.tracker-group { margin-bottom: 40px; }
.tracker-row { display: grid; grid-template-columns: 18px 1fr 440px; padding: 18px; border-top: 1px solid var(--line); background: white; align-items: center; gap: 15px; }
.tracker-row:first-of-type { border-radius: 15px 15px 0 0; }
.tracker-row:last-child { border-radius: 0 0 15px 15px; }
.tracker-info > div:first-child { display: flex; margin-bottom: 8px; justify-content: space-between; gap: 10px; }
.tracker-info span { color: var(--muted); font-size: .68rem; }
.tracker-edit { display: grid; grid-template-columns: 75px 1fr auto; gap: 8px; }
.tracker-edit .form-control { min-height: 40px; padding: 7px 9px; }
.tracker-edit .button { min-height: 40px; padding: 7px 13px; }
.workflow-legend { display: flex; margin-bottom: 20px; gap: 15px; color: var(--muted); font-size: .68rem; }
.workflow-legend span { display: flex; align-items: center; gap: 5px; }
.workflow-legend i { width: 8px; height: 8px; border-radius: 50%; background: #aaa; }
.workflow-legend i.submitted { background: var(--gold); }.workflow-legend i.approved, .workflow-legend i.published { background: var(--teal); }.workflow-legend i.rejected { background: #ad3d3d; }
.table-actions { display: flex; gap: 5px; }
.table-actions button { padding: 5px 8px; border: 1px solid #b8c9c6; border-radius: 6px; background: #edf5f3; color: var(--teal); cursor: pointer; font-size: .65rem; font-weight: 800; }
.table-actions button.danger { border-color: #e0bbbb; background: #fff1f1; color: #9b3939; }
.form-note { margin: 15px 0 0; color: var(--muted); font-size: .7rem; text-align: center; }

/* Protected member media */
.secure-chip { display: inline-flex; padding: 8px 12px; border: 1px solid #b9d0ca; border-radius: 999px; background: #eaf4f1; color: var(--teal); align-items: center; gap: 6px; font-size: .66rem; font-weight: 800; white-space: nowrap; }
.member-library-filters { display: grid; margin-bottom: 30px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; grid-template-columns: minmax(260px, 1fr) repeat(3, minmax(145px, .45fr)); gap: 10px; }
.member-library-filters .search-box { width: 100%; }
.results-heading { display: flex; margin: 0 0 18px; color: var(--muted); justify-content: space-between; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.continue-card { display: grid; margin-bottom: 34px; padding: 18px; border-radius: var(--radius); background: #172825; color: white; grid-template-columns: minmax(280px, .85fr) 1fr; align-items: center; gap: 34px; }
.continue-card h2 { color: white; font-size: 2.25rem; }
.continue-card p { color: rgba(255,255,255,.65); }
.continue-image { position: relative; height: 270px; overflow: hidden; border-radius: 14px; }
.continue-image img { width: 100%; height: 100%; object-fit: cover; }
.continue-image span { position: absolute; bottom: 14px; left: 14px; padding: 7px 10px; border-radius: 999px; background: rgba(17,31,28,.86); font-size: .65rem; font-weight: 800; }
.member-programme-strip, .upgrade-preview-section, .member-related { margin-top: 55px; }
.locked-preview-card { min-height: 240px; padding: 28px; border: 1px solid #ddced5; border-radius: var(--radius); background: linear-gradient(145deg, #faf4f7, #f5f1e9); }
.locked-preview-card h3 { margin-top: 28px; font-size: 1.5rem; }
.locked-preview-card p { color: var(--muted); }
.locked-preview-card > a { color: var(--teal); font-size: .72rem; font-weight: 800; }
.member-article-header { max-width: 850px; margin: 24px auto 38px; }
.member-article-header h1 { font-size: clamp(3rem, 6vw, 5.5rem); }
.member-article-header > p { color: var(--muted); font-size: 1.1rem; }
.member-media-wrap, .member-article-body { max-width: 900px; margin-right: auto; margin-left: auto; }
.protected-player { overflow: hidden; margin-bottom: 26px; border-radius: var(--radius); background: #101817; box-shadow: var(--shadow); }
.protected-player video { display: block; width: 100%; max-height: 72vh; background: #0c1211; }
.protected-player.audio-player { padding: 30px; background: linear-gradient(145deg, #172a27, #243b36); }
.audio-player audio { width: 100%; margin-top: 25px; }
.audio-art { display: flex; min-height: 200px; padding: 30px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; color: white; flex-direction: column; justify-content: space-between; }
.audio-art span { font-family: var(--serif); font-size: 3rem; }
.audio-art strong { max-width: 650px; font-family: var(--serif); font-size: 2rem; }
.media-notice { display: flex; padding: 11px 14px; border-radius: 8px; background: #edf5f2; color: #32554d; align-items: start; gap: 9px; font-size: .68rem; }
.protected-player > .media-notice { border-radius: 0; background: #192522; color: rgba(255,255,255,.58); }
.protected-document { display: flex; margin-bottom: 28px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: white; align-items: center; gap: 18px; box-shadow: var(--shadow); }
.protected-document > div { display: flex; margin-right: auto; flex-direction: column; }
.protected-document small { color: var(--muted); }
.document-icon { display: grid; width: 54px; height: 54px; border-radius: 12px; background: #eaf4f1; color: var(--teal); place-items: center; font-size: 1.4rem; }

/* Private media administration */
.media-picker { margin: 22px 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #f8f8f5; }
.media-picker-upload { display: flex; min-height: 38px; color: var(--muted); align-items: center; gap: 12px; font-size: .7rem; }
.media-preview-link { display: inline-block; margin-top: 9px; color: var(--teal); font-size: .68rem; font-weight: 800; }
.storage-security-note { display: flex; margin: 18px 0; padding: 16px 18px; border: 1px solid #bcd3cd; border-radius: 12px; background: #eaf4f1; color: var(--teal); align-items: center; gap: 12px; }
.storage-security-note div { display: flex; flex-direction: column; }
.storage-security-note small { margin-top: 3px; color: #55716b; }
.media-filter { max-width: 190px; }
.table-sub { display: block; margin-top: 4px; color: var(--muted); font-size: .64rem; }
.table-actions a { padding: 5px 8px; border: 1px solid #b8c9c6; border-radius: 6px; background: #edf5f3; color: var(--teal); font-size: .65rem; font-weight: 800; }
.media-upload-layout { display: grid; grid-template-columns: minmax(320px, 1.2fr) minmax(330px, .8fr); gap: 25px; align-items: start; }
.upload-dropzone { position: relative; display: grid; min-height: 470px; padding: 45px; border: 2px dashed #b8cbc5; border-radius: var(--radius); background: linear-gradient(145deg, #f3f8f6, #fbfaf7); text-align: center; place-content: center; }
.upload-dropzone input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.upload-dropzone h2 { font-size: 2rem; }
.upload-dropzone p { color: var(--muted); }
.upload-symbol { display: grid; width: 72px; height: 72px; margin: 0 auto 22px; border-radius: 50%; background: var(--teal); color: white; place-items: center; font-size: 2rem; }
.security-summary { display: grid; margin: 20px 0; padding: 15px; border-radius: 10px; background: #f2f5f3; grid-template-columns: 95px 1fr; gap: 7px 12px; font-size: .68rem; }
.security-summary span { color: var(--muted); }
.security-summary strong { overflow-wrap: anywhere; }

#blazor-error-ui { position: fixed; z-index: 1000; right: 20px; bottom: 20px; display: none; padding: 13px 18px; border-radius: 10px; background: #fff0d5; box-shadow: var(--shadow); }
#blazor-error-ui .dismiss { margin-left: 12px; cursor: pointer; }

@media (max-width: 1120px) {
    .primary-nav { gap: 13px; }
    .primary-nav > a:nth-of-type(4), .primary-nav > a:nth-of-type(5) { display: none; }
    .topic-grid { grid-template-columns: repeat(2, 1fr); }
    .topic-card { min-height: 330px; }
    .dashboard-top-grid { grid-template-columns: 1fr 1fr; }
    .welcome-card { grid-column: 1 / -1; }
    .admin-metric-grid { grid-template-columns: repeat(3, 1fr); }
    .tracker-row { grid-template-columns: 18px 1fr; }
    .tracker-edit { grid-column: 2; }
}

@media (max-width: 860px) {
    .content-width, .content-width-narrow { width: min(100% - 32px, 1180px); }
    .section-pad { padding-top: 75px; padding-bottom: 75px; }
    .announcement-bar span { display: none; }
    .nav-shell { width: calc(100% - 28px); min-height: 70px; }
    .menu-toggle { display: block; }
    .primary-nav { position: absolute; top: 100%; right: 14px; left: 14px; display: none; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: var(--shadow); align-items: stretch; flex-direction: column; gap: 0; }
    .primary-nav.open { display: flex; }
    .primary-nav > a, .nav-more > span { display: block !important; padding: 9px 6px; }
    .primary-nav > a::after, .nav-more { display: none; }
    .nav-logout { padding: 9px 6px; }
    .hero { min-height: 620px; }
    .hero-overlay { background: rgba(18,37,35,.73); }
    .hero-content { padding-top: 110px; }
    .hero-note { display: none; }
    .manifesto, .featured-grid, .devotional-layout, .community-layout, .story-layout, .contact-layout { grid-template-columns: 1fr; }
    .featured-stack { grid-template-columns: 1fr 1fr; }
    .featured-stack .content-card { display: block; }
    .featured-stack .content-card .content-image { height: 190px; border-radius: 0; }
    .media-panel { padding: 38px; }
    .tier-grid, .content-grid, .programme-grid, .logo-grid { grid-template-columns: repeat(2, 1fr); }
    .tier-card.recommended { transform: none; }
    .community-copy { position: static; }
    .contributor-grid, .contributor-grid.expanded { grid-template-columns: repeat(2, 1fr); }
    .partner-strip { flex-wrap: wrap; }
    .newsletter-band { grid-template-columns: 1fr; padding: 40px; }
    .footer-main { grid-template-columns: 1.5fr 1fr 1fr; }
    .footer-brand { grid-column: 1 / -1; }
    .corporate-grid { grid-template-columns: 1fr; }
    .corporate-main { grid-row: auto; }
    .values-band .content-width { flex-wrap: wrap; }
    .account-shell { grid-template-columns: 1fr; }
    .account-intro { min-height: 400px; padding: 70px 30px; }
    .account-card { margin: 45px auto; }
    .portal-shell { grid-template-columns: 1fr; }
    .portal-nav { position: static; height: auto; padding: 15px; overflow-x: auto; flex-direction: row; align-items: center; gap: 5px; }
    .portal-brand { margin: 0 15px 0 0; }
    .portal-label, .portal-back { display: none; }
    .portal-nav > a:not(.portal-brand):not(.portal-back) { white-space: nowrap; }
    .portal-content { padding: 40px 24px 70px; }
    .member-feed-grid, .dashboard-columns, .admin-dashboard-grid, .profile-layout, .member-admin-grid { grid-template-columns: 1fr; }
    .profile-card { max-width: none; }
    .admin-metric-grid { grid-template-columns: repeat(2, 1fr); }
    .editor-form .editor-main { grid-template-columns: 1fr; }
    .editor-sidebar { position: static; }
    .tracker-summary { grid-template-columns: 1fr 1fr; }
    .tracker-summary div:nth-child(2) { border-right: 0; }
    .tracker-summary div { border-bottom: 1px solid var(--line); }
    .member-library-filters { grid-template-columns: 1fr 1fr; }
    .continue-card, .media-upload-layout { grid-template-columns: 1fr; }
}

@media (max-width: 580px) {
    body { font-size: 15px; }
    .content-width, .content-width-narrow { width: calc(100% - 28px); }
    .brand-copy small { display: none; }
    .hero h1 { font-size: 4.4rem; }
    .hero-content > p { font-size: 1rem; }
    .section-heading { align-items: start; flex-direction: column; }
    .section-heading h2 { font-size: 2.7rem; }
    .featured-stack, .media-split, .tier-grid, .content-grid, .programme-grid, .logo-grid, .contributor-grid, .contributor-grid.expanded { grid-template-columns: 1fr; }
    .topic-grid { grid-template-columns: 1fr; }
    .topic-card { min-height: 300px; }
    .media-panel { min-height: 390px; padding: 30px; }
    .media-panel h3 { font-size: 2.1rem; }
    .newsletter-form, .form-grid.two { grid-template-columns: 1fr; }
    .newsletter-band h2 { font-size: 2.5rem; }
    .footer-main { grid-template-columns: 1fr 1fr; gap: 35px; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-bottom { flex-direction: column; gap: 8px; }
    .page-hero { padding: 80px 0 65px; }
    .page-hero h1 { font-size: 3.3rem; }
    .event-list .event-row.large { grid-template-columns: 65px 1fr; padding: 20px; }
    .event-list .event-row.large > .button { grid-column: 1 / -1; }
    .article-page { padding-top: 65px; }
    .article-byline { flex-wrap: wrap; }
    .article-access { width: 100%; margin: 0; text-align: center; }
    .article-image { width: 100%; height: 62vw; border-radius: 0; }
    .locked-content { padding: 45px 25px; }
    .locked-benefits { align-items: center; flex-direction: column; gap: 5px; }
    .inline-cta { align-items: start; flex-direction: column; gap: 25px; }
    .partnership-callout, .payment-readiness { padding: 45px 25px; }
    .account-card { width: calc(100% - 28px); padding: 30px 23px; }
    .account-links { flex-direction: column; gap: 8px; }
    .portal-content { padding: 34px 14px 60px; }
    .portal-header { align-items: start; flex-direction: column; }
    .dashboard-top-grid, .admin-metric-grid { grid-template-columns: 1fr; }
    .tier-summary, .profile-progress { align-items: start; }
    .member-feed-grid > section .content-card { display: block; }
    .quick-actions { grid-template-columns: 1fr; }
    .search-box.compact { width: 100%; }
    .admin-toolbar { align-items: stretch; flex-direction: column; gap: 10px; }
    .tracker-summary { grid-template-columns: 1fr; }
    .tracker-summary div { border-right: 0; }
    .tracker-edit { grid-template-columns: 70px 1fr; }
    .tracker-edit .button { grid-column: 1 / -1; }
    .admin-create-grid { grid-template-columns: 1fr; }
    .workflow-legend { flex-wrap: wrap; }
    .member-library-filters { grid-template-columns: 1fr; }
    .continue-card { padding: 14px; }
    .continue-image { height: 220px; }
    .protected-document { align-items: stretch; flex-direction: column; }
    .protected-document .button { text-align: center; }
    .upload-dropzone { min-height: 330px; padding: 30px 20px; }
}
