/*
Theme Name: 247 Cinema Editorial
Author: Editorial Theme Studio
Description: 独立重建的中文电影杂志主题。文章、侧栏、首页、分类、搜索、图片和长标题以统一版式呈现，不修改历史文章。
Version: 4.5.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: hy-cinema-editorial
License: GPL-2.0-or-later
*/

/* ---- Design foundations: intentionally distinct from previous themes ---- */
:root {
  --hy-canvas: #f7f6f2;
  --hy-paper: #fffefa;
  --hy-white: #fff;
  --hy-ink: #1d2424;
  --hy-ink-soft: #34403e;
  --hy-muted: #68716e;
  --hy-faint: #939b97;
  --hy-border: #e4e5df;
  --hy-border-dark: #ced2cb;
  --hy-burgundy: #ac4c43;
  --hy-burgundy-dark: #8e362e;
  --hy-dark: #192222;
  --hy-dark-2: #26302f;
  --hy-container: 1216px;
  --hy-reading: 790px;
  --hy-sidebar: 300px;
  --hy-space: 54px;
  --hy-radius: 12px;
  --hy-shadow: 0 18px 40px rgba(15,25,20,.055);
  --hy-font: -apple-system, BlinkMacSystemFont,"Noto Sans CJK SC","PingFang SC","Microsoft YaHei","Source Han Sans SC",sans-serif;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:0; background:var(--hy-canvas); color:var(--hy-ink); font-family:var(--hy-font); font-size:16px; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body,button,input,textarea,select { font-family:var(--hy-font); }
button,input,textarea,select { font:inherit; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--hy-burgundy); }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #c97567; outline-offset:3px; }
img,video,iframe { max-width:100%; }
img { height:auto; }
h1,h2,h3,h4,p,figure { margin-top:0; }
button { cursor:pointer; }
.hy-wrap { width:min(var(--hy-container), calc(100% - 72px)); margin-inline:auto; }
.hy-skip { position:absolute; z-index:999; top:-150px; left:16px; padding:12px 16px; background:white; color:#151b1a; }
.hy-skip:focus { top:12px; }
.screen-reader-text { clip:rect(1px,1px,1px,1px); position:absolute!important; height:1px!important; width:1px!important; overflow:hidden!important; word-wrap:normal!important; }
.screen-reader-text:focus { clip:auto!important; position:fixed!important; top:5px; left:5px; padding:14px!important; height:auto!important; width:auto!important; overflow:visible!important; background:white; z-index:99999; }

/* ---- Navigation / identity ---- */
.hy-site-header { background:var(--hy-dark); color:#f8f8f5; position:relative; z-index:20; }
.hy-site-header::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:#35403c; }
.hy-header-inner { min-height:76px; display:flex; align-items:center; gap:38px; }
.hy-brand { display:inline-flex; flex-direction:column; justify-content:center; gap:2px; flex-shrink:0; position:relative; padding-left:18px; }
.hy-brand::before { content:""; position:absolute; left:0; top:7px; width:4px; height:30px; background:#dc685a; border-radius:1px; }
.hy-brand-name { color:white; font-size:20px; font-weight:850; letter-spacing:-.045em; line-height:1.18; }
.hy-brand-en { color:#aebbb6; font-family:Arial, sans-serif; font-size:8px; font-weight:700; letter-spacing:.16em; }
.hy-main-nav { margin-left:auto; }
.hy-nav-list { display:flex; align-items:center; flex-wrap:wrap; gap:28px; list-style:none; margin:0; padding:0; }
.hy-nav-list li { margin:0; padding:0; }
.hy-nav-list a { color:#c7d2cd; font-size:13px; font-weight:600; letter-spacing:.015em; white-space:nowrap; transition:color .2s; }
.hy-nav-list a:hover,.hy-nav-list .current-menu-item>a { color:#fff; }
.hy-header-actions { display:flex; align-items:center; gap:9px; }
.hy-icon-button { width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; background:transparent; border:1px solid #46524d; border-radius:9px; color:#f0f3f0; }
.hy-icon-button:hover { background:#293633; color:#fff; }
.hy-menu-toggle { display:none; }
.hy-header-search { border-top:1px solid #35413d; background:#26312e; }
.hy-header-search .hy-wrap { padding:17px 0; max-width:640px; }
.hy-header-search .hy-search-form input { background:#fcfdf9; }
.hy-header-search[hidden] { display:none!important; }

/* ---- Global headings and elements ---- */
.hy-section-eyebrow { color:var(--hy-burgundy); font-size:11px; line-height:1.5; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.hy-kicker { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:11px; color:var(--hy-burgundy); font-weight:700; letter-spacing:.015em; }
.hy-kicker time { color:var(--hy-muted); font-weight:500; }
.hy-kicker span[aria-hidden] { color:#b5beb6; }
.hy-section-heading { display:flex; align-items:end; justify-content:space-between; gap:26px; margin-bottom:25px; }
.hy-section-heading h2 { margin:6px 0 0; font-size:30px; line-height:1.25; letter-spacing:-.045em; font-weight:800; }
.hy-section-stroke { width:120px; height:1px; background:var(--hy-border-dark); flex:0 0 auto; margin-bottom:9px; }
.hy-read-more,.hy-related-cta { color:var(--hy-burgundy); font-size:13px; font-weight:750; }
.hy-read-more span,.hy-related-cta span { padding-left:5px; }
.hy-search-form { display:flex; min-width:0; background:#fff; border:1px solid #dfe2da; border-radius:9px; overflow:hidden; }
.hy-search-form:focus-within { outline:2px solid rgba(172,76,67,.3); }
.hy-search-form input[type=search] { border:0; outline:none; min-width:0; width:100%; flex:1; padding:13px 12px; font-size:13px; background:transparent; }
.hy-search-form button { flex:0 0 auto; padding:12px 15px; border:0; background:var(--hy-burgundy); color:white; font-size:12px; font-weight:750; white-space:nowrap; }
.hy-search-form button:hover { background:var(--hy-burgundy-dark); }

/* ---- 4.3 Editorial article masthead (single, unmodified H1) ---- */
.hy-single-shell { padding-top:28px; }
.hy-breadcrumbs { display:flex; align-items:center; gap:9px; flex-wrap:wrap; color:#8b9690; font-size:12px; line-height:1.5; margin:0 auto 12px; max-width:1160px; }
.hy-breadcrumbs>a { color:#627069; }
.hy-breadcrumbs>a:hover { color:var(--hy-burgundy); }
.hy-breadcrumbs [aria-current] { color:#919a94; }
.hy-single-header { width:100%; max-width:1160px; margin:0 auto 47px; padding:22px 0 28px; background:transparent; border:0; border-bottom:1px solid #d5d9d1; border-radius:0; box-shadow:none; }
.hy-single-type { display:flex; align-items:center; flex-wrap:wrap; gap:12px; color:var(--hy-burgundy); font-size:12px; line-height:1.5; font-weight:700; }
.hy-type-kicker { letter-spacing:.11em; font-size:11px; color:var(--hy-burgundy); }
.hy-type-kicker span { color:#a6afa5; padding:0 5px; }
.hy-type-divider { display:inline-block; width:24px; height:1px; background:#bfc7bc; }
.hy-type-category { font-weight:700; color:#596760; }
.hy-type-category:hover { color:var(--hy-burgundy); }
/* Single plain-text article title: browser-native Chinese line breaking. */
.hy-post-title {
  width:100%; margin:19px 0 22px;
  color:#182320; font-size:clamp(34px,3.12vw,38px);
  line-height:1.4; font-weight:760; letter-spacing:-.026em;
  word-break:normal; overflow-wrap:break-word;
  white-space:normal; text-wrap:wrap;
}
.hy-post-byline {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
    color: #7b867d;
    font-size: 13px;
    line-height: 1.6;
    padding-top: 0;
    border-top: 0;
    text-align: right;
}
.hy-byline-author { color:#435049; font-weight:700; }
.hy-byline-dot { color:#a6aea5; }
.hy-reading-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,300px); gap:var(--hy-space); max-width:1160px; margin:0 auto; align-items:stretch; }
.hy-article-main,.hy-sidebar { min-width:0; }
.hy-featured-in-article { margin:0 0 28px; }
.hy-featured-in-article img { display:block; width:100%; height:auto; max-height:580px; object-fit:contain; object-position:center; border-radius:7px; }
.hy-prose { max-width:790px; }

/* ---- Long Chinese-form writing: CSS isolated from Gutenberg global styles ---- */
.hy-prose { color:#28312f; font-size:17px; line-height:1.94; font-weight:400; overflow-wrap:break-word; word-break:normal; line-break:strict; }
.hy-prose>*:first-child { margin-top:0; }
.hy-prose p { margin:0 0 1.4em; }
.hy-prose strong { font-weight:750; color:#1a2622; }
.hy-prose h2 { color:#1b2926; font-size:27px; line-height:1.46; letter-spacing:-.035em; font-weight:790; margin:2.1em 0 .88em; padding-bottom:13px; border-bottom:1px solid #d9dbd5; scroll-margin-top:28px; }
.hy-prose h2::before { display:inline-block; content:""; width:5px; height:.82em; margin-right:12px; background:var(--hy-burgundy); border-radius:1px; vertical-align:-.035em; }
.hy-prose h3 { font-size:21px; line-height:1.55; font-weight:760; letter-spacing:-.025em; margin:1.95em 0 .83em; scroll-margin-top:28px; }
.hy-prose h4 { margin:1.6em 0 .7em; font-size:18px; }
.hy-prose :is(ul,ol) { padding-left:1.5em; margin:0 0 1.45em; }
.hy-prose li { margin:0 0 .45em; }
.hy-prose blockquote,.hy-prose .wp-block-quote { margin:30px 0; padding:18px 25px; background:#eeece6; border-left:4px solid var(--hy-burgundy); border-radius:0 7px 7px 0; color:#38433e; }
.hy-prose blockquote p:last-child { margin-bottom:0; }
.hy-prose a { color:var(--hy-burgundy-dark); text-decoration:underline; text-decoration-color:#d4aaa0; text-underline-offset:4px; }
.hy-prose a:hover { text-decoration-color:var(--hy-burgundy); }
.hy-prose hr { border:0; border-top:1px solid var(--hy-border); margin:35px 0; }
.hy-prose :is(img,video,iframe) { max-width:100%; }
.hy-prose img { display:block; width:auto; height:auto; max-width:100%; max-height:600px; object-fit:contain; margin:27px auto; border-radius:6px; }
.hy-prose img.hy-img--portrait { max-width:min(100%,390px); max-height:555px; }
.hy-prose img.hy-img--repeat { max-width:min(100%,245px); max-height:320px; opacity:.97; }
.hy-prose .hy-image-note { font-size:12px; text-align:center; color:var(--hy-muted); line-height:1.6; margin-top:-14px; margin-bottom:20px; }
.hy-prose figure { max-width:100%; width:auto; margin:34px auto; }
.hy-prose figure img { margin:0 auto; }
.hy-prose figure.hy-figure--portrait { max-width:440px; }
.hy-prose figure.hy-figure--landscape { max-width:100%; }
.hy-prose figcaption,.hy-prose .wp-element-caption { color:#74807a; text-align:center; font-size:12px; line-height:1.65; margin-top:10px; }
.hy-prose .aligncenter { margin-inline:auto; }
.hy-prose .alignleft { float:left; max-width:45%; margin:7px 25px 17px 0; }
.hy-prose .alignright { float:right; max-width:45%; margin:7px 0 17px 25px; }
.hy-prose .alignwide,.hy-prose .alignfull { width:100%; max-width:100%; margin-inline:auto; }
.hy-prose .wp-block-image { max-width:100%; }
.hy-prose .wp-block-image img { display:block; max-width:100%; }
.hy-prose .wp-block-columns { gap:22px; }
.hy-prose .wp-block-embed,.hy-prose .wp-block-video,.hy-prose .wp-block-table { max-width:100%; overflow-wrap:anywhere; }
.hy-prose iframe { display:block; max-width:100%; }
.hy-prose table { width:100%; max-width:100%; border-collapse:collapse; display:block; overflow-x:auto; font-size:14px; margin:22px 0; }
.hy-prose :is(td,th) { padding:12px 14px; border:1px solid var(--hy-border); white-space:normal; }
.hy-prose :is(code,pre) { background:#e9ede7; border-radius:3px; font-size:.88em; }
.hy-prose pre { overflow-x:auto; padding:18px; max-width:100%; }
.hy-prose::after { content:""; display:table; clear:both; }
.hy-content-pagination { display:flex; flex-wrap:wrap; gap:10px; padding:20px 0; }

/* ---- Topic tags ---- */
.hy-tags { margin-top:41px; padding:24px 0 0; border-top:1px solid var(--hy-border); display:flex; align-items:baseline; gap:18px; flex-wrap:wrap; }
.hy-tags-label { flex:0 0 auto; color:var(--hy-muted); font-size:12px; font-weight:750; }
.hy-tags-items { display:flex; flex-wrap:wrap; gap:8px; }
.hy-tags-items a { display:inline-flex; align-items:center; padding:7px 11px; background:#eeeee8; color:#606b65; border:1px solid #e2e3dc; font-size:12px; border-radius:50px; line-height:1.3; }
.hy-tags-items a:hover { color:var(--hy-burgundy); border-color:#bca19a; }

/* Film-name and natural-language clause typography (one real H1). */
/* A real vertical poster should never be cropped as a landscape news thumbnail. */
.hy-card-media.hy-media-is-portrait { background:linear-gradient(120deg,#31322f,#50554d); }
.hy-card-media.hy-media-is-portrait img { width:auto; max-width:100%; height:100%; object-fit:contain; margin-inline:auto; }
.hy-related-image.hy-media-is-portrait { background:#373c37; }
.hy-related-image.hy-media-is-portrait img { width:100%; height:100%; object-fit:contain; }
/* A missing thumbnail produces an editorial text card, not a giant phantom poster. */
.hy-card--grid.hy-card--text-only { display:flex; min-height:280px; border:1px solid var(--hy-border); background:#eeefe9; border-radius:10px; padding:24px 24px 20px; }
.hy-card--grid.hy-card--text-only .hy-card-copy { display:flex; flex-direction:column; padding:0; width:100%; }
.hy-card--grid.hy-card--text-only .hy-card-title { font-size:21px; line-height:1.52; margin:16px 0 14px; }
.hy-card--grid.hy-card--text-only .hy-card-excerpt { margin-top:auto; margin-bottom:0; }

/* ---- Real WordPress sidebar v4.2 (not a shortcode placeholder) ---- */
.hy-sidebar { min-width:0; width:100%; display:block; }
.hy-sidebar-stack { width:100%; display:flex; flex-direction:column; gap:18px; min-width:0; }
@media (min-width:1040px) { .hy-sidebar-stack { position:sticky; top:24px; } }
.hy-side-panel { min-width:0; margin:0; padding:21px 21px 22px; border:1px solid #e1e4dd; border-radius:11px; background:#fffefa; }
.hy-panel-index { display:block; font-size:10px; color:var(--hy-burgundy); font-weight:750; letter-spacing:.075em; margin-bottom:8px; }
.hy-side-heading,.hy-sidebar .widget-title { margin:0 0 12px; font-size:18px; font-weight:780; letter-spacing:-.028em; line-height:1.43; }
.hy-side-desc { margin:0 0 14px; color:#758079; font-size:12px; line-height:1.68; }
.hy-side-search { background:#26312e; color:white; border-color:#26312e; padding:23px; }
.hy-side-search .hy-panel-index { color:#e6a398; }
.hy-side-search .hy-side-heading { color:white; font-size:19px; }
.hy-side-search .hy-side-desc { color:#b8c5bc; }
.hy-side-search .hy-search-form { box-shadow:none; overflow:hidden; }
.hy-side-search .hy-search-form input[type=search] { min-width:0; padding:11px 10px; font-size:12px; }
.hy-side-search .hy-search-form button { padding:10px 12px; font-size:12px; }
.hy-side-stories { display:flex; flex-direction:column; }
.hy-text-story { display:grid; grid-template-columns:40px minmax(0,1fr) 17px; gap:14px; padding:17px 0; border-top:1px solid var(--hy-border); min-width:0; align-items:start; }
.hy-text-story-no { color:#b9aaa4; font-family:Georgia,serif; font-size:27px; font-style:italic; font-weight:500; line-height:1.1; }
.hy-text-story-meta { display:block; color:var(--hy-burgundy); font-size:10px; font-weight:700; line-height:1.4; margin:0 0 6px; }
.hy-text-story-main { min-width:0; }
.hy-text-story-main strong { display:block; color:var(--hy-ink-soft); font-size:14px; font-weight:730; line-height:1.55; letter-spacing:-.015em; overflow-wrap:break-word; word-break:normal; }
.hy-text-story-arrow { color:#b3bdb6; font-size:13px; transition:transform .2s; }
.hy-text-story:hover .hy-text-story-main strong,.hy-text-story:hover .hy-text-story-arrow { color:var(--hy-burgundy); }
.hy-text-story:hover .hy-text-story-arrow { transform:translate(2px,-2px); }
.hy-text-story--sidebar { grid-template-columns:25px minmax(0,1fr) 13px; gap:8px; padding:11px 0; }
.hy-text-story--sidebar .hy-text-story-no { font-size:19px; }
.hy-text-story--sidebar .hy-text-story-main strong { font-size:12.7px; line-height:1.54; }
.hy-text-story--sidebar .hy-text-story-meta { font-size:10px; margin-bottom:4px; }
.hy-category-pills { display:flex; flex-wrap:wrap; gap:7px; }
.hy-category-pills a { display:inline-flex; padding:7px 10px; border-radius:6px; border:1px solid var(--hy-border); background:#f6f6f1; color:#57635b; font-size:12px; font-weight:620; }
.hy-category-pills a:hover { color:var(--hy-burgundy); border-color:#d6b2a9; }
.hy-side-panel.widget :is(ul,ol) { margin:0; padding-left:17px; }
.hy-side-panel.widget li { line-height:1.6; margin-bottom:12px; font-size:13px; }
.hy-side-panel.widget img { max-width:100%; height:auto; }
.hy-side-panel.widget a { overflow-wrap:break-word; }
.hy-reading-progress { width:100%; align-self:flex-start; margin:0; padding:16px 19px; border-radius:10px; border:1px solid #e0e3dc; background:#f0f1eb; }
.hy-reading-progress[hidden] { display:none!important; }
.hy-progress-head { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:12px; color:var(--hy-muted); }
.hy-progress-head strong { color:var(--hy-burgundy); font-size:13px; }
.hy-progress-track { width:100%; height:4px; margin:12px 0 11px; border-radius:30px; background:#dfe2db; overflow:hidden; }
.hy-progress-fill { display:block; height:100%; width:0; background:var(--hy-burgundy); border-radius:30px; transition:width .1s ease; }
.hy-progress-return { color:var(--hy-ink-soft); font-size:12px; font-weight:700; }
.hy-progress-return:hover { color:var(--hy-burgundy); }
.hy-sidebar-extras { display:flex; flex-direction:column; gap:14px; }
.hy-admin-version { font-size:11px; color:#b0bdb4; border:1px solid #536058; border-radius:3px; padding:2px 6px; }

/* ---- Post footer spans full width to avoid left-column-only cards ---- */
.hy-after-article { max-width:1160px; margin:74px auto 0; }
.hy-post-switcher { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding:34px 0 60px; border-top:1px solid var(--hy-border-dark); }
.hy-switch-item { min-width:0; }
.hy-switch-item>a { display:flex; flex-direction:column; min-height:135px; padding:24px 27px; background:var(--hy-paper); border:1px solid var(--hy-border); border-radius:10px; transition:border-color .2s,transform .2s,box-shadow .2s; }
.hy-switch-item>a:hover { border-color:#cfb6a9; transform:translateY(-2px); box-shadow:var(--hy-shadow); }
.hy-switch-label { color:var(--hy-burgundy); font-size:11px; font-weight:800; margin-bottom:12px; }
.hy-switch-item strong { display:block; font-size:17px; line-height:1.52; font-weight:780; overflow-wrap:break-word; text-wrap:pretty; }
.hy-switch-next>a { text-align:right; }
.hy-switch-empty { display:block; color:#a3aaa5; font-size:12px; padding:24px; border:1px solid var(--hy-border); border-radius:10px; }
.hy-related { padding-bottom:12px; }
.hy-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:start; }
.hy-related-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--hy-border); border-radius:10px; background:var(--hy-paper); transition:transform .2s,border-color .2s,box-shadow .2s; }
.hy-related-card:hover { transform:translateY(-3px); border-color:#d1b4a9; box-shadow:var(--hy-shadow); }
.hy-related-card--no-image { position:relative; min-height:260px; }
.hy-related-ornament { position:absolute; right:19px; top:5px; font-size:84px; font-weight:700; font-family:Georgia,serif; color:#e8e8e0; opacity:.8; line-height:1; pointer-events:none; }
.hy-related-image { height:137px; background:#e4e5dd; overflow:hidden; }
.hy-related-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.hy-related-card:hover .hy-related-image img { transform:scale(1.045); }
.hy-related-content { display:flex; flex-direction:column; gap:11px; padding:21px; min-width:0; flex:1; position:relative; z-index:1; }
.hy-related-content small { color:var(--hy-burgundy); font-size:11px; font-weight:700; }
.hy-related-content strong { font-size:18px; line-height:1.55; font-weight:780; letter-spacing:-.02em; overflow-wrap:break-word; word-break:normal; text-wrap:pretty; }
.hy-related-summary { color:var(--hy-muted); font-size:12px; line-height:1.7; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hy-related-card--has-image .hy-related-summary { display:none; }
.hy-related-cta { font-size:12px; margin-top:auto; }

/* ---- 4.3 Discussion: full-width editorial invitation + native WP form ---- */
.hy-comments-wrap { max-width:1160px; width:100%; margin:78px auto 0; padding:48px 0 78px; border-top:1px solid var(--hy-border-dark); }
.hy-discussion-heading { max-width:680px; margin-bottom:30px; }
.hy-discussion-heading h2 { margin:8px 0 10px; font-size:clamp(27px,2.8vw,36px); line-height:1.25; font-weight:800; letter-spacing:-.038em; color:#1c2925; }
.hy-discussion-heading p { margin:0; font-size:14px; line-height:1.85; color:#6b746f; }
.hy-comments { width:100%; max-width:none; }
.hy-discussion-compose { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr); gap:30px; align-items:stretch; }
.hy-discussion-prompt { position:relative; padding:34px 31px; border-radius:12px; background:#22302d; color:#fffefa; min-width:0; overflow:hidden; display:flex; flex-direction:column; }
.hy-discussion-prompt::after { content:'“'; position:absolute; right:15px; top:26px; font-family:Georgia,serif; font-size:155px; line-height:1; color:rgba(255,255,255,.055); pointer-events:none; }
.hy-discussion-prompt-index { position:relative; z-index:1; color:#e3a79f; font-size:11px; letter-spacing:.1em; font-weight:750; }
.hy-discussion-prompt h3 { position:relative; z-index:1; margin:30px 0 13px; font-size:27px; letter-spacing:-.035em; line-height:1.4; }
.hy-discussion-prompt p { position:relative; z-index:1; margin:0; color:#c8d1cb; font-size:14px; line-height:1.9; max-width:330px; }
.hy-discussion-prompt-status { position:relative; z-index:1; display:flex; align-items:center; gap:9px; margin-top:auto; padding-top:35px; font-size:12px; color:#b9c9c0; }
.hy-status-dot { display:inline-block; width:7px; height:7px; border-radius:100%; background:#d77a6d; flex:0 0 auto; }
.hy-comment-form-panel { padding:31px 33px 26px; border:1px solid #dfe3dc; border-radius:12px; background:#fffefa; min-width:0; box-shadow:0 8px 28px rgba(28,43,34,.035); }
.hy-comment-form-panel .comment-respond { width:100%; margin:0; }
.hy-comments .comment-reply-title { margin:0 0 10px; font-size:22px; line-height:1.4; font-weight:800; letter-spacing:-.026em; color:#25322b; }
.hy-comments #cancel-comment-reply-link { display:inline-block; margin-left:10px; color:var(--hy-burgundy); font-size:12px; font-weight:600; }
.hy-comments .comment-notes,.hy-comments .logged-in-as { color:#78827a; font-size:12.5px; line-height:1.7; }
.hy-comments .logged-in-as a { color:var(--hy-burgundy-dark); text-decoration:underline; text-underline-offset:3px; }
.hy-comments .comment-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:15px; row-gap:0; }
.hy-comments .comment-form-comment,.hy-comments .comment-notes,.hy-comments .logged-in-as,.hy-comments .comment-form-cookies-consent,.hy-comments .form-submit,.hy-comments .comment-form-url { grid-column:1/-1; }
.hy-comments .comment-form > p { min-width:0; margin:0 0 16px; }
.hy-comments .comment-form label { display:block; margin-bottom:8px; font-size:13px; color:#435149; font-weight:700; }
.hy-required-mark { color:#b34d42; }
.hy-comments :is(textarea,input[type=text],input[type=email],input[type=url]) { display:block; background:#fbfcf9; border:1px solid #d9dfd6; padding:13px 15px; border-radius:8px; width:100%; max-width:100%; color:var(--hy-ink); font-size:14px; line-height:1.6; transition:border-color .15s,box-shadow .15s; }
.hy-comments :is(textarea,input[type=text],input[type=email],input[type=url]):focus { outline:0; border-color:#ab5c50; box-shadow:0 0 0 3px rgba(172,76,67,.13); }
.hy-comments textarea { min-height:154px; resize:vertical; }
.hy-comments textarea::placeholder { color:#a1a9a1; }
.hy-comments .comment-form-cookies-consent { display:flex; gap:10px; align-items:flex-start; }
.hy-comments .comment-form-cookies-consent label { font-size:12px; font-weight:400; color:#778179; line-height:1.6; margin:0; }
.hy-comments .comment-form-cookies-consent input { width:auto; flex:0 0 auto; margin-top:4px; }
.hy-comments .form-submit { margin:7px 0 0!important; }
.hy-comments input[type=submit] { appearance:none; background:var(--hy-burgundy); padding:13px 28px; border:0; border-radius:7px; color:#fff; font-size:14px; font-weight:750; min-height:44px; cursor:pointer; transition:background .15s,transform .15s; }
.hy-comments input[type=submit]:hover { background:var(--hy-burgundy-dark); transform:translateY(-1px); }
.hy-comments input[type=submit]:focus-visible { outline:3px solid #cc8579; outline-offset:3px; }
.hy-comment-thread { padding-bottom:32px; margin-bottom:31px; border-bottom:1px solid #d9ded6; }
.hy-thread-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-bottom:17px; }
.hy-thread-heading h3 { margin:0; font-size:20px; color:#26322c; }
.hy-comment-count { display:inline-flex; background:#ecefe8; border-radius:100px; padding:7px 12px; color:#57635a; font-size:12px; font-weight:700; }
.hy-comment-list { list-style:none; padding:0; margin:0 0 27px; display:grid; gap:12px; }
.hy-comment-list li { list-style:none; margin:0; }
.hy-comment-list > li { padding:20px 21px; border:1px solid #e1e5dd; border-radius:11px; background:#fffefa; }
.hy-comment-list .children { padding:15px 0 0 30px; margin:0; list-style:none; }
.hy-comment-list .children li { padding:16px 0 0; border-top:1px solid #e3e6df; }
.hy-comment-list img.avatar { float:left; border-radius:50%; margin-right:12px; width:44px; height:44px; }
.hy-comment-list .comment-author { font-size:14px; font-weight:700; color:#25312c; }
.hy-comment-list .comment-author .says { display:none; }
.hy-comment-list .comment-meta { font-size:12px; color:#7a867d; }
.hy-comment-list .comment-meta a { color:#7a867d; }
.hy-comment-list .comment-content { margin-top:15px; color:#344139; font-size:14px; line-height:1.85; overflow-wrap:break-word; }
.hy-comment-list .comment-content p { margin:0 0 12px; }
.hy-comment-list .reply { margin-top:8px; }
.hy-comment-list .reply a { font-size:12px; font-weight:750; color:var(--hy-burgundy); }
.hy-comment-list .comment-awaiting-moderation { display:block; margin:12px 0; color:#936d32; font-size:12px; }
.hy-comment-list .comment-navigation,.hy-comment-list .commentnav { margin:16px 0; }
.hy-comments-closed { padding:22px 26px; border:1px solid #dfe4dc; border-radius:10px; background:#fffefa; font-size:14px; color:#68746b; }

/* ---- Editorial homepage ---- */
.hy-home { padding-bottom:20px; }
.hy-home-masthead { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,.6fr); gap:60px; align-items:end; padding:68px 0 47px; }
.hy-home-masthead h1 { margin:16px 0 0; font-size:clamp(40px,5vw,66px); line-height:1.26; font-weight:820; letter-spacing:-.06em; }
.hy-home-masthead h1 em { color:var(--hy-burgundy); font-style:normal; }
.hy-home-masthead>p { border-left:2px solid var(--hy-burgundy); padding-left:18px; margin:0 0 8px; color:var(--hy-muted); font-size:14px; line-height:1.88; }
.hy-home-highlights { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,.83fr); gap:28px; }
.hy-home-highlights-main { min-width:0; }
.hy-story-card { min-width:0; }
.hy-card--lead { display:flex; flex-direction:column; height:100%; border-radius:11px; overflow:hidden; background:var(--hy-paper); border:1px solid var(--hy-border); }
.hy-card-media { position:relative; display:block; overflow:hidden; aspect-ratio:16/10; background:#e0e3da; }
.hy-card-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.hy-story-card:hover .hy-card-media img { transform:scale(1.035); }
.hy-card-media--blank { background:linear-gradient(125deg,#1c2727 0%,#273231 55%,#3b3430 100%); }
.hy-media-art { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#bdc5bc; }
.hy-media-ring { position:absolute; width:380px; height:380px; max-width:72%; border:1px solid rgba(255,255,255,.12); transform:rotate(26deg); border-radius:50%; }
.hy-media-ring::before,.hy-media-ring::after { content:""; display:block; position:absolute; border:1px solid rgba(255,255,255,.08); border-radius:50%; inset:20px; }
.hy-media-ring::after { inset:65px; }
.hy-media-letter { font-family:Georgia,serif; font-size:clamp(75px,10vw,155px); font-style:italic; color:rgba(227,222,211,.25); }
.hy-media-label { position:absolute; bottom:24px; left:25px; font:700 11px Arial,sans-serif; letter-spacing:.2em; color:#c3c9c4; }
.hy-card--lead .hy-card-media { aspect-ratio:16/8.4; }
.hy-card--lead .hy-card-copy { padding:27px 32px 31px; flex:1; }
.hy-card-title { font-size:19px; line-height:1.5; font-weight:800; letter-spacing:-.02em; margin:10px 0; overflow-wrap:break-word; text-wrap:pretty; }
.hy-card-title--lead { font-size:clamp(25px,2.7vw,34px); line-height:1.39; margin:13px 0 12px; }
.hy-card-excerpt { font-size:13.5px; line-height:1.8; color:var(--hy-muted); margin:0 0 17px; }
.hy-card--lead .hy-card-excerpt { font-size:14px; max-width:560px; }
/* The coverless lead is designed as a headline feature, not a fake poster. */
.hy-card--lead.hy-card--text-only { display:flex; align-items:flex-end; position:relative; min-height:480px; overflow:hidden; border:0; background:linear-gradient(120deg,#1c2827 0%,#2b3532 55%,#3b3933 100%); }
.hy-card--lead.hy-card--text-only::before,.hy-card--lead.hy-card--text-only::after { content:""; position:absolute; right:-120px; top:-250px; height:610px; width:610px; border-radius:50%; border:1px solid rgba(255,255,255,.13); pointer-events:none; }
.hy-card--lead.hy-card--text-only::after { right:-45px; top:-175px; height:460px; width:460px; border-color:rgba(255,255,255,.08); }
.hy-card--lead.hy-card--text-only .hy-card-copy { width:100%; position:relative; z-index:1; padding:42px 44px 43px; }
.hy-card--lead.hy-card--text-only .hy-kicker,.hy-card--lead.hy-card--text-only .hy-kicker time { color:#e9a69a; }
.hy-card--lead.hy-card--text-only .hy-kicker span[aria-hidden] { color:#9da8a0; }
.hy-card--lead.hy-card--text-only .hy-card-title { color:#f7f8f2; font-size:clamp(30px,3.35vw,44px); letter-spacing:-.045em; margin:20px 0 18px; }
.hy-card--lead.hy-card--text-only .hy-card-title a:hover { color:#f3b5a8; }
.hy-card--lead.hy-card--text-only .hy-card-excerpt { color:#bdc9c1; font-size:14px; line-height:1.85; max-width:615px; }
.hy-card--lead.hy-card--text-only .hy-read-more { display:inline-flex; align-items:center; gap:11px; color:#fff; border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:8px; }

.hy-home-briefs { min-width:0; padding:28px; background:#eceee8; border-radius:11px; display:flex; flex-direction:column; }
.hy-briefs-header { padding-bottom:16px; }
.hy-briefs-header h2 { margin:7px 0 0; font-size:26px; line-height:1.35; letter-spacing:-.035em; }
.hy-text-story--brief { grid-template-columns:46px minmax(0,1fr) 17px; gap:13px; padding:26px 0; }
.hy-text-story--brief .hy-text-story-main strong { font-size:17px; }
.hy-briefs-more { color:var(--hy-burgundy); font-size:13px; font-weight:800; padding-top:20px; margin-top:auto; }
.hy-briefs-more span { float:right; }
.hy-home-latest { padding:72px 0 46px; }
.hy-home-grid,.hy-listing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 24px; }
.hy-card--grid .hy-card-media { border-radius:8px; aspect-ratio:16/10; }
.hy-card--grid .hy-card-copy { padding:17px 2px 0; }
.hy-card--grid .hy-card-excerpt { font-size:13px; line-height:1.85; }
.hy-card--grid .hy-media-letter { font-size:95px; }
.hy-all-posts { display:flex; justify-content:center; margin-top:48px; }
.hy-all-posts a { display:inline-flex; gap:32px; align-items:center; padding:15px 25px; border:1px solid var(--hy-border-dark); border-radius:8px; font-weight:750; font-size:13px; }
.hy-all-posts a:hover { border-color:var(--hy-burgundy); background:white; }

/* ---- Category, search and posts listings ---- */
.hy-listing-page { padding:0 0 74px; }
.hy-listing-header { padding:70px 0 54px; max-width:890px; }
.hy-listing-header h1 { font-size:clamp(34px,4vw,52px); line-height:1.3; letter-spacing:-.052em; margin:14px 0 14px; font-weight:820; overflow-wrap:break-word; }
.hy-listing-header p,.hy-listing-desc { color:var(--hy-muted); font-size:15px; line-height:1.8; }
.hy-listing-desc p { margin:0; }
.hy-pagination { margin:60px 0 0; }
.hy-pagination .nav-links { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.hy-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-height:40px; min-width:40px; border:1px solid var(--hy-border); border-radius:7px; padding:10px 14px; background:white; font-size:13px; }
.hy-pagination .page-numbers.current { background:var(--hy-dark); color:white; border-color:var(--hy-dark); }
.hy-not-found { grid-column:1/-1; padding:25px 0 70px; max-width:550px; }
.hy-not-found h2 { font-size:26px; }
.hy-not-found p { color:var(--hy-muted); }
.hy-simple-page { max-width:900px; padding:55px 0 100px; }
.hy-simple-header { border-bottom:1px solid var(--hy-border); margin-bottom:36px; padding-bottom:15px; }
.hy-simple-header h1 { font-size:clamp(35px,4.5vw,55px); line-height:1.35; }
.hy-404 { padding:110px 0 125px; text-align:center; }
.hy-404 h1 { font-size:clamp(32px,4vw,50px); line-height:1.35; margin:14px 0 15px; }
.hy-404 p { color:var(--hy-muted); }
.hy-404 .hy-search-form { max-width:570px; margin:30px auto; }
.hy-404>a { color:var(--hy-burgundy); font-size:14px; }

/* ---- Footer ---- */
.hy-footer { margin-top:70px; background:var(--hy-dark); color:#ecf0eb; }
.hy-footer-inner { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,.65fr) minmax(0,.5fr); gap:75px; padding:62px 0 55px; }
.hy-footer-brand { font-size:27px; font-weight:850; letter-spacing:-.04em; }
.hy-footer-brand span { color:#c85b4c; }
.hy-footer-about p { margin:17px 0 7px; color:#c6d0c8; font-size:13px; }
.hy-footer-about small { color:#82938b; font-size:12px; }
.hy-footer-links h2 { margin:4px 0 18px; color:#edf0ec; font-size:14px; }
.hy-footer-links a { display:block; color:#aebbb3; font-size:12px; line-height:2.2; }
.hy-footer-links a:hover { color:#fff; }
.hy-footer-menu { padding:0; list-style:none; margin:0; }
.hy-footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid #39453f; padding:21px 0 24px; color:#809189; font-size:11px; }

/* ---- Desktop and tablet adjustments ---- */
@media (max-width:1190px) {
  :root { --hy-space:38px; }
  .hy-reading-layout { grid-template-columns:minmax(0,1fr) 285px; }
  .hy-header-inner { gap:22px; }
  .hy-nav-list { gap:19px; }
}
@media (max-width:1010px) {
  .hy-wrap { width:calc(100% - 60px); }
  .hy-reading-layout { grid-template-columns:minmax(0,1fr) 265px; gap:30px; }
  .hy-single-header { padding:22px 0 27px; }
  .hy-post-title { font-size:clamp(32px,3.3vw,41px); }
  .hy-prose { font-size:16.5px; }
  .hy-home-highlights { grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); }
  .hy-home-masthead { gap:30px; }
  .hy-home-briefs { padding:21px; }
  .hy-text-story--brief { gap:10px; }
}
@media (max-width:850px) {
  .hy-header-inner { min-height:68px; }
  .hy-main-nav { display:none; position:absolute; left:0; right:0; top:100%; background:#23302c; margin:0; border-top:1px solid #455149; box-shadow:0 12px 20px rgba(0,0,0,.2); }
  .hy-main-nav.hy-nav-open { display:block; }
  .hy-nav-list { display:flex; flex-direction:column; gap:0; align-items:stretch; padding:12px 30px 20px; }
  .hy-nav-list a { display:block; padding:12px 8px; font-size:14px; }
  .hy-header-actions { margin-left:auto; }
  .hy-menu-toggle { display:inline-flex; }
  .hy-wrap { width:calc(100% - 52px); }
  .hy-single-header { width:100%; max-width:100%; }
  .hy-reading-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
  .hy-prose { max-width:760px; margin:0 auto; }
  .hy-sidebar { margin-top:16px; }
  .hy-sidebar-stack { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .hy-side-panel { min-width:0; }
  .hy-side-cats { grid-column:1/-1; }
  .hy-reading-progress { display:none!important; }
  .hy-home-highlights { grid-template-columns:1fr; }
  .hy-home-briefs { display:block; }
  .hy-text-story--brief { padding:17px 0; }
  .hy-briefs-more { display:block; }
  .hy-home-grid,.hy-listing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hy-related-grid { gap:13px; }
  .hy-discussion-compose { grid-template-columns:1fr; gap:16px; }
  .hy-discussion-prompt { padding:27px 28px; }
  .hy-discussion-prompt h3 { margin-top:15px; }
  .hy-discussion-prompt-status { padding-top:14px; }
  .hy-related-content { padding:18px; }
  .hy-related-content strong { font-size:16px; }
  .hy-footer-inner { gap:35px; }
}
@media (max-width:650px) {
  .hy-wrap { width:calc(100% - 34px); }
  .hy-header-inner { min-height:62px; }
  .hy-brand-name { font-size:18px; }
  .hy-brand-en { font-size:7px; }
  .hy-brand::before { height:25px; top:6px; }
  .hy-icon-button { width:36px; height:36px; }
  .hy-single-shell { padding-top:20px; }
  .hy-breadcrumbs { margin-bottom:29px; font-size:11px; }
  .hy-single-header { padding:12px 0 23px; margin-bottom:29px; }
  .hy-single-type { font-size:10px; gap:10px; }
  .hy-type-kicker { font-size:10px; }
  .hy-post-title { font-size:clamp(27px,6.4vw,34px); line-height:1.46; margin:15px 0 19px; letter-spacing:-.018em; }
  .hy-post-byline { font-size:12px; gap:9px; }
  .hy-prose { font-size:16px; line-height:1.96; }
  .hy-prose h2 { font-size:23px; margin:1.8em 0 .75em; }
  .hy-prose h3 { font-size:20px; }
  .hy-prose img { max-height:480px; }
  .hy-prose img.hy-img--portrait { max-width:min(100%,340px); max-height:470px; }
  .hy-prose img.hy-img--repeat { max-width:min(100%,210px); max-height:280px; }
  .hy-prose .alignleft,.hy-prose .alignright { float:none; max-width:100%; margin:25px auto; }
  .hy-prose .wp-block-columns { flex-direction:column; }
  .hy-prose blockquote { padding:17px 20px; }
  .hy-tags { margin-top:34px; }
  .hy-sidebar { display:block; margin-top:20px; }
  .hy-sidebar-stack { display:flex; flex-direction:column; gap:14px; }
  .hy-side-panel { padding:20px; margin:0; }
  .hy-side-search { padding:22px; }
  .hy-after-article { margin-top:48px; }
  .hy-post-switcher { grid-template-columns:minmax(0,1fr); gap:10px; padding:25px 0 43px; }
  .hy-switch-item>a { min-height:0; padding:21px; }
  .hy-switch-item strong { font-size:16px; }
  .hy-switch-next>a { text-align:left; }
  .hy-section-heading h2 { font-size:26px; }
  .hy-section-stroke { display:none; }
  .hy-related-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .hy-related-card { flex-direction:row; min-height:0; align-items:stretch; }
  .hy-related-card--no-image { min-height:145px; }
  .hy-related-ornament { right:12px; top:9px; font-size:65px; }
  .hy-related-image { width:110px; min-width:110px; height:auto; }
  .hy-related-content { padding:19px; gap:9px; }
  .hy-related-content strong { font-size:16px; }
  .hy-related-cta { margin-top:8px; }
  .hy-comments-wrap { margin-top:55px; padding:34px 0 55px; }
  .hy-discussion-heading { margin-bottom:23px; }
  .hy-discussion-heading h2 { font-size:28px; }
  .hy-discussion-compose { grid-template-columns:1fr; gap:14px; }
  .hy-discussion-prompt { padding:23px 24px; }
  .hy-discussion-prompt h3 { margin:15px 0 7px; font-size:22px; }
  .hy-discussion-prompt-status { margin-top:14px; padding-top:5px; }
  .hy-comment-form-panel { padding:23px 20px 21px; }
  .hy-comments .comment-form { grid-template-columns:minmax(0,1fr); }
  .hy-comments .comment-form-comment,.hy-comments .comment-notes,.hy-comments .logged-in-as,.hy-comments .comment-form-cookies-consent,.hy-comments .form-submit,.hy-comments .comment-form-url { grid-column:1/-1; }
  .hy-comment-list > li { padding:16px; }
  .hy-comment-list .children { padding-left:16px; }
  .hy-home-masthead { display:block; padding:42px 0 32px; }
  .hy-home-masthead h1 { font-size:clamp(35px,7.5vw,48px); }
  .hy-home-masthead>p { margin-top:22px; }
  .hy-card--lead .hy-card-copy { padding:23px; }
  .hy-card--lead.hy-card--text-only { min-height:410px; }
  .hy-card--lead.hy-card--text-only .hy-card-copy { padding:29px 26px; }
  .hy-card-title--lead { font-size:26px; }
  .hy-home-briefs { padding:22px; }
  .hy-home-latest { padding:52px 0 25px; }
  .hy-home-grid,.hy-listing-grid { grid-template-columns:minmax(0,1fr); gap:34px; }
  .hy-card--grid .hy-card-media { aspect-ratio:16/9; }
  .hy-listing-header { padding:44px 0 36px; }
  .hy-listing-header h1 { font-size:35px; }
  .hy-footer { margin-top:48px; }
  .hy-footer-inner { grid-template-columns:1fr 1fr; padding:43px 0 40px; gap:35px 20px; }
  .hy-footer-about { grid-column:1/-1; }
  .hy-footer-bottom { flex-direction:column; gap:9px; }
}
@media (max-width:390px) {
  .hy-wrap { width:calc(100% - 30px); }
  .hy-post-title { font-size:27px; }
  .hy-prose { font-size:15.5px; }
  .hy-related-content strong { font-size:15.5px; }
  .hy-related-image { width:88px; min-width:88px; }
  .hy-home-masthead h1 { font-size:35px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
