/* One shared navigation and page rhythm for every route and language. */
:root{--site-header-height:80px}
html{scroll-padding-top:calc(var(--site-header-height) + 24px)}
.site-header{height:var(--site-header-height);background:#f3f0e8f5;border-bottom:1px solid #23342f14;color:#23342f}
.site-header .header-inner{width:calc(100% - 64px);max-width:1560px;height:100%;gap:22px}
.site-header .brand{gap:12px;flex-shrink:0}
.site-header .brand-seal{width:29px;height:44px;padding:4px;font-size:20px;line-height:.9}
.site-header .brand-type{font-family:'DM Sans',Arial,sans-serif;font-size:20px;line-height:1.2;letter-spacing:.22em}
.site-header .brand-type small{font-family:var(--sans);font-size:6px;line-height:1.7;letter-spacing:.24em;margin-top:5px;color:#687063}
.site-header .desktop-nav{display:flex;align-items:center;justify-content:center;gap:clamp(13px,1.15vw,20px);margin:0 auto}
.site-header .desktop-nav a{font-family:var(--serif);font-size:16px;line-height:1.4;letter-spacing:.005em;padding:18px 0;white-space:nowrap}
html[lang=zh-CN] .site-header .desktop-nav a{font-size:14px;letter-spacing:.055em}
.site-header .desktop-nav a:after{bottom:10px}
.site-header .desktop-nav a[aria-current]{color:#8f352c}
.site-header .header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.site-header .site-languages{font-size:11px;gap:8px;margin:0}
.site-header .site-languages a{min-height:44px;display:flex;align-items:center;padding:0 1px;border:0;position:relative}
.site-header .site-languages a[aria-current=true]:after{content:'';position:absolute;bottom:6px;left:0;right:0;height:1px;background:#8f352c}
.site-header .icon-button{width:36px;height:44px;padding:8px;display:grid;place-items:center}
.site-header .icon-button svg{width:21px;height:21px}
.site-header .saved-link{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding-left:12px;font-family:var(--serif);font-size:14px;line-height:1.4;white-space:nowrap}
.site-header .mobile-home,.site-header .mobile-menu-button{display:none}
.site-header .mobile-menu{position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - var(--site-header-height));overflow-y:auto;overscroll-behavior:contain;padding:22px 32px 30px;background:#f3f0e8;border-top:1px solid #23342f12;border-bottom:1px solid #23342f22;box-shadow:0 14px 24px #23342f0d;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.site-header .mobile-menu:not([hidden]){display:grid}
.site-header .mobile-menu a{font-family:var(--serif);font-size:22px;line-height:1.4;min-height:48px;display:flex;align-items:center;padding:9px 0}
html[lang=zh-CN] .site-header .mobile-menu a{font-size:18px;letter-spacing:.07em}
.site-header .mobile-menu .is-active:before{content:none}
.site-header .mobile-menu a[aria-current]{color:#8f352c}
.mountain-journey{--scene-header:var(--site-header-height)}
.dao-body{--dao-header-height:var(--site-header-height)}
.dao-panel :is(.bazi-results,#bazi-form){scroll-margin-top:calc(var(--site-header-height) + 26px)}
html[lang=zh-CN] .dao-scene-heading h1{font-size:clamp(30px,3.15vw,48px);letter-spacing:.065em;line-height:1.5}
html[lang=zh-CN] .dao-guide-caption p{letter-spacing:.05em}
.site-footer .footer-top{grid-template-columns:minmax(220px,1.15fr) minmax(0,1.55fr) minmax(150px,.75fr);gap:60px}
.site-footer .footer-top>nav:first-of-type{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;column-gap:28px;row-gap:12px}
.site-footer .footer-top>nav:first-of-type>.eyebrow{grid-column:1/-1;margin-bottom:9px}
.site-footer .footer-top>nav:first-of-type>a{margin-top:0}
.site-footer .footer-top nav a{font-size:13px;line-height:1.7}
@media(min-width:1440px){.site-header .desktop-nav a{font-size:17px}.site-header .desktop-nav{gap:clamp(18px,1.4vw,24px)}}
@media(min-width:1201px) and (max-width:1320px){.site-header .header-inner{gap:16px;width:calc(100% - 48px)}.site-header .desktop-nav{gap:12px}.site-header .desktop-nav a{font-size:15px}.site-header .brand-type{font-size:18px}.site-header .header-actions{gap:8px}.site-header .saved-link{display:none}}
@media(max-width:1200px){.site-header .desktop-nav{display:none}.site-header .mobile-menu-button{display:grid}.site-header .header-actions{margin-left:auto}}
@media(min-width:1201px){.site-header .mobile-menu{display:none!important}}
@media(max-width:900px){.site-footer .footer-top{grid-template-columns:1fr 1fr;gap:36px 42px}.site-footer .footer-top>div:first-child{grid-column:1/-1}.site-footer .footer-top>nav:first-of-type{grid-template-columns:1fr;gap:10px}}
@media(max-width:600px){:root{--site-header-height:68px}.site-header .header-inner{width:calc(100% - 36px);gap:10px}.site-header .brand{gap:9px}.site-header .brand-seal{width:25px;height:39px;font-size:17px;padding:4px;line-height:.9}.site-header .brand-type{font-size:17px;letter-spacing:.18em}.site-header .brand-type small{font-size:5px;letter-spacing:.18em;margin-top:3px}.site-header .header-actions{gap:8px}.site-header .site-languages{font-size:11px;gap:7px}.site-header .saved-link,.site-header [data-open-search]{display:none}.site-header .mobile-menu-button{display:grid;width:40px;height:44px;padding:9px}.site-header .mobile-menu{padding:18px 24px 24px;column-gap:20px}.site-header .mobile-menu a{font-size:21px}.site-footer .footer-top{column-gap:30px}html[lang=zh-CN] .dao-scene-heading h1{font-size:28px;white-space:normal;letter-spacing:.045em}html[lang=zh-CN] .dao-room:has(#bazi-results:not([hidden])) .dao-scene-heading h1{font-size:23px}}
@media(max-width:360px){.site-header .brand-type{font-size:15px}.site-header .header-inner{width:calc(100% - 28px);gap:7px}.site-header .header-actions{gap:5px}}

/* Eight destinations need the same compact breakpoint in both languages. */
@media(min-width:1440px) and (max-width:1699px){.site-header .desktop-nav{gap:15px}.site-header .desktop-nav a{font-size:16px}}
@media(max-width:1439px){.site-header .desktop-nav{display:none}.site-header .mobile-menu-button{display:grid}.site-header .header-actions{margin-left:auto}.site-header .mobile-menu:not([hidden]){display:grid!important}}
.site-header .mobile-menu{padding-bottom:max(24px,env(safe-area-inset-bottom));scrollbar-gutter:stable}
.site-header .mobile-search{grid-column:1/-1;display:flex;align-items:center;gap:13px;min-width:0;min-height:52px;text-align:left;border:1px solid #23342f28;padding:12px 16px;margin-bottom:14px;font:14px/1.5 var(--sans);color:#4e5d52;background:#e8e5da66}
.site-header .mobile-search span{flex:1;min-width:0}
.site-header .mobile-search svg{width:20px;height:20px}
.site-header .mobile-search:hover,.site-header .mobile-search:focus-visible{color:var(--red);border-color:#8f352c70}
.site-header .mobile-menu a{border-bottom:1px solid #23342f0e;transition:color .2s}
.mobile-menu-button path{transform-origin:12px 12px;transition:transform .28s cubic-bezier(.2,.65,.3,1)}
.menu-open .menu-line-top{transform:translateY(4px) rotate(45deg);transform-origin:12px 8px}
.menu-open .menu-line-bottom{transform:translateY(-4px) rotate(-45deg);transform-origin:12px 16px}
.site-header.menu-open .mobile-menu{animation:menu-unfold .3s cubic-bezier(.2,.65,.3,1) both}
.search-dialog[open]{animation:dialog-arrive .3s cubic-bezier(.2,.65,.3,1) both}
.search-dialog::backdrop{background:#1c292c78;backdrop-filter:blur(3px)}
.search-results{min-height:88px}
.search-results[aria-busy=true]{opacity:.55;transition:opacity .15s}
.search-result{animation:result-arrive .28s ease-out both;animation-delay:var(--result-delay,0ms);transition:background .2s}
.search-result:hover,.search-result:focus-visible{background:#e3dfd354}
.search-result>div{min-width:0}
.search-result h3{overflow-wrap:anywhere}
@keyframes menu-unfold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes result-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
/* A section's hairline settles after its heading, without moving reading text. */
@media(prefers-reduced-motion:no-preference){
 .section-heading.reveal{position:relative;padding-bottom:22px}
 .section-heading.reveal:after{content:'';position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,#8f352c55,#23342f12 65%,transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.1s .15s cubic-bezier(.2,.65,.3,1)}
 .section-heading.reveal.visible:after{transform:scaleX(1)}
 .article-heading{animation:dialog-arrive .65s ease-out both}
}
@media(hover:hover) and (pointer:fine){
 .archive-card-image:hover img,.archive-card-image:focus-visible img{transform:scale(1.025)}
 .journal-row{transition:background .3s,color .3s}
 .journal-row:hover{background:#e6e2d64d;color:var(--red)}
 .journal-row svg{transition:transform .35s cubic-bezier(.2,.65,.3,1)}
 .journal-row:hover svg{transform:translateX(5px)}
}
@media(prefers-reduced-motion:reduce){.site-header.menu-open .mobile-menu,.search-dialog[open],.search-result{animation:none}.mobile-menu-button path,.search-results,.journal-row,.journal-row svg{transition:none}}
@media(max-width:600px){.search-dialog{width:calc(100% - 28px);max-height:calc(100dvh - 28px);padding:22px}.search-form input{min-width:0;font-size:20px}.search-result{gap:14px}.search-result h3{font-size:22px}}
@media(max-width:600px){html[lang=zh-CN] .archive-hero h1{font-size:clamp(30px,9vw,38px);line-height:1.55;letter-spacing:.03em;text-wrap:balance}html[lang=zh-CN] .archive-hero p{font-size:19px;line-height:1.85}}
html[lang=zh-CN] h1{text-wrap:balance}
html[lang=zh-CN] .fu-hero h1{font-size:clamp(42px,4.4vw,66px);line-height:1.5;letter-spacing:.055em}
@media(max-width:600px){html[lang=zh-CN] .fu-hero h1{font-size:clamp(32px,9.8vw,40px);line-height:1.5;letter-spacing:.035em}}

/* Mobile foundation: grouped destinations, readable support copy and touch targets. */
:root{--ui-font:'DM Sans',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei','Maoshan Song',sans-serif}
.site-header .mobile-menu{grid-template-columns:1fr;gap:0}
.site-header .mobile-menu>.mobile-search{margin-bottom:8px}
.site-header .mobile-menu>a{font-size:18px}
.mobile-nav-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;align-items:start}
.mobile-nav-group{border-bottom:1px solid #23342f25;min-width:0}
.mobile-nav-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 0;font:19px/1.4 var(--serif);cursor:pointer}
.mobile-nav-group summary::-webkit-details-marker{display:none}
.mobile-nav-group summary>span{font:18px/1 var(--ui-font);transition:transform .2s}
.mobile-nav-group[open] summary>span{transform:rotate(45deg)}
.mobile-nav-group summary.is-current{color:var(--red)}
.site-header .mobile-nav-group>div{padding:0 0 12px 14px}
.site-header .mobile-menu .mobile-nav-group a{font-size:17px;min-height:44px;padding:10px 0;border:0;line-height:1.45}
html[lang=zh-CN] .site-header .mobile-menu .mobile-nav-group a{font-size:16px;letter-spacing:.03em}
.mobile-nav-tools{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:12px}
.site-header .mobile-menu .mobile-nav-tools a{font:14px/1.5 var(--ui-font);min-height:44px;border:0}
html[lang=zh-CN] .site-header .mobile-menu .mobile-nav-tools a{font-size:14px}
.site-header .site-languages{gap:0}
.site-header .site-languages a{min-width:44px;justify-content:center;padding:0 5px}
.site-header .site-languages a[aria-current=true]:after{left:8px;right:8px}
.site-header .icon-button{min-width:44px}
.search-more{margin:16px 0 0;min-height:44px}
.bazi-birthplace-note{margin-top:0;min-width:0}
.dao-panel .bazi-birthplace-note>p{font:14px/1.6 var(--ui-font);margin:0 0 6px;overflow-wrap:anywhere;color:#526054}
.dao-panel #bazi-timezone-manual{margin-top:12px}
.dao-panel #bazi-timezone-manual summary{min-height:44px;font:14px/1.6 var(--ui-font)}
.dao-panel #bazi-timezone-manual label{display:block;margin-top:12px}
.dao-panel #bazi-timezone-manual input{margin-top:6px}
@media(max-width:800px){
 body,html[lang=zh-CN] body{font-size:16px}
 :is(.prose,.article-body,.product-description,.contact-aside,.inquiry-note,.archive-card-body)>p{font-size:16px;line-height:1.85}
 :is(.small,.image-note,.editorial-note,.form-status,.image-caption,.bazi-session-note){font-size:13px;line-height:1.7}
 :is(.bazi-form,.inquiry-form,.search-form) :is(input,select,textarea){font:16px/1.5 var(--ui-font);min-height:48px;max-width:100%}
 :is(.bazi-form,.inquiry-form) :is(input[type=checkbox],input[type=radio]){min-height:0}
 .dao-panel .bazi-form{font-family:var(--ui-font)}
 .dao-panel .bazi-form :is(label,legend){font-size:14px;line-height:1.65}
 .dao-panel .bazi-form :is(small,.bazi-session-note,.bazi-status,.bazi-conventions p){font-size:13px;line-height:1.7;letter-spacing:0}
 .dao-panel .bazi-form .bazi-intentions b{font-size:14px}
 .dao-panel .bazi-form .bazi-intentions small{font-size:13px}
 .dao-panel .bazi-form .bazi-check{font:13px/1.7 var(--ui-font);min-height:44px;align-items:flex-start;padding:8px 0}
 .dao-panel .bazi-form .bazi-check.inline{align-items:center}
 .dao-panel .bazi-form .bazi-check input{width:18px;height:18px;flex:0 0 18px;margin-top:3px}
 .dao-panel .bazi-form .bazi-check.inline input{margin-top:0}
 .dao-panel .bazi-form details>summary{min-height:44px;font-size:14px;line-height:1.65}
 .dao-panel .bazi-clear,.dao-panel .bazi-resume{min-height:44px;font-size:14px;line-height:1.6}
 .dao-panel-heading p{font-size:15px;line-height:1.8}
 .dao-cultural-note{font-size:13px;line-height:1.7}
 .dao-stages{gap:8px;font-size:11px;line-height:1.5}
 .dao-stages li{min-width:0;overflow-wrap:anywhere}
 .product-card .save-icon{width:44px;height:44px;padding:10px;flex-shrink:0}
 .product-card .product-meta .eyebrow{font-size:11px;line-height:1.6}
 .chapter-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
 .chapter-grid a{min-height:44px;font-size:16px}
 :is(.button,.category-tabs button,.archive-filters button,.reader-controls button,.back-top){min-height:44px}
 .site-footer .footer-top nav a{font-size:14px;min-height:44px;display:flex;align-items:center;line-height:1.5}
 .site-footer .footer-top>nav:first-of-type{row-gap:0}
 .site-footer .footer-bottom small{font-size:12px;line-height:1.7}
 .inquiry-form :is(label,.consent),.form-status{font-family:var(--ui-font);font-size:14px;line-height:1.7}
 .search-dialog{max-height:calc(100dvh - 32px);overflow:auto}
 .search-dialog .icon-button{min-width:44px;min-height:44px}
 .search-dialog .small{font-size:13px}
}
@media(max-width:600px){
 .mobile-nav-groups{grid-template-columns:1fr}
 .site-header .mobile-menu{padding:10px 24px max(24px,env(safe-area-inset-bottom))}
 .site-header .mobile-menu-button{width:44px}
 .site-header .header-actions{gap:4px}
 .site-header .brand-type{font-size:15px}
 .site-header .brand{gap:7px}
 .site-header .mobile-menu .mobile-search{display:flex;font:14px/1.5 var(--ui-font)}
}
@media(max-width:360px){
 .chapter-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 .site-header .header-inner{width:calc(100% - 24px);gap:4px}
 .site-header .brand-type{font-size:14px;letter-spacing:.12em}
 .site-header .site-languages{font-size:11px}
 .dao-stages{gap:5px;font-size:10px;letter-spacing:0}
}
