:root {
    --forest: #123d32;
    --forest-deep: #0d3028;
    --forest-soft: #e9f0eb;
    --gold: #d4b578;
    --ink: #25342f;
    --muted: #77827c;
    --paper: #fbfaf7;
    --line: #e8e7df;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--paper);
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
}

a {
    color: var(--forest);
}

a:hover {
    color: #1d604d;
}

.site-main {
    flex: 1;
}

.site-header {
    position: relative;
    z-index: 2;
    background: #fff;
    border-bottom: 1px solid #e9e5dc;
}

.header-ribbon {
    background: var(--forest-deep);
    color: rgba(255, 255, 255, .76);
    font: .67rem Arial, sans-serif;
    letter-spacing: .035em;
}

.header-ribbon-inner {
    min-height: 31px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.ribbon-note {
    color: #d9c18e;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .15em;
}

.ribbon-note i {
    padding: 0 .3rem;
    color: rgba(217, 193, 142, .65);
    font-style: normal;
}

.nav-shell {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    color: var(--forest);
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: none;
}

.brand:hover,
.footer-brand:hover {
    color: var(--forest);
}

.brand small {
    display: block;
    padding-top: .32rem;
    color: #89938d;
    font: 600 .51rem/1.2 Arial, sans-serif;
    letter-spacing: .13em;
}

.brand-mark {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid #d5c49d;
    border-radius: 50%;
    color: #a77d37;
    font-size: 1.45rem;
}

.site-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(.7rem, 1.8vw, 1.45rem);
    flex-wrap: wrap;
    font: 500 .82rem Arial, sans-serif;
}

.site-nav a {
    position: relative;
    color: #43534c;
    text-decoration: none;
    transition: color .15s ease;
}

.site-nav > a:not(.nav-cta)::after {
    position: absolute;
    right: 0;
    bottom: -7px;
    left: 0;
    height: 1px;
    transform: scaleX(0);
    transform-origin: left;
    background: #b18e51;
    content: "";
    transition: transform .18s ease;
}

.site-nav a:hover {
    color: #a77d37;
}

.site-nav > a.active:not(.nav-cta)::after,
.site-nav > a:not(.nav-cta):hover::after {
    transform: scaleX(1);
}

.site-nav .nav-cta {
    padding: .72rem .95rem;
    border-radius: 3px;
    background: var(--forest);
    color: #fff;
    font-size: .76rem;
}

.site-nav .nav-cta:hover {
    background: #1a5443;
    color: #fff;
}

.site-header .inline-form {
    display: inline;
    margin: 0;
}

.site-header .nav-button {
    padding: 0;
    border: 0;
    background: none;
    color: #43534c;
    font: inherit;
    cursor: pointer;
}

.site-header .nav-button:hover {
    color: #a77d37;
}

.site-header .nav-button:focus-visible,
.site-nav a:focus-visible,
.footer-inner a:focus-visible {
    outline: 2px solid #c6a76c;
    outline-offset: 4px;
}

.flash-wrap {
    padding-top: 1rem;
}

.flash-wrap:empty {
    display: none;
}

.hero {
    position: relative;
    background-color: var(--forest-deep);
    background-image:
        radial-gradient(circle at 78% 45%, rgba(212, 181, 120, .09), transparent 28%),
        repeating-linear-gradient(45deg, transparent 0 38px, rgba(255, 255, 255, .018) 39px 40px),
        repeating-linear-gradient(-45deg, transparent 0 38px, rgba(255, 255, 255, .018) 39px 40px);
    color: #fff;
}

.hero-inner {
    position: relative;
    min-height: 480px;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    align-items: center;
    gap: 2rem;
    padding-top: 4.8rem;
    padding-bottom: 6.5rem;
}

.hero-copy {
    position: relative;
    z-index: 1;
    max-width: 620px;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: #d8c18d;
    font: 700 .65rem/1.3 Arial, sans-serif;
    letter-spacing: .19em;
}

.eyebrow > span {
    width: 23px;
    height: 1px;
    background: var(--gold);
}

.hero h1,
.search-hero h1 {
    margin: 1.35rem 0 1rem;
    color: #fff;
    font-size: clamp(2.5rem, 5.1vw, 4.5rem);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: 1.08;
}

.hero h1 em,
.search-hero h1 em,
.section-heading h2 em {
    color: var(--gold);
    font-weight: 400;
}

.hero-copy > p {
    max-width: 475px;
    margin: 0;
    color: rgba(255, 255, 255, .69);
    font-size: 1.05rem;
    line-height: 1.85;
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    margin-top: 1.8rem;
    flex-wrap: wrap;
}

.btn-gold,
.btn-forest {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 46px;
    padding: .7rem 1.1rem;
    border: 1px solid var(--gold);
    border-radius: 2px;
    background: var(--gold);
    color: #18372e;
    font: 700 .8rem Arial, sans-serif;
    text-decoration: none;
}

.btn-gold:hover {
    border-color: #e4cc9d;
    background: #e4cc9d;
    color: #18372e;
}

.hero-note {
    color: rgba(255, 255, 255, .54);
    font-size: .83rem;
}

.hero-ornament {
    justify-self: center;
    text-align: center;
    transform: translateY(-.3rem);
}

.ornament-ring {
    width: clamp(180px, 23vw, 270px);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    position: relative;
    border: 1px solid rgba(212, 181, 120, .55);
    border-radius: 50%;
    color: #ddc58f;
}

.ornament-ring::before,
.ornament-ring::after {
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(212, 181, 120, .24);
    border-radius: 50%;
    content: "";
}

.ornament-ring::after {
    inset: 27px;
    transform: rotate(45deg);
    border-radius: 42%;
}

.ornament-ring span {
    position: relative;
    z-index: 1;
    font-size: clamp(2.4rem, 5vw, 4.2rem);
}

.ornament-caption {
    display: block;
    margin-top: 1.1rem;
    color: rgba(255, 255, 255, .51);
    font: 600 .57rem Arial, sans-serif;
    letter-spacing: .18em;
}

.hero-search {
    position: absolute;
    right: 12px;
    bottom: -30px;
    left: 12px;
    z-index: 1;
    min-height: 66px;
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .55rem .6rem .55rem 1.25rem;
    border: 1px solid #eee9df;
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(30, 48, 39, .09);
}

.search-symbol {
    color: #a88a52;
    font: 2rem/1 Arial, sans-serif;
}

.hero-search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ink);
    font: .9rem Arial, sans-serif;
}

.hero-search input::placeholder {
    color: #9ca59f;
}

.hero-search button {
    min-width: 122px;
    align-self: stretch;
    border: 0;
    border-radius: 2px;
    background: var(--forest);
    color: #fff;
    font: 600 .82rem Arial, sans-serif;
}

.hero-search button:hover {
    background: #1a5443;
}

.hero-search button span {
    padding-left: .5rem;
    color: var(--gold);
}

.content-section,
.search-results {
    padding-top: 6.1rem;
    padding-bottom: 5rem;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.8rem;
}

.eyebrow-light {
    color: #a58950;
}

.section-heading h2 {
    margin: .55rem 0 0;
    color: var(--forest-deep);
    font-size: clamp(1.8rem, 3vw, 2.55rem);
    letter-spacing: -.035em;
}

.section-heading h2 em {
    color: #a7854b;
}

.section-aside {
    padding-bottom: .35rem;
    color: #8a938d;
    font-size: .88rem;
}

.content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: start;
    gap: 2rem;
}

.article-feed {
    min-width: 0;
}

.featured-article {
    overflow: hidden;
    border: 1px solid var(--line);
    background: #fff;
}

.featured-media {
    height: clamp(220px, 33vw, 390px);
    display: block;
    position: relative;
    overflow: hidden;
    background: #dce5de;
}

.featured-media img,
.article-thumb img,
.reading-cover img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.featured-media img,
.article-thumb img {
    transition: transform .35s ease;
}

.featured-media:hover img,
.article-thumb:hover img {
    transform: scale(1.035);
}

.feature-label {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    padding: .5rem .7rem;
    background: var(--gold);
    color: #24372f;
    font: 700 .59rem Arial, sans-serif;
    letter-spacing: .15em;
}

.media-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background:
        repeating-linear-gradient(45deg, transparent 0 32px, rgba(255, 255, 255, .15) 33px 34px),
        repeating-linear-gradient(-45deg, transparent 0 32px, rgba(255, 255, 255, .15) 33px 34px),
        #284f41;
    color: #e1c68c;
    font-size: 4rem;
}

.featured-copy {
    padding: clamp(1.25rem, 3vw, 2rem);
}

.article-category {
    color: #a18449;
    font: 700 .61rem Arial, sans-serif;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.featured-copy h3,
.article-row-copy h3 {
    margin: .7rem 0 .55rem;
    color: var(--forest-deep);
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    line-height: 1.25;
}

.featured-copy h3 a,
.article-row-copy h3 a {
    color: inherit;
    text-decoration: none;
}

.featured-copy h3 a:hover,
.article-row-copy h3 a:hover {
    color: #9a773e;
}

.featured-copy > p,
.article-row-copy > p {
    margin: 0;
    color: #76817b;
    font-size: .93rem;
    line-height: 1.75;
}

.article-byline {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-top: 1.35rem;
    padding-top: 1rem;
    border-top: 1px solid #efeee8;
    font: .78rem Arial, sans-serif;
}

.author-avatar {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--forest-soft);
    color: var(--forest);
    font: 700 .82rem Arial, sans-serif;
}

.article-byline strong,
.article-byline small {
    display: block;
}

.article-byline strong {
    color: #33463c;
    font-size: .76rem;
}

.article-byline small {
    margin-top: .24rem;
    color: #89928c;
    font-size: .68rem;
}

.read-link {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    margin-left: auto;
    border: 1px solid #ded8c9;
    border-radius: 50%;
    color: #96773e;
    font-size: 1rem;
    text-decoration: none;
}

.article-row {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 1.25rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--line);
}

.article-thumb {
    height: 132px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #e6ede7;
    color: #a18449;
    font-size: 2rem;
    text-decoration: none;
}

.article-row-copy {
    align-self: center;
}

.article-row-copy h3 {
    margin: .45rem 0;
    font-size: 1.25rem;
}

.article-row-copy > p {
    font-size: .85rem;
    line-height: 1.65;
}

.article-date {
    display: inline-block;
    margin-top: .7rem;
    color: #89928c;
    font: .68rem Arial, sans-serif;
}

.article-date span {
    padding: 0 .25rem;
    color: #c2aa79;
}

.reading-sidebar {
    display: grid;
    gap: 1rem;
}

.sidebar-panel {
    padding: 1.35rem;
    border: 1px solid var(--line);
    background: #fff;
}

.sidebar-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid #eeece5;
}

.sidebar-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f4f0e6;
    color: #9c7b40;
    font: 1rem Arial, sans-serif;
}

.sidebar-heading .eyebrow {
    font-size: .54rem;
}

.sidebar-heading h3 {
    margin: .2rem 0 0;
    color: var(--forest);
    font-size: 1.13rem;
}

.trending-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.trending-list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: .6rem;
    padding: .85rem 0;
    border-bottom: 1px solid #f0efe9;
}

.trending-list li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.trend-number {
    color: #ae9258;
    font: .68rem Arial, sans-serif;
}

.trending-list a {
    color: #35483e;
    font-size: .9rem;
    line-height: 1.4;
    text-decoration: none;
}

.trending-list a:hover,
.latest-list a:hover span {
    color: #9a773e;
}

.sidebar-quote {
    position: relative;
    overflow: hidden;
    background: #f0f3ec;
}

.quote-mark {
    color: #c5ac76;
    font-size: 3.2rem;
    line-height: .9;
}

.sidebar-quote p {
    position: relative;
    margin: .3rem 0 1rem;
    color: var(--forest);
    font-size: 1.18rem;
    font-style: italic;
    line-height: 1.55;
}

.quote-caption {
    color: #9a865b;
    font: 700 .55rem Arial, sans-serif;
    letter-spacing: .16em;
}

.latest-list a {
    display: flex;
    justify-content: space-between;
    gap: .7rem;
    padding: .8rem 0;
    border-bottom: 1px solid #f0efe9;
    color: #35483e;
    font-size: .85rem;
    line-height: 1.4;
    text-decoration: none;
}

.latest-list a:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.latest-list small {
    flex: 0 0 auto;
    color: #939b95;
    font: .66rem Arial, sans-serif;
}

.sidebar-empty {
    margin: 0;
    padding-top: .9rem;
    color: #87918a;
    font-size: .83rem;
}

.empty-state {
    padding: 4rem 1.5rem;
    border: 1px solid var(--line);
    background: #fff;
    text-align: center;
}

.empty-state > span {
    color: #b49b67;
    font-size: 2.4rem;
}

.empty-state h3 {
    margin: .7rem 0 .45rem;
    color: var(--forest);
    font-size: 1.4rem;
}

.empty-state p {
    margin: 0;
    color: #7f8983;
}

.article-pagination {
    display: flex;
    justify-content: center;
    margin-top: 1.7rem;
}

.pagination {
    gap: .35rem;
    font: .8rem Arial, sans-serif;
}

.pagination .page-link {
    border-color: #e5e4dc;
    color: var(--forest);
}

.pagination .active > .page-link,
.pagination .page-link:hover {
    border-color: var(--forest);
    background: var(--forest);
    color: #fff;
}

.search-hero {
    padding: 4.3rem 0 5.4rem;
    background:
        radial-gradient(circle at 80% 40%, rgba(212, 181, 120, .09), transparent 24%),
        repeating-linear-gradient(45deg, transparent 0 38px, rgba(255, 255, 255, .018) 39px 40px),
        var(--forest-deep);
    color: #fff;
}

.search-hero h1 {
    margin: .75rem 0 1.5rem;
    font-size: clamp(2rem, 4vw, 3.3rem);
}

.search-page-form {
    position: static;
    max-width: 730px;
}

.search-results {
    padding-top: 3.5rem;
}

.search-heading {
    margin-bottom: .7rem;
}

.search-result {
    grid-template-columns: 205px minmax(0, 1fr);
}

.search-result .article-thumb {
    height: 150px;
}

.search-list {
    border-top: 1px solid var(--line);
}

.reading-container {
    max-width: 880px;
    padding-top: 2.4rem;
    padding-bottom: 4rem;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1.35rem;
    color: #738078;
    font: .78rem Arial, sans-serif;
    text-decoration: none;
}

.back-link:hover {
    color: #9a773e;
}

.reading-article {
    padding: clamp(1.5rem, 5vw, 3.6rem);
    border: 1px solid var(--line);
    background: #fff;
}

.reading-header {
    max-width: 700px;
    margin: 0 auto;
}

.reading-header h1 {
    margin: .8rem 0 1rem;
    color: var(--forest-deep);
    font-size: clamp(2rem, 5vw, 3.6rem);
    letter-spacing: -.04em;
    line-height: 1.15;
}

.reading-header .article-byline {
    padding: 0 0 1.4rem;
    border-top: 0;
}

.reading-cover {
    height: clamp(220px, 44vw, 450px);
    margin: 0 0 2.1rem;
    overflow: hidden;
    background: #e6ede7;
}

.reading-content {
    max-width: 700px;
    margin: 0 auto;
    color: #37463e;
    font-size: 1.08rem;
    line-height: 2;
}

.reading-actions {
    max-width: 700px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 2.2rem auto 0;
    padding-top: 1.3rem;
    border-top: 1px solid var(--line);
}

.reading-actions form {
    margin: 0;
}

.like-button {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .7rem .9rem;
    border: 1px solid #dfe5df;
    border-radius: 2px;
    background: #fff;
    color: var(--forest);
    font: 600 .8rem Arial, sans-serif;
    text-decoration: none;
}

.like-button:hover,
.like-button.is-liked {
    border-color: #d9e4dc;
    background: #edf4ef;
    color: var(--forest);
}

.like-button > span:first-child {
    color: #a3834b;
    font-size: 1.1rem;
}

.like-count {
    padding-left: .5rem;
    border-left: 1px solid #e4e5dd;
    color: #748078;
}

.share-note {
    color: #87918a;
    font-size: .82rem;
    font-style: italic;
}

.comments-section {
    padding: 2.7rem 0 0;
}

.comments-heading {
    margin-bottom: 1.25rem;
}

.comments-heading h2 {
    font-size: 1.75rem;
}

.comment-count {
    color: #87918a;
    font: .75rem Arial, sans-serif;
}

.comment-form {
    padding: 1.35rem;
    border: 1px solid var(--line);
    background: #fff;
}

.comment-form label {
    display: block;
    margin-bottom: .65rem;
    color: #43534b;
    font: 600 .8rem Arial, sans-serif;
}

.comment-form textarea {
    width: 100%;
    min-height: 100px;
    padding: .8rem;
    border: 1px solid #e2e4dc;
    border-radius: 2px;
    outline-color: #9ab5a2;
    resize: vertical;
    font: .88rem/1.6 Arial, sans-serif;
}

.comment-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .8rem;
}

.comment-form-footer small {
    color: #89928c;
    font: .72rem Arial, sans-serif;
}

.btn-forest {
    min-height: 40px;
    padding: .6rem .85rem;
    border-color: var(--forest);
    background: var(--forest);
    color: #fff;
}

.btn-forest:hover {
    border-color: #1a5443;
    background: #1a5443;
    color: #fff;
}

.login-prompt {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem;
    border: 1px solid var(--line);
    background: #fff;
    color: #536159;
    font-size: .9rem;
}

.login-prompt a {
    font: 600 .78rem Arial, sans-serif;
    text-decoration: none;
}

.comment-list {
    margin-top: 1rem;
}

.comment-item {
    display: flex;
    gap: .8rem;
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--line);
}

.comment-item > div {
    flex: 1;
}

.comment-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    font: .78rem Arial, sans-serif;
}

.comment-meta strong {
    color: #34473d;
}

.comment-meta small {
    color: #929a94;
}

.comment-item p {
    margin: .5rem 0 0;
    color: #536159;
    font-size: .9rem;
    line-height: 1.7;
}

.empty-comments {
    padding: 1.5rem;
    color: #87918a;
    text-align: center;
    font-size: .9rem;
}

.site-footer {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 78% 0%, rgba(212, 181, 120, .1), transparent 34%),
        #102f27;
    color: rgba(255, 255, 255, .62);
}

.footer-inner {
    padding-top: 3.15rem;
    padding-bottom: 1.1rem;
}

.footer-brand {
    gap: .7rem;
    color: #fff;
    font-size: 1rem;
}

.footer-brand .brand-mark {
    width: 40px;
    height: 40px;
    border-color: rgba(212, 181, 120, .42);
    color: #dfc894;
}

.footer-brand small {
    color: rgba(255, 255, 255, .47);
}

.footer-inner .footer-main {
    display: grid;
    grid-template-columns: minmax(250px, 1.5fr) minmax(130px, .65fr) minmax(230px, 1fr);
    gap: clamp(2rem, 6vw, 6rem);
    padding-bottom: 2.6rem;
}

.footer-about p {
    max-width: 335px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .59);
    font-size: .88rem;
    line-height: 1.8;
}

.footer-column,
.footer-note {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}

.footer-label {
    margin: .35rem 0 .95rem;
    color: #dfc894;
    font: 700 .59rem Arial, sans-serif;
    letter-spacing: .16em;
}

.footer-column a {
    margin: 0 0 .72rem;
    color: rgba(255, 255, 255, .72);
    font-size: .88rem;
    text-decoration: none;
}

.footer-column a:hover,
.footer-note > a:hover {
    color: #fff;
}

.footer-note {
    padding-left: 1.5rem;
    border-left: 1px solid rgba(255, 255, 255, .14);
}

.footer-note p {
    max-width: 260px;
    margin: 0 0 .85rem;
    color: rgba(255, 255, 255, .7);
    font-size: 1rem;
    line-height: 1.55;
}

.footer-note > a {
    color: #dfc894;
    font: 600 .73rem Arial, sans-serif;
    text-decoration: none;
}

.footer-note > a span {
    padding-left: .4rem;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0 .25rem;
    border-top: 1px solid rgba(255, 255, 255, .13);
}

.footer-bottom small {
    color: rgba(255, 255, 255, .48);
    font: .68rem Arial, sans-serif;
}

.flash-wrap .alert {
    margin-bottom: 0;
    border: 0;
    border-radius: 2px;
    font: .85rem Arial, sans-serif;
}

.flash-wrap .alert + .alert {
    margin-top: .5rem;
}

.site-main > h1,
.site-main > .container > h1 {
    margin-bottom: 1.25rem;
    color: var(--forest-deep);
    font-size: clamp(1.8rem, 3vw, 2.45rem);
}

.site-main > h1,
.site-main > .grid,
.site-main > .table-wrap,
.site-main > section.card {
    width: min(1120px, calc(100% - 2rem));
    margin-right: auto;
    margin-left: auto;
}

.site-main .card {
    margin-bottom: 1rem;
    padding: 1.4rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(25, 48, 37, .035);
}

.site-main .card h2,
.site-main .card h3 {
    color: var(--forest);
}

.field {
    margin-bottom: 1rem;
}

.field label {
    display: block;
    margin-bottom: .4rem;
    color: #405148;
    font: 600 .8rem Arial, sans-serif;
}

.field input:not([type="checkbox"]),
.field input[type="file"],
.field textarea,
.field select,
.actions select {
    display: block;
    width: 100%;
    min-height: 42px;
    padding: .6rem .75rem;
    border: 1px solid #d9dfd9;
    border-radius: 2px;
    background: #fff;
    color: #33443b;
    font: .88rem Arial, sans-serif;
}

.field textarea {
    min-height: 125px;
    line-height: 1.6;
}

.field input[type="checkbox"] {
    margin-right: .4rem;
    accent-color: var(--forest);
}

.field input:focus,
.field textarea:focus,
.field select:focus,
.actions select:focus {
    border-color: #82a592;
    outline: 3px solid rgba(18, 61, 50, .1);
}

.site-main button[type="submit"]:not(.nav-button):not(.btn) {
    min-height: 40px;
    padding: .55rem .9rem;
    border: 1px solid var(--forest);
    border-radius: 2px;
    background: var(--forest);
    color: #fff;
    font: 600 .8rem Arial, sans-serif;
    cursor: pointer;
}

.site-main button[type="submit"]:not(.nav-button):not(.btn):hover {
    border-color: #1a5443;
    background: #1a5443;
}

.button {
    padding: .58rem .9rem;
    border: 1px solid var(--forest);
    border-radius: 2px;
    background: var(--forest);
    color: #fff;
    font: 600 .78rem Arial, sans-serif;
}

.button:hover {
    border-color: #1a5443;
    background: #1a5443;
    color: #fff;
}

.button.secondary {
    border-color: #748078;
    background: #748078;
}

.button.danger {
    border-color: #a6413d;
    background: #a6413d;
}

.table-wrap {
    overflow-x: auto;
}

.site-main table {
    margin-bottom: 0;
    color: #405148;
    font: .84rem/1.55 Arial, sans-serif;
}

.site-main table thead th {
    border-bottom-color: #dfe5df;
    background: #f1f4f0;
    color: #405148;
    font-size: .7rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.site-main table td,
.site-main table th {
    padding: .85rem .75rem;
    vertical-align: middle;
}

.auth-shell {
    width: min(100% - 2rem, 560px);
    margin: 3.5rem auto;
}

.auth-panel {
    padding: clamp(1.5rem, 5vw, 2.7rem);
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: 0 18px 50px rgba(25, 48, 37, .07);
}

.auth-panel h1 {
    margin: .7rem 0 .5rem;
    color: var(--forest-deep);
    font-size: clamp(1.8rem, 5vw, 2.4rem);
}

.auth-intro {
    margin: 0 0 1.5rem;
    color: #77827c;
    font-size: .9rem;
    line-height: 1.7;
}

.auth-switch {
    margin: 1.35rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
    color: #77827c;
    font: .78rem Arial, sans-serif;
}

.auth-switch a {
    color: var(--forest);
    font-weight: 700;
    text-decoration: none;
}

.admin-bar {
    border-bottom: 1px solid #e8e9e2;
    background: #fff;
}

.admin-bar-inner {
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.admin-identity,
.admin-account {
    display: inline-flex;
    align-items: center;
}

.admin-identity {
    gap: .7rem;
}

.admin-mark {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 3px;
    background: #e9f0eb;
    color: var(--forest);
}

.admin-identity strong,
.admin-identity small {
    display: block;
}

.admin-identity strong {
    color: #293a32;
    font: 700 .81rem Arial, sans-serif;
}

.admin-identity small {
    margin-top: .23rem;
    color: #87918a;
    font: .68rem Arial, sans-serif;
}

.admin-account {
    gap: .45rem;
    color: #59675f;
    font: .74rem Arial, sans-serif;
}

.admin-account > span {
    color: #b29760;
}

.admin-nav {
    border-bottom: 1px solid #e8e9e2;
    background: #fff;
}

.admin-nav-inner {
    min-height: 45px;
    display: flex;
    align-items: stretch;
    gap: 1.6rem;
    overflow-x: auto;
}

.admin-nav a {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    position: relative;
    color: #68746d;
    font: 600 .73rem Arial, sans-serif;
    text-decoration: none;
}

.admin-nav a::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    transform: scaleX(0);
    background: #a7854b;
    content: "";
}

.admin-nav a:hover,
.admin-nav a.active {
    color: var(--forest);
}

.admin-nav a.active::after {
    transform: scaleX(1);
}

.admin-main {
    width: min(1160px, calc(100% - 2rem));
    padding-top: 2.15rem;
    padding-bottom: 4rem;
}

.admin-page-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.5rem;
}

.admin-page-heading h1 {
    margin: .4rem 0 .35rem;
    color: var(--forest-deep);
    font-size: clamp(1.7rem, 3vw, 2.25rem);
    letter-spacing: -.035em;
}

.admin-page-heading p {
    margin: 0;
    color: #78837c;
    font-size: .86rem;
}

.admin-kicker {
    color: #a18449;
    font: 700 .58rem Arial, sans-serif;
    letter-spacing: .16em;
}

.admin-button,
.admin-secondary-button,
.admin-danger-button {
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .58rem .9rem;
    border: 1px solid var(--forest);
    border-radius: 3px;
    background: var(--forest);
    color: #fff;
    font: 600 .75rem Arial, sans-serif;
    text-decoration: none;
    cursor: pointer;
}

.admin-button:hover {
    border-color: #1b5746;
    background: #1b5746;
    color: #fff;
}

.admin-secondary-button {
    width: 100%;
    margin-top: .7rem;
    border-color: #dfe5df;
    background: #fff;
    color: var(--forest);
}

.admin-secondary-button:hover {
    background: #f1f4f0;
    color: var(--forest);
}

.admin-danger-button {
    border-color: #ad4a43;
    background: #ad4a43;
}

.admin-danger-button:hover {
    border-color: #913c36;
    background: #913c36;
}

.admin-back-link {
    color: #637269;
    font: 600 .76rem Arial, sans-serif;
    text-decoration: none;
}

.admin-back-link:hover {
    color: #9a773e;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.3rem;
}

.admin-stat-card {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: 1.15rem;
    border: 1px solid #e9e8e0;
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(25, 48, 37, .025);
}

.stat-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    border-radius: 3px;
    font: 1rem Arial, sans-serif;
}

.stat-icon-green {
    background: #e9f2ec;
    color: #36745a;
}

.stat-icon-gold {
    background: #f5f0e5;
    color: #a38042;
}

.stat-icon-blue {
    background: #eaf0f3;
    color: #557889;
}

.stat-icon-rose {
    background: #f6ecea;
    color: #a6645c;
}

.admin-stat-card > div {
    min-width: 0;
}

.admin-stat-label,
.admin-stat-card strong,
.admin-stat-card small {
    display: block;
}

.admin-stat-label {
    color: #748078;
    font: 600 .68rem Arial, sans-serif;
}

.admin-stat-card strong {
    margin: .2rem 0;
    color: #25382f;
    font: 700 1.55rem/1.15 Arial, sans-serif;
}

.admin-stat-card small {
    color: #939b95;
    font: .65rem Arial, sans-serif;
}

.admin-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .9fr);
    align-items: start;
    gap: 1.2rem;
}

.admin-panel {
    min-width: 0;
    border: 1px solid #e9e8e0;
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(25, 48, 37, .025);
}

.admin-panel-heading,
.admin-table-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid #eeede7;
}

.admin-panel-heading h2,
.admin-table-intro h2 {
    margin: .3rem 0 0;
    color: #2b3f35;
    font-size: 1.15rem;
}

.admin-panel-heading > a {
    color: var(--forest);
    font: 600 .7rem Arial, sans-serif;
    text-decoration: none;
}

.admin-activity-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.2rem;
    border-bottom: 1px solid #f0efe9;
}

.admin-activity-row:last-child {
    border-bottom: 0;
}

.activity-icon,
.shortcut-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: 3px;
    background: #edf3ee;
    color: #47745b;
    font: .9rem Arial, sans-serif;
}

.activity-copy {
    min-width: 0;
    flex: 1;
}

.activity-copy a {
    display: block;
    overflow: hidden;
    color: #364940;
    font: 600 .78rem Arial, sans-serif;
    text-overflow: ellipsis;
    text-decoration: none;
    white-space: nowrap;
}

.activity-copy small {
    display: block;
    margin-top: .3rem;
    color: #8b958e;
    font: .65rem Arial, sans-serif;
}

.admin-empty {
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 2.5rem 1rem;
    text-align: center;
}

.admin-empty > span {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    margin-bottom: .7rem;
    border-radius: 50%;
    background: #edf3ee;
    color: #47745b;
    font: 1.05rem Arial, sans-serif;
}

.admin-empty strong {
    color: #35483e;
    font: 600 .85rem Arial, sans-serif;
}

.admin-empty p {
    margin: .35rem 0 0;
    color: #8b958e;
    font: .74rem/1.5 Arial, sans-serif;
}

.admin-empty .admin-button {
    margin-top: 1rem;
}

.admin-shortcuts > a {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .85rem 1.2rem;
    border-bottom: 1px solid #f0efe9;
    color: #364940;
    text-decoration: none;
}

.admin-shortcuts > a:last-child {
    border-bottom: 0;
}

.admin-shortcuts > a:hover {
    background: #fafbf9;
}

.admin-shortcuts > a > span:nth-child(2) {
    flex: 1;
}

.admin-shortcuts strong,
.admin-shortcuts small {
    display: block;
}

.admin-shortcuts strong {
    font: 600 .75rem Arial, sans-serif;
}

.admin-shortcuts small {
    margin-top: .25rem;
    color: #89938d;
    font: .64rem Arial, sans-serif;
}

.shortcut-arrow {
    color: #ad925a;
}

.admin-table-panel {
    overflow: hidden;
}

.admin-table-intro {
    padding: 1.05rem 1.2rem;
}

.admin-table-intro h2 {
    font-size: 1rem;
}

.admin-table-intro p {
    margin: .3rem 0 0;
    color: #89938d;
    font: .7rem Arial, sans-serif;
}

.admin-table-wrap {
    width: 100%;
}

.site-main .admin-table {
    min-width: 740px;
    border: 0;
    font-size: .75rem;
}

.site-main .admin-table thead th {
    padding: .75rem .9rem;
    border-top: 0;
    border-bottom: 1px solid #e9e9e2;
    background: #f8f9f6;
    color: #7c8780;
    font-size: .59rem;
    letter-spacing: .1em;
    white-space: nowrap;
}

.site-main .admin-table td {
    padding: .82rem .9rem;
    border-bottom: 1px solid #f0efe9;
    color: #5e6b63;
}

.site-main .admin-table tbody tr:last-child td {
    border-bottom: 0;
}

.site-main .admin-table tbody tr:hover {
    background: #fcfcfa;
}

.table-primary-link {
    display: block;
    color: #34483d;
    font: 600 .76rem Arial, sans-serif;
    text-decoration: none;
}

.table-primary-link:hover,
.table-action-link:hover {
    color: #9a773e;
}

.table-secondary-text {
    display: block;
    margin-top: .3rem;
    color: #939b95;
    font: .64rem Arial, sans-serif;
}

.table-email {
    text-decoration: none;
}

.category-pill,
.role-pill,
.status-pill {
    display: inline-flex;
    align-items: center;
    padding: .3rem .5rem;
    border-radius: 2px;
    font: 600 .61rem Arial, sans-serif;
    white-space: nowrap;
}

.category-pill,
.role-pill {
    background: #f1f3ee;
    color: #637068;
}

.status-approved {
    background: #e8f2eb;
    color: #36734f;
}

.status-pending {
    background: #f7f0df;
    color: #9b7836;
}

.status-rejected {
    background: #f7eae8;
    color: #a24e45;
}

.engagement-count {
    margin-right: .55rem;
    color: #748078;
    font: .68rem Arial, sans-serif;
}

.table-actions {
    display: flex;
    gap: .65rem;
}

.table-actions a,
.table-action-link {
    color: var(--forest);
    font: 600 .68rem Arial, sans-serif;
    text-decoration: none;
    white-space: nowrap;
}

.table-action-link span {
    padding-left: .25rem;
    color: #a18449;
}

.admin-table-footer {
    display: flex;
    justify-content: flex-end;
    padding: .85rem 1rem;
    border-top: 1px solid #eeede7;
}

.admin-table-footer nav {
    font: .72rem Arial, sans-serif;
}

.admin-table-footer .pagination {
    margin: 0;
}

.member-cell {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.member-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eaf1eb;
    color: #38634d;
    font: 700 .75rem Arial, sans-serif;
}

.admin-table .admin-empty {
    padding: 2.5rem 1rem;
}

.admin-form-panel {
    max-width: 860px;
    overflow: hidden;
}

.admin-form-body {
    padding: 1.4rem 1.3rem;
}

.admin-form-body .field {
    margin-bottom: 1.15rem;
}

.admin-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.required-mark {
    color: #ae4c42;
}

.field-help {
    display: block;
    margin-top: .38rem;
    color: #929b95;
    font: .66rem/1.5 Arial, sans-serif;
}

.admin-form-body .publish-toggle {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-top: .3rem;
    padding: .85rem;
    border: 1px solid #e8e9e2;
    background: #fafbf9;
    cursor: pointer;
}

.publish-toggle input,
.setting-checkbox input {
    accent-color: var(--forest);
}

.publish-toggle span strong,
.publish-toggle span small {
    display: block;
}

.publish-toggle strong {
    color: #3c4d43;
    font: 600 .75rem Arial, sans-serif;
}

.publish-toggle small {
    margin-top: .25rem;
    color: #8d9790;
    font: .66rem Arial, sans-serif;
}

.admin-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1.3rem;
    border-top: 1px solid #eeede7;
    background: #fafbf9;
}

.admin-form-footer .field-help {
    margin: 0;
}

.admin-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, .75fr);
    align-items: start;
    gap: 1.2rem;
}

.admin-post-preview {
    overflow: hidden;
}

.admin-post-preview .admin-panel-heading {
    border-bottom: 1px solid #eeede7;
}

.admin-preview-image {
    width: calc(100% - 2.4rem);
    max-height: 340px;
    display: block;
    margin: 1.2rem auto 0;
    object-fit: cover;
}

.admin-preview-content {
    padding: 1.2rem;
    color: #59685f;
    font-size: .9rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
}

.admin-review-panel {
    padding: 1.2rem;
}

.admin-review-panel h2,
.admin-panel > h2 {
    margin: .35rem 0 .45rem;
    color: #2b3f35;
    font-size: 1.2rem;
}

.admin-review-panel > p {
    color: #818c85;
    font-size: .77rem;
    line-height: 1.6;
}

.admin-review-form .admin-button {
    width: 100%;
}

.admin-danger-zone {
    margin-top: 1.4rem;
    padding-top: 1.1rem;
    border-top: 1px solid #eeede7;
}

.admin-danger-zone > strong {
    color: #704b46;
    font: 600 .78rem Arial, sans-serif;
}

.admin-danger-zone > p {
    margin: .35rem 0 .8rem;
    color: #89938d;
    font: .69rem/1.5 Arial, sans-serif;
}

.member-profile-panel {
    padding: 1.25rem;
    margin-bottom: 1.2rem;
}

.member-profile-heading {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eeede7;
}

.member-avatar-large {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    font-size: 1.1rem;
}

.member-profile-heading > div {
    min-width: 0;
    flex: 1;
}

.member-profile-heading h2 {
    margin: 0;
    color: #2b3f35;
    font-size: 1.25rem;
}

.member-profile-heading p {
    margin: .25rem 0 0;
    color: #87918a;
    font: .72rem Arial, sans-serif;
}

.member-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 1rem 0 0;
}

.member-stats .admin-stat-card {
    padding: .85rem;
    border: 0;
    background: #f8f9f6;
    box-shadow: none;
}

.member-stats .admin-stat-card strong {
    font-size: 1.2rem;
}

.member-stats .member-stat-text {
    font-size: .95rem;
}

.member-manage-grid {
    grid-template-columns: minmax(260px, .85fr) minmax(0, 1.4fr);
}

.member-manage-grid > .admin-panel {
    overflow: hidden;
}

.member-manage-grid .admin-form-panel {
    padding: 0 1.2rem 1.2rem;
}

.member-manage-grid .admin-form-panel .admin-panel-heading {
    margin: 0 -1.2rem 1rem;
}

.member-manage-grid .admin-danger-zone {
    margin-top: 1.2rem;
}

.admin-comment-list {
    padding: 0 1.2rem;
}

.admin-comment {
    display: flex;
    gap: .8rem;
    padding: 1.1rem 0;
    border-bottom: 1px solid #eeede7;
}

.admin-comment:last-child {
    border-bottom: 0;
}

.admin-comment-body {
    min-width: 0;
    flex: 1;
}

.admin-comment-heading {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
}

.admin-comment-heading > strong {
    color: #35483e;
    font: 600 .76rem Arial, sans-serif;
}

.admin-comment-heading > small {
    margin-left: auto;
    color: #929b95;
    font: .65rem Arial, sans-serif;
}

.admin-comment-body > p {
    margin: .65rem 0;
    color: #5a685f;
    font-size: .86rem;
    line-height: 1.65;
}

.admin-comment-post {
    color: #738078;
    font: .68rem Arial, sans-serif;
    text-decoration: none;
}

.admin-comment-post span {
    color: #a18449;
}

.admin-comment-actions {
    display: flex;
    gap: .9rem;
    margin-top: .7rem;
}

.admin-comment-actions form {
    margin: 0;
}

.text-action {
    padding: 0;
    border: 0;
    background: none;
    color: var(--forest);
    font: 600 .67rem Arial, sans-serif;
    cursor: pointer;
}

.text-action-danger {
    color: #a24e45;
}

.message-cell {
    max-width: 550px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.admin-setting-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid #eeede7;
}

.admin-setting-row > span strong,
.admin-setting-row > span small {
    display: block;
}

.admin-setting-row > span strong {
    color: #3c4d43;
    font: 600 .75rem Arial, sans-serif;
}

.admin-setting-row > span small {
    margin-top: .28rem;
    color: #89938d;
    font: .66rem Arial, sans-serif;
}

.admin-form-section-label {
    display: block;
    margin: 1.2rem 0 .9rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid #eeede7;
    color: #a18449;
    font: 700 .59rem Arial, sans-serif;
    letter-spacing: .13em;
}

.admin-form-section-label:first-child {
    margin-top: 0;
}

.setting-checkbox {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

.setting-checkbox input {
    position: absolute;
    opacity: 0;
}

.setting-switch {
    width: 36px;
    height: 20px;
    position: relative;
    border-radius: 20px;
    background: #c9d0ca;
    transition: background .15s ease;
}

.setting-switch::after {
    width: 14px;
    height: 14px;
    position: absolute;
    top: 3px;
    left: 3px;
    border-radius: 50%;
    background: #fff;
    content: "";
    transition: transform .15s ease;
}

.setting-checkbox input:checked + .setting-switch {
    background: #39775a;
}

.setting-checkbox input:checked + .setting-switch::after {
    transform: translateX(16px);
}

.muted {
    color: var(--muted);
}

@media (max-width: 767.98px) {
    .nav-shell {
        min-height: 0;
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        gap: .8rem 1.2rem;
        padding-top: .75rem;
        padding-bottom: .75rem;
    }

    .site-nav {
        justify-content: flex-start;
        gap: .65rem 1.1rem;
        font-size: .78rem;
    }

    .hero-inner {
        min-height: 0;
        grid-template-columns: 1fr;
        padding-top: 3.4rem;
        padding-bottom: 6rem;
    }

    .hero-ornament {
        display: none;
    }

    .hero h1 {
        font-size: clamp(2.4rem, 10vw, 3.6rem);
    }

    .hero-note {
        width: 100%;
    }

    .content-section {
        padding-top: 5.1rem;
        padding-bottom: 3.2rem;
    }

    .content-grid {
        grid-template-columns: 1fr;
    }

    .reading-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .reading-sidebar .sidebar-panel:last-child {
        grid-column: 1 / -1;
    }

    .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .search-heading {
        gap: .55rem;
    }

    .footer-inner .footer-main {
        grid-template-columns: minmax(0, 1.3fr) minmax(120px, .7fr);
        gap: 2rem;
    }

    .footer-note {
        grid-column: 1 / -1;
        padding: 1.1rem 0 0;
        border-top: 1px solid rgba(255, 255, 255, .14);
        border-left: 0;
    }

    .admin-stats,
    .member-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-dashboard-grid,
    .admin-detail-grid,
    .member-manage-grid {
        grid-template-columns: 1fr;
    }

    .admin-main {
        padding-top: 1.5rem;
    }

    .admin-page-heading {
        align-items: flex-start;
    }
}

@media (max-width: 520px) {
    .header-ribbon-inner {
        min-height: 29px;
        justify-content: center;
    }

    .header-ribbon-inner > span:first-child {
        font-size: .62rem;
    }

    .ribbon-note {
        display: none;
    }

    .nav-shell {
        align-items: flex-start;
        flex-direction: column;
        gap: .7rem;
    }

    .brand {
        font-size: 1rem;
    }

    .brand small {
        font-size: .47rem;
    }

    .hero-search {
        right: 0;
        left: 0;
        gap: .45rem;
        padding-left: .75rem;
    }

    .hero-search button {
        min-width: 88px;
        padding: 0 .45rem;
        font-size: .73rem;
    }

    .hero-search input {
        font-size: .78rem;
    }

    .search-symbol {
        font-size: 1.65rem;
    }

    .article-row,
    .search-result {
        grid-template-columns: 105px minmax(0, 1fr);
        gap: .8rem;
    }

    .article-thumb,
    .search-result .article-thumb {
        height: 112px;
    }

    .article-row-copy h3 {
        font-size: 1rem;
    }

    .article-row-copy > p {
        display: none;
    }

    .article-date {
        font-size: .62rem;
    }

    .reading-sidebar {
        grid-template-columns: 1fr;
    }

    .reading-sidebar .sidebar-panel:last-child {
        grid-column: auto;
    }

    .reading-actions,
    .login-prompt {
        align-items: flex-start;
        flex-direction: column;
    }

    .comment-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: .25rem;
    }

    .footer-inner {
        padding-top: 2.3rem;
    }

    .footer-inner .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 1.6rem 1rem;
        padding-bottom: 1.8rem;
    }

    .footer-about {
        grid-column: 1 / -1;
    }

    .footer-note {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: .5rem;
    }

    .admin-bar-inner {
        min-height: 58px;
    }

    .admin-account {
        max-width: 45%;
        justify-content: flex-end;
        font-size: .65rem;
        text-align: right;
    }

    .admin-nav-inner {
        gap: 1.2rem;
    }

    .admin-page-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .admin-stats,
    .member-stats {
        gap: .6rem;
    }

    .admin-stat-card {
        padding: .8rem;
    }

    .admin-stat-card strong {
        font-size: 1.25rem;
    }

    .admin-form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .admin-form-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-form-footer .admin-button {
        width: 100%;
    }

    .admin-comment-heading > small {
        width: 100%;
        margin-left: 0;
    }
}
