/*
Theme Name: intim-socn2
Theme URI: https://sociolog.in.ua/
Author: Studio
Author URI: https://sociolog.in.ua/
Description: Серьёзное редакционное издание о социологии близости, отношений и современной сексуальной культуры. Тёплая бумажная палитра, шрифтовая иерархия Spectral + Inter, чистые сетки статей.
Version: 1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: intim-socn2
*/

/* ============================================================
   Design tokens
   ============================================================ */
:root {
    --soc-paper:   #f7f4ef;   /* warm off-white paper       */
    --soc-paper-2: #efe9df;   /* slightly deeper paper      */
    --soc-ink:     #1b1b1e;   /* deep ink                   */
    --soc-ink-2:   #3a3a40;   /* softened ink for body      */
    --soc-muted:   #7c7871;   /* muted meta text            */
    --soc-line:    #d9d2c6;   /* hairline rules             */
    --soc-teal:    #2f6f6a;   /* academic teal accent       */
    --soc-teal-d:  #245551;   /* darker teal (hover)        */
    --soc-clay:    #c06a4d;   /* soft clay highlight        */
    --soc-white:   #fffdf9;   /* card / surface white       */

    --soc-serif: "Spectral", "Iowan Old Style", Georgia, "Times New Roman", serif;
    --soc-sans:  "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

    --soc-shell: 1180px;
    --soc-read:  720px;
    --soc-wide:  1040px;

    --soc-gap:      clamp(1.5rem, 1.1rem + 1.6vw, 2.6rem);
    --soc-section:  clamp(2.75rem, 2rem + 3vw, 4.75rem);
    --soc-radius:   10px;

    --soc-shadow:      0 1px 2px rgba(27, 27, 30, .05), 0 10px 30px -18px rgba(27, 27, 30, .35);
    --soc-shadow-lift: 0 4px 10px rgba(27, 27, 30, .07), 0 22px 44px -22px rgba(27, 27, 30, .42);

    --soc-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ============================================================
   Reset / base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    background: var(--soc-paper);
    color: var(--soc-ink-2);
    font-family: var(--soc-sans);
    font-size: 17px;
    line-height: 1.7;
    font-feature-settings: "kern" 1, "liga" 1;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--soc-teal); text-decoration: none; transition: color .18s var(--soc-ease); }
a:hover { color: var(--soc-teal-d); }

h1, h2, h3, h4 {
    font-family: var(--soc-serif);
    color: var(--soc-ink);
    line-height: 1.16;
    letter-spacing: -0.012em;
    margin: 0 0 .5em;
    font-weight: 600;
}

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

hr.soc-hairline {
    border: 0;
    height: 1px;
    background: var(--soc-line);
    margin: 1.2rem 0 1.6rem;
}

::selection { background: rgba(47, 111, 106, .18); }

/* Skip link */
.soc-skip {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--soc-ink);
    color: var(--soc-paper);
    padding: .7rem 1.1rem;
    border-radius: 0 0 var(--soc-radius) 0;
    z-index: 100;
    font-family: var(--soc-sans);
    font-weight: 600;
    font-size: .95rem;
}
.soc-skip:focus { left: 0; color: var(--soc-paper); }

:focus-visible {
    outline: 2px solid var(--soc-teal);
    outline-offset: 3px;
    border-radius: 3px;
}

/* ============================================================
   Layout shell
   ============================================================ */
.soc-shell {
    width: 100%;
    max-width: var(--soc-shell);
    margin-inline: auto;
    padding-inline: clamp(1.1rem, 0.6rem + 2.4vw, 2.4rem);
}
.soc-shell--wide { max-width: var(--soc-wide); }
.soc-shell--read { max-width: var(--soc-read); }

.soc-main { display: block; }

/* ============================================================
   Masthead + navigation
   ============================================================ */
.soc-masthead {
    background: var(--soc-paper);
    border-bottom: 1px solid var(--soc-line);
    position: sticky;
    top: 0;
    z-index: 40;
}

.soc-masthead__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(1rem, 3vw, 2.5rem);
    min-height: 72px;
    padding-block: .55rem;
}

.soc-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    color: var(--soc-ink);
    flex-shrink: 0;
}
.soc-brand:hover { color: var(--soc-ink); }

.soc-brand__mark {
    display: inline-flex;
    line-height: 0;
}
.soc-brand__mark svg { display: block; }

.soc-brand__name {
    font-family: var(--soc-serif);
    font-weight: 700;
    font-size: clamp(1.2rem, 1rem + 0.7vw, 1.55rem);
    letter-spacing: -0.015em;
    line-height: 1.05;
    color: var(--soc-ink);
    white-space: nowrap;
}

.soc-nav { min-width: 0; }

.soc-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: clamp(.85rem, 0.4rem + 1.2vw, 1.7rem);
    overflow-x: auto;
    scrollbar-width: none;
}
.soc-nav__list::-webkit-scrollbar { display: none; }

.soc-nav__item { flex: 0 0 auto; }

.soc-nav__link,
.soc-nav .soc-nav__list a {
    font-family: var(--soc-sans);
    font-weight: 500;
    font-size: .96rem;
    letter-spacing: .005em;
    color: var(--soc-ink-2);
    padding: .35rem 0;
    position: relative;
    white-space: nowrap;
}
.soc-nav__link::after,
.soc-nav .soc-nav__list a::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: .05rem;
    height: 2px;
    background: var(--soc-clay);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .22s var(--soc-ease);
}
.soc-nav__link:hover,
.soc-nav .soc-nav__list a:hover { color: var(--soc-ink); }
.soc-nav__link:hover::after,
.soc-nav .soc-nav__list a:hover::after,
.soc-nav .current-cat > a::after,
.soc-nav .current-menu-item > a::after { transform: scaleX(1); }
.soc-nav .current-cat > a,
.soc-nav .current-menu-item > a { color: var(--soc-ink); }

/* ============================================================
   Hero — single H1 + lead paragraph directly under it
   ============================================================ */
.soc-hero {
    background:
        radial-gradient(120% 140% at 88% -10%, rgba(47, 111, 106, .10), transparent 55%),
        radial-gradient(90% 120% at 6% 0%, rgba(192, 106, 77, .08), transparent 50%),
        var(--soc-paper);
    border-bottom: 1px solid var(--soc-line);
}
.soc-hero__inner {
    padding-block: clamp(2.6rem, 2rem + 3.5vw, 5rem);
    max-width: 900px;
}
.soc-hero__eyebrow {
    font-family: var(--soc-sans);
    text-transform: uppercase;
    letter-spacing: .22em;
    font-size: .74rem;
    font-weight: 600;
    color: var(--soc-teal);
    margin: 0 0 1rem;
}
.soc-hero__title {
    font-size: clamp(2.6rem, 1.5rem + 5vw, 5.1rem);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.02;
    margin: 0 0 1.1rem;
    color: var(--soc-ink);
}
.soc-hero__lead {
    font-family: var(--soc-serif);
    font-size: clamp(1.15rem, 1rem + 0.7vw, 1.5rem);
    line-height: 1.5;
    color: var(--soc-ink-2);
    max-width: 44ch;
    margin: 0;
    font-weight: 400;
}

/* ============================================================
   Kicker / category label
   ============================================================ */
.soc-kicker {
    display: inline-block;
    font-family: var(--soc-sans);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .13em;
    font-size: .72rem;
    color: var(--soc-clay);
    margin-bottom: .55rem;
}
.soc-kicker:hover { color: var(--soc-clay); text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================
   Featured lead story
   ============================================================ */
.soc-lead { padding-block: var(--soc-section) 0; }

.soc-lead__card {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: clamp(1.5rem, 1rem + 2.5vw, 3.2rem);
    align-items: center;
    background: var(--soc-white);
    border: 1px solid var(--soc-line);
    border-radius: var(--soc-radius);
    overflow: hidden;
    box-shadow: var(--soc-shadow);
}
.soc-lead__card.no-media { grid-template-columns: 1fr; }

.soc-lead__media {
    display: block;
    align-self: stretch;
    overflow: hidden;
    background: var(--soc-paper-2);
    min-height: 100%;
}
.soc-lead__media img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
    transition: transform .5s var(--soc-ease);
}
.soc-lead__card:hover .soc-lead__media img { transform: scale(1.03); }

.soc-lead__body {
    padding: clamp(1.6rem, 1rem + 2vw, 3rem) clamp(1.6rem, 1rem + 2vw, 2.6rem);
}
.soc-lead__card.no-media .soc-lead__body { padding-block: clamp(2.2rem, 1.5rem + 2vw, 3.4rem); }

.soc-lead__title {
    font-size: clamp(1.7rem, 1.2rem + 2vw, 2.7rem);
    line-height: 1.1;
    margin: 0 0 .7rem;
}
.soc-lead__title a { color: var(--soc-ink); }
.soc-lead__title a:hover { color: var(--soc-teal-d); }

.soc-lead__dek {
    font-family: var(--soc-serif);
    font-size: 1.12rem;
    line-height: 1.55;
    color: var(--soc-ink-2);
    margin: 0 0 1rem;
}
.soc-lead__meta {
    font-family: var(--soc-sans);
    font-size: .84rem;
    color: var(--soc-muted);
    margin: 0 0 1.3rem;
}
.soc-lead__more {
    display: inline-flex;
    align-items: center;
    font-family: var(--soc-sans);
    font-weight: 600;
    font-size: .95rem;
    color: var(--soc-teal);
    border-bottom: 2px solid transparent;
    padding-bottom: 2px;
    transition: border-color .18s var(--soc-ease), color .18s var(--soc-ease);
}
.soc-lead__more:hover { color: var(--soc-teal-d); border-color: var(--soc-clay); }

/* ============================================================
   Category sections + grids
   ============================================================ */
.soc-section { padding-block: var(--soc-section); }
.soc-section--archive { padding-top: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); }

.soc-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.soc-section__title {
    font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem);
    margin: 0;
    letter-spacing: -0.015em;
}
.soc-section__title a { color: var(--soc-ink); }
.soc-section__title a:hover { color: var(--soc-teal-d); }

.soc-section__all {
    font-family: var(--soc-sans);
    font-weight: 600;
    font-size: .9rem;
    color: var(--soc-teal);
    white-space: nowrap;
}
.soc-section__all:hover { color: var(--soc-teal-d); text-decoration: underline; text-underline-offset: 3px; }

.soc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--soc-gap);
}

/* ============================================================
   Article cards
   ============================================================ */
.soc-card {
    display: flex;
    flex-direction: column;
    background: var(--soc-white);
    border: 1px solid var(--soc-line);
    border-radius: var(--soc-radius);
    overflow: hidden;
    transition: transform .25s var(--soc-ease), box-shadow .25s var(--soc-ease), border-color .25s var(--soc-ease);
}
.soc-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--soc-shadow-lift);
    border-color: #cfc7b8;
}

.soc-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--soc-paper-2);
}
.soc-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--soc-ease);
}
.soc-card:hover .soc-card__media img { transform: scale(1.05); }

.soc-card__body {
    padding: 1.15rem 1.25rem 1.35rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    flex: 1 1 auto;
}
.soc-card__date {
    font-family: var(--soc-sans);
    font-size: .78rem;
    letter-spacing: .01em;
    color: var(--soc-muted);
    margin: 0;
    text-transform: none;
}
.soc-card__title {
    font-size: 1.22rem;
    line-height: 1.22;
    margin: .1rem 0 .1rem;
    letter-spacing: -0.01em;
}
.soc-card__title--arch { font-size: 1.3rem; }
.soc-card__title a { color: var(--soc-ink); }
.soc-card__title a:hover { color: var(--soc-teal-d); }

.soc-card__dek {
    font-family: var(--soc-sans);
    font-size: .94rem;
    line-height: 1.5;
    color: var(--soc-muted);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================================================
   Pagination
   ============================================================ */
.soc-pagination { margin-top: clamp(2rem, 1.5rem + 1.5vw, 3.2rem); }
.soc-pagination .page-numbers {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding: 0;
    margin: 0;
    justify-content: center;
}
.soc-pagination a.page-numbers,
.soc-pagination span.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 .8rem;
    font-family: var(--soc-sans);
    font-weight: 500;
    font-size: .95rem;
    color: var(--soc-ink-2);
    background: var(--soc-white);
    border: 1px solid var(--soc-line);
    border-radius: 8px;
    transition: background .18s var(--soc-ease), color .18s var(--soc-ease), border-color .18s var(--soc-ease);
}
.soc-pagination a.page-numbers:hover {
    border-color: var(--soc-teal);
    color: var(--soc-teal-d);
}
.soc-pagination span.current {
    background: var(--soc-ink);
    border-color: var(--soc-ink);
    color: var(--soc-paper);
}

.soc-empty {
    font-family: var(--soc-serif);
    font-size: 1.2rem;
    color: var(--soc-muted);
    padding-block: 2rem;
}

/* ============================================================
   Archive header
   ============================================================ */
.soc-archead {
    background:
        radial-gradient(120% 160% at 92% -20%, rgba(47, 111, 106, .09), transparent 55%),
        var(--soc-paper);
    border-bottom: 1px solid var(--soc-line);
    padding-block: clamp(2.4rem, 1.8rem + 3vw, 4.2rem) 0;
}
.soc-archead__eyebrow {
    font-family: var(--soc-sans);
    text-transform: uppercase;
    letter-spacing: .2em;
    font-size: .72rem;
    font-weight: 600;
    color: var(--soc-teal);
    margin: 0 0 .8rem;
}
.soc-archead__title {
    font-size: clamp(2.1rem, 1.4rem + 3vw, 3.6rem);
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 0 0 .8rem;
}
.soc-archead__desc {
    font-family: var(--soc-serif);
    font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.28rem);
    line-height: 1.55;
    color: var(--soc-ink-2);
    max-width: 62ch;
}
.soc-archead__desc p:last-child { margin-bottom: 1.4rem; }

/* ============================================================
   Single article
   ============================================================ */
.soc-article { padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); }

.soc-article__head {
    padding-block: clamp(2.4rem, 1.8rem + 3vw, 4rem) clamp(1.4rem, 1rem + 1.5vw, 2.2rem);
}
.soc-article__headwrap { max-width: var(--soc-read); }

.soc-article__title {
    font-size: clamp(2.05rem, 1.3rem + 3.4vw, 3.5rem);
    letter-spacing: -0.022em;
    line-height: 1.07;
    margin: 0 0 1rem;
}

.soc-article__standfirst {
    font-family: var(--soc-serif);
    font-size: clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
    line-height: 1.5;
    color: var(--soc-ink-2);
    margin: 0 0 1.3rem;
}

.soc-byline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .7rem;
    font-family: var(--soc-sans);
    font-size: .9rem;
    color: var(--soc-muted);
    padding-top: .4rem;
    border-top: 1px solid var(--soc-line);
    margin-top: 1.3rem;
}
.soc-byline__author { font-weight: 600; color: var(--soc-ink-2); }
.soc-byline__sep {
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--soc-clay);
    display: inline-block;
}

.soc-article__hero {
    margin: 0 0 clamp(1.6rem, 1.2rem + 2vw, 3rem);
}
.soc-article__hero img {
    width: 100%;
    border-radius: var(--soc-radius);
    border: 1px solid var(--soc-line);
}

/* ---- Prose / reading typography ---- */
.soc-prose {
    font-size: 1.14rem;
    line-height: 1.78;
    color: var(--soc-ink-2);
}
.soc-prose > * + * { margin-top: 1.3em; }

.soc-prose h2 {
    font-size: clamp(1.5rem, 1.2rem + 1vw, 1.95rem);
    margin-top: 2em;
    letter-spacing: -0.015em;
}
.soc-prose h3 {
    font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
    margin-top: 1.7em;
}
.soc-prose h4 { font-size: 1.15rem; margin-top: 1.5em; }

.soc-prose p { margin: 0; }

.soc-prose a {
    color: var(--soc-teal-d);
    text-decoration: underline;
    text-decoration-color: rgba(47, 111, 106, .4);
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}
.soc-prose a:hover { text-decoration-color: var(--soc-clay); }

.soc-prose img,
.soc-prose figure {
    border-radius: var(--soc-radius);
    margin-inline: auto;
}
.soc-prose figure { margin-block: 1.6em; }
.soc-prose figure img { border: 1px solid var(--soc-line); }
.soc-prose figcaption {
    font-family: var(--soc-sans);
    font-size: .85rem;
    color: var(--soc-muted);
    text-align: center;
    margin-top: .6rem;
}

.soc-prose blockquote {
    margin: 1.8em 0;
    padding: .3em 0 .3em 1.5rem;
    border-left: 3px solid var(--soc-teal);
    font-family: var(--soc-serif);
    font-size: 1.28rem;
    line-height: 1.5;
    font-style: italic;
    color: var(--soc-ink);
}
.soc-prose blockquote cite {
    display: block;
    margin-top: .6rem;
    font-family: var(--soc-sans);
    font-style: normal;
    font-size: .9rem;
    color: var(--soc-muted);
}

.soc-prose ul,
.soc-prose ol { margin: 0; padding-left: 1.4rem; }
.soc-prose li { margin-bottom: .5em; }
.soc-prose li::marker { color: var(--soc-teal); }

.soc-prose hr {
    border: 0;
    height: 1px;
    background: var(--soc-line);
    margin: 2.2em 0;
}

.soc-prose code {
    font-family: ui-monospace, "SF Mono", "Cascadia Code", Menlo, monospace;
    font-size: .9em;
    background: var(--soc-paper-2);
    padding: .12em .4em;
    border-radius: 4px;
}
.soc-prose pre {
    background: var(--soc-ink);
    color: var(--soc-paper);
    padding: 1.2rem 1.3rem;
    border-radius: var(--soc-radius);
    overflow-x: auto;
}
.soc-prose pre code { background: transparent; padding: 0; color: inherit; }

.soc-prose table {
    width: 100%;
    border-collapse: collapse;
    font-size: .98rem;
    margin-block: 1.6em;
}
.soc-prose th, .soc-prose td {
    text-align: left;
    padding: .65rem .8rem;
    border-bottom: 1px solid var(--soc-line);
}
.soc-prose th {
    font-family: var(--soc-sans);
    font-weight: 600;
    color: var(--soc-ink);
}

.soc-pagelinks {
    margin-top: 2rem;
    font-family: var(--soc-sans);
    font-size: .95rem;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    align-items: center;
}
.soc-pagelinks a,
.soc-pagelinks > span span {
    display: inline-flex;
    min-width: 34px;
    justify-content: center;
    padding: .25rem .6rem;
    border: 1px solid var(--soc-line);
    border-radius: 6px;
}

/* ---- Tags ---- */
.soc-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 2.4rem;
    padding-top: 1.6rem;
    border-top: 1px solid var(--soc-line);
}
.soc-tag {
    font-family: var(--soc-sans);
    font-size: .85rem;
    font-weight: 500;
    color: var(--soc-ink-2);
    background: var(--soc-paper-2);
    padding: .3rem .75rem;
    border-radius: 999px;
    transition: background .18s var(--soc-ease), color .18s var(--soc-ease);
}
.soc-tag:hover { background: var(--soc-teal); color: var(--soc-paper); }

/* ============================================================
   Related posts
   ============================================================ */
.soc-related {
    background: var(--soc-paper-2);
    border-top: 1px solid var(--soc-line);
    padding-block: var(--soc-section);
    margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
}
.soc-related .soc-card { background: var(--soc-white); }

/* ============================================================
   Shared widget-title (non-heading section labels)
   ============================================================ */
.widget-title {
    font-family: var(--soc-serif);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--soc-ink);
    letter-spacing: -0.01em;
    margin: 0 0 .3rem;
}

/* ============================================================
   Footer
   ============================================================ */
.soc-footer {
    background: var(--soc-ink);
    color: var(--soc-paper);
    margin-top: clamp(3rem, 2rem + 3vw, 5rem);
}
.soc-footer__inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: clamp(1.8rem, 1.2rem + 3vw, 4rem);
    padding-block: clamp(2.6rem, 2rem + 2.5vw, 4rem);
}

.soc-footer__brand {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: var(--soc-paper);
    margin-bottom: 1rem;
}
.soc-footer__brand:hover { color: var(--soc-paper); }
.soc-footer__name {
    font-family: var(--soc-serif);
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: -0.015em;
}
.soc-footer__blurb {
    font-family: var(--soc-sans);
    font-size: .98rem;
    line-height: 1.65;
    color: rgba(247, 244, 239, .72);
    max-width: 46ch;
    margin: 0;
}

.soc-footer__nav .widget-title {
    color: var(--soc-paper);
    font-size: 1.1rem;
    margin-bottom: 1rem;
}
.soc-foot__cats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .55rem 1.4rem;
}
.soc-foot__cats a {
    font-family: var(--soc-sans);
    font-size: .95rem;
    color: rgba(247, 244, 239, .78);
    transition: color .18s var(--soc-ease);
}
.soc-foot__cats a:hover { color: var(--soc-clay); }

.soc-footer__base {
    border-top: 1px solid rgba(247, 244, 239, .13);
    padding-block: 1.3rem;
}
.soc-footer__copy {
    font-family: var(--soc-sans);
    font-size: .87rem;
    color: rgba(247, 244, 239, .6);
    margin: 0;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 960px) {
    .soc-grid { grid-template-columns: repeat(2, 1fr); }
    .soc-lead__card { grid-template-columns: 1fr; }
    .soc-lead__media img { min-height: 260px; }
    .soc-footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    body { font-size: 16px; }
    .soc-masthead__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: .6rem;
        padding-block: .8rem;
    }
    .soc-nav__list { width: 100%; }
    .soc-grid { grid-template-columns: 1fr; }
    .soc-foot__cats { grid-template-columns: 1fr; }
    .soc-prose { font-size: 1.06rem; }
}

/* ============================================================
   Motion / accessibility
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .soc-card:hover { transform: none; }
    .soc-card:hover .soc-card__media img,
    .soc-lead__card:hover .soc-lead__media img { transform: none; }
}

/* WordPress core alignment + caption helpers */
.alignleft  { float: left;  margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text {
    font-family: var(--soc-sans);
    font-size: .85rem;
    color: var(--soc-muted);
    text-align: center;
    margin-top: .5rem;
}
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px; width: 1px;
    overflow: hidden;
    position: absolute !important;
    word-wrap: normal !important;
}
.sticky, .gallery-caption, .bypostauthor { display: block; }