/*
Theme Name: Redeeming Self Empowerment
Description: Garden of Eden teaching and charitable outreach under Redeeming Self — From Lost to Life.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: redeeming-self-empowerment
License: GNU General Public License v2 or later
*/
:root {
    --rse-emerald: #103d30;
    --rse-deep: #09261f;
    --rse-gold: #edc772;
    --rse-ivory: #faf6eb;
    --rse-ink: #19352b;
    --rse-line: #ded5bc;
    --rse-space: clamp(3rem, 7vw, 6rem);
    --rse-width: 74rem;
    --rse-title: Cinzel, Georgia, serif;
    --rse-body: "Source Sans 3", system-ui, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--rse-ivory); color: var(--rse-ink); font: 1.125rem/1.6 var(--rse-body); }
h1, h2, h3 { font-family: var(--rse-title); line-height: 1.2; text-wrap: balance; }
h1 { font-size: clamp(2rem, 5vw, 4.4rem); }
h2 { font-size: clamp(1.55rem, 3vw, 2.65rem); }
h3 { font-size: 1.18rem; }
img, iframe { max-width: 100%; }
img { height: auto; }
a { color: inherit; text-underline-offset: .19em; }
:focus-visible { outline: 3px solid #146b94; outline-offset: 4px; }
.rse-header :focus-visible, .rse-hero :focus-visible, .rse-dark :focus-visible, .rse-footer :focus-visible { outline-color: #fff; }
.rse-skip { position: fixed; top: 0; left: 1rem; z-index: 100000; padding: .6rem 1rem; background: #fff; transform: translateY(-130%); }
.rse-skip:focus { transform: none; }
.rse-wrap { width: min(var(--rse-width), calc(100% - 2.5rem)); margin-inline: auto; }
.rse-header, .rse-footer { color: var(--rse-ivory); background: var(--rse-deep); }
.rse-header-inner, .rse-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1rem; }
.rse-brand { flex-shrink: 0; font: 700 1.05rem var(--rse-title); letter-spacing: .05em; }
.rse-brand a { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; }
.rse-brand span { color: var(--rse-gold); }
.rse-brand img { display: block; width: auto; max-width: 9rem; max-height: 3rem; object-fit: contain; }
.rse-nav, .rse-menu { display: flex; align-items: center; gap: .3rem 1rem; flex-wrap: wrap; }
.rse-nav { justify-content: flex-end; }
.rse-menu { list-style: none; padding: 0; margin: 0; }
.rse-menu a { display: block; padding-block: .5rem; font-size: .97rem; text-decoration: none; }
.rse-menu a:hover, .rse-menu .current-menu-item > a { text-decoration: underline; }
.rse-button, .wp-block-button__link { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1.05rem; border-radius: .25rem; background: var(--rse-gold); color: var(--rse-deep); font: 700 1rem/1.25 var(--rse-body); text-decoration: none; }
.rse-button:hover, .wp-block-button__link:hover { background: #ffdf98; color: var(--rse-deep); }
.rse-hero { padding-block: clamp(1.5rem, 4vw, 4rem); color: #fff; background: radial-gradient(ellipse at top, var(--rse-emerald), var(--rse-deep)); }
.rse-hero-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.rse-hero .wp-block-image { margin: 0; }
.rse-hero .wp-block-image img { display: block; width: 100%; border: 1px solid #a48043; border-radius: .4rem; }
.rse-hero h1 { margin: .5rem 0 1rem; }
.rse-kicker { color: var(--rse-gold); font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.rse-hero .wp-block-buttons { gap: .75rem; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.rse-hero .is-style-outline .wp-block-button__link { color: #fff; background: #09261f; }
.rse-section { padding-block: var(--rse-space); }
.rse-section h2 { margin-top: 0; }
.rse-mission { max-width: 50rem; text-align: center; }
.rse-dark { background: var(--rse-emerald); color: var(--rse-ivory); }
.rse-tint { background: #f0ead9; }
.rse-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin-block: 1.5rem; }
.rse-card { padding: 1.35rem; background: #fffdf7; color: var(--rse-ink); border: 1px solid var(--rse-line); border-top: .24rem solid #b68536; border-radius: .3rem; }
.rse-card h3 { margin-top: .4rem; }
.rse-card .wp-block-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rse-content { max-width: 53rem; min-height: 50vh; padding-block: var(--rse-space); }
.rse-content > article > h1 { margin-top: 0; }
.rse-content section { margin-block: 2.5rem; scroll-margin-block-start: 1rem; }
.rse-post { padding-block: 1rem; border-bottom: 1px solid var(--rse-line); }
.rse-footer-inner { padding-block: 2rem; }
input, textarea, select, button { max-width: 100%; font: inherit; }
@media (preferse-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; }
}
@media (max-width: 66rem) {
    .rse-header-inner { align-items: flex-start; flex-direction: column; gap: .6rem; }
    .rse-nav { justify-content: flex-start; }
}
@media (max-width: 54rem) {
    .rse-hero-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 42rem) {
    .rse-header-inner { width: calc(100% - 1.5rem); }
    .rse-nav { width: 100%; }
    .rse-menu { flex-basis: 100%; gap: 0 .8rem; }
    .rse-menu a { min-height: 44px; display: flex; align-items: center; }
    .rse-footer-inner { align-items: flex-start; flex-direction: column; }
}

.rse-menu-toggle {
    min-height: 44px;
    border: 1px solid var(--rse-gold);
    border-radius: .25rem;
    background: transparent;
    color: var(--rse-ivory);
    padding: .35rem .8rem;
    cursor: pointer;
}
.rse-menu-panel[hidden], .rse-menu-toggle[hidden] { display: none; }
.rse-subtitle { font-size: clamp(1.15rem, 2.4vw, 1.6rem); margin-block: .5rem 1.35rem; }
.rse-reference { font-weight: 700; color: var(--rse-gold); }
.rse-content .rse-reference { color: #72501c; }
.rse-status { font-size: .9rem; font-weight: 700; color: #72501c; }
.rse-content .wp-block-image { margin-inline: 0; }
.rse-content section[id] { scroll-margin-top: 1.25rem; }
.rse-hero .wp-block-image img { aspect-ratio: 16 / 9; object-fit: contain; }
.rse-hero h1 { font-size: clamp(2rem, 4.1vw, 3.65rem); }
@media (max-width: 54rem) {
    .rse-menu-panel { flex: 1 0 100%; }
    .rse-nav { justify-content: space-between; width: 100%; }
    .rse-menu-panel .rse-menu { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(9rem, 100%), 1fr)); }
    .rse-menu-panel .rse-menu a { padding: .5rem; }
}
