/*
 * 庄河融风 · 杂志风格样式层
 * 在 main.css 基础上叠加：报头 / 工具条 / 门户导航 / 杂志首页 / 五张新页面模板
 * @package Zhuanghe_Rongfeng
 */

/* =========================================================
   0. 杂志基调
   ========================================================= */
:root {
    --quhj-mag-red: #0E86A3;
    --quhj-mag-deep: #0B6F87;
    --quhj-mag-maroon: #0B6F87;
    --quhj-mag-gold: #FFE9A8;
    --quhj-mag-ink: #17333D;
    --quhj-mag-paper: #F5FAFC;
    --quhj-mag-line: #D8E5EA;
    --quhj-mag-muted: #5A6E76;
    --quhj-mag-accent: #F18D00;
    /* 门户头条红（固定强调色，不随页面方案变化） */
    --quhj-top-red: #D13B2B;
    --quhj-top-red-dark: #A82822;
    --quhj-mag-serif: 'Noto Serif SC', 'Songti SC', 'SimSun', Georgia, serif;
    --quhj-mag-sans: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

/* 页面级配色方案（LOGO 四色：青蓝/暖橙/朱砂/多彩） */
body.quhj-scheme-orange {
    --quhj-mag-red: #D97716;
    --quhj-mag-deep: #B05E0E;
    --quhj-mag-maroon: #B05E0E;
    --quhj-mag-ink: #33291B;
    --quhj-mag-paper: #FBF7F0;
    --quhj-mag-line: #E8DCC6;
    --quhj-mag-muted: #6E6150;
    --quhj-mag-accent: #009FB9;
}
body.quhj-scheme-red {
    --quhj-mag-red: #C94432;
    --quhj-mag-deep: #A02E22;
    --quhj-mag-maroon: #A02E22;
    --quhj-mag-ink: #241F1B;
    --quhj-mag-paper: #FAF5F0;
    --quhj-mag-line: #E7D8D3;
    --quhj-mag-muted: #6E5F5B;
    --quhj-mag-accent: #009FB9;
}
body.quhj-scheme-multi {
    --quhj-mag-red: #0E86A3;
    --quhj-mag-deep: #0B6F87;
    --quhj-mag-maroon: #0B6F87;
    --quhj-mag-ink: #1E2625;
    --quhj-mag-paper: #F6F7F5;
    --quhj-mag-line: #DEE4E2;
    --quhj-mag-muted: #5E6765;
    --quhj-mag-accent: #F18D00;
}
/* 多彩页：节庆/旅游 分区点缀色（LOGO 四色轮换） */
body.quhj-scheme-multi .quhj-festival-card:nth-child(4n+1) { border-top-color: #E60012; }
body.quhj-scheme-multi .quhj-festival-card:nth-child(4n+2) { border-top-color: #F18D00; }
body.quhj-scheme-multi .quhj-festival-card:nth-child(4n+3) { border-top-color: #009944; }
body.quhj-scheme-multi .quhj-festival-card:nth-child(4n+4) { border-top-color: #009FB9; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+1) .quhj-travel-head { border-bottom-color: #E60012; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+2) .quhj-travel-head { border-bottom-color: #F18D00; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+3) .quhj-travel-head { border-bottom-color: #009944; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+4) .quhj-travel-head { border-bottom-color: #009FB9; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+1) .quhj-travel-head h2 { color: #C4232F; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+2) .quhj-travel-head h2 { color: #C05E10; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+3) .quhj-travel-head h2 { color: #0E7A3B; }
body.quhj-scheme-multi .quhj-travel-section:nth-of-type(4n+4) .quhj-travel-head h2 { color: #0E86A3; }

/* =========================================================
   1. 页头：报头行（LOGO+站名 · 搜索）+ 门户暗红导航条
   ========================================================= */
.quhj-header {
    position: static !important;
    height: auto !important;
    background: #FFFFFF !important;
    border-top: 1px solid var(--quhj-mag-line);
    border-bottom: none !important;
    box-shadow: none !important;
    transition: none !important;
}
.quhj-header.scrolled {
    background: #FFFFFF !important;
    box-shadow: 0 2px 14px rgba(0,0,0,0.05) !important;
}
/* 报头行 */
.quhj-mag-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px 26px;
    flex-wrap: wrap;
    padding: 14px 24px;
}
.quhj-header .quhj-mag-banner { padding: 14px 24px !important; }
.quhj-mag-brand { flex-shrink: 0; }
.quhj-banner-search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
.quhj-banner-search input {
    border: 1px solid #D8E5EA;
    border-radius: 4px;
    padding: 8px 14px;
    width: 230px;
    font-size: 13px;
    outline: none;
    font-family: var(--quhj-mag-serif);
}
.quhj-banner-search input:focus { border-color: var(--quhj-mag-maroon); }
.quhj-banner-search button {
    background: var(--quhj-mag-maroon);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 8px 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
}
.quhj-banner-search button:hover { background: #085166; }
/* 门户导航条（暗红 · 白字 · 横贯） */
.quhj-header .quhj-main-nav,
body:not(.home) .quhj-header .quhj-main-nav,
.quhj-header.scrolled .quhj-main-nav {
    display: block !important;
    background: var(--quhj-mag-maroon) !important;
    border-top: 2px solid #085166 !important;
    border-bottom: 2px solid #085166 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    justify-content: flex-start !important;
}
.quhj-header .quhj-main-nav .quhj-container { padding: 0 24px !important; }
.quhj-nav-list {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 0 !important;
}
.quhj-nav-item {
    display: flex;
    align-items: center;
    position: relative;
}
.quhj-nav-item > a {
    font-family: var(--quhj-mag-serif);
    font-weight: 400 !important;
    padding: 10px 12px !important;
    font-size: 14.5px !important;
    letter-spacing: 1px !important;
    color: rgba(255,255,255,0.94) !important;
    white-space: nowrap;
}
.quhj-nav-item > a:hover {
    color: #FFFFFF !important;
    background: rgba(255,255,255,0.14) !important;
}
.quhj-nav-item.current-menu-item > a {
    color: var(--quhj-mag-gold) !important;
    font-weight: 400 !important;
    background: rgba(0,0,0,0.12);
}
.quhj-nav-item:not(:last-child)::after { height: 14px; background: rgba(255,255,255,0.3); }
.quhj-nav-arrow { margin-left: 3px; color: var(--quhj-mag-gold); font-size: 11px; }

/* 下拉面板：杂志白底细边 */
.quhj-dropdown {
    top: 100%;
    z-index: 1200;
    background: #FFFFFF !important;
    border: 1px solid var(--quhj-mag-line);
    border-top: 2px solid var(--quhj-mag-red);
    border-radius: 0 !important;
    box-shadow: 0 12px 32px rgba(0,0,0,0.12) !important;
    padding: 14px !important;
}
.quhj-dropdown-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
    min-width: 320px;
}
.quhj-dropdown-grid-2 { grid-template-columns: repeat(2, 1fr); min-width: 260px; }
.quhj-dropdown-travel .quhj-dropdown-grid { grid-template-columns: repeat(2, 1fr); min-width: 400px; }
.quhj-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    color: #333 !important;
    font-family: var(--quhj-mag-serif);
    font-size: 14px;
    border-radius: 4px;
    white-space: nowrap;
}
.quhj-dropdown-item:hover {
    background: #F7F3EC;
    color: var(--quhj-mag-red) !important;
}
.quhj-dropdown-icon { font-size: 17px; }
.quhj-nav-arrow { font-size: 10px; opacity: 0.7; }

/* =========================================================
   2. 顶部工具条
   ========================================================= */
.quhj-mag-utility {
    background: var(--quhj-mag-ink);
    color: rgba(255,255,255,0.85);
    font-size: 12.5px;
    letter-spacing: 1px;
}
.quhj-mag-utility-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 36px;
    flex-wrap: wrap;
    gap: 8px 16px;
}
.quhj-mag-utility-left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.quhj-mag-utility-left a { color: rgba(255,255,255,0.85); }
.quhj-mag-utility-left a:hover { color: #fff; text-decoration: underline; }
.quhj-mag-utility-sep { opacity: 0.4; }
.quhj-mag-date .quhj-lunar { opacity: 0.6; margin-left: 6px; font-size: 12px; }
.quhj-mag-utility-right { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.quhj-mag-phone { color: rgba(255,255,255,0.96); font-weight: 600; }
.quhj-topbar-search-form {
    display: flex;
    align-items: center;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 20px;
    overflow: hidden;
    background: rgba(255,255,255,0.08);
}
.quhj-topbar-search-form input {
    border: none;
    background: transparent;
    color: #fff;
    font-size: 12.5px;
    padding: 6px 12px;
    width: 180px;
    outline: none;
    font-family: var(--quhj-mag-sans);
}
.quhj-topbar-search-form input::placeholder { color: rgba(255,255,255,0.55); }
.quhj-topbar-search-form button {
    background: var(--quhj-mag-red);
    border: none;
    color: #fff;
    padding: 6px 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    height: 100%;
}
.quhj-topbar-search-form button:hover { background: #A00C24; }

/* =========================================================
   3. 品牌标识（导航行左侧）
   ========================================================= */
.quhj-mag-brand-link {
    display: flex;
    align-items: center;
    gap: 12px;
}
.quhj-mag-logo { height: 44px; width: auto; }
.quhj-mag-name {
    font-family: var(--quhj-mag-serif);
    font-size: 26px;
    font-weight: 900;
    letter-spacing: 4px;
    color: var(--quhj-mag-ink);
    line-height: 1;
}
.quhj-mag-slogan {
    font-size: 11px;
    letter-spacing: 2px;
    color: var(--quhj-mag-muted);
    border-left: 2px solid var(--quhj-mag-red);
    padding-left: 8px;
    margin-left: 2px;
    text-transform: uppercase;
}
/* 移动端汉堡（main.css 已有基础，这里调整颜色与位置） */
.quhj-mobile-toggle {
    border: 1px solid var(--quhj-mag-line) !important;
    border-radius: 4px !important;
    padding: 10px !important;
    width: 44px !important;
    height: 40px !important;
}
.quhj-mobile-toggle span {
    background: var(--quhj-mag-ink) !important;
    height: 2px !important;
    width: 22px !important;
    border-radius: 2px;
}

/* =========================================================
   4. 页脚（五栏）
   ========================================================= */
.quhj-footer-grid {
    grid-template-columns: 1.6fr 1fr 1fr 1fr 1.2fr !important;
    gap: 34px !important;
}
.quhj-footer-title {
    font-family: var(--quhj-mag-serif);
    letter-spacing: 3px;
}
.quhj-footer-desc { color: rgba(255,255,255,0.72); line-height: 1.9; }
.quhj-footer-info p { color: rgba(255,255,255,0.72); margin-bottom: 4px; font-size: 13.5px; }
.quhj-footer-qrcodes { display: flex; gap: 18px; }
.quhj-footer-qr span { color: rgba(255,255,255,0.75); font-size: 12.5px; }
.quhj-footer-bottom { border-color: rgba(255,255,255,0.14) !important; }
.quhj-tech { opacity: 0.7; }

/* =========================================================
   5. 杂志首页
   ========================================================= */
.quhj-mag-home { padding: 0 0 60px; }
.quhj-mag-home .quhj-container { max-width: 1240px; }

/* ⓪ 门户首屏横幅 */
.quhj-home-banner {
    position: relative;
    height: 480px;
    min-height: 380px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.quhj-home-banner-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 32%;
    transform: scale(1.02);
}
.quhj-home-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8,48,63,0.58) 0%, rgba(11,60,78,0.42) 46%, rgba(9,40,53,0.88) 100%);
}
.quhj-home-banner-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 118px 0 54px;
}
.quhj-home-banner-en {
    color: rgba(255,255,255,0.72);
    letter-spacing: 6px;
    font-size: 13px;
    margin: 0 0 12px;
}
.quhj-home-banner-title {
    font-family: var(--quhj-mag-serif);
    color: #fff;
    font-size: 52px;
    font-weight: 900;
    letter-spacing: 6px;
    margin: 0 0 14px;
    text-shadow: 0 2px 18px rgba(0,0,0,0.4);
}
.quhj-home-banner-sub {
    color: rgba(255,255,255,0.94);
    font-size: 16px;
    letter-spacing: 2px;
    margin: 0 0 26px;
}
.quhj-home-banner-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.quhj-home-banner-actions a {
    color: #fff;
    border: 1px solid rgba(255,255,255,0.55);
    padding: 9px 22px;
    font-size: 14px;
    letter-spacing: 2px;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(4px);
    transition: all 0.25s;
}
.quhj-home-banner-actions a:hover {
    background: var(--quhj-top-red);
    border-color: var(--quhj-top-red);
}
@media (max-width: 720px) {
    .quhj-home-banner { height: 360px; }
    .quhj-home-banner-title { font-size: 34px; letter-spacing: 3px; }
    .quhj-home-banner-inner { padding: 96px 0 34px; }
    .quhj-home-banner-sub { font-size: 14px; }
}

/* 通用小标 */
.quhj-mag-kicker {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 4px;
    color: var(--quhj-mag-red);
    text-transform: uppercase;
}
.quhj-kicker-news { color: var(--quhj-top-red); }
.quhj-kicker-travel { color: var(--quhj-mag-red); }
.quhj-kicker-secret { color: var(--quhj-mag-red); }
.quhj-kicker-sound { color: var(--quhj-mag-red); }
.quhj-kicker-gallery { color: var(--quhj-mag-red); }

/* ① 头条主推 */
.quhj-mag-lead {
    background: var(--quhj-mag-paper);
    border-bottom: 1px solid var(--quhj-mag-line);
    padding: 26px 0 28px;
}
.quhj-mag-lead-grid {
    display: grid;
    grid-template-columns: 1.9fr 1fr;
    gap: 26px;
    align-items: stretch;
}
.quhj-mag-lead-main {
    display: flex;
    flex-direction: column;
    background: #FFFFFF;
    border: 1px solid var(--quhj-mag-line);
    border-top: 3px solid var(--quhj-top-red);
    padding: 16px 20px 12px;
    min-width: 0;
}
.quhj-mag-news-head { margin-bottom: 10px; gap: 16px; }
/* 庄河新闻口号：灰色衬线副标，与红色主标形成主副层级 */
.quhj-mag-tagline {
    display: inline-block;
    font-family: var(--quhj-mag-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    color: var(--quhj-mag-muted);
    white-space: nowrap;
}
.quhj-mag-news-head a { margin-left: auto; }
.quhj-mag-news-top {
    display: block;
    border-bottom: 1px solid var(--quhj-mag-line);
    padding: 2px 0 14px;
    margin-bottom: 2px;
}
.quhj-mag-news-top-tag {
    display: inline-block;
    background: var(--quhj-top-red);
    color: #fff;
    font-size: 16px;
    letter-spacing: 2px;
    padding: 4px 14px 5px;
    margin-bottom: 8px;
}
.quhj-mag-news-top-title {
    font-family: var(--quhj-mag-serif);
    font-size: 29px;
    font-weight: 900;
    line-height: 1.45;
    color: var(--quhj-top-red);
    margin: 0 0 6px;
    letter-spacing: 1px;
}
.quhj-mag-news-top-meta { font-size: 12.5px; color: var(--quhj-mag-muted); letter-spacing: 0.5px; }
.quhj-mag-news-top:hover .quhj-mag-news-top-title { color: var(--quhj-top-red-dark); }

.quhj-mag-lead-side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

/* 三条广告 · 杂志广告位（白底细框 + 左色条 + 右上"广告 AD"角标 + 大字电话） */
.quhj-mag-ads { display: flex; flex-direction: column; gap: 10px; }
.quhj-mag-ad-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 16px 18px 14px;
    background: #FFFFFF;
    border: 1px solid var(--quhj-mag-line);
    border-left: 4px solid var(--quhj-ad-accent);
    overflow: hidden;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.quhj-mag-ad-card::before {
    content: '广告 AD';
    position: absolute;
    top: 0;
    right: 0;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #fff;
    background: var(--quhj-ad-accent);
    padding: 3px 9px;
}
.quhj-mag-ad-card:hover { border-color: var(--quhj-ad-accent); box-shadow: 0 3px 12px rgba(0,0,0,0.08); }
.quhj-mag-ad-name {
    font-family: var(--quhj-mag-serif);
    font-size: 15px;
    font-weight: 700;
    color: var(--quhj-mag-ink);
    letter-spacing: 0.5px;
    line-height: 1.55;
    min-width: 0;
}
.quhj-mag-ad-card:hover .quhj-mag-ad-name { color: var(--quhj-ad-accent); }
.quhj-mag-ad-phone {
    font-size: 17px;
    font-weight: 800;
    color: var(--quhj-ad-accent);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.5px;
    white-space: nowrap;
    flex-shrink: 0;
}
.quhj-mag-ad-phone::before {
    content: '拨打 ';
    font-size: 12px;
    font-weight: 500;
    color: var(--quhj-mag-muted);
    letter-spacing: 1px;
}
.quhj-ad-c1 { --quhj-ad-accent: #D13B2B; }
.quhj-ad-c2 { --quhj-ad-accent: #0E86A3; }
.quhj-ad-c3 { --quhj-ad-accent: #F18D00; }

/* 图片：置于三条广告下方 */
.quhj-mag-news-img {
    position: relative;
    flex: 1;
    min-height: 150px;
    border: 1px solid var(--quhj-mag-line);
    overflow: hidden;
}
.quhj-mag-news-img a { display: block; height: 100%; }
.quhj-mag-news-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.94);
    transition: transform 0.8s ease;
}
.quhj-mag-news-img a:hover img { transform: scale(1.04); }
.quhj-mag-news-img-cap {
    position: absolute;
    left: 12px;
    bottom: 12px;
    background: rgba(28,28,30,0.78);
    color: #fff;
    font-size: 12px;
    letter-spacing: 2px;
    padding: 5px 12px;
    border-left: 3px solid #009FB9;
}

/* 新闻速览 */
.quhj-mag-newslist {
    background: #FFFFFF;
    border: 1px solid var(--quhj-mag-line);
    border-top: 3px solid var(--quhj-mag-ink);
    padding: 16px 18px 12px;
    flex: 1;
}
.quhj-mag-block-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.quhj-mag-block-head a { font-size: 12.5px; color: var(--quhj-mag-muted); }
.quhj-mag-block-head a:hover { color: var(--quhj-mag-red); }
.quhj-mag-newslist-ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 24px;
}
.quhj-mag-newslist-ul li { border-bottom: 1px dashed #EDE9E0; }
.quhj-mag-newslist-ul li:nth-last-child(-n+2) { border-bottom: none; }
.quhj-mag-newslist-ul a {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 0;
    min-width: 0;
}
.quhj-mag-newslist-ul a:hover .quhj-mag-newslist-title { color: var(--quhj-mag-red); }
.quhj-mag-newslist-date {
    flex-shrink: 0;
    font-size: 12px;
    color: var(--quhj-mag-muted);
    font-variant-numeric: tabular-nums;
}
.quhj-mag-newslist-title {
    flex: 1 1 0%;
    min-width: 0;
    position: relative;
    font-size: 14px;
    color: #333;
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 溢出标题右侧淡出遮罩：对带中文引号等省略号失效的标题，边界自然渐隐，绝不硬截 */
.quhj-mag-newslist-title.clamped::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 34px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, #FFFFFF 88%);
}

/* ② 实用服务条 · 杂志目录风（无图标，二次重设计） */
.quhj-mag-services {
    background: #FFFFFF;
    border-bottom: 1px solid var(--quhj-mag-line);
    padding: 24px 0;
}
.quhj-mag-services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
.quhj-mag-service {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 26px 22px 20px;
    background: #FFFFFF;
    border: 1px solid var(--quhj-mag-line);
    border-top: 4px solid var(--quhj-mag-red);
    text-align: left;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.quhj-mag-service::before {
    /* 杂志眉线：卡片左下的细红短标 */
    content: '';
    position: absolute;
    left: 22px;
    top: -4px;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--quhj-mag-red) 34%, rgba(14,134,163,0.18) 34%);
    transition: opacity 0.25s ease;
}
.quhj-mag-service::after {
    content: '';
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--quhj-mag-red), transparent 70%);
    opacity: 0.25;
    transition: opacity 0.25s ease;
}
.quhj-mag-service:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(0,0,0,0.09);
}
.quhj-mag-service:hover::after { opacity: 1; }
.quhj-mag-service-no {
    /* 杂志页码式大序号 */
    position: absolute;
    right: 14px;
    top: 10px;
    font-family: var(--quhj-mag-serif);
    font-size: 44px;
    font-weight: 900;
    line-height: 1;
    color: rgba(14,134,163,0.14);
    letter-spacing: 0;
    transition: color 0.25s ease;
}
.quhj-mag-service:hover .quhj-mag-service-no { color: rgba(14,134,163,0.42); }
.quhj-mag-service-name {
    position: relative;
    font-family: var(--quhj-mag-serif);
    font-size: 23px;
    font-weight: 900;
    color: var(--quhj-mag-ink);
    letter-spacing: 3px;
    padding-top: 4px;
    z-index: 1;
    transition: color 0.25s ease;
}
.quhj-mag-service:hover .quhj-mag-service-name { color: var(--quhj-mag-red); }
.quhj-mag-service-desc {
    position: relative;
    font-size: 13px;
    line-height: 1.7;
    color: var(--quhj-mag-muted);
    padding-top: 10px;
    min-height: 54px;
    z-index: 1;
}
.quhj-mag-service-desc::before {
    content: '';
    display: block;
    width: 30px;
    height: 1px;
    background: var(--quhj-mag-red);
    margin-bottom: 8px;
}
.quhj-mag-service-more {
    position: relative;
    font-size: 12px;
    letter-spacing: 1.5px;
    color: #888;
    z-index: 1;
    transition: color 0.25s ease, letter-spacing 0.25s ease;
}
.quhj-mag-service:hover .quhj-mag-service-more { color: var(--quhj-mag-red); letter-spacing: 2px; }

/* 通用区块 */
.quhj-mag-section { padding: 48px 0; }
.quhj-mag-section-alt { background: var(--quhj-mag-paper); border-top: 1px solid var(--quhj-mag-line); border-bottom: 1px solid var(--quhj-mag-line); }
.quhj-mag-section-head { text-align: center; margin-bottom: 30px; position: relative; }
.quhj-mag-section-head .quhj-mag-kicker { display: block; margin-bottom: 8px; }
.quhj-mag-section-head::before,
.quhj-mag-section-head::after {
    content: '';
    position: absolute;
    top: 8px;
    width: 120px;
    height: 1px;
    background: var(--quhj-mag-line);
}
.quhj-mag-section-head::before { left: calc(50% - 180px); }
.quhj-mag-section-head::after { right: calc(50% - 180px); }
.quhj-mag-section-title {
    font-family: var(--quhj-mag-serif);
    font-size: 32px;
    font-weight: 900;
    letter-spacing: 5px;
    margin: 0 0 6px;
    color: var(--quhj-mag-ink);
}
.quhj-mag-section-sub { font-size: 13.5px; color: var(--quhj-mag-muted); letter-spacing: 1px; margin: 0; }

/* ③ 休闲旅游八大板块（手风琴） */
.quhj-mag-acc {
    display: flex;
    gap: 8px;
    height: 340px;
}
.quhj-mag-acc-item {
    position: relative;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-color: var(--quhj-mag-ink);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch;
    padding: 18px 16px;
    text-decoration: none;
    transition: flex 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.3s ease;
}
.quhj-mag-acc-item::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.02) 30%, rgba(0,0,0,0.72) 100%);
}
.quhj-mag-acc-item > * { position: relative; z-index: 1; }
.quhj-mag-acc-emoji {
    font-size: 20px;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.4s, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    margin-bottom: 4px;
}
.quhj-mag-acc-name {
    font-family: var(--quhj-mag-serif);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 4px;
    white-space: nowrap;
    align-self: center;
    writing-mode: vertical-rl;
    text-orientation: upright;
    transition: font-size 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.quhj-mag-acc-desc {
    font-size: 13px;
    color: rgba(255,255,255,0.92);
    line-height: 1.7;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    transition: opacity 0.4s, max-width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.quhj-mag-acc-item:hover { filter: brightness(1.08); }
.quhj-mag-acc-item.active,
.quhj-mag-acc-item:hover { flex: 4; }
.quhj-mag-acc-item.active .quhj-mag-acc-name,
.quhj-mag-acc-item:hover .quhj-mag-acc-name {
    writing-mode: horizontal-tb;
    align-self: flex-start;
    font-size: 24px;
}
.quhj-mag-acc-item.active .quhj-mag-acc-emoji,
.quhj-mag-acc-item:hover .quhj-mag-acc-emoji { opacity: 1; transform: translateY(0); }
.quhj-mag-acc-item.active .quhj-mag-acc-desc,
.quhj-mag-acc-item:hover .quhj-mag-acc-desc { opacity: 1; max-width: 240px; white-space: normal; }

/* ④ 文化三栏 */
.quhj-mag-culture-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}
.quhj-mag-culture-col {
    background: #FFFFFF;
    border: 1px solid var(--quhj-mag-line);
    padding: 22px 24px;
}
.quhj-mag-culture-head { display: flex; align-items: baseline; gap: 12px; border-bottom: 2px solid var(--quhj-mag-ink); padding-bottom: 10px; margin-bottom: 6px; }
.quhj-mag-culture-head a { margin-left: auto; font-size: 12.5px; color: var(--quhj-mag-muted); }
.quhj-mag-culture-head a:hover { color: var(--quhj-mag-red); }
.quhj-mag-culture-title { font-family: var(--quhj-mag-serif); font-size: 21px; font-weight: 900; letter-spacing: 2px; margin: 0; }
.quhj-mag-culture-list { list-style: none; margin: 0; padding: 0; }
.quhj-mag-culture-list li { border-bottom: 1px dashed #EDE9E0; }
.quhj-mag-culture-list li:last-child { border-bottom: none; }
.quhj-mag-culture-list a { display: flex; align-items: baseline; gap: 12px; padding: 12px 2px; }
.quhj-mag-culture-list a:hover .quhj-mag-culture-item-title { color: var(--quhj-mag-red); }
.quhj-mag-culture-num { font-family: var(--quhj-mag-serif); font-size: 19px; font-weight: 900; color: var(--quhj-mag-red); flex-shrink: 0; }
.quhj-mag-culture-item-title { font-size: 14.5px; color: #333; line-height: 1.5; flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.quhj-mag-culture-item-date { font-size: 12px; color: var(--quhj-mag-muted); flex-shrink: 0; }

/* ⑤ 秘境 & 声音 */
.quhj-mag-entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.quhj-mag-entry {
    position: relative;
    display: block;
    height: 300px;
    overflow: hidden;
    color: #fff;
    background: var(--quhj-mag-ink);
}
.quhj-mag-entry-img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.8s ease;
}
.quhj-mag-entry:hover .quhj-mag-entry-img { transform: scale(1.05); }
.quhj-mag-entry-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.15) 100%);
}
.quhj-mag-entry-body { position: absolute; left: 0; bottom: 0; right: 0; padding: 24px 26px; z-index: 2; }
.quhj-mag-entry-title { font-family: var(--quhj-mag-serif); font-size: 28px; font-weight: 900; letter-spacing: 4px; margin: 8px 0 8px; }
.quhj-mag-entry-desc { font-size: 13.5px; color: rgba(255,255,255,0.85); margin: 0 0 12px; }
.quhj-mag-entry-arrow { font-size: 13px; letter-spacing: 1px; color: #fff; border-bottom: 1px solid rgba(255,255,255,0.5); padding-bottom: 2px; }

/* ⑥ 光影 */
.quhj-mag-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.quhj-mag-gallery-card { display: block; background: #fff; border: 1px solid var(--quhj-mag-line); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.quhj-mag-gallery-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,0.1); }
.quhj-mag-gallery-img {
    position: relative;
    height: 170px;
    background-size: cover;
    background-position: center;
}
.quhj-mag-play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 48px; height: 48px;
    border-radius: 50%;
    background: rgba(14,134,163,0.92);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    border: 2px solid #fff;
    box-shadow: 0 4px 14px rgba(0,0,0,0.3);
}
.quhj-mag-gallery-body { padding: 14px 16px 16px; }
.quhj-mag-gallery-body h4 { font-size: 15px; font-weight: 700; margin: 0 0 6px; color: var(--quhj-mag-ink); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.quhj-mag-gallery-body p { font-size: 12.5px; color: var(--quhj-mag-muted); margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* =========================================================
   6. 船班时刻页（船票杂志风）
   ========================================================= */
.quhj-ferry { padding: 36px 0 60px; }
.quhj-ferry .quhj-container { max-width: 1120px; }

/* ---- 通航状态 · 杂志公告牌 ---- */
.quhj-ferry-status {
    position: relative;
    display: flex;
    align-items: stretch;
    color: #fff;
    margin-bottom: 18px;
    overflow: hidden;
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%);
}
.quhj-ferry-status-ok { background: linear-gradient(115deg, var(--quhj-mag-deep) 0%, var(--quhj-mag-red) 62%, #35A2BE 100%); }
.quhj-ferry-status-night { background: linear-gradient(115deg, #142B45 0%, #2C5F8A 62%, #356DA0 100%); }
.quhj-ferry-status-danger { background: linear-gradient(115deg, #5E1111 0%, #A32323 55%, #C0392B 100%); }
.quhj-ferry-status::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 5px;
    background: rgba(255,255,255,0.28);
}
.quhj-ferry-status-flag {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 108px;
    padding: 20px 22px;
    background: rgba(0,0,0,0.18);
    flex: none;
}
.quhj-ferry-status-lamp {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    position: relative;
    box-shadow: 0 0 0 5px rgba(255,255,255,0.22), 0 0 18px rgba(255,255,255,0.65);
    animation: quhj-ferry-pulse 2.2s ease-in-out infinite;
}
.quhj-ferry-status-lamp i {
    position: absolute;
    inset: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,0.85);
}
@keyframes quhj-ferry-pulse {
    0%, 100% { box-shadow: 0 0 0 5px rgba(255,255,255,0.22), 0 0 14px rgba(255,255,255,0.5); }
    50% { box-shadow: 0 0 0 8px rgba(255,255,255,0.12), 0 0 26px rgba(255,255,255,0.85); }
}
.quhj-ferry-status-big {
    font-family: var(--quhj-mag-serif);
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 5px;
    writing-mode: vertical-rl;
    text-orientation: upright;
}
.quhj-ferry-status-main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 18px 28px;
    flex: 1;
    min-width: 0;
}
.quhj-ferry-status-kicker {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 3px;
    opacity: 0.82;
}
.quhj-ferry-status-label {
    font-family: var(--quhj-mag-serif);
    font-size: 32px;
    font-weight: 900;
    letter-spacing: 2px;
    line-height: 1.3;
}
.quhj-ferry-status-sub { font-size: 13px; opacity: 0.88; }
.quhj-ferry-status-side {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 8px;
    padding: 16px 26px 18px 10px;
    flex: none;
}
.quhj-ferry-status-time { font-size: 13px; font-weight: 700; opacity: 0.95; letter-spacing: 1px; }
.quhj-ferry-status-tag {
    font-size: 11px;
    letter-spacing: 2px;
    opacity: 0.8;
    border-top: 1px solid rgba(255,255,255,0.35);
    padding-top: 7px;
}

.quhj-ferry-notice {
    display: flex;
    align-items: baseline;
    gap: 12px;
    background: #FFFDF4;
    border: 1px solid #F0E2C8;
    border-left: 4px solid #C9A86A;
    color: #7C6A42;
    padding: 12px 18px;
    font-size: 14px;
    margin-bottom: 16px;
    line-height: 1.8;
}
.quhj-ferry-notice-tip {
    font-weight: 800;
    color: #A9822F;
    flex: none;
}
.quhj-ferry-notice-text { opacity: 0.95; }
/* 问询电话 · 清新自然卡片 */
.quhj-ferry-hotline {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 30px;
}
.quhj-ferry-hotline-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 20px;
    background: var(--quhj-mag-paper);
    border: 1px solid var(--quhj-mag-line);
    border-radius: 6px;
    color: #1C2B24;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.quhj-ferry-hotline-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(166, 75, 60, 0.10);
}
.quhj-ferry-hotline-name {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--quhj-mag-muted);
}
.quhj-ferry-hotline-num {
    font-family: var(--quhj-mag-serif);
    font-size: 23px;
    font-weight: 900;
    letter-spacing: 1px;
    color: var(--quhj-mag-red);
    white-space: nowrap;
}

/* ---- 船票卡（2×2 网格） ---- */
.quhj-ferry-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 26px;
}
.quhj-ferry-card {
    background: #FFFFFF;
    border: 1px solid #E9E2D6;
    border-top: 3px solid var(--quhj-mag-red);
    border-radius: 6px;
    position: relative;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
/* 进岛/出岛 · 统一深青墨绿，用徽章样式区分 */
.quhj-ferry-card-in { border-top-color: var(--quhj-mag-red); }
.quhj-ferry-card-in .quhj-ferry-no { color: rgba(14,134,163,0.14); }
.quhj-ferry-card-in .quhj-ferry-voyage-arrow { color: var(--quhj-mag-red); }
.quhj-ferry-card-in:hover { box-shadow: 0 14px 30px rgba(14,134,163,0.12); }
.quhj-ferry-card-out { border-top-color: var(--quhj-mag-red); }
.quhj-ferry-card-out .quhj-ferry-no { color: rgba(14,134,163,0.14); }
.quhj-ferry-card-out .quhj-ferry-voyage-arrow { color: var(--quhj-mag-red); }
.quhj-ferry-card-out:hover { box-shadow: 0 14px 30px rgba(14,134,163,0.12); }
.quhj-ferry-card:hover {
    transform: translateY(-4px);
}
.quhj-ferry-ticket { padding: 20px 24px 0; }
.quhj-ferry-ticket-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}
.quhj-ferry-no {
    font-family: var(--quhj-mag-serif);
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
    color: rgba(120,110,98,0.18);
    letter-spacing: 0;
}
.quhj-ferry-brand {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #C0B6A8;
}
.quhj-ferry-route {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.quhj-ferry-port {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    flex: 1;
    min-width: 0;
}
.quhj-ferry-port-en {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #C0B6A8;
}
.quhj-ferry-port-name {
    font-family: var(--quhj-mag-serif);
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 1px;
    line-height: 1.4;
    color: var(--quhj-mag-ink);
    text-align: center;
    max-width: 100%;
    overflow-wrap: break-word;
}
.quhj-ferry-voyage {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 0 6px;
}
.quhj-ferry-voyage-line { width: 24px; height: 1px; background: #E9E1D5; }
.quhj-ferry-voyage-arrow { color: var(--quhj-mag-red); font-size: 13px; }
.quhj-ferry-title-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 12px 0 0;
}
.quhj-ferry-direction {
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: 2px;
    line-height: 1.4;
    flex: none;
    border-radius: 20px;
    text-align: center;
    min-width: 58px;
}
.quhj-ferry-direction-in { background: var(--quhj-mag-red); color: #fff; padding: 3px 14px; }
.quhj-ferry-direction-out { background: #fff; color: var(--quhj-mag-red); border: 1.5px solid var(--quhj-mag-red); padding: 1.5px 13px; }
.quhj-ferry-duration {
    font-size: 11.5px;
    color: var(--quhj-mag-muted);
    background: var(--quhj-mag-paper);
    padding: 2px 9px;
    border-radius: 20px;
    flex: none;
}
/* 撕票线 */
.quhj-ferry-perf {
    display: flex;
    align-items: center;
    margin: 14px 0 14px;
}
.quhj-ferry-perf-hole {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #FDFCFA;
    border: 1px solid #E9E2D6;
    flex: none;
    position: relative;
    z-index: 1;
}
.quhj-ferry-perf-dash {
    flex: 1;
    border-top: 2px dashed #E2D9CB;
    margin: 0 -8px;
}
/* 班次 */
.quhj-ferry-sched {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    padding-bottom: 16px;
}
.quhj-ferry-sched-col h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: var(--quhj-mag-ink);
    margin: 0 0 10px;
}
.quhj-ferry-sched-col h4 i {
    font-style: normal;
    background: var(--quhj-mag-red);
    color: #fff;
    font-size: 9.5px;
    font-weight: 900;
    padding: 2px 6px;
    border-radius: 2px;
    letter-spacing: 1px;
}
.quhj-ferry-times { display: flex; flex-wrap: wrap; gap: 8px; }
.quhj-ferry-time {
    font-family: var(--quhj-mag-serif);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--quhj-mag-red);
    background: #FFF;
    border: 1.5px solid #F4DCE1;
    border-radius: 5px;
    padding: 6px 10px;
    min-width: 62px;
    text-align: center;
    transition: all 0.2s ease;
}
.quhj-ferry-time:hover { background: var(--quhj-mag-red); color: #fff; border-color: var(--quhj-mag-red); }
/* 进出岛配色 · 班次时间（统一深青） */
.quhj-ferry-card-in .quhj-ferry-time { color: var(--quhj-mag-red); border-color: var(--quhj-mag-line); }
.quhj-ferry-card-in .quhj-ferry-time:hover { background: var(--quhj-mag-red); color: #fff; border-color: var(--quhj-mag-red); }
.quhj-ferry-card-in .quhj-ferry-sched-col h4 i { background: var(--quhj-mag-red); }
.quhj-ferry-card-out .quhj-ferry-time { color: var(--quhj-mag-red); border-color: var(--quhj-mag-line); }
.quhj-ferry-card-out .quhj-ferry-time:hover { background: var(--quhj-mag-red); color: #fff; border-color: var(--quhj-mag-red); }
.quhj-ferry-card-out .quhj-ferry-sched-col h4 i { background: var(--quhj-mag-red); }
.quhj-ferry-time-empty { font-size: 12.5px; color: var(--quhj-mag-muted); padding: 10px 0; }
/* 票脚 */
.quhj-ferry-foot {
    display: flex;
    align-items: center;
    gap: 8px 18px;
    flex-wrap: wrap;
    padding: 12px 24px;
    background: linear-gradient(90deg, #FCFAF5, #F7F2E9);
    border-top: 1px solid #EFE9DF;
    border-radius: 0 0 8px 8px;
}
.quhj-ferry-price { font-size: 15px; font-weight: 700; color: var(--quhj-mag-red); }
.quhj-ferry-note { font-size: 13px; color: var(--quhj-mag-muted); }
.quhj-ferry-foot-brand {
    margin-left: auto;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #C0B6A8;
}

/* =========================================================
   7. 赶海潮汐页
   ========================================================= */
.quhj-tide { padding: 36px 0 60px; }
.quhj-tide .quhj-container { max-width: 1200px; }
.quhj-tide-block-head { display: flex; align-items: baseline; gap: 14px; border-bottom: 2px solid var(--quhj-mag-ink); padding-bottom: 10px; margin-bottom: 20px; }
.quhj-tide-block-head h2 { font-family: var(--quhj-mag-serif); font-size: 24px; font-weight: 900; letter-spacing: 2px; margin: 0; }
.quhj-tide-week { margin-bottom: 40px; }
.quhj-tide-week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.quhj-tide-day { background: #fff; border: 1px solid var(--quhj-mag-line); padding: 12px 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.quhj-tide-today { border-top: 3px solid var(--quhj-mag-red); }
.quhj-tide-day-date strong { display: block; font-size: 15px; color: var(--quhj-mag-ink); }
.quhj-tide-day-date span { font-size: 11.5px; color: var(--quhj-mag-muted); }
.quhj-tide-times { list-style: none; margin: 0; padding: 0; flex: 1; }
.quhj-tide-times li { font-size: 12.5px; color: #333; padding: 3px 0; border-bottom: 1px dotted #F0EBE2; }
.quhj-tide-times li:last-child { border-bottom: none; }
.quhj-tide-na { color: var(--quhj-mag-muted); }
.quhj-tide-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.quhj-tide-badge { font-size: 11px; padding: 2px 8px; border-radius: 3px; font-weight: 700; letter-spacing: 1px; }
.quhj-tide-type { background: #FDECEF; color: var(--quhj-mag-red); }
.quhj-tide-live { background: #E7F6EC; color: #166534; }
.quhj-tide-dead { background: #ECECEC; color: #555; }
.quhj-tide-tip { font-size: 11.5px; color: var(--quhj-mag-muted); margin: 0; line-height: 1.6; }
.quhj-tide-today .quhj-tide-tip { color: #B45309; font-weight: 600; }

/* 月历 */
.quhj-tide-month { }
.quhj-tide-cal { background: #fff; border: 1px solid var(--quhj-mag-line); }
.quhj-tide-cal-head, .quhj-tide-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.quhj-tide-cal-head { background: var(--quhj-mag-ink); color: #fff; font-size: 12.5px; letter-spacing: 1px; }
.quhj-tide-cal-head span { text-align: center; padding: 8px 0; }
.quhj-tide-cal-grid { }
.quhj-tide-cal-cell { border-right: 1px solid #F0EBE2; border-bottom: 1px solid #F0EBE2; min-height: 66px; padding: 6px 8px; position: relative; }
.quhj-tide-cal-cell:nth-child(7n) { border-right: none; }
.quhj-tide-cal-blank { background: #FBF9F5; }
.quhj-tide-cal-day { font-size: 14px; font-weight: 700; color: var(--quhj-mag-ink); }
.quhj-tide-cal-today { background: #FFF9F0; box-shadow: inset 0 0 0 2px var(--quhj-mag-red); }
.quhj-tide-cal-season { display: block; font-size: 11px; margin-top: 4px; font-weight: 700; }
.quhj-tide-cal-season.quhj-tide-live { color: #166534; }
.quhj-tide-cal-season.quhj-tide-dead { color: #555; }
.quhj-tide-cal-type { display: block; font-size: 11px; color: var(--quhj-mag-muted); margin-top: 1px; }
.quhj-tide-cal-empty { background: #FBF9F5; }
.quhj-tide-legend { font-size: 12.5px; color: var(--quhj-mag-muted); margin: 12px 0 0; }
.quhj-tide-legend-live { display: inline-block; background: #E7F6EC; color: #166534; padding: 1px 8px; border-radius: 3px; font-weight: 700; }
.quhj-tide-legend-dead { display: inline-block; background: #ECECEC; color: #555; padding: 1px 8px; border-radius: 3px; font-weight: 700; }
.quhj-tide-tip-note { background: #F0F7FB; border-left: 4px solid #155E75; padding: 14px 18px; margin-top: 26px; font-size: 13.5px; color: #174A5C; line-height: 1.8; }

/* =========================================================
   8. 节庆日历页
   ========================================================= */
.quhj-festival { padding: 36px 0 60px; }
.quhj-festival .quhj-container { max-width: 1100px; }
.quhj-festival-month { margin-bottom: 40px; }
.quhj-festival-month-head { display: flex; align-items: baseline; gap: 14px; border-bottom: 2px solid var(--quhj-mag-ink); padding-bottom: 10px; margin-bottom: 18px; }
.quhj-festival-month-num { font-family: var(--quhj-mag-serif); font-size: 34px; font-weight: 900; color: var(--quhj-mag-red); line-height: 1; }
.quhj-festival-month-head h2 { font-family: var(--quhj-mag-serif); font-size: 22px; font-weight: 900; letter-spacing: 3px; margin: 0; }
.quhj-festival-month-count { margin-left: auto; font-size: 12.5px; color: var(--quhj-mag-muted); }
.quhj-festival-list { display: flex; flex-direction: column; gap: 14px; }
.quhj-festival-card { display: flex; gap: 18px; background: #fff; border: 1px solid var(--quhj-mag-line); padding: 14px; }
.quhj-festival-thumb { flex-shrink: 0; width: 150px; height: 104px; background-size: cover; background-position: center; background-color: var(--quhj-mag-paper); }
.quhj-festival-body { flex: 1; min-width: 0; }
.quhj-festival-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.quhj-festival-tag { font-size: 12px; padding: 2px 10px; border-radius: 3px; }
.quhj-festival-tag-date { background: #FDECEF; color: var(--quhj-mag-red); font-weight: 700; }
.quhj-festival-tag-type { background: var(--quhj-mag-paper); border: 1px solid var(--quhj-mag-line); color: #555; }
.quhj-festival-tag-place { background: #F0F7FB; color: #174A5C; }
.quhj-festival-title { font-family: var(--quhj-mag-serif); font-size: 19px; font-weight: 700; margin: 0 0 6px; }
.quhj-festival-title a { color: var(--quhj-mag-ink); }
.quhj-festival-title a:hover { color: var(--quhj-mag-red); }
.quhj-festival-excerpt { font-size: 13.5px; color: var(--quhj-mag-muted); margin: 0; line-height: 1.8; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* =========================================================
   9. 渔家乐页
   ========================================================= */
.quhj-farmstay { padding: 36px 0 60px; }
.quhj-farmstay .quhj-container { max-width: 1200px; }
.quhj-farmstay-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.quhj-farmstay-card { background: #fff; border: 1px solid var(--quhj-mag-line); border-top: 3px solid var(--quhj-mag-red); display: flex; flex-direction: column; }
.quhj-farmstay-img { display: block; height: 190px; background-size: cover; background-position: center; background-color: var(--quhj-mag-paper); }
.quhj-farmstay-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.quhj-farmstay-place { font-size: 12.5px; color: var(--quhj-mag-muted); }
.quhj-farmstay-title { font-family: var(--quhj-mag-serif); font-size: 21px; font-weight: 900; letter-spacing: 1px; margin: 0; }
.quhj-farmstay-title a { color: var(--quhj-mag-ink); }
.quhj-farmstay-title a:hover { color: var(--quhj-mag-red); }
.quhj-farmstay-excerpt { font-size: 13px; color: var(--quhj-mag-muted); margin: 0; line-height: 1.8; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.quhj-farmstay-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.quhj-farmstay-tag { font-size: 11.5px; color: #555; background: var(--quhj-mag-paper); border: 1px solid var(--quhj-mag-line); padding: 2px 9px; border-radius: 20px; }
.quhj-farmstay-actions { display: flex; gap: 10px; margin-top: auto; padding-top: 8px; }
.quhj-farmstay-detail { flex: 1; text-align: center; padding: 9px 0; border: 1px solid var(--quhj-mag-ink); color: var(--quhj-mag-ink); font-size: 13.5px; transition: all 0.2s; }
.quhj-farmstay-detail:hover { background: var(--quhj-mag-ink); color: #fff; }
.quhj-farmstay-call { flex: 1.4; text-align: center; padding: 9px 0; background: var(--quhj-mag-red); color: #fff; font-size: 13.5px; font-weight: 700; letter-spacing: 1px; transition: opacity 0.2s; }
.quhj-farmstay-call:hover { opacity: 0.88; color: #fff; }

/* =========================================================
   10. 留言板页
   ========================================================= */
.quhj-message { padding: 36px 0 60px; }
.quhj-message .quhj-container { max-width: 1100px; }
.quhj-message-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 30px; align-items: start; }
.quhj-message-block-head { border-bottom: 2px solid var(--quhj-mag-ink); padding-bottom: 10px; margin-bottom: 16px; }
.quhj-message-block-head h2 { font-family: var(--quhj-mag-serif); font-size: 22px; font-weight: 900; letter-spacing: 2px; margin: 0; }
.quhj-message-count { font-size: 13px; color: var(--quhj-mag-muted); }
.quhj-message-form-wrap { background: #fff; border: 1px solid var(--quhj-mag-line); padding: 22px 24px; }
.quhj-message-form-wrap .comment-form label { font-size: 13.5px; font-weight: 600; color: var(--quhj-mag-ink); }
.quhj-message-form-wrap input[type="text"],
.quhj-message-form-wrap input[type="email"],
.quhj-message-form-wrap input[type="url"],
.quhj-message-form-wrap textarea {
    width: 100%;
    border: 1px solid var(--quhj-mag-line);
    border-radius: 4px;
    padding: 9px 12px;
    font-size: 14px;
    font-family: var(--quhj-mag-sans);
    background: #FDFCFA;
    color: #333;
}
.quhj-message-form-wrap textarea { min-height: 120px; }
.quhj-message-form-wrap input:focus, .quhj-message-form-wrap textarea:focus { outline: none; border-color: var(--quhj-mag-red); box-shadow: 0 0 0 2px rgba(14,134,163,0.12); }
.quhj-message-note { font-size: 12.5px; color: var(--quhj-mag-muted); }
.quhj-message-guide { font-size: 13.5px; color: var(--quhj-mag-red); margin: 0 0 14px; font-weight: 600; }
.quhj-message-form-wrap .submit {
    background: var(--quhj-mag-red);
    border: none;
    color: #fff;
    padding: 11px 34px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 2px;
    border-radius: 4px;
    cursor: pointer;
    transition: opacity 0.2s;
}
.quhj-message-form-wrap .submit:hover { opacity: 0.88; }
.quhj-message-list-wrap { }
.quhj-message-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.quhj-message-item { background: #fff; border: 1px solid var(--quhj-mag-line); border-left: 3px solid var(--quhj-mag-red); padding: 16px 20px; }
.quhj-message-item-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.quhj-message-author { font-family: var(--quhj-mag-serif); font-size: 16px; color: var(--quhj-mag-ink); }
.quhj-message-time { font-size: 12px; color: var(--quhj-mag-muted); margin-left: auto; }
.quhj-message-text { font-size: 14px; color: #333; line-height: 1.8; }
.quhj-message-text p { margin: 0 0 6px; }
.quhj-message-empty { background: #fff; border: 1px dashed var(--quhj-mag-line); padding: 30px; text-align: center; color: var(--quhj-mag-muted); }

/* =========================================================
   11. 空状态 / 页头补充
   ========================================================= */
.quhj-empty-tip {
    background: #fff;
    border: 1px dashed var(--quhj-mag-line);
    padding: 44px 24px;
    text-align: center;
    color: var(--quhj-mag-muted);
    font-size: 16px;
}
.quhj-page-header .quhj-container { max-width: 1200px; }

/* =========================================================
   12. 响应式
   ========================================================= */
@media (max-width: 1024px) {
    .quhj-mag-lead-grid { grid-template-columns: 1fr; }
    .quhj-mag-acc { height: 300px; }
    .quhj-mag-gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .quhj-mag-culture-grid { grid-template-columns: 1fr; }
    .quhj-farmstay-grid { grid-template-columns: repeat(2, 1fr); }
    .quhj-footer-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .quhj-tide-week-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 768px) {
    .quhj-mag-utility-inner { justify-content: center; }
    .quhj-banner-search input { width: 130px; }
    .quhj-mag-banner { padding: 8px 12px; gap: 8px 12px; }
    .quhj-mag-logo { height: 36px; }
    .quhj-mag-name { font-size: 22px; letter-spacing: 2px; }
    .quhj-mag-slogan { display: none; }
    /* 移动端：新闻列表收窄为单列 */
    .quhj-mag-newslist-ul { grid-template-columns: 1fr; }
    /* 移动端：暗红导航条隐藏，汉堡展开白面板 */
    .quhj-main-nav { display: none; }
    .quhj-header { position: relative !important; }
    .quhj-main-nav.mobile-open {
        display: block !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        background: #fff !important;
        border-top: none !important;
        border-bottom: 1px solid var(--quhj-mag-line) !important;
        border-radius: 0 !important;
        box-shadow: 0 12px 28px rgba(0,0,0,0.12) !important;
        z-index: 1200;
    }
    .quhj-main-nav.mobile-open .quhj-nav-list {
        justify-content: flex-start !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
    }
    .quhj-main-nav.mobile-open .quhj-nav-item > a { color: #333 !important; font-size: 15px !important; padding: 12px 18px !important; }
    .quhj-main-nav.mobile-open .quhj-nav-item:not(:last-child)::after { display: none; }
    .quhj-main-nav.mobile-open .quhj-nav-item.quhj-has-dropdown > a { background: transparent !important; margin: 0 !important; border-radius: 0 !important; }
    /* 手风琴移动端：竖向堆叠，点开展开 */
    .quhj-mag-acc { flex-direction: column; height: auto; gap: 6px; }
    .quhj-mag-acc-item { min-height: 74px; padding: 12px 16px; }
    .quhj-mag-acc-name { writing-mode: horizontal-tb; align-self: flex-start; font-size: 20px; }
    .quhj-mag-acc-emoji { opacity: 1; transform: none; }
    .quhj-mag-acc-desc { opacity: 1; max-width: none; white-space: normal; }
    .quhj-mag-acc-item.active,
    .quhj-mag-acc-item:hover { flex: 1; min-height: 170px; }
    .quhj-mag-acc-item.active .quhj-mag-acc-name,
    .quhj-mag-acc-item:hover .quhj-mag-acc-name { font-size: 22px; }
    .quhj-mag-services-grid { grid-template-columns: repeat(2, 1fr); }
    .quhj-mag-lead-title { font-size: 24px; }
    .quhj-mag-entry-grid { grid-template-columns: 1fr; }
    .quhj-mag-section-head::before, .quhj-mag-section-head::after { width: 60px; }
    .quhj-mag-section-head::before { left: calc(50% - 90px); }
    .quhj-mag-section-head::after { right: calc(50% - 90px); }
    .quhj-message-grid { grid-template-columns: 1fr; }
    .quhj-ferry-grid { grid-template-columns: 1fr; }
    .quhj-ferry-hotline { grid-template-columns: 1fr; }
    .quhj-ferry-status { flex-wrap: wrap; }
    .quhj-ferry-status-flag { flex-direction: row; min-width: 0; width: 100%; padding: 12px 18px; gap: 10px; }
    .quhj-ferry-status-big { writing-mode: horizontal-tb; text-orientation: initial; letter-spacing: 4px; }
    .quhj-ferry-status-main { padding: 16px 18px; }
    .quhj-ferry-status-label { font-size: 24px; }
    .quhj-ferry-status-side { padding: 10px 18px 14px; }
    .quhj-ferry-sched { grid-template-columns: 1fr; }
    .quhj-tide-week-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .quhj-mag-services-grid { grid-template-columns: 1fr; }
    .quhj-farmstay-grid { grid-template-columns: 1fr; }
    .quhj-mag-gallery-grid { grid-template-columns: 1fr; }
    .quhj-footer-grid { grid-template-columns: 1fr !important; }
    .quhj-tide-week-grid { grid-template-columns: 1fr; }
    .quhj-festival-card { flex-direction: column; }
    .quhj-festival-thumb { width: 100%; height: 150px; }
    .quhj-mag-ads { gap: 8px; }
    .quhj-mag-ad-card { padding: 12px 14px; }
    .quhj-town-entry { grid-template-columns: 1fr; gap: 8px; padding: 18px 0; }
    .quhj-town-entry-index { font-size: 26px; }
}

/* =========================================================
   13. 乡镇页（静态内置版）
   ========================================================= */
.quhj-towns-static {
    padding: 30px 0 60px;
    background: var(--quhj-mag-paper);
}
.quhj-towns-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 34px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--quhj-mag-line);
}
.quhj-town-tag {
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
    letter-spacing: 1px;
    color: #555;
    background: #FFFFFF;
    border: 1px solid var(--quhj-mag-line);
    transition: all 0.2s ease;
}
.quhj-town-tag:hover {
    color: #fff;
    background: var(--quhj-mag-maroon);
    border-color: var(--quhj-mag-maroon);
}
.quhj-towns-list {
    border-top: 1px solid var(--quhj-mag-line);
}
.quhj-town-entry {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 22px;
    padding: 26px 0;
    border-bottom: 1px solid var(--quhj-mag-line);
    scroll-margin-top: 140px;
}
.quhj-town-entry-index {
    font-family: var(--quhj-mag-serif);
    font-size: 34px;
    font-weight: 700;
    color: var(--quhj-mag-red);
    line-height: 1;
    opacity: 0.9;
}
.quhj-town-entry-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 10px;
}
.quhj-town-entry-head h2 {
    font-family: var(--quhj-mag-serif);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--quhj-mag-ink);
    margin: 0;
}
.quhj-town-entry-level {
    font-size: 12px;
    letter-spacing: 2px;
    color: var(--quhj-mag-maroon);
    border: 1px solid rgba(14,134,163,0.4);
    padding: 1px 8px;
    border-radius: 2px;
}
.quhj-town-entry-text p {
    font-size: 14px;
    line-height: 1.9;
    color: #444;
    margin: 0 0 8px;
}
.quhj-town-entry-text p:last-child { margin-bottom: 0; }

/* =========================================================
   乡镇地图（庄河市域轮廓 + 26 乡镇点位）
   ========================================================= */
.quhj-towns-map { padding: 46px 0 10px; }
.quhj-towns-map-head { text-align: center; margin-bottom: 26px; }
.quhj-towns-map-head h2 {
    font-family: var(--quhj-mag-serif);
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 4px;
    color: var(--quhj-mag-ink);
    margin: 6px 0 8px;
}
.quhj-towns-map-hint {
    font-size: 13px;
    letter-spacing: 1px;
    color: var(--quhj-mag-muted);
}
.quhj-towns-map-canvas {
    background: var(--quhj-mag-paper);
    border: 1px solid var(--quhj-mag-line);
    box-shadow: 0 14px 40px rgba(0,0,0,0.06);
    padding: 18px;
}
.quhj-towns-map-canvas svg { display: block; width: 100%; height: auto; }
.quhj-map-sea { fill: #D7E7F2; }
.quhj-map-land path {
    fill: var(--quhj-mag-paper);
    stroke: #CBBFA6;
    stroke-width: 1.2;
    transition: fill 0.25s ease;
}
.quhj-map-point { cursor: pointer; }
/* 点位动效：呼吸 + 心跳波纹，节奏错开 */
.quhj-map-ripple {
    fill: none;
    stroke: var(--quhj-mag-maroon);
    stroke-width: 1.5;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    animation: quhjRipple 2.8s ease-out infinite;
}
@keyframes quhjRipple {
    0%   { transform: scale(0.35); opacity: 0.55; }
    70%  { transform: scale(2.0);  opacity: 0; }
    100% { transform: scale(2.0);  opacity: 0; }
}
.quhj-map-dot {
    transform-box: fill-box;
    transform-origin: center;
    animation: quhjDotBreath 2.8s ease-in-out infinite;
}
@keyframes quhjDotBreath {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.2); }
}
.quhj-map-point:nth-child(3n+1) .quhj-map-ripple { animation-delay: 0s; }
.quhj-map-point:nth-child(3n+2) .quhj-map-ripple { animation-delay: -0.93s; }
.quhj-map-point:nth-child(3n)   .quhj-map-ripple { animation-delay: -1.87s; }
.quhj-map-point:nth-child(3n+1) .quhj-map-dot    { animation-delay: -0.3s; }
.quhj-map-point:nth-child(3n+2) .quhj-map-dot    { animation-delay: -1.23s; }
.quhj-map-point:nth-child(3n)   .quhj-map-dot    { animation-delay: -2.17s; }
.quhj-map-point:hover .quhj-map-ripple { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
    .quhj-map-ripple,
    .quhj-map-dot { animation: none; }
}
.quhj-map-dot {
    fill: var(--quhj-mag-maroon);
    stroke: #FFE9A8;
    stroke-width: 2;
    transition: all 0.25s ease;
}
.quhj-map-point:hover .quhj-map-dot {
    fill: var(--quhj-mag-gold);
    stroke: var(--quhj-mag-maroon);
    stroke-width: 2.5;
    r: 8;
}
.quhj-map-label {
    font-family: var(--quhj-mag-serif);
    font-size: 12px;
    letter-spacing: 1px;
    fill: var(--quhj-mag-ink);
    pointer-events: none;
    paint-order: stroke;
    stroke: var(--quhj-mag-paper);
    stroke-width: 3;
    stroke-linejoin: round;
}
.quhj-map-point:hover .quhj-map-label { fill: var(--quhj-mag-maroon); font-weight: 700; }
.quhj-map-compass-n { font-size: 12px; fill: var(--quhj-mag-muted); letter-spacing: 1px; }
.quhj-map-compass-line { stroke: var(--quhj-mag-muted); stroke-width: 1.4; }

/* 乡镇详情弹层 */
.quhj-town-pop {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(28,28,30,0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}
.quhj-town-pop-open { opacity: 1; visibility: visible; }
.quhj-town-pop-card {
    position: relative;
    width: min(560px, 100%);
    max-height: 82vh;
    background: #FFFFFF;
    border-top: 4px solid var(--quhj-mag-maroon);
    box-shadow: 0 30px 70px rgba(0,0,0,0.28);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.quhj-town-pop-close {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 34px;
    height: 34px;
    border: none;
    background: transparent;
    color: #888;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.2s ease;
}
.quhj-town-pop-close:hover { color: var(--quhj-mag-maroon); }
.quhj-town-pop-head {
    padding: 26px 30px 14px;
    border-bottom: 1px solid var(--quhj-mag-line);
}
.quhj-town-pop-level {
    display: inline-block;
    font-size: 12px;
    letter-spacing: 2px;
    color: var(--quhj-mag-maroon);
    border: 1px solid rgba(14,134,163,0.4);
    padding: 1px 8px;
    border-radius: 2px;
    margin-bottom: 10px;
}
.quhj-town-pop-head h3 {
    font-family: var(--quhj-mag-serif);
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 3px;
    color: var(--quhj-mag-ink);
    margin: 0;
}
.quhj-town-pop-text {
    padding: 18px 30px 22px;
    overflow-y: auto;
}
.quhj-town-pop-text p {
    font-size: 14px;
    line-height: 1.9;
    color: #444;
    margin: 0 0 10px;
}
.quhj-town-pop-text p:last-child { margin-bottom: 0; }
.quhj-town-pop-foot {
    padding: 12px 30px 18px;
    border-top: 1px solid var(--quhj-mag-line);
}
.quhj-town-pop-anchor {
    font-size: 13px;
    letter-spacing: 1px;
    color: var(--quhj-mag-maroon);
    text-decoration: none;
}
.quhj-town-pop-anchor:hover { color: var(--quhj-mag-red); }
@media (max-width: 640px) {
    .quhj-town-pop-card { max-height: 88vh; }
    .quhj-town-pop-head { padding: 22px 20px 12px; }
    .quhj-town-pop-text { padding: 14px 20px 18px; }
    .quhj-town-pop-foot { padding: 10px 20px 14px; }
}

/* =========================================================
   故事页：杂志风紧凑卡片网格（双列竖卡 + 编号 + 按图取色）
   ========================================================= */
.quhj-story-page .quhj-story-filter { margin-bottom: 30px; }
.quhj-archive-meta-bar.quhj-story-bar {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}
.quhj-story-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    max-width: 1120px;
    margin: 0 auto;
}
.quhj-story-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: linear-gradient(135deg, var(--quhj-mag-paper) 0%, #FFFFFF 100%);
    border: 1px solid var(--quhj-mag-line);
    box-shadow: 0 8px 24px rgba(0,0,0,0.05);
    border-radius: 2px;
    overflow: hidden;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.quhj-story-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 46px rgba(0,0,0,0.12);
}
.quhj-story-media {
    position: relative;
    aspect-ratio: 16 / 9.4;
    overflow: hidden;
}
.quhj-story-thumb {
    position: relative;
    display: block;
    height: 100%;
    overflow: hidden;
    aspect-ratio: auto;
}
.quhj-story-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.quhj-story-card:hover .quhj-story-thumb img { transform: scale(1.06); }
.quhj-story-index {
    display: none;
}
.quhj-story-cat-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    left: auto;
    bottom: auto;
    font-family: var(--quhj-mag-serif);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 6px;
    line-height: 1.4;
    color: #fff;
    background: var(--quhj-mag-maroon);
    padding: 7px 20px 8px;
    border-radius: 2px;
    box-shadow: 0 8px 22px rgba(0,0,0,0.22);
    z-index: 2;
}
.quhj-story-cat-badge::after {
    content: '';
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 4px;
    height: 2px;
    background: rgba(255,255,255,0.35);
}

/* 非遗：级别角标（大号 + 分级配色） */
.quhj-level-badge { letter-spacing: 4px; }
.quhj-level-national { background: #8E2436; }
.quhj-level-province  { background: #1F5FA8; }
.quhj-level-city      { background: #2E7D32; }
.quhj-level-county    { background: #64748B; }

/* 风物：分类角标移到左上，价格大标签在右上（杂志金） */
.quhj-local-page .quhj-local-cat {
    top: 16px;
    right: auto;
    left: 16px;
    letter-spacing: 4px;
}
.quhj-price-tag {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    font-family: var(--quhj-mag-serif);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 2px;
    line-height: 1.4;
    color: #fff;
    background: linear-gradient(135deg, #C9A227 0%, #A97E14 100%);
    padding: 7px 16px 8px;
    border-radius: 2px;
    box-shadow: 0 8px 22px rgba(0,0,0,0.22);
}
.quhj-price-tag::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 4px;
    height: 2px;
    background: rgba(255,255,255,0.4);
}
.quhj-story-body {
    position: relative;
    padding: 18px 22px 62px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.quhj-story-meta {
    display: flex;
    gap: 10px;
    align-items: baseline;
    font-size: 12px;
    letter-spacing: 1.5px;
    color: #7A756B;
    margin-bottom: 10px;
}
.quhj-story-views::before {
    content: '·';
    margin-right: 10px;
    color: var(--quhj-mag-red);
}
.quhj-story-body h2 {
    font-family: var(--quhj-mag-serif);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 1.2px;
    line-height: 1.55;
    margin: 0 0 10px;
}
.quhj-story-body h2 a {
    color: var(--quhj-mag-ink);
    text-decoration: none;
    transition: color 0.25s ease;
}
.quhj-story-body h2 a:hover { color: var(--quhj-mag-maroon); }
.quhj-story-excerpt {
    font-size: 13px !important;
    line-height: 1.8 !important;
    color: #4A4842 !important;
    margin: 0 0 14px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    max-height: 3.6em !important; /* 非 webkit 兜底，确保永远只有两行 */
    flex: 0 0 auto !important;    /* 不被 flex 压缩，杜绝文字溢出到按钮下方 */
}
.quhj-story-more {
    position: absolute;
    left: 22px;
    bottom: 20px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px 7px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 3px;
    color: #fff;
    background: var(--quhj-mag-maroon);
    text-decoration: none;
    transition: background 0.25s ease, gap 0.3s ease;
}
.quhj-story-more span { transition: transform 0.3s ease; }
.quhj-story-card:hover .quhj-story-more { gap: 12px; background: var(--quhj-mag-red); }
.quhj-story-card:hover .quhj-story-more span { transform: translateX(4px); }
/* 故事页：筛选条与统计行杂志化 */
.quhj-story-page .quhj-cat-filter { justify-content: center; gap: 4px; }
.quhj-story-page .quhj-cat-btn {
    font-size: 14px;
    letter-spacing: 3px;
    color: var(--quhj-mag-muted);
    background: transparent;
    border: none;
}
.quhj-story-page .quhj-cat-btn.active {
    color: var(--quhj-mag-maroon);
    font-weight: 700;
}
.quhj-story-page .quhj-cat-btn.active::after { background: var(--quhj-mag-maroon); }

/* 杂志式计数条（故事 / 非遗 / 风物统一） */
.quhj-mag-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    max-width: 760px;
    margin: 0 auto 26px;
}
.quhj-mag-bar::before,
.quhj-mag-bar::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--quhj-mag-maroon));
    opacity: 0.42;
}
.quhj-mag-bar::after {
    background: linear-gradient(270deg, transparent, var(--quhj-mag-maroon));
}
.quhj-mag-bar-en {
    font-family: var(--quhj-mag-serif);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 4px;
    color: var(--quhj-mag-maroon);
    white-space: nowrap;
}
.quhj-mag-bar-cn {
    font-family: var(--quhj-mag-serif);
    font-size: 15px;
    letter-spacing: 4px;
    color: var(--quhj-mag-muted);
    white-space: nowrap;
}
.quhj-mag-bar-cn strong {
    font-size: 22px;
    font-weight: 700;
    color: var(--quhj-mag-maroon);
    margin: 0 3px;
}
@media (max-width: 900px) {
    .quhj-story-list { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 720px) {
    .quhj-story-media { aspect-ratio: 16 / 10; }
    .quhj-story-body { padding: 16px 18px 56px; }
    .quhj-story-body h2 { font-size: 18px; }
    .quhj-story-more { left: 18px; bottom: 16px; }
}
