/* ===== 山村プレス ===== */

:root {
    --press-charcoal: #2c2c2c;
    --press-forest: #5c7a4e;
    --press-forest-deep: #455e3b;
    --press-bg: #f8f5f0;
    --press-surface: #ffffff;
    --press-border: #e8e2d9;
    --press-terracotta: #c4956a;
    --press-terracotta-hover: #a8794f;
    --press-ink: #5b574f;
    --press-faint: #8a8479;
    --press-maxw: 1180px;
    --press-read: 700px;
    --press-serif-jp: "Noto Serif JP", "Yu Mincho", "游明朝体", serif;
    --press-sans-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ", sans-serif;
    --press-serif-lat: "Cormorant Garamond", "Playfair Display", Georgia, serif;
}

body.post-type-archive-press,
body.tax-press_category,
body.single-press {
    background: var(--press-bg);
    color: var(--press-charcoal);
    font-family: var(--wp--preset--font-family--noto-sans-jp, sans-serif);
    line-height: 1.85;
}

body.post-type-archive-press .site-header,
body.tax-press_category .site-header,
body.single-press .site-header {
    background: rgba(248, 245, 240, 0.86);
    background: color-mix(in srgb, var(--press-bg) 86%, transparent);
    -webkit-backdrop-filter: saturate(140%) blur(10px);
    backdrop-filter: saturate(140%) blur(10px);
    border-bottom: 1px solid var(--press-border);
    box-shadow: none;
}

body.post-type-archive-press .site-header__inner,
body.tax-press_category .site-header__inner,
body.single-press .site-header__inner {
    min-height: 74px;
    padding-block: 0.75rem;
}

body.post-type-archive-press .site-header__logo img,
body.tax-press_category .site-header__logo img,
body.single-press .site-header__logo img {
    height: 30px;
    width: auto;
}

body.post-type-archive-press .site-header__nav--pc,
body.tax-press_category .site-header__nav--pc,
body.single-press .site-header__nav--pc {
    display: none !important;
}

body.post-type-archive-press .site-header__nav--sp,
body.tax-press_category .site-header__nav--sp,
body.single-press .site-header__nav--sp {
    display: none !important;
}

body.post-type-archive-press .site-header__inner,
body.tax-press_category .site-header__inner,
body.single-press .site-header__inner {
    justify-content: space-between;
}

.press-page {
    position: relative;
}

.press-page::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0.5;
    mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
    z-index: 0;
}

.press-page > * {
    position: relative;
    z-index: 1;
}

.press-header,
.press-footer,
.press-archive-hero,
.press-archive-featured,
.press-archive-latest,
.press-archive-categories,
.press-archive-about,
.press-single-hero,
.press-related {
    width: 100%;
}

.press-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(248, 245, 240, 0.86);
    background: color-mix(in srgb, var(--press-bg) 86%, transparent);
    -webkit-backdrop-filter: saturate(140%) blur(10px);
    backdrop-filter: saturate(140%) blur(10px);
    border-bottom: 1px solid var(--press-border);
}

.press-main--archive {
    margin-top: 0;
    margin-bottom: var(--wp--preset--spacing--80);
    padding-top: 0;
}

.press-main--single {
    margin-top: 0;
    margin-bottom: var(--wp--preset--spacing--80);
    padding-top: 0;
}

.press-header__inner,
.press-footer__inner,
.press-archive-hero__inner,
.press-single-hero__inner,
.press-archive-section,
.press-single__content-inner,
.press-related__inner {
    max-width: var(--press-maxw);
    margin-inline: auto;
    padding-inline: clamp(18px, 5vw, 40px);
}

.press-header__inner {
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 28px;
}

.press-logo {
    display: flex;
    align-items: baseline;
    gap: 10px;
    color: var(--press-charcoal);
    text-decoration: none;
    line-height: 1;
}

.press-logo__mark {
    font-family: var(--press-serif-jp);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.press-logo__sub {
    /* font-family: var(--wp--preset--font-family--lato, serif); */
    font-family: var(--press-serif-lat);
    font-style: italic;
    font-size: 0.95rem;
    letter-spacing: 0.1em;
    color: var(--press-faint);
}

.press-nav {
    display: flex;
    gap: 26px;
    margin-left: auto;
    align-items: center;
}

.press-nav a {
    position: relative;
    padding: 4px 0;
    color: var(--press-ink);
    font-size: 0.86rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: color 0.25s ease;
}

.press-nav a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 1px;
    background: var(--press-forest);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.press-nav a:hover {
    color: var(--press-forest);
}

.press-nav a:hover::after {
    transform: scaleX(1);
}

.press-nav__corp {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-faint) !important;
    border-left: 1px solid var(--press-border);
    padding-left: 24px;
}

.press-burger {
    display: none;
    background: none;
    border: 0;
    padding: 6px;
}

.press-burger span {
    display: block;
    width: 24px;
    height: 1.5px;
    background: var(--press-charcoal);
    margin: 5px 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.press-mobile-nav {
    display: none;
    border-top: 1px solid var(--press-border);
    background: color-mix(in srgb, var(--press-bg) 94%, white);
}

.press-mobile-nav.is-open {
    display: block;
}

.press-mobile-nav__menu {
    display: grid;
    gap: 14px;
    padding: 20px clamp(18px, 5vw, 40px);
}

.press-mobile-nav__menu a {
    color: var(--press-charcoal);
    text-decoration: none;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
}

.press-mobile-nav__corp {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-faint) !important;
}

.press-ext-mark {
    margin-left: 0.28em;
    font-family: var(--press-serif-sans, sans-serif);
    font-style: normal;
    font-weight: 500;
    line-height: 1;
}

.sp-eyebrow {
    display: inline-block;
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    font-size: 1.05rem;
    letter-spacing: 0.06em;
    color: #f6f2ec;
}

.sp-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--press-terracotta);
    color: #ffffff;
    padding: 13px 26px;
    border-radius: 2px;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: background 0.25s ease, transform 0.25s ease;
}

.sp-btn:hover {
    background: var(--press-terracotta-hover);
    transform: translateY(-1px);
}

.sp-btn--ghost {
    background: transparent;
    color: var(--press-charcoal);
    border: 1px solid var(--press-charcoal);
}

.sp-btn--ghost:hover {
    background: var(--press-charcoal);
    color: #ffffff;
}

.sp-rise {
    opacity: 0;
    transform: translateY(16px);
    animation: pressRise 0.9s ease forwards;
}

@keyframes pressRise {
    to {
        opacity: 1;
        transform: none;
    }
}

.sp-ph {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #ded7cb, #cbc3b4);
    display: flex;
    align-items: flex-end;
}

.sp-ph::after {
    content: attr(data-label);
    position: absolute;
    left: 14px;
    bottom: 12px;
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: 0.03em;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
    max-width: 80%;
}

.sp-ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-hero {
    padding: 0;
}

.top-hero__media {
    position: relative;
    /* min-height: clamp(460px, 78vh, 800px); */
    overflow: hidden;
    background: #b8ab97;
}

.top-hero__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        255deg,
        rgba(20, 22, 16, 0.06) 0%,
        rgba(20, 22, 16, 0.18) 38%,
        rgba(20, 22, 16, 0.58) 66%,
        rgba(20, 22, 16, 0.72) 100%
    );
    pointer-events:none;
    z-index: 1;
}

.top-hero__media > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

.top-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: clamp(24px, 5vw, 56px);
}

.top-hero__lead {
    max-width: min(64ch, 55%);
    color: #ffffff;
}

.top-hero__title {
    margin-top: 18px;
    font-family: var(--press-serif-jp);
    font-size: clamp(2rem, 4.4vw, 3.45rem);
    line-height: 1.36;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.top-hero__title .l {
    display: block;
}

.top-hero__title .accent {
    color: #e6f0df;
}

.top-hero__copy {
    margin-top: 20px;
    font-size: 0.98rem;
    line-height: 2;
    color: rgba(255, 255, 255, 0.92);
    max-width: 64ch;
}

.top-hero__meta {
    margin-top: 26px;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.top-hero .sp-btn {
    background: var(--press-forest);
}

.top-hero .sp-btn:hover {
    background: var(--press-forest-deep);
}

.top-hero__sig {
    color: rgba(255, 255, 255, 0.86);
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    font-size: 1rem;
}

.top-hero__stamp {
    margin-top: 22px;
    max-width: 40ch;
    background: rgba(248, 245, 240, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 4px;
    padding: 16px 18px;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

.top-hero__stamp b {
    display: block;
    font-family: var(--press-serif-jp);
    font-size: 1rem;
    line-height: 1.7;
}

.top-hero__stamp span {
    display: block;
    margin-top: 8px;
    font-size: 0.8rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.9);
}

.press-hero {
    padding-block: clamp(56px, 8vw, 104px) clamp(40px, 6vw, 72px);
}

.press-hero__grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(34px, 5vw, 72px);
    align-items: center;
}

.press-eyebrow {
    display: block;
    margin-bottom: 18px;
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    font-size: 1.05rem;
    letter-spacing: 0.06em;
    color: var(--press-forest);
}

.press-title {
    font-family: var(--press-serif-jp);
    font-size: clamp(2rem, 4.4vw, 3.5rem);
    line-height: 1.3;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.press-title .is-accent {
    color: var(--press-forest);
}

.press-lead {
    margin-top: 26px;
    color: var(--press-ink);
    font-size: 1rem;
    line-height: 2;
}

.press-hero__meta {
    margin-top: 30px;
    display: flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
}

.press-hero__sig {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-faint);
    font-size: 1.05rem;
}

.press-hero__visual {
    position: relative;
}

.press-hero__visual .sp-ph,
.press-article-hero .sp-ph {
    aspect-ratio: 4 / 5;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(44, 44, 44, 0.04), 0 8px 28px -18px rgba(44, 44, 44, 0.22);
    overflow: hidden;
}

.press-hero__stamp {
    position: absolute;
    left: -26px;
    bottom: -22px;
    background: var(--press-surface);
    border: 1px solid var(--press-border);
    border-radius: 4px;
    padding: 16px 20px;
    box-shadow: 0 1px 2px rgba(44, 44, 44, 0.04), 0 8px 28px -18px rgba(44, 44, 44, 0.22);
    max-width: 230px;
}

.press-hero__stamp b {
    display: block;
    font-family: var(--press-serif-jp);
    font-size: 1.05rem;
}

.press-hero__stamp span {
    font-size: 0.76rem;
    color: var(--press-faint);
    letter-spacing: 0.04em;
}

.press-section {
    margin-top: clamp(56px, 8vw, 96px);
}

.press-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--press-border);
    padding-bottom: 16px;
    flex-wrap: wrap;
}

.press-section__t {
    display: flex;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
}

.press-section__jp {
    font-family: var(--press-serif-jp);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.05em;
}

.press-section__en {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-forest);
    font-size: 1.4rem;
}

.press-section__more {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    color: var(--press-ink);
    text-decoration: none;
    white-space: nowrap;
}

.press-section__date{ 
    font-family:var(--press-serif-lat);
    font-style:italic; 
    color:var(--sp-ink-faint);
    font-size:.95rem; letter-spacing:.05em; white-space:nowrap; }


.press-section__more:hover {
    color: var(--press-forest);
}

.press-featured__grid {
    display: grid;
    grid-template-columns: 0.94fr 1.06fr;
    gap: clamp(40px, 4.8vw, 76px);
    align-items: center;
}

.press-featured__folio {
    display: flex;
    align-items: flex-start;
    gap: 18px;
}

.press-featured__no {
    font-family: var(--press-serif-lat, serif);
    font-weight: 500;
    font-style: italic;
    font-size: clamp(3.4rem, 5.6vw, 5rem);
    line-height: 0.78;
    color: var(--press-forest);
}

.press-featured__lab {
    padding-top: 8px;
}

.press-featured__lab b,
.press-featured__lab i {
    display: block;
}

.press-featured__lab b {
    font-family: var(--press-serif-jp);
    font-weight: 600;
    font-size: 0.96rem;
    letter-spacing: 0.06em;
}

.press-featured__lab i {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-faint);
    font-size: 0.9rem;
    letter-spacing: 0.04em;
    margin-top: 5px;
}

.press-featured__cat {
    margin-top: 30px;
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--press-forest);
    font-weight: 500;
}

.press-featured__cat b {
    color: var(--press-faint);
    font-weight: 400;
}

.press-featured__title,
.press-article__title {
    margin-top: 16px;
    font-family: var(--press-serif-jp);
    font-size: clamp(1.66rem, 2.45vw, 2.3rem);
    line-height: 1.52;
    letter-spacing: 0.02em;
    color: var(--press-charcoal);
    overflow-wrap: anywhere;
}

.press-featured__excerpt {
    margin-top: 22px;
    max-width: 64ch;
    color: var(--press-ink);
    font-size: 0.95rem;
    line-height: 2.05;
}

.press-featured__foot {
    margin-top: 32px;
    padding-top: 20px;
    border-top: 1px solid var(--press-border);
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.press-featured__avatar,
.press-author__avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    flex: none;
    display: grid;
    place-items: center;
    font-family: var(--press-serif-jp);
    font-size: 0.88rem;
    color: #ffffff;
    font-weight: 600;
    background: linear-gradient(135deg, #6e8a5f, #4d6840);
}

.press-featured__byline {
    font-size: 0.8rem;
    color: var(--press-faint);
    letter-spacing: 0.03em;
    line-height: 1.5;
}

.press-featured__byline b,
.press-author__name {
    color: var(--press-charcoal);
    font-weight: 500;
}

.press-featured__byline time,
.press-article__date,
.press-card__date,
.press-article__meta time {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
}

.press-featured__more {
    /* margin-left: auto; */
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    color: var(--press-terracotta);
    text-decoration: none;
    white-space: nowrap;
}

.press-featured__more:hover {
    color: var(--press-terracotta-hover);
}

.press-archive-list__grid,
.press-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.4vw, 34px);
}

.press-card {
    background: var(--press-surface);
    border: 1px solid var(--press-border);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.press-card:hover {
    box-shadow: 0 2px 6px rgba(44, 44, 44, 0.06), 0 22px 48px -26px rgba(44, 44, 44, 0.3);
    transform: translateY(-4px);
}

.press-card__link {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 100%;
    text-decoration: none;
}

.press-card__media {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.press-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.5s ease;
}

.press-card:hover .press-card__image {
    transform: scale(1.04);
}

.press-card__image--placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #ded7cb, #cbc3b4);
}

.press-card__body {
    padding: 20px 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
}

.press-card__date {
    margin-left: auto;
    margin-bottom: 0;
    font-size: 0.8rem;
    color: var(--press-faint);
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.press-card__terms,
.press-article__terms {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.press-card__term,
.press-term-nav__item,
.press-article__term {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.95rem;
    border: 0;
    border-radius: 3px;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    line-height: 1.4;
    text-decoration: none;
    color: #ffffff;
    background: var(--press-forest);
}

.press-term-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 0.5rem;
}

.press-term-nav__item {
    min-height: 40px;
    padding: 0.25rem 1rem;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.press-term-nav__item:hover,
.press-term-nav__item.is-current {
    border-color: var(--press-forest);
    background: var(--press-forest);
    color: var(--press-surface);
}

.press-card__title {
    font-family: var(--press-serif-jp);
    font-size: clamp(1.05rem, 0.6vw + 0.95rem, 1.15rem);
    line-height: 1.62;
    letter-spacing: 0.01em;
    color: var(--press-charcoal);
}

.press-card__excerpt {
    line-height: 1.85;
    color: var(--press-ink);
    font-size: 1rem;
}

.press-card__foot {
    margin-top: auto;
    padding-top: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
}

.press-pagination {
    margin-top: clamp(2rem, 4vw, 3rem);
}

.press-pagination .page-numbers {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.press-pagination .page-numbers a,
.press-pagination .page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    min-height: 2.5rem;
    padding: 0 0.75rem;
    border: 1px solid var(--press-border);
    border-radius: 999px;
    text-decoration: none;
    background: var(--press-surface);
}

.press-pagination .page-numbers .current {
    border-color: var(--press-forest);
    background: var(--press-forest);
    color: var(--press-surface);
}

.press-category-band {
    margin-top: clamp(64px, 9vw, 108px);
}

.press-category-band__inner {
    background: var(--press-surface);
    border: 1px solid var(--press-border);
    border-radius: 4px;
    padding: clamp(30px, 4vw, 52px);
}

.press-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: var(--press-border);
}

.press-category-card {
    background: var(--press-surface);
    padding: 30px 26px;
    display: flex;
    flex-direction: column;
    min-height: 188px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.press-category-card:hover {
    background: #fbfaf7;
}

.press-category-card__num {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-terracotta);
    font-size: 0.95rem;
}

.press-category-card__jp {
    font-family: var(--press-serif-jp);
    font-weight: 600;
    font-size: 1.22rem;
    margin-top: 10px;
    letter-spacing: 0.04em;
}

.press-category-card__en {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-forest);
    font-size: 0.95rem;
    margin-top: 3px;
}

.press-category-card__desc {
    font-size: 0.8rem;
    color: var(--press-ink);
    line-height: 1.8;
    margin-top: 14px;
}

.press-category-card__arrow {
    margin-top: auto;
    padding-top: 14px;
    font-size: 0.78rem;
    color: var(--press-forest);
    letter-spacing: 0.06em;
}

.press-about {
    margin-top: clamp(60px, 9vw, 104px);
    scroll-margin-top: 96px;
}

.press-about__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: clamp(24px, 3vw, 38px);
    flex-wrap: wrap;
}

.press-about__title {
    font-family: var(--press-serif-jp);
    font-weight: 600;
    font-size: clamp(1.9rem, 3.6vw, 2.7rem);
    letter-spacing: 0.08em;
    line-height: 1.3;
}

.press-about__card {
    background: var(--press-surface);
    border: 1px solid var(--press-border);
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(44, 44, 44, 0.04), 0 8px 28px -18px rgba(44, 44, 44, 0.22);
    padding: clamp(28px, 3.6vw, 52px);
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: clamp(34px, 4vw, 64px);
}

.press-about__body > p {
    font-size: 0.98rem;
    line-height: 2.1;
    color: #3a362f;
}

.press-about__body > p + p {
    margin-top: 1.5em;
}

.press-about__claim {
    margin-top: 1.8em;
    padding-top: 1.5em;
    border-top: 1px solid var(--press-border);
}

.press-about__claim b,
.press-article__author-name {
    display: block;
    font-family: var(--press-serif-jp);
    font-weight: 600;
    color: var(--press-charcoal);
    font-size: 1rem;
    letter-spacing: 0.02em;
    line-height: 1.85;
}

.press-about__claim span,
.press-article__author-role {
    display: block;
    margin-top: 8px;
    color: var(--press-faint);
    font-size: 0.86rem;
    line-height: 1.8;
}

.press-about__aside {
    border-left: 1px solid var(--press-border);
    padding-left: clamp(28px, 3.4vw, 52px);
    display: flex;
    flex-direction: column;
}

.press-about__aside-media {
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(44, 44, 44, 0.04), 0 8px 28px -18px rgba(44, 44, 44, 0.22);
    margin-bottom: clamp(18px, 2.4vw, 28px);
}

.press-about__aside-media img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.press-about__aside-title {
    font-family: var(--press-serif-jp);
    font-weight: 500;
    font-size: clamp(1.35rem, 2.2vw, 1.78rem);
    line-height: 1.62;
    letter-spacing: 0.04em;
    color: var(--press-charcoal);
}

.press-about__roles {
    list-style: none;
    margin: clamp(20px, 2.4vw, 30px) 0 0;
    padding: 0;
    display: grid;
    gap: 14px;
}

.press-about__roles li {
    padding: 18px 0;
    border-top: 1px solid var(--press-border);
    font-size: 0.92rem;
    color: var(--press-ink);
    letter-spacing: 0.02em;
    line-height: 1.7;
}

.press-about__roles li i {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: var(--press-forest);
    font-size: 1.08rem;
    margin-right: 2px;
    letter-spacing: 0.03em;
}

.press-footer {
    background: var(--press-charcoal);
    color: #cfc9bf;
    margin-top: 90px;
    padding: 64px 0 38px;
}

.press-footer a {
    color: #cfc9bf;
    transition: color 0.25s ease;
    text-decoration: none;
}

.press-footer a:hover {
    color: var(--press-terracotta);
}

.press-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 48px;
}

.press-footer__mark {
    font-family: var(--press-serif-jp);
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: 0.16em;
    color: #ffffff;
}

.press-footer__tag {
    font-family: var(--press-serif-lat, serif);
    font-style: italic;
    color: #8f897e;
    margin-top: 6px;
}

.press-footer__lead {
    margin-top: 18px;
    font-size: 0.86rem;
    line-height: 1.9;
    color: #a39d92;
    max-width: 34ch;
}

.press-footer h4 {
    font-family: var(--wp--preset--font-family--noto-sans-jp, sans-serif);
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.16em;
    color: #ffffff;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.press-footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 11px;
    font-size: 0.86rem;
}

.press-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    margin-top: 46px;
    padding-top: 22px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 0.74rem;
    color: #807a6f;
    letter-spacing: 0.04em;
}

.press-archive-hero,
.press-single-hero {
    padding-block: clamp(40px, 6vw, 72px) 0;
}

.press-archive-hero__inner,
.press-single-hero__inner {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2vw, 1.75rem);
}

.press-archive-hero__description,
.press-single-article__lead {
    max-width: 42rem;
    font-size: 1rem;
    line-height: 2;
    color: var(--press-ink);
}

.press-article {
    margin-top: clamp(26px, 3vw, 38px);
}

.press-article__head {
    padding: 26px 0 8px;
}

.press-article__inner {
    max-width: var(--press-read);
    margin-inline: auto;
}

.press-article__meta {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--press-border);
    flex-wrap: wrap;
}

.press-article__avatar,
.press-author__avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    flex: none;
    display: grid;
    place-items: center;
    color: #ffffff;
    font-weight: 700;
    background: linear-gradient(135deg, #d8d0c2, #bdb4a3);
}

.press-article__who {
    font-size: 0.92rem;
}

.press-article__who span {
    display: block;
    font-size: 0.76rem;
    color: var(--press-faint);
    margin-top: 2px;
    letter-spacing: 0.03em;
}

.press-article__date {
    margin-left: auto;
    font-size: 0.95rem;
    color: var(--press-faint);
}

.press-article__share {
    display: flex;
    gap: 8px;
    margin-left: 14px;
}

.press-article__share a {
    width: 34px;
    height: 34px;
    border: 1px solid var(--press-border);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.72rem;
    color: var(--press-ink);
    text-decoration: none;
    transition: 0.25s ease;
    background: var(--press-surface);
}

.press-article__share a:hover {
    background: var(--press-forest);
    color: #ffffff;
    border-color: var(--press-forest);
}

.press-article-hero,
.press-article__figure,
.press-article__body,
.press-author,
.press-related {
    max-width: var(--press-read);
    margin-inline: auto;
}

.press-article-hero {
    margin: 38px auto 0;
}

body.single-press .press-article-hero.press-archive-section {
    max-width: var(--press-maxw);
}

body.single-press .press-article-hero__caption {
    max-width: var(--press-read);
    margin-inline: auto;
}

@media (min-width: 1200px) {
    body.single-press .press-article-hero.press-archive-section {
        margin-left: 0;
        margin-right: auto;
    }
}

.press-article-hero .sp-ph {
    aspect-ratio: 16 / 10;
}

.press-article-hero__caption,
.press-article__figure figcaption {
    margin-top: 12px;
    font-size: 0.78rem;
    color: var(--press-faint);
    line-height: 1.8;
}

.press-article__body {
    margin-top: 48px;
}

.press-article__body > * + * {
    margin-top: 1.7em;
}

.press-article__body p,
.press-article__body li,
.press-article__body blockquote {
    font-size: 1.02rem;
    line-height: 2.15;
    color: #3a362f;
    letter-spacing: 0.012em;
}

.press-article__body h2 {
    font-family: var(--press-serif-jp);
    font-size: clamp(1.3rem, 2.6vw, 1.7rem);
    line-height: 1.6;
    margin-top: 2.4em;
    padding-bottom: 0.5em;
    letter-spacing: 0.04em;
    position: relative;
    color: var(--press-charcoal);
}

.press-article__body h2::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 46px;
    height: 2px;
    background: var(--press-forest);
}

.press-article__body h3 {
    font-size: 1.12rem;
    color: var(--press-forest-deep);
    margin-top: 2em;
    font-family: var(--press-serif-jp);
}

.press-article__body a {
    color: var(--press-forest);
    text-decoration: none;
}

.press-article__body a:hover {
    color: var(--press-forest-deep);
}

.press-article__body blockquote {
    border-left: 3px solid var(--press-forest);
    padding: 6px 0 6px 26px;
    margin: 2.4em 0;
    font-family: var(--press-serif-jp);
    font-weight: 500;
    font-size: 1.22rem;
    line-height: 1.9;
    letter-spacing: 0.03em;
}

.press-article__body figure {
    margin: 2.6em 0;
}

.press-article__body figure img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
}

.press-article__body figcaption {
    margin-top: 10px;
    font-size: 0.78rem;
    color: var(--press-faint);
    line-height: 1.8;
}

.press-article__body ul,
.press-article__body ol {
    padding-left: 1.35em;
}

.press-article__body li + li {
    margin-top: 0.55em;
}

.press-article__body .wp-block-table,
.press-article__body table {
    width: 100%;
    border-collapse: collapse;
}

.press-article__body table th,
.press-article__body table td {
    border: 1px solid var(--press-border);
    padding: 0.75rem 0.9rem;
}

.press-author {
    margin-top: 54px;
    background: var(--press-surface);
    border: 1px solid var(--press-border);
    border-radius: 4px;
    padding: 30px;
    display: flex;
    gap: 22px;
    align-items: flex-start;
}

.press-author__bio {
    margin-top: 12px;
    font-size: 0.86rem;
    line-height: 1.9;
    color: var(--press-ink);
}

.press-related {
    margin-top: 80px;
}

body.single-press .press-related.press-archive-section {
    max-width: var(--press-maxw);
}

.press-related__grid {
    margin-top: 28px;
}

.press-single__content-wrap {
    margin-top: clamp(2rem, 4vw, 4rem);
}

.press-single__content-wrap .wp-block-post-content {
    max-width: 100%;
}

.press-article__back,
.press-article__back .wp-block-group-vk-link {
    position: relative;
}

.press-article__back {
    margin-top: 1.5rem;
}

.press-article__back-label {
    font-family: var(--wp--preset--font-family--noto-sans-jp, sans-serif);
    font-weight: 500;
}

.press-article__back .wp-block-group-vk-link {
    position: absolute;
    inset: 0;
}

@media (max-width: 980px) {
    .press-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .press-featured__grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .press-featured__media {
        order: -1;
    }
}

@media (max-width: 860px) {
    .press-header__inner {
        gap: 16px;
    }

    .press-nav {
        display: none;
    }

    .press-burger {
        display: block;
        margin-left: auto;
    }

    .press-archive-list__grid,
    .press-related__grid {
        grid-template-columns: 1fr;
    }

    .top-hero__media {
        min-height: 0;
        aspect-ratio: 4 / 5;
    }

    .top-hero__overlay {
        justify-content: flex-start;
        align-items: flex-end;
        padding: clamp(18px, 5vw, 26px);
    }

    .top-hero__lead {
        max-width: 100%;
    }

    .top-hero__title {
        font-size: clamp(1.58rem, 7vw, 2.15rem);
    }

    .top-hero__copy {
        max-width: none;
    }

    .press-hero__grid {
        grid-template-columns: 1fr;
    }

    .press-hero__visual {
        order: -1;
    }

    .press-hero__stamp {
        left: auto;
        right: 8px;
    }

    .press-about__card {
        grid-template-columns: 1fr;
    }

    .press-about__aside {
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid var(--press-border);
        padding-top: 24px;
    }

    .press-article__date {
        width: 100%;
        margin: 8px 0 0;
        order: 5;
    }

    .press-footer__grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }
}

@media (max-width: 720px) {
    .press-category-grid {
        grid-template-columns: 1fr;
    }

    .press-article__body .alignleft,
    .press-article__body .alignright {
        float: none;
        margin: 0 0 1rem;
    }

    .press-author {
        padding: 24px;
    }

    .top-hero__meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
}
