/*
 * 庄河融风 3.4 · 城市风土与旅行编辑设计
 */

.zhrf-editorial-kicker { color: var(--zhrf-teal); font-size: 9px; font-weight: 600; letter-spacing: .22em; }

/* 首页：头条下方的三行生活通讯 */
.zhrf-news-lead-column { display: flex; min-width: 0; flex-direction: column; }
.zhrf-news-layout { align-items: stretch; }
.zhrf-news-list { display: flex; flex-direction: column; }
.zhrf-news-list ol { display: flex; flex: 1; flex-direction: column; }
.zhrf-news-list li { flex: 1; align-content: center; }
.zhrf-directory { display: block; margin: 38px 0 0; padding-top: 18px; border-top: 1px solid var(--zhrf-line); border-bottom: 0; }
.zhrf-directory > p { flex-direction: row; align-items: center; justify-content: space-between; padding: 0 0 10px; border-bottom: 1px solid var(--zhrf-line); font-family: var(--zhrf-sans); font-size: 11px; }
.zhrf-directory > p span { margin: 0; font-size: 8px; }
.zhrf-directory > a { display: grid; grid-template-columns: minmax(0,1fr) auto 18px; align-items: center; gap: 14px; padding: 13px 0; border: 0; border-bottom: 1px solid var(--zhrf-line); }
.zhrf-directory > a:hover { background: transparent; }
.zhrf-directory > a > span { display: flex; min-width: 0; align-items: baseline; gap: 12px; }
.zhrf-directory a strong { color: var(--zhrf-ink); font-family: var(--zhrf-serif); font-size: 13px; font-weight: 600; white-space: nowrap; }
.zhrf-directory a small { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zhrf-directory a b { font-size: 12px; white-space: nowrap; }
.zhrf-directory a i { color: var(--zhrf-teal); font-size: 13px; font-style: normal; transition: transform .2s; }
.zhrf-directory a:hover i { transform: translate(2px,-2px); }

/* 船班：通栏路线，港口名称始终保持一行 */
.zhrf-ferry-card { padding: 25px 30px 24px; }
.zhrf-ferry-route-title { margin-top: 17px; }
.zhrf-ferry-route-line { display: grid; grid-template-columns: minmax(0,1fr) 64px minmax(0,1fr); align-items: center; gap: 15px; margin: 17px 0 23px; }
.zhrf-ferry-route-line > div { min-width: 0; }
.zhrf-ferry-route-line > div:last-child { text-align: right; }
.zhrf-ferry-route-line small { display: block; margin-bottom: 5px; color: var(--zhrf-teal); font-size: 8px; letter-spacing: .14em; }
.zhrf-ferry-route-line strong { display: block; color: var(--zhrf-ink); font-family: var(--zhrf-serif); font-size: clamp(12px,1.8vw,25px); font-weight: 600; line-height: 1.4; letter-spacing: .025em; white-space: nowrap; }
.zhrf-ferry-route-line > span { display: flex; align-items: center; gap: 6px; color: var(--zhrf-teal); }
.zhrf-ferry-route-line > span i { flex: 1; height: 1px; background: var(--zhrf-line); }
.zhrf-ferry-route-line > span b { font-size: 19px; font-weight: 400; }
.zhrf-ferry-card-body { display: grid; grid-template-columns: 170px minmax(0,1fr); align-items: stretch; gap: 28px; padding-top: 20px; border-top: 1px solid var(--zhrf-line); }
.zhrf-ferry-card-body .zhrf-ferry-facts { display: flex; flex-direction: column; justify-content: center; gap: 0; padding: 7px 20px; background: var(--zhrf-sage); border: 0; }
.zhrf-ferry-card-body .zhrf-ferry-facts > span { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; }
.zhrf-ferry-card-body .zhrf-ferry-facts > span + span { border-top: 1px solid var(--zhrf-line); }
.zhrf-ferry-card-body .zhrf-ferry-facts strong { font-size: 12px; }
.zhrf-ferry-card-body .zhrf-ferry-schedule { align-content: center; gap: 24px; }
.zhrf-ferry-card-note { margin-top: 18px; }

/* 乡镇：风土图志 */
.zhrf-towns-header .quhj-page-title { max-width: 900px; }
.zhrf-atlas-section { padding: 62px 0 90px; background: #eef2ec; }
.zhrf-atlas-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 26px; padding-bottom: 17px; border-bottom: 2px solid var(--zhrf-ink); }
.zhrf-atlas-head > div > span { color: var(--zhrf-teal); font-size: 8px; letter-spacing: .2em; }
.zhrf-atlas-head h2 { margin-top: 4px; font-family: var(--zhrf-serif); font-size: 29px; letter-spacing: .08em; }
.zhrf-atlas-head > p { max-width: 380px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; text-align: right; }
.zhrf-atlas-layout { display: grid; grid-template-columns: 230px minmax(0,1fr) 310px; align-items: start; gap: 18px; }
.zhrf-town-browser { min-width: 0; background: var(--zhrf-paper-light); border: 1px solid var(--zhrf-line); }
.zhrf-town-search { display: block; padding: 19px 18px 13px; }
.zhrf-town-search > span { display: block; margin-bottom: 8px; color: var(--zhrf-muted); font-size: 9px; letter-spacing: .1em; }
.zhrf-town-search input { width: 100%; height: 38px; padding: 0 10px; color: var(--zhrf-ink); background: #f1f4ee; border: 1px solid var(--zhrf-line); font-size: 12px; }
.zhrf-town-filters { display: grid; grid-template-columns: repeat(4,1fr); padding: 0 18px 16px; }
.zhrf-town-filters button { padding: 6px 2px; color: var(--zhrf-muted); background: transparent; border: 1px solid var(--zhrf-line); border-right: 0; cursor: pointer; font-size: 10px; }
.zhrf-town-filters button:last-child { border-right: 1px solid var(--zhrf-line); }
.zhrf-town-filters button.is-active { color: #fff; background: var(--zhrf-teal); border-color: var(--zhrf-teal); }
.zhrf-town-index { max-height: 618px; overflow-y: auto; border-top: 1px solid var(--zhrf-line); scrollbar-width: thin; }
.zhrf-town-index button { display: grid; grid-template-columns: 25px 1fr auto; align-items: center; gap: 8px; width: 100%; padding: 11px 14px; color: var(--zhrf-text); background: transparent; border: 0; border-bottom: 1px solid var(--zhrf-line); text-align: left; cursor: pointer; }
.zhrf-town-index button > span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 10px; font-style: italic; }
.zhrf-town-index button strong { font-family: var(--zhrf-serif); font-size: 13px; font-weight: 500; }
.zhrf-town-index button small { color: var(--zhrf-muted); font-size: 8px; }
.zhrf-town-index button:hover,
.zhrf-town-index button.is-active { color: var(--zhrf-teal); background: var(--zhrf-sage); }
.zhrf-town-index button.is-active { box-shadow: inset 3px 0 var(--zhrf-teal); }
.zhrf-town-index button[hidden],
.zhrf-town-card[hidden] { display: none; }
.zhrf-town-result { padding: 10px 15px; color: var(--zhrf-muted); font-size: 8px; letter-spacing: .14em; text-align: right; }
.zhrf-town-result span { color: var(--zhrf-teal); font-family: Georgia,serif; font-size: 16px; }
.zhrf-atlas-map-panel { min-width: 0; padding: 19px; background: #e3ece6; border: 1px solid #cddbd2; }
.zhrf-atlas-map-meta { display: flex; justify-content: space-between; gap: 15px; padding: 0 2px 13px; color: var(--zhrf-muted); font-size: 7px; letter-spacing: .14em; }
.zhrf-atlas-map { padding: 0; overflow: hidden; background: transparent; }
.zhrf-atlas-map svg { display: block; width: 100%; height: auto; }
.zhrf-atlas-map .quhj-map-sea { fill: #e3ece6; }
.zhrf-atlas-map .quhj-map-land path { fill: #f8f8f2; stroke: #87a296; stroke-width: 1.15; }
.zhrf-atlas-map .quhj-map-point { cursor: pointer; outline: none; transition: opacity .25s; }
.zhrf-atlas-map .quhj-map-dot { fill: var(--zhrf-teal); stroke: #f8f8f2; stroke-width: 2; }
.zhrf-atlas-map .quhj-map-label { fill: var(--zhrf-ink); font-family: var(--zhrf-sans); font-size: 12px; }
.zhrf-atlas-map .quhj-map-ripple { fill: var(--zhrf-teal); opacity: .13; }
.zhrf-atlas-map .quhj-map-point.is-active .quhj-map-dot,
.zhrf-atlas-map .quhj-map-point:focus .quhj-map-dot { fill: var(--zhrf-coral); stroke-width: 3; }
.zhrf-atlas-map .quhj-map-point.is-active .quhj-map-label { fill: var(--zhrf-coral); font-weight: 700; }
.zhrf-atlas-map .quhj-map-point.is-muted { opacity: .1; pointer-events: none; }
.zhrf-atlas-map-note { padding: 12px 2px 0; color: var(--zhrf-muted); font-size: 8px; text-align: center; }
.zhrf-town-detail { min-width: 0; min-height: 580px; padding: 27px 26px; color: #eaf0e9; background: var(--zhrf-ocean); }
.zhrf-town-detail-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; color: #9fbdb7; border-bottom: 1px solid rgba(255,255,255,.17); font-size: 8px; letter-spacing: .18em; }
.zhrf-town-detail-top b { font-family: Georgia,serif; font-size: 12px; font-weight: 400; }
.zhrf-town-detail-level { display: inline-block; margin-top: 26px; padding: 3px 9px; color: #c3ddd3; border: 1px solid rgba(255,255,255,.25); font-size: 9px; }
.zhrf-town-detail h2 { margin: 13px 0 20px; font-family: var(--zhrf-serif); font-size: 34px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; }
.zhrf-town-detail-text { max-height: 440px; overflow-y: auto; padding-right: 7px; color: rgba(255,255,255,.7); font-family: var(--zhrf-serif); font-size: 12px; line-height: 2; scrollbar-width: thin; }
.zhrf-town-detail-text p { margin-bottom: 1em; }
.zhrf-town-detail > a { display: flex; align-items: center; justify-content: space-between; margin-top: 25px; padding-top: 16px; color: #d6e6df; border-top: 1px solid rgba(255,255,255,.17); font-size: 10px; letter-spacing: .06em; }
.zhrf-town-archive { padding: 85px 0 105px; }
.zhrf-town-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.zhrf-town-card { min-width: 0; padding: 25px 25px 22px; background: var(--zhrf-paper-light); border: 1px solid var(--zhrf-line); scroll-margin-top: 30px; }
.zhrf-town-card:target { border-color: var(--zhrf-coral); box-shadow: inset 0 3px var(--zhrf-coral); }
.zhrf-town-card > header { display: flex; align-items: center; justify-content: space-between; }
.zhrf-town-card > header span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 27px; font-style: italic; }
.zhrf-town-card > header small { padding: 2px 8px; color: var(--zhrf-teal); background: var(--zhrf-sage); font-size: 9px; }
.zhrf-town-card h3 { margin: 14px 0 12px; font-family: var(--zhrf-serif); font-size: 24px; letter-spacing: .06em; }
.zhrf-town-card > p { min-height: 6.4em; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; line-height: 2; }
.zhrf-town-card details { margin-top: 18px; border-top: 1px solid var(--zhrf-line); }
.zhrf-town-card summary { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; color: var(--zhrf-teal); cursor: pointer; font-size: 11px; list-style: none; }
.zhrf-town-card summary::-webkit-details-marker { display: none; }
.zhrf-town-card details[open] summary span { transform: rotate(45deg); }
.zhrf-town-card details > div { padding-top: 15px; color: var(--zhrf-text); font-family: var(--zhrf-serif); font-size: 13px; line-height: 2.05; }
.zhrf-town-empty { padding: 60px 0; color: var(--zhrf-muted); text-align: center; }

/* 走进庄河：城市风土长卷 */
.zhrf-city-hero { position: relative; min-height: 690px; height: 82vh; max-height: 850px; overflow: hidden; color: #fff; background: var(--zhrf-ink); }
.zhrf-city-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.zhrf-city-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(9,35,33,.76),rgba(9,35,33,.12) 70%),linear-gradient(0deg,rgba(9,35,33,.55),transparent 50%); }
.zhrf-city-hero-inner { position: relative; display: flex; height: 100%; flex-direction: column; padding-top: 36px; padding-bottom: 40px; }
.zhrf-city-breadcrumb { margin-bottom: auto; }
.zhrf-city-breadcrumb .quhj-breadcrumb { color: rgba(255,255,255,.7) !important; }
.zhrf-city-hero-inner > p { margin-bottom: 15px; color: #c2d9d0; font-size: 9px; letter-spacing: .24em; }
.zhrf-city-hero h1 { font-family: var(--zhrf-serif); font-size: clamp(52px,6.5vw,88px); font-weight: 600; line-height: 1.35; letter-spacing: .07em; }
.zhrf-city-hero h1 em { color: #c8e1d6; font-style: normal; }
.zhrf-city-hero-foot { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 30px; margin-top: 45px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.35); font-size: 10px; }
.zhrf-city-hero-foot p { font-family: var(--zhrf-serif); font-size: 13px; }
.zhrf-city-hero-foot i { font-style: normal; letter-spacing: .12em; }
.zhrf-city-intro { padding: 100px 0; }
.zhrf-city-intro-grid { display: grid; grid-template-columns: .55fr 1fr 1fr; gap: 45px; align-items: start; margin-bottom: 60px; }
.zhrf-city-intro-grid h2,
.zhrf-city-landscape-copy h2,
.zhrf-city-honors h2 { font-family: var(--zhrf-serif); font-size: clamp(31px,3.4vw,45px); font-weight: 600; line-height: 1.55; letter-spacing: .06em; }
.zhrf-city-intro-grid > div > p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2.1; }
.zhrf-city-intro-grid a { display: inline-flex; gap: 25px; margin-top: 23px; padding-bottom: 5px; color: var(--zhrf-teal); border-bottom: 1px solid currentColor; font-size: 11px; }
.zhrf-city-nine { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--zhrf-line); border-left: 1px solid var(--zhrf-line); }
.zhrf-city-nine article { display: grid; grid-template-columns: 24px 90px 1fr; align-items: center; gap: 16px; min-height: 160px; padding: 24px; border-right: 1px solid var(--zhrf-line); border-bottom: 1px solid var(--zhrf-line); }
.zhrf-city-nine article > span { align-self: start; color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 10px; font-style: italic; }
.zhrf-city-nine article > strong { color: var(--zhrf-teal); font-family: var(--zhrf-serif); font-size: 65px; font-weight: 400; line-height: 1; }
.zhrf-city-nine small { color: var(--zhrf-muted); font-size: 7px; letter-spacing: .16em; }
.zhrf-city-nine p { margin-top: 8px; color: var(--zhrf-text); font-family: var(--zhrf-serif); font-size: 12px; }
.zhrf-city-landscape { padding: 100px 0; background: var(--zhrf-sage); }
.zhrf-city-landscape-grid { display: grid; grid-template-columns: 1.12fr .88fr; align-items: center; gap: 75px; }
.zhrf-city-landscape figure { height: 610px; }
.zhrf-city-landscape figure img { width: 100%; height: 100%; object-fit: cover; }
.zhrf-city-landscape figcaption { padding-top: 10px; color: var(--zhrf-muted); font-size: 9px; }
.zhrf-city-landscape-copy > p:not(.zhrf-editorial-kicker) { margin-top: 25px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2.15; }
.zhrf-city-landscape-copy dl { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 42px; padding-top: 25px; border-top: 1px solid #bdcbbf; }
.zhrf-city-landscape-copy dt { color: var(--zhrf-teal); font-family: Georgia,serif; font-size: 36px; }
.zhrf-city-landscape-copy dt small { margin-left: 4px; font-family: var(--zhrf-sans); font-size: 9px; }
.zhrf-city-landscape-copy dd { margin-top: 4px; color: var(--zhrf-muted); font-size: 10px; }
.zhrf-city-seasons { padding: 100px 0; }
.zhrf-city-seasons header { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 35px; }
.zhrf-city-seasons h2 { margin-top: 7px; font-family: var(--zhrf-serif); font-size: 37px; letter-spacing: .06em; }
.zhrf-city-seasons header > p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; }
.zhrf-city-season-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.zhrf-city-season-grid a { position: relative; aspect-ratio: .76; overflow: hidden; color: #fff; background: var(--zhrf-ink); }
.zhrf-city-season-grid a::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 45%,rgba(11,34,30,.75)); }
.zhrf-city-season-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.zhrf-city-season-grid a:hover img { transform: scale(1.045); }
.zhrf-city-season-grid span,
.zhrf-city-season-grid strong { position: absolute; right: 20px; bottom: 52px; left: 20px; z-index: 2; font-size: 8px; letter-spacing: .17em; }
.zhrf-city-season-grid strong { bottom: 22px; font-family: var(--zhrf-serif); font-size: 21px; font-weight: 600; letter-spacing: .1em; }
.zhrf-city-honors { padding: 100px 0; background: var(--zhrf-paper-light); }
.zhrf-city-honors-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.zhrf-city-honors-grid > div:first-child > p:last-child { max-width: 460px; margin-top: 22px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 13px; line-height: 2; }
.zhrf-city-honor-list { border-top: 2px solid var(--zhrf-ink); }
.zhrf-city-honor-list p { display: grid; grid-template-columns: 38px 1fr; padding: 15px 0; border-bottom: 1px solid var(--zhrf-line); font-family: var(--zhrf-serif); font-size: 15px; }
.zhrf-city-honor-list span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 10px; font-style: italic; }
.zhrf-city-location { padding: 95px 0; color: #f0f4ed; background: var(--zhrf-ocean); text-align: center; }
.zhrf-city-location-inner > div { display: flex; justify-content: center; gap: 35px; color: #a6c5bb; font-size: 9px; letter-spacing: .18em; }
.zhrf-city-location h2 { margin: 25px 0 18px; font-family: var(--zhrf-serif); font-size: clamp(36px,4vw,53px); font-weight: 600; line-height: 1.5; letter-spacing: .08em; }
.zhrf-city-location p { color: rgba(255,255,255,.65); font-family: var(--zhrf-serif); font-size: 13px; }
.zhrf-city-location a { display: inline-flex; gap: 35px; margin-top: 30px; padding-bottom: 6px; color: #dcebe3; border-bottom: 1px solid #9dbbb0; font-size: 12px; }

/* 关于我们：编辑部档案 */
.zhrf-about-hero { padding: 65px 0 95px; }
.zhrf-about-hero-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 75px; }
.zhrf-about-hero-copy > div { margin-bottom: 65px; }
.zhrf-about-hero h1 { margin: 18px 0 25px; font-family: var(--zhrf-serif); font-size: clamp(43px,4.8vw,65px); font-weight: 600; line-height: 1.5; letter-spacing: .055em; }
.zhrf-about-hero h1 em { display: inline-block; color: var(--zhrf-teal); font-style: normal; }
.zhrf-about-hero-copy > p:not(.zhrf-editorial-kicker) { max-width: 470px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2.1; }
.zhrf-about-hero-copy > a { display: inline-flex; gap: 28px; margin-top: 28px; padding-bottom: 6px; color: var(--zhrf-teal); border-bottom: 1px solid currentColor; font-size: 11px; }
.zhrf-about-hero figure { height: 650px; }
.zhrf-about-hero figure img { width: 100%; height: calc(100% - 38px); object-fit: cover; }
.zhrf-about-hero figcaption { display: flex; justify-content: space-between; padding-top: 13px; color: var(--zhrf-muted); border-bottom: 1px solid var(--zhrf-line); font-size: 8px; letter-spacing: .15em; }
.zhrf-about-manifesto { padding: 100px 0; color: #eef3ec; background: var(--zhrf-ocean); }
.zhrf-about-manifesto .zhrf-editorial-kicker { color: #a4c4b9; }
.zhrf-about-manifesto blockquote { max-width: 1100px; margin: 35px auto; font-family: var(--zhrf-serif); font-size: clamp(26px,3vw,40px); line-height: 1.9; text-align: center; }
.zhrf-about-manifesto blockquote em { color: #bcd9cb; font-style: normal; }
.zhrf-about-manifesto .quhj-container > div { display: flex; justify-content: space-between; padding-top: 20px; color: #9fb9b0; border-top: 1px solid rgba(255,255,255,.17); font-size: 8px; letter-spacing: .15em; }
.zhrf-about-work { padding: 100px 0; }
.zhrf-about-work header { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 35px; }
.zhrf-about-work h2 { margin-top: 8px; font-family: var(--zhrf-serif); font-size: 38px; letter-spacing: .08em; }
.zhrf-about-work header > p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; }
.zhrf-about-work-list { border-top: 2px solid var(--zhrf-ink); }
.zhrf-about-work-list > a { display: grid; grid-template-columns: 45px 250px 1fr 25px; align-items: center; gap: 25px; padding: 25px 10px; border-bottom: 1px solid var(--zhrf-line); transition: background .25s,padding .25s; }
.zhrf-about-work-list > a:hover { padding-right: 18px; padding-left: 18px; background: var(--zhrf-sage); }
.zhrf-about-work-list > a > span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 13px; font-style: italic; }
.zhrf-about-work-list h3 { font-family: var(--zhrf-serif); font-size: 23px; font-weight: 600; }
.zhrf-about-work-list h3 small { display: block; margin-top: 3px; color: var(--zhrf-muted); font-family: var(--zhrf-sans); font-size: 7px; font-weight: 400; letter-spacing: .16em; }
.zhrf-about-work-list p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; line-height: 1.9; }
.zhrf-about-work-list i { color: var(--zhrf-teal); font-style: normal; }
.zhrf-about-method { padding: 90px 0; background: var(--zhrf-sage); }
.zhrf-about-method h2 { margin: 8px 0 35px; font-family: var(--zhrf-serif); font-size: 36px; letter-spacing: .06em; }
.zhrf-about-method-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 50px; }
.zhrf-about-method-grid article { padding-top: 20px; border-top: 1px solid #aebfb3; }
.zhrf-about-method-grid span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 13px; font-style: italic; }
.zhrf-about-method-grid h3 { margin: 12px 0; font-family: var(--zhrf-serif); font-size: 24px; }
.zhrf-about-method-grid p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 13px; line-height: 2; }
.zhrf-about-contact { padding: 100px 0; }
.zhrf-about-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.zhrf-about-contact h2 { margin: 12px 0 20px; font-family: var(--zhrf-serif); font-size: 41px; font-weight: 600; line-height: 1.55; }
.zhrf-about-contact-grid > div:first-child > p:last-child { max-width: 460px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 13px; line-height: 2; }
.zhrf-about-contact-list { border-top: 2px solid var(--zhrf-ink); }
.zhrf-about-contact-list > a:not(.zhrf-about-submit),
.zhrf-about-contact-list > p { position: relative; display: block; padding: 20px 25px 20px 0; border-bottom: 1px solid var(--zhrf-line); }
.zhrf-about-contact-list span { display: block; color: var(--zhrf-muted); font-size: 9px; }
.zhrf-about-contact-list strong { display: block; margin-top: 6px; color: var(--zhrf-ink); font-family: var(--zhrf-serif); font-size: 18px; font-weight: 500; }
.zhrf-about-contact-list i { position: absolute; top: 28px; right: 0; color: var(--zhrf-teal); font-style: normal; }
.zhrf-about-submit { display: inline-flex; gap: 40px; margin-top: 28px; padding: 13px 20px; color: #fff; background: var(--zhrf-teal); font-size: 12px; }
.zhrf-about-submit span { color: #fff; font-size: 14px; }

/* 休闲旅游：旅行灵感与目的地章节 */
.zhrf-travel-hero { padding: 65px 0 90px; overflow: hidden; }
.zhrf-travel-hero-grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 65px; }
.zhrf-travel-hero-copy > div:first-child { margin-bottom: 50px; }
.zhrf-travel-hero h1 { margin: 18px 0 22px; font-family: var(--zhrf-serif); font-size: clamp(42px,4.6vw,63px); font-weight: 600; line-height: 1.5; letter-spacing: .05em; }
.zhrf-travel-hero h1 em { display: inline-block; color: var(--zhrf-teal); font-style: normal; }
.zhrf-travel-hero-copy > p:not(.zhrf-editorial-kicker) { max-width: 470px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2.1; }
.zhrf-travel-hero-actions { display: flex; flex-wrap: wrap; gap: 25px; margin-top: 30px; }
.zhrf-travel-hero-actions a { display: inline-flex; gap: 25px; padding-bottom: 5px; color: var(--zhrf-teal); border-bottom: 1px solid currentColor; font-size: 11px; }
.zhrf-travel-hero-facts { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 48px; }
.zhrf-travel-hero-facts span { color: var(--zhrf-muted); font-size: 9px; }
.zhrf-travel-hero-facts strong { margin-right: 3px; color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 21px; font-weight: 400; }
.zhrf-travel-hero-collage { position: relative; height: 650px; }
.zhrf-travel-hero-collage figure { position: absolute; margin: 0; }
.zhrf-travel-hero-collage .is-main { top: 0; left: 0; width: 74%; height: 580px; }
.zhrf-travel-hero-collage .is-small { right: 0; bottom: 0; z-index: 2; width: 43%; height: 335px; padding: 9px; background: var(--zhrf-paper); }
.zhrf-travel-hero-collage img { width: 100%; height: 100%; object-fit: cover; }
.zhrf-travel-hero-collage figcaption { padding-top: 8px; color: var(--zhrf-muted); font-size: 7px; letter-spacing: .16em; }
.zhrf-travel-hero-collage > span { position: absolute; top: 30px; right: 0; color: var(--zhrf-teal); font-family: Georgia,serif; font-size: 13px; font-style: italic; line-height: 1.6; letter-spacing: .08em; writing-mode: vertical-rl; }
.zhrf-travel-chapter-nav { position: sticky; top: 0; z-index: 60; background: rgba(248,248,243,.96); border-top: 1px solid var(--zhrf-line); border-bottom: 1px solid var(--zhrf-line); backdrop-filter: blur(12px); }
.zhrf-travel-chapter-nav .quhj-container { display: flex; overflow-x: auto; scrollbar-width: none; }
.zhrf-travel-chapter-nav .quhj-container::-webkit-scrollbar { display: none; }
.zhrf-travel-chapter-nav a { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 8px; flex: 1 0 auto; padding: 15px 17px; color: var(--zhrf-muted); border-right: 1px solid var(--zhrf-line); white-space: nowrap; }
.zhrf-travel-chapter-nav a:first-child { border-left: 1px solid var(--zhrf-line); }
.zhrf-travel-chapter-nav a > span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 10px; font-style: italic; }
.zhrf-travel-chapter-nav a strong { font-size: 11px; font-weight: 500; }
.zhrf-travel-chapter-nav a small { display: grid; place-items: center; min-width: 18px; height: 18px; color: var(--zhrf-muted); background: var(--zhrf-sage); border-radius: 50%; font-size: 8px; }
.zhrf-travel-chapter-nav a.active,
.zhrf-travel-chapter-nav a:hover { color: var(--zhrf-teal); background: var(--zhrf-sage); box-shadow: inset 0 -2px var(--zhrf-teal); }
.zhrf-travel-routes { padding: 90px 0; background: var(--zhrf-sage); }
.zhrf-travel-routes header { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.zhrf-travel-routes h2 { margin-top: 8px; font-family: var(--zhrf-serif); font-size: 37px; letter-spacing: .07em; }
.zhrf-travel-routes header > p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; }
.zhrf-travel-route-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.zhrf-travel-route-grid > a { position: relative; min-height: 310px; padding: 30px; background: var(--zhrf-paper-light); border: 1px solid var(--zhrf-line); transition: color .3s,background .3s,transform .3s; }
.zhrf-travel-route-grid > a:hover { color: #fff; background: var(--zhrf-teal-dark); transform: translateY(-4px); }
.zhrf-travel-route-grid > a > span { color: var(--zhrf-coral); font-size: 8px; letter-spacing: .18em; }
.zhrf-travel-route-grid h3 { margin: 20px 0; font-family: var(--zhrf-serif); font-size: 29px; font-weight: 600; line-height: 1.55; }
.zhrf-travel-route-grid p { color: var(--zhrf-muted); font-size: 11px; }
.zhrf-travel-route-grid i { position: absolute; right: 30px; bottom: 27px; left: 30px; padding-top: 13px; color: var(--zhrf-teal); border-top: 1px solid var(--zhrf-line); font-size: 10px; font-style: normal; }
.zhrf-travel-route-grid > a:hover p,
.zhrf-travel-route-grid > a:hover i { color: #d5e7df; }
.zhrf-travel-chapters { padding: 25px 0 100px; }
.zhrf-travel-chapter { margin: 75px 0 100px !important; scroll-margin-top: 65px; }
.zhrf-travel-chapter-head { display: grid; grid-template-columns: 85px 1fr auto; align-items: end; gap: 25px; margin-bottom: 28px !important; padding: 20px 0 18px !important; border-top: 2px solid var(--zhrf-ink); border-bottom: 1px solid var(--zhrf-line) !important; }
.zhrf-travel-chapter-no { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--zhrf-line); }
.zhrf-travel-chapter-no span { color: var(--zhrf-muted); font-size: 7px; letter-spacing: .15em; }
.zhrf-travel-chapter-no strong { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 45px; font-weight: 400; line-height: 1; }
.zhrf-travel-chapter-head > div:nth-child(2) > small { color: var(--zhrf-teal); font-size: 8px; letter-spacing: .18em; }
.zhrf-travel-chapter-head h2 { margin-top: 3px; font-family: var(--zhrf-serif); font-size: 32px !important; letter-spacing: .08em !important; }
.zhrf-travel-chapter-head p { margin-top: 4px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; }
.zhrf-travel-chapter-head > span { padding-bottom: 4px; color: var(--zhrf-muted); font-size: 9px; }
.zhrf-travel-scenic-grid { display: grid !important; grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-flow: dense; grid-auto-rows: 260px; gap: 16px !important; }
.zhrf-travel-scenic-grid .quhj-scenic-card { position: relative; grid-column: span 3; width: 100%; min-width: 0; height: 260px; aspect-ratio: auto; overflow: hidden; color: #fff; background: var(--zhrf-ink); }
.zhrf-travel-scenic-grid .quhj-scenic-card.is-lead { grid-column: span 6; grid-row: span 2; height: 536px; }
.zhrf-travel-scenic-grid .quhj-scenic-card > img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.zhrf-travel-scenic-grid .quhj-scenic-card:hover > img { transform: scale(1.045) !important; }
.zhrf-travel-card-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(10,31,28,.05) 35%,rgba(10,31,28,.86)); }
.zhrf-travel-card-index { position: absolute; top: 17px; left: 18px; font-family: Georgia,serif; font-size: 12px; font-style: italic; }
.zhrf-travel-scenic-grid .quhj-badge { top: 15px; right: 15px; padding: 4px 8px; font-size: 8px; }
.zhrf-travel-scenic-grid .quhj-scenic-card-info { position: absolute; right: 20px; bottom: 20px; left: 20px; padding: 0; background: none !important; }
.zhrf-travel-scenic-grid .quhj-scenic-card-info small { font-size: 7px; letter-spacing: .16em; opacity: .75; }
.zhrf-travel-scenic-grid .quhj-scenic-card-info h4 { margin-top: 4px; font-size: 21px; line-height: 1.45; }
.zhrf-travel-scenic-grid .quhj-scenic-card-info p { display: -webkit-box; margin-top: 6px; overflow: hidden; font-size: 10px; line-height: 1.7; opacity: .8; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.zhrf-travel-scenic-grid .quhj-scenic-card-info i { display: none; margin-top: 14px; font-size: 10px; font-style: normal; }
.zhrf-travel-scenic-grid .is-lead .quhj-scenic-card-info { right: 32px; bottom: 30px; left: 32px; }
.zhrf-travel-scenic-grid .is-lead .quhj-scenic-card-info h4 { font-size: 35px; }
.zhrf-travel-scenic-grid .is-lead .quhj-scenic-card-info p { max-width: 520px; font-size: 12px; }
.zhrf-travel-scenic-grid .is-lead .quhj-scenic-card-info i { display: block; }
.zhrf-travel-food-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px 18px !important; }
.zhrf-travel-food-grid .quhj-food-card { min-width: 0; }
.zhrf-travel-food-grid .quhj-food-card.is-lead { grid-column: span 2; }
.zhrf-travel-food-grid .quhj-food-img { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.zhrf-travel-food-grid .is-lead .quhj-food-img { aspect-ratio: 16/8.2; }
.zhrf-travel-food-grid .quhj-food-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.zhrf-travel-food-grid .quhj-food-card:hover img { transform: scale(1.04); }
.zhrf-travel-food-grid .quhj-food-img > span { position: absolute; top: 13px; left: 13px; padding: 4px 8px; color: var(--zhrf-ink); background: rgba(253,253,249,.9); font-size: 7px; letter-spacing: .12em; }
.zhrf-travel-food-grid .quhj-food-card > div:last-child { padding: 16px 2px 18px; }
.zhrf-travel-food-grid h3 { font-size: 20px; }
.zhrf-travel-food-grid p { display: -webkit-box; margin-top: 7px; overflow: hidden; font-size: 12px; line-height: 1.8; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.zhrf-travel-food-grid i { display: block; margin-top: 12px; color: var(--zhrf-teal); font-size: 10px; font-style: normal; }
.zhrf-travel-notes-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 35px !important; border-top: 1px solid var(--zhrf-line); }
.zhrf-travel-notes-grid .quhj-list-card { display: grid; grid-template-columns: 55px 1fr 20px; align-items: start; gap: 17px; padding: 26px 5px; border: 0; border-bottom: 1px solid var(--zhrf-line); }
.zhrf-travel-notes-grid .quhj-list-num { position: static; color: var(--zhrf-coral) !important; font-family: Georgia,serif; font-size: 34px; font-style: italic; line-height: 1; }
.zhrf-travel-notes-grid .quhj-list-body small { color: var(--zhrf-teal); font-size: 7px; letter-spacing: .16em; }
.zhrf-travel-notes-grid h3 { margin-top: 5px; font-size: 19px; line-height: 1.55; }
.zhrf-travel-notes-grid p { display: -webkit-box; margin-top: 8px; overflow: hidden; color: var(--zhrf-muted); font-size: 11px; line-height: 1.8; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.zhrf-travel-notes-grid .quhj-list-arrow { padding-top: 5px; }
.zhrf-travel-service { padding: 75px 0; color: #edf3ec; background: var(--zhrf-ocean); }
.zhrf-travel-service .quhj-container { display: grid; grid-template-columns: 1.2fr repeat(3,1fr); gap: 0; }
.zhrf-travel-service h2 { margin-top: 8px; font-family: var(--zhrf-serif); font-size: 29px; font-weight: 600; line-height: 1.55; }
.zhrf-travel-service .zhrf-editorial-kicker { color: #a9c7bd; }
.zhrf-travel-service .quhj-container > a { position: relative; padding: 10px 25px; border-left: 1px solid rgba(255,255,255,.17); }
.zhrf-travel-service a > span { color: #a7c5ba; font-family: Georgia,serif; font-size: 11px; }
.zhrf-travel-service a > strong { display: block; margin-top: 20px; font-family: var(--zhrf-serif); font-size: 20px; }
.zhrf-travel-service a > p { margin-top: 5px; color: rgba(255,255,255,.58); font-size: 10px; }
.zhrf-travel-service a > i { position: absolute; top: 12px; right: 22px; color: #bdd5ca; font-style: normal; }

/* 渔家乐：双岛屿名录与商家档案 */
.zhrf-farm-hero { padding: 65px 0 85px; overflow: hidden; }
.zhrf-farm-hero-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 75px; }
.zhrf-farm-hero-copy .quhj-breadcrumb { margin-bottom: 55px; }
.zhrf-farm-hero h1 { margin: 18px 0 22px; font-family: var(--zhrf-serif); font-size: clamp(43px,4.8vw,64px); font-weight: 600; line-height: 1.45; letter-spacing: .04em; }
.zhrf-farm-hero h1 em { display: inline-block; color: var(--zhrf-teal); font-style: normal; }
.zhrf-farm-hero-copy > p:not(.zhrf-editorial-kicker) { max-width: 470px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2.1; }
.zhrf-farm-hero-facts { display: flex; gap: 35px; margin-top: 38px; }
.zhrf-farm-hero-facts span { color: var(--zhrf-muted); font-size: 10px; }
.zhrf-farm-hero-facts strong { margin-right: 6px; color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 25px; font-weight: 400; }
.zhrf-farm-hero-image { height: 535px; margin: 0; }
.zhrf-farm-hero-image img { width: 100%; height: calc(100% - 37px); object-fit: cover; }
.zhrf-farm-hero-image figcaption { display: flex; justify-content: space-between; gap: 15px; padding-top: 12px; color: var(--zhrf-muted); border-bottom: 1px solid var(--zhrf-line); font-size: 8px; letter-spacing: .12em; }
.zhrf-farm-island-nav { background: var(--zhrf-sage); border-top: 1px solid var(--zhrf-line); border-bottom: 1px solid var(--zhrf-line); }
.zhrf-farm-island-nav .quhj-container { display: grid; grid-template-columns: 1fr 1fr; }
.zhrf-farm-island-nav a { display: grid; grid-template-columns: 35px 1fr auto; align-items: center; gap: 15px; min-height: 82px; padding: 15px 30px; }
.zhrf-farm-island-nav a + a { border-left: 1px solid var(--zhrf-line); }
.zhrf-farm-island-nav a > span { color: var(--zhrf-coral); font-family: Georgia,serif; font-size: 13px; font-style: italic; }
.zhrf-farm-island-nav a strong { font-family: var(--zhrf-serif); font-size: 17px; font-weight: 600; }
.zhrf-farm-island-nav a i { color: var(--zhrf-teal); font-style: normal; }
.zhrf-farm-island-nav a:hover { background: rgba(255,255,255,.42); }
.zhrf-farm-island-section { padding: 80px 0 95px; scroll-margin-top: 25px; }
.zhrf-farm-island-section + .zhrf-farm-island-section { border-top: 1px solid var(--zhrf-line); }
.zhrf-farm-shicheng { background: #eef2ec; }
.zhrf-farm-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 30px; padding-top: 18px; border-top: 2px solid var(--zhrf-ink); }
.zhrf-farm-section-head span { color: var(--zhrf-teal); font-size: 8px; letter-spacing: .18em; }
.zhrf-farm-section-head h2 { margin-top: 5px; font-family: var(--zhrf-serif); font-size: clamp(27px,3vw,38px); font-weight: 600; letter-spacing: .05em; }
.zhrf-farm-section-head > small { padding-bottom: 7px; color: var(--zhrf-muted); font-size: 7px; letter-spacing: .17em; }
.zhrf-farm-pending { display: grid; place-items: center; min-height: 215px; color: var(--zhrf-muted); border: 1px dashed #b9c8bd; font-family: var(--zhrf-serif); font-size: 18px; letter-spacing: .22em; }
.zhrf-farm-profile-list { display: grid; gap: 85px; }
.zhrf-farm-profile { background: var(--zhrf-paper-light); border: 1px solid var(--zhrf-line); }
.zhrf-farm-profile-main { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 520px; }
.zhrf-farm-cover { position: relative; min-height: 520px; overflow: hidden; background: var(--zhrf-ocean); }
.zhrf-farm-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.zhrf-farm-profile:hover .zhrf-farm-cover img { transform: scale(1.025); }
.zhrf-farm-cover > span { position: absolute; top: 22px; left: 22px; padding: 7px 11px; color: var(--zhrf-ink); background: rgba(253,253,249,.92); font-size: 8px; letter-spacing: .13em; }
.zhrf-farm-cover > small { position: absolute; right: 16px; bottom: 14px; padding: 5px 8px; color: #fff; background: rgba(24,48,44,.66); font-size: 8px; letter-spacing: .08em; }
.zhrf-farm-intro { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 48px; }
.zhrf-farm-place { color: var(--zhrf-teal); font-size: 8px; line-height: 1.7; letter-spacing: .14em; }
.zhrf-farm-intro h3 { margin: 12px 0 20px; font-family: var(--zhrf-serif); font-size: clamp(34px,4vw,46px); font-weight: 600; letter-spacing: .05em; }
.zhrf-farm-summary { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2; }
.zhrf-farm-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.zhrf-farm-tags span { padding: 5px 10px; color: var(--zhrf-teal); background: var(--zhrf-sage); font-size: 9px; }
.zhrf-farm-actions { margin-top: 35px; }
.zhrf-farm-call { position: relative; display: block; padding: 17px 45px 17px 19px; color: #f3f6ef; background: var(--zhrf-ocean); }
.zhrf-farm-call small { display: block; color: #a8c4b9; font-size: 7px; letter-spacing: .15em; }
.zhrf-farm-call strong { display: block; margin-top: 5px; font-family: Georgia,serif; font-size: 25px; font-weight: 400; letter-spacing: .04em; }
.zhrf-farm-call > span { position: absolute; top: 25px; right: 20px; color: #c5dcd1; }
.zhrf-farm-call:hover { color: #fff; background: var(--zhrf-teal-dark); }
.zhrf-farm-more { display: flex; justify-content: space-between; margin-top: 16px; padding: 10px 0; color: var(--zhrf-teal); border-bottom: 1px solid var(--zhrf-line); font-size: 10px; }
.zhrf-farm-experience { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--zhrf-line); }
.zhrf-farm-experience > section { min-width: 0; padding: 38px; }
.zhrf-farm-experience > section + section { border-left: 1px solid var(--zhrf-line); }
.zhrf-farm-experience header { padding-bottom: 13px; border-bottom: 1px solid var(--zhrf-line); }
.zhrf-farm-experience header span { color: var(--zhrf-coral); font-size: 8px; letter-spacing: .15em; }
.zhrf-farm-experience h4 { margin-top: 4px; font-family: var(--zhrf-serif); font-size: 25px; }
.zhrf-farm-experience section > p { margin: 15px 0 20px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; line-height: 1.9; }
.zhrf-farm-gallery-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.zhrf-farm-photo { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--zhrf-sage); }
.zhrf-farm-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.zhrf-farm-photo > span { position: absolute; right: 10px; bottom: 10px; display: grid; place-items: center; width: 25px; height: 25px; color: var(--zhrf-ink); background: rgba(255,255,255,.88); }
.zhrf-farm-photo:hover img { transform: scale(1.045); }
.zhrf-farm-image-note { margin: 10px 0 0 !important; font-family: var(--zhrf-sans) !important; font-size: 8px !important; }
.zhrf-farm-full-content { max-width: 780px; padding: 35px 48px 0; color: var(--zhrf-text); font-family: var(--zhrf-serif); font-size: 14px; line-height: 2.1; }
.zhrf-farmstay-single { padding-bottom: 100px; }
.zhrf-farmstay-single .zhrf-farm-profile { margin-top: 40px; }

@media (max-width: 900px) {
    .zhrf-farm-hero-grid { gap: 35px; }
    .zhrf-farm-hero-image { height: 470px; }
    .zhrf-farm-profile-main { grid-template-columns: 1fr; }
    .zhrf-farm-cover { min-height: 460px; }
    .zhrf-farm-experience > section { padding: 28px; }
}
@media (max-width: 760px) {
    .zhrf-farm-hero-grid { grid-template-columns: 1fr; }
    .zhrf-farm-hero-copy .quhj-breadcrumb { margin-bottom: 35px; }
    .zhrf-farm-hero-image { height: 480px; }
    .zhrf-farm-experience { grid-template-columns: 1fr; }
    .zhrf-farm-experience > section + section { border-top: 1px solid var(--zhrf-line); border-left: 0; }
}
@media (max-width: 620px) {
    .zhrf-farm-hero { padding: 40px 0 60px; }
    .zhrf-farm-hero h1 { font-size: 39px; }
    .zhrf-farm-hero-image { height: 350px; }
    .zhrf-farm-island-nav .quhj-container { grid-template-columns: 1fr; }
    .zhrf-farm-island-nav a { min-height: 68px; padding: 12px 5px; }
    .zhrf-farm-island-nav a + a { border-top: 1px solid var(--zhrf-line); border-left: 0; }
    .zhrf-farm-island-nav a strong { font-size: 15px; }
    .zhrf-farm-island-section { padding: 55px 0 65px; }
    .zhrf-farm-section-head { align-items: flex-start; }
    .zhrf-farm-section-head > small { display: none; }
    .zhrf-farm-section-head h2 { font-size: 26px; line-height: 1.5; }
    .zhrf-farm-pending { min-height: 160px; font-size: 15px; }
    .zhrf-farm-profile-list { gap: 55px; }
    .zhrf-farm-cover { min-height: 330px; }
    .zhrf-farm-intro { padding: 28px 24px; }
    .zhrf-farm-intro h3 { font-size: 34px; }
    .zhrf-farm-summary { font-size: 13px; }
    .zhrf-farm-call strong { font-size: 22px; }
    .zhrf-farm-experience > section { padding: 25px 22px; }
    .zhrf-farm-gallery-grid { gap: 7px; }
    .zhrf-farm-full-content { padding: 25px 24px 0; font-size: 13px; }
    .zhrf-farmstay-single { padding-bottom: 65px; }
}

/* 文章页快捷返回 */
.zhrf-article-return { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; padding-top: 15px; padding-bottom: 15px; border-top: 1px solid var(--zhrf-line); border-bottom: 1px solid var(--zhrf-line); }
.zhrf-article-return a { display: inline-flex; align-items: center; gap: 10px; color: var(--zhrf-teal); font-size: 11px; letter-spacing: .06em; }
.zhrf-article-return a:hover { color: var(--zhrf-coral); }
.zhrf-article-return + .quhj-single,
.zhrf-article-return + .quhj-single-page { padding-top: 32px !important; }

@media (max-width: 1180px) {
    .zhrf-atlas-layout { grid-template-columns: 220px minmax(0,1fr); }
    .zhrf-town-detail { grid-column: 1 / -1; min-height: 0; }
    .zhrf-town-detail-text { max-height: 300px; }
    .zhrf-town-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .zhrf-city-intro-grid { grid-template-columns: .4fr 1fr 1fr; gap: 30px; }
    .zhrf-city-nine article { grid-template-columns: 20px 65px 1fr; padding: 20px 15px; }
    .zhrf-city-nine article > strong { font-size: 53px; }
    .zhrf-about-work-list > a { grid-template-columns: 40px 210px 1fr 20px; }
    .zhrf-travel-scenic-grid .quhj-scenic-card { grid-column: span 4; }
    .zhrf-travel-scenic-grid .quhj-scenic-card.is-lead { grid-column: span 8; }
    .zhrf-travel-service .quhj-container { grid-template-columns: 1fr repeat(3,1fr); }
}
@media (max-width: 900px) {
    .zhrf-city-intro-grid { grid-template-columns: 1fr 1fr; }
    .zhrf-city-intro-grid > p { grid-column: 1 / -1; }
    .zhrf-city-landscape-grid { gap: 40px; }
    .zhrf-city-landscape figure { height: 500px; }
    .zhrf-city-nine { grid-template-columns: repeat(2,1fr); }
    .zhrf-city-honors-grid { gap: 50px; }
    .zhrf-about-hero-grid,
    .zhrf-travel-hero-grid { gap: 35px; }
    .zhrf-about-hero figure { height: 550px; }
    .zhrf-about-work-list > a { grid-template-columns: 35px 190px 1fr 18px; gap: 15px; }
    .zhrf-about-contact-grid { gap: 45px; }
    .zhrf-travel-hero-collage { height: 540px; }
    .zhrf-travel-hero-collage .is-main { height: 480px; }
    .zhrf-travel-hero-collage .is-small { height: 270px; }
    .zhrf-travel-route-grid > a { padding: 24px; }
    .zhrf-travel-route-grid i { right: 24px; left: 24px; }
    .zhrf-travel-scenic-grid .quhj-scenic-card { grid-column: span 6; }
    .zhrf-travel-scenic-grid .quhj-scenic-card.is-lead { grid-column: span 12; }
    .zhrf-travel-notes-grid { grid-template-columns: 1fr; }
    .zhrf-travel-service .quhj-container { grid-template-columns: 1fr 1fr 1fr; row-gap: 40px; }
    .zhrf-travel-service .quhj-container > div { grid-column: 1 / -1; }
    .zhrf-travel-service .quhj-container > a:nth-child(2) { border-left: 0; }
}
@media (max-width: 760px) {
    .zhrf-atlas-layout { grid-template-columns: 1fr; }
    .zhrf-atlas-map-panel { order: 1; }
    .zhrf-town-detail { order: 2; }
    .zhrf-town-browser { order: 3; }
    .zhrf-town-index { max-height: 360px; }
    .zhrf-atlas-head { align-items: flex-start; flex-direction: column; gap: 8px; }
    .zhrf-atlas-head > p { text-align: left; }
    .zhrf-city-landscape-grid { grid-template-columns: 1fr; }
    .zhrf-city-landscape figure { height: 480px; }
    .zhrf-city-season-grid { grid-template-columns: repeat(2,1fr); }
    .zhrf-city-honors-grid { grid-template-columns: 1fr; }
    .zhrf-about-hero-grid,
    .zhrf-travel-hero-grid { grid-template-columns: 1fr; }
    .zhrf-about-hero-copy > div,
    .zhrf-travel-hero-copy > div:first-child { margin-bottom: 35px; }
    .zhrf-about-hero figure { height: 550px; }
    .zhrf-about-work-list > a { grid-template-columns: 35px 1fr 20px; }
    .zhrf-about-work-list p { grid-column: 2 / 3; }
    .zhrf-about-work-list i { grid-column: 3; grid-row: 1; }
    .zhrf-about-method-grid { gap: 25px; }
    .zhrf-about-contact-grid { grid-template-columns: 1fr; }
    .zhrf-travel-hero-collage { height: 600px; }
    .zhrf-travel-hero-collage .is-main { height: 530px; }
    .zhrf-travel-hero-collage .is-small { height: 300px; }
    .zhrf-travel-route-grid { grid-template-columns: 1fr; }
    .zhrf-travel-route-grid > a { min-height: 275px; }
    .zhrf-travel-food-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .zhrf-travel-service .quhj-container { grid-template-columns: 1fr; }
    .zhrf-travel-service .quhj-container > a { padding: 22px 0; border-top: 1px solid rgba(255,255,255,.17); border-left: 0; }
    .zhrf-travel-service a > strong { margin-top: 7px; }
    .zhrf-ferry-card-body { grid-template-columns: 1fr; gap: 20px; }
    .zhrf-ferry-card-body .zhrf-ferry-facts { flex-direction: row; padding: 10px 15px; }
    .zhrf-ferry-card-body .zhrf-ferry-facts > span { flex: 1; }
    .zhrf-ferry-card-body .zhrf-ferry-facts > span + span { margin-left: 18px; padding-left: 18px; border-top: 0; border-left: 1px solid var(--zhrf-line); }
}
@media (max-width: 620px) {
    .zhrf-directory > a { grid-template-columns: minmax(0,1fr) auto 12px; gap: 8px; }
    .zhrf-directory > a > span { display: block; }
    .zhrf-directory a small { display: block; margin-top: 2px; }
    .zhrf-directory a b { font-size: 10px; }
    .zhrf-ferry-card { padding: 20px 17px; }
    .zhrf-ferry-route-line { grid-template-columns: minmax(0,1fr) 27px minmax(0,1fr); gap: 5px; }
    .zhrf-ferry-route-line small { font-size: 6px; letter-spacing: .06em; }
    .zhrf-ferry-route-line > span i { display: none; }
    .zhrf-ferry-route-line > span { justify-content: center; }
    .zhrf-ferry-route-line strong { font-size: 12px; letter-spacing: 0; }
    .zhrf-ferry-card-body .zhrf-ferry-schedule { gap: 12px; }
    .zhrf-town-card-grid { grid-template-columns: 1fr; }
    .zhrf-atlas-section { padding: 45px 0 65px; }
    .zhrf-town-detail { padding: 25px 22px; }
    .zhrf-atlas-map-panel { padding: 10px; }
    .zhrf-atlas-map .quhj-map-label { font-size: 14px; }
    .zhrf-town-archive { padding: 65px 0; }
    .zhrf-city-hero { min-height: 640px; height: 78vh; }
    .zhrf-city-hero h1 { font-size: 46px; }
    .zhrf-city-hero-foot { grid-template-columns: 1fr auto; gap: 15px; margin-top: 30px; }
    .zhrf-city-hero-foot p { display: none; }
    .zhrf-city-intro,
    .zhrf-city-landscape,
    .zhrf-city-seasons,
    .zhrf-city-honors,
    .zhrf-about-work,
    .zhrf-about-contact { padding: 65px 0; }
    .zhrf-city-intro-grid { grid-template-columns: 1fr; gap: 20px; margin-bottom: 40px; }
    .zhrf-city-nine article { grid-template-columns: 15px 48px 1fr; min-height: 125px; padding: 16px 12px; gap: 8px; }
    .zhrf-city-nine article > strong { font-size: 43px; }
    .zhrf-city-nine p { font-size: 10px; }
    .zhrf-city-landscape figure { height: 360px; }
    .zhrf-city-landscape-copy dt { font-size: 29px; }
    .zhrf-city-seasons header { align-items: flex-start; flex-direction: column; gap: 8px; }
    .zhrf-city-seasons h2 { font-size: 29px; }
    .zhrf-city-season-grid { gap: 8px; }
    .zhrf-city-location { padding: 65px 0; }
    .zhrf-city-location-inner > div { flex-direction: column; gap: 5px; }
    .zhrf-about-hero,
    .zhrf-travel-hero { padding: 40px 0 65px; }
    .zhrf-about-hero h1,
    .zhrf-travel-hero h1 { font-size: 40px; }
    .zhrf-about-hero figure { height: 420px; }
    .zhrf-about-manifesto { padding: 65px 0; }
    .zhrf-about-manifesto blockquote { font-size: 24px; text-align: left; }
    .zhrf-about-manifesto .quhj-container > div { flex-direction: column; gap: 6px; }
    .zhrf-about-work header { align-items: flex-start; flex-direction: column; gap: 8px; }
    .zhrf-about-work h2 { font-size: 31px; }
    .zhrf-about-work-list > a { padding: 20px 3px; }
    .zhrf-about-work-list h3 { font-size: 20px; }
    .zhrf-about-method { padding: 65px 0; }
    .zhrf-about-method h2 { font-size: 28px; line-height: 1.6; }
    .zhrf-about-method-grid { grid-template-columns: 1fr; }
    .zhrf-about-contact h2 { font-size: 32px; }
    .zhrf-travel-hero-collage { height: 480px; }
    .zhrf-travel-hero-collage .is-main { height: 430px; }
    .zhrf-travel-hero-collage .is-small { height: 230px; }
    .zhrf-travel-hero-collage > span { display: none; }
    .zhrf-travel-routes { padding: 65px 0; }
    .zhrf-travel-routes header { align-items: flex-start; flex-direction: column; gap: 8px; }
    .zhrf-travel-routes h2 { font-size: 29px; }
    .zhrf-travel-chapter { margin: 60px 0 75px !important; }
    .zhrf-travel-chapter-head { grid-template-columns: 55px 1fr; gap: 15px; }
    .zhrf-travel-chapter-head > span { display: none; }
    .zhrf-travel-chapter-no strong { font-size: 35px; }
    .zhrf-travel-chapter-head h2 { font-size: 26px !important; }
    .zhrf-travel-scenic-grid { grid-auto-rows: 230px; gap: 10px !important; }
    .zhrf-travel-scenic-grid .quhj-scenic-card { grid-column: span 12; height: 230px; }
    .zhrf-travel-scenic-grid .quhj-scenic-card.is-lead { height: 360px; grid-row: span 1; }
    .zhrf-travel-scenic-grid .is-lead .quhj-scenic-card-info h4 { font-size: 28px; }
    .zhrf-travel-food-grid { grid-template-columns: 1fr; }
    .zhrf-travel-food-grid .quhj-food-card.is-lead { grid-column: span 1; }
    .zhrf-travel-notes-grid .quhj-list-card { grid-template-columns: 42px 1fr 16px; gap: 12px; }
    .zhrf-travel-notes-grid .quhj-list-num { font-size: 28px; }
    .zhrf-article-return { margin-top: 20px; }
}

/* 船班 3.6：港口航班信息台 */
.zhrf-sail-hero { position: relative; overflow: hidden; padding: 32px 0 0; color: #f4f5ec; background: #173f3b; }
.zhrf-sail-hero::before { content: 'FERRY'; position: absolute; right: -25px; bottom: 45px; color: rgba(255,255,255,.027); font-family: Georgia,serif; font-size: clamp(150px,22vw,320px); line-height: .8; letter-spacing: -.08em; pointer-events: none; }
.zhrf-sail-hero .quhj-container { position: relative; }
.zhrf-sail-hero .quhj-breadcrumb { margin-bottom: 58px; color: rgba(255,255,255,.5); }
.zhrf-sail-hero .quhj-breadcrumb a { color: rgba(255,255,255,.72); }
.zhrf-sail-hero-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(340px,.9fr); align-items: end; gap: 75px; padding-bottom: 58px; }
.zhrf-sail-kicker { color: #a8c9bb; font-size: 9px; font-weight: 600; letter-spacing: .24em; }
.zhrf-sail-hero h1 { margin-top: 14px; font-family: var(--zhrf-serif); font-size: clamp(60px,7vw,94px); font-weight: 600; line-height: 1.15; letter-spacing: .06em; }
.zhrf-sail-slogan { margin-top: 16px; font-family: var(--zhrf-serif); font-size: clamp(25px,3vw,38px); line-height: 1.5; letter-spacing: .08em; }
.zhrf-sail-slogan em { color: #b9d6c7; font-style: normal; }
.zhrf-sail-intro { max-width: 490px; margin-top: 25px; color: rgba(255,255,255,.64); font-family: var(--zhrf-serif); font-size: 13px; line-height: 2; }
.zhrf-sail-next { position: relative; padding: 28px 32px 25px; color: var(--zhrf-ink); background: #e6ede3; box-shadow: 16px 16px 0 rgba(5,29,27,.18); }
.zhrf-sail-next-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding-bottom: 18px; border-bottom: 1px solid #c8d3c7; color: var(--zhrf-muted); font-size: 8px; }
.zhrf-sail-next-top > span { display: inline-flex; align-items: center; gap: 7px; color: var(--zhrf-teal); line-height: 1.6; }
.zhrf-sail-next-top i { flex: 0 0 auto; width: 7px; height: 7px; background: #4d9576; border-radius: 50%; box-shadow: 0 0 0 4px rgba(77,149,118,.12); }
.zhrf-sail-hero[data-status="danger"] .zhrf-sail-next-top i { background: var(--zhrf-coral); box-shadow: 0 0 0 4px rgba(188,89,69,.12); }
.zhrf-sail-hero[data-status="night"] .zhrf-sail-next-top i { background: #ad8b4c; box-shadow: 0 0 0 4px rgba(173,139,76,.12); }
.zhrf-sail-next > p { margin-top: 27px; color: var(--zhrf-teal); font-size: 8px; letter-spacing: .17em; }
.zhrf-sail-next > strong { display: block; margin: 9px 0 6px; font-family: Georgia,serif; font-size: clamp(72px,8vw,104px); font-weight: 400; line-height: 1; letter-spacing: -.055em; }
.zhrf-sail-current-status { display: flex; align-items: center; gap: 16px; min-height: 142px; margin: 12px 0 18px; }
.zhrf-sail-current-status > i { flex: 0 0 auto; width: 12px; height: 12px; background: #4d9576; border-radius: 50%; box-shadow: 0 0 0 7px rgba(77,149,118,.12); }
.zhrf-sail-current-status > strong { color: var(--zhrf-teal); font-family: var(--zhrf-serif); font-size: clamp(36px,4.2vw,56px); font-weight: 600; line-height: 1.35; letter-spacing: .04em; }
.zhrf-sail-hero[data-status="danger"] .zhrf-sail-current-status > i { background: var(--zhrf-coral); box-shadow: 0 0 0 6px rgba(188,89,69,.12); }
.zhrf-sail-hero[data-status="danger"] .zhrf-sail-current-status > strong { color: var(--zhrf-coral); }
.zhrf-sail-hero[data-status="night"] .zhrf-sail-current-status > i { background: #ad8b4c; box-shadow: 0 0 0 6px rgba(173,139,76,.12); }
.zhrf-sail-hero[data-status="night"] .zhrf-sail-current-status > strong { color: #8a6c39; }
.zhrf-sail-next > small { display: block; min-height: 38px; color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 12px; line-height: 1.65; }
.zhrf-sail-next-foot { display: flex; justify-content: space-between; gap: 15px; margin-top: 22px; padding-top: 15px; border-top: 1px solid #c8d3c7; color: var(--zhrf-muted); font-size: 9px; }
.zhrf-sail-next-foot b { color: var(--zhrf-ink); font-family: Georgia,serif; font-size: 12px; font-weight: 400; }
.zhrf-sail-next-foot a { color: var(--zhrf-teal); }
.zhrf-sail-hero-foot { display: flex; align-items: center; gap: 36px; min-height: 84px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.55); font-size: 10px; }
.zhrf-sail-hero-foot strong { margin-right: 6px; color: #fff; font-family: Georgia,serif; font-size: 24px; font-weight: 400; }
.zhrf-sail-hero-foot a { display: flex; align-items: center; gap: 20px; margin-left: auto; color: #d4e2d7; font-size: 11px; }
.zhrf-sail-hero-foot a i { font-size: 17px; font-style: normal; }
.zhrf-sail-main { background: #f3f4ee; }
.zhrf-sail-board { padding: 80px 0 95px; scroll-margin-top: 20px; }
.zhrf-sail-board-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 28px; padding-bottom: 20px; border-bottom: 2px solid var(--zhrf-ink); }
.zhrf-sail-board-head > div > span,
.zhrf-sail-hotlines header span { color: var(--zhrf-teal); font-size: 8px; letter-spacing: .21em; }
.zhrf-sail-board-head h2,
.zhrf-sail-hotlines header h2 { margin-top: 5px; font-family: var(--zhrf-serif); font-size: clamp(28px,3vw,38px); font-weight: 600; letter-spacing: .05em; }
.zhrf-sail-board-head p { margin-top: 8px; color: var(--zhrf-muted); font-size: 10px; }
.zhrf-sail-filter { display: flex; flex: 0 0 auto; }
.zhrf-sail-filter button { min-width: 65px; padding: 10px 15px; color: var(--zhrf-muted); background: transparent; border: 1px solid var(--zhrf-line); border-right: 0; cursor: pointer; font-size: 11px; }
.zhrf-sail-filter button:last-child { border-right: 1px solid var(--zhrf-line); }
.zhrf-sail-filter button.active { color: #fff; background: var(--zhrf-ocean); border-color: var(--zhrf-ocean); }
.zhrf-sail-route-list { display: grid; gap: 26px; }
.zhrf-sail-route { min-width: 0; background: var(--zhrf-paper-light); border: 1px solid var(--zhrf-line); box-shadow: 0 8px 24px rgba(30,54,48,.035); }
.zhrf-sail-route[hidden] { display: none; }
.zhrf-sail-route-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 55px; padding: 10px 30px; background: #edf0e9; border-bottom: 1px solid var(--zhrf-line); }
.zhrf-sail-route-head > div { display: flex; align-items: center; gap: 17px; }
.zhrf-sail-route-head > span { color: var(--zhrf-muted); font-size: 9px; letter-spacing: .08em; }
.zhrf-sail-route-head small { color: var(--zhrf-muted); font-size: 8px; letter-spacing: .18em; }
.zhrf-sail-direction { display: inline-flex; align-items: center; gap: 7px; padding: 5px 10px; color: #fff; background: var(--zhrf-teal); font-size: 10px; }
.zhrf-sail-direction i { font-size: 13px; font-style: normal; }
.zhrf-sail-route[data-direction="out"] .zhrf-sail-direction { background: var(--zhrf-coral); }
.zhrf-sail-route-body { display: grid; grid-template-columns: minmax(320px,.85fr) minmax(0,1.15fr); }
.zhrf-sail-journey { min-width: 0; padding: 32px 40px 35px; }
.zhrf-sail-port small { display: block; margin-bottom: 5px; color: var(--zhrf-teal); font-size: 7px; letter-spacing: .18em; }
.zhrf-sail-port strong { display: block; color: var(--zhrf-ink); font-family: var(--zhrf-serif); font-size: clamp(23px,2.35vw,32px); font-weight: 600; line-height: 1.4; letter-spacing: .025em; }
.zhrf-sail-track { position: relative; display: flex; align-items: center; min-height: 38px; margin: 7px 0; padding-left: 2px; }
.zhrf-sail-track > span { width: 1px; height: 38px; background: #b8c8bd; }
.zhrf-sail-track > b { position: absolute; top: 9px; left: -4px; padding: 1px 3px; color: var(--zhrf-teal); background: var(--zhrf-paper-light); font-size: 14px; font-weight: 400; }
.zhrf-sail-track > em { margin-left: 14px; color: var(--zhrf-muted); font-size: 9px; font-style: normal; }
.zhrf-sail-schedule { min-width: 0; padding: 32px 35px 35px; border-left: 1px solid var(--zhrf-line); }
.zhrf-sail-schedule-head { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-bottom: 17px; }
.zhrf-sail-schedule-head > span { font-family: var(--zhrf-serif); font-size: 16px; font-weight: 600; }
.zhrf-sail-schedule-head > small { color: var(--zhrf-muted); font-size: 7px; letter-spacing: .16em; }
.zhrf-sail-time-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.zhrf-sail-time { position: relative; display: flex; min-width: 0; min-height: 82px; flex-direction: column; align-items: center; justify-content: center; color: var(--zhrf-ink); background: #edf1e9; border-bottom: 2px solid #bccbbf; transition: opacity .2s,background .2s; }
.zhrf-sail-time strong { font-family: Georgia,serif; font-size: clamp(20px,2vw,26px); font-weight: 400; line-height: 1; white-space: nowrap; }
.zhrf-sail-time small { margin-top: 8px; color: var(--zhrf-muted); font-size: 8px; }
.zhrf-sail-time.is-past { opacity: .34; }
.zhrf-sail-time.is-next { color: #fff; background: var(--zhrf-teal); border-bottom-color: var(--zhrf-teal-dark); opacity: 1; }
.zhrf-sail-time.is-next small { color: rgba(255,255,255,.7); }
.zhrf-sail-time.is-next::after { content: 'NEXT'; position: absolute; top: 6px; right: 7px; color: #d6e9dd; font-size: 6px; letter-spacing: .12em; }
.zhrf-sail-no-time { display: grid; place-items: center; min-height: 115px; padding: 20px; color: var(--zhrf-muted); background: #edf1e9; border: 1px dashed #bdc9bd; font-family: var(--zhrf-serif); font-size: 13px; text-align: center; }
.zhrf-sail-route-foot { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 18px 30px; border-top: 1px solid var(--zhrf-line); }
.zhrf-sail-route-foot dl { display: flex; flex: 0 0 auto; gap: 30px; }
.zhrf-sail-route-foot dl > div { display: flex; align-items: baseline; gap: 8px; }
.zhrf-sail-route-foot dt { color: var(--zhrf-muted); font-size: 9px; }
.zhrf-sail-route-foot dd { color: var(--zhrf-ink); font-size: 11px; }
.zhrf-sail-route-foot > p { max-width: 52%; color: var(--zhrf-muted); font-size: 9px; line-height: 1.7; text-align: right; }
.zhrf-sail-hotlines { padding: 75px 0 70px; background: #e4ece2; scroll-margin-top: 20px; }
.zhrf-sail-hotlines header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.zhrf-sail-hotlines header > p { color: var(--zhrf-muted); font-family: var(--zhrf-serif); font-size: 11px; line-height: 1.8; text-align: right; }
.zhrf-sail-hotline-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.zhrf-sail-hotline-grid > a { position: relative; min-width: 0; min-height: 195px; padding: 25px 26px; background: rgba(255,255,255,.32); border-top: 2px solid var(--zhrf-ink); border-bottom: 1px solid #c2cec1; transition: background .2s,transform .2s; }
.zhrf-sail-hotline-grid > a:hover { background: var(--zhrf-paper-light); transform: translateY(-3px); }
.zhrf-sail-hotline-grid a > span { color: var(--zhrf-teal); font-size: 7px; letter-spacing: .17em; }
.zhrf-sail-hotline-grid h3 { margin-top: 22px; font-family: var(--zhrf-serif); font-size: 19px; font-weight: 600; }
.zhrf-sail-hotline-grid strong { display: block; margin-top: 8px; color: var(--zhrf-teal); font-family: Georgia,serif; font-size: clamp(21px,2.1vw,28px); font-weight: 400; letter-spacing: .02em; white-space: nowrap; }
.zhrf-sail-hotline-grid a > i { position: absolute; right: 24px; bottom: 23px; color: var(--zhrf-muted); font-size: 9px; font-style: normal; }
.zhrf-sail-disclaimer { margin-top: 25px; padding-top: 17px; color: var(--zhrf-muted); border-top: 1px solid #c5d0c4; font-size: 9px; line-height: 1.8; }

@media (max-width: 1100px) {
    .zhrf-sail-hero-grid { gap: 40px; }
    .zhrf-sail-route-body { grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); }
    .zhrf-sail-journey { padding-right: 28px; padding-left: 28px; }
    .zhrf-sail-schedule { padding-right: 25px; padding-left: 25px; }
    .zhrf-sail-time-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .zhrf-sail-route-foot { align-items: flex-start; flex-direction: column; gap: 10px; }
    .zhrf-sail-route-foot > p { max-width: none; text-align: left; }
}
@media (max-width: 820px) {
    .zhrf-sail-hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .zhrf-sail-next { max-width: 560px; }
    .zhrf-sail-route-body { grid-template-columns: 1fr; }
    .zhrf-sail-journey { padding: 28px 32px; }
    .zhrf-sail-schedule { padding: 28px 32px 32px; border-top: 1px solid var(--zhrf-line); border-left: 0; }
    .zhrf-sail-time-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .zhrf-sail-hotline-grid { grid-template-columns: 1fr; }
    .zhrf-sail-hotline-grid > a { min-height: 170px; }
}
@media (max-width: 620px) {
    .zhrf-sail-hero { padding-top: 25px; }
    .zhrf-sail-hero .quhj-breadcrumb { margin-bottom: 38px; }
    .zhrf-sail-hero-grid { gap: 32px; padding-bottom: 42px; }
    .zhrf-sail-hero h1 { font-size: 56px; }
    .zhrf-sail-slogan { font-size: 26px; }
    .zhrf-sail-intro { font-size: 12px; }
    .zhrf-sail-next { padding: 23px 22px 20px; box-shadow: 9px 9px 0 rgba(5,29,27,.18); }
    .zhrf-sail-next > strong { font-size: 76px; }
    .zhrf-sail-next-top { font-size: 7px; }
    .zhrf-sail-hero-foot { flex-wrap: wrap; gap: 10px 22px; padding: 20px 0; }
    .zhrf-sail-hero-foot a { width: 100%; justify-content: space-between; margin: 8px 0 0; }
    .zhrf-sail-board { padding: 55px 0 65px; }
    .zhrf-sail-board-head { align-items: flex-start; flex-direction: column; gap: 20px; }
    .zhrf-sail-board-head p { max-width: 290px; line-height: 1.7; }
    .zhrf-sail-filter { width: 100%; }
    .zhrf-sail-filter button { flex: 1; }
    .zhrf-sail-route-list { gap: 20px; }
    .zhrf-sail-route-head { padding: 10px 18px; }
    .zhrf-sail-route-head > div { gap: 10px; }
    .zhrf-sail-route-head small { font-size: 7px; }
    .zhrf-sail-journey { padding: 25px 23px; }
    .zhrf-sail-port strong { font-size: 25px; }
    .zhrf-sail-schedule { padding: 25px 23px 28px; }
    .zhrf-sail-time-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
    .zhrf-sail-time { min-height: 76px; }
    .zhrf-sail-time strong { font-size: 22px; }
    .zhrf-sail-route-foot { padding: 18px 22px; }
    .zhrf-sail-route-foot dl { flex-wrap: wrap; gap: 8px 20px; }
    .zhrf-sail-hotlines { padding: 55px 0; }
    .zhrf-sail-hotlines header { align-items: flex-start; flex-direction: column; gap: 12px; }
    .zhrf-sail-hotlines header > p { text-align: left; }
    .zhrf-sail-hotline-grid > a { min-height: 165px; padding: 23px 22px; }
    .zhrf-sail-hotline-grid strong { font-size: 26px; }
}
