/* Zenith homepage styles: tokens, layout, contact drawer, themes, responsive. */
:root{
  color-scheme:light dark;
  --sky:url('../images/bg-sky-day.png');--page:#d7f2fb;--text:#123e60;--muted:#315f72;--accent:#d7f8ff;
  --panel:rgba(240,249,255,.94);--panel-border:rgba(255,255,255,.78);--shadow:0 18px 50px rgba(16,75,117,.18);
  --row:rgba(255,255,255,.68);--row-border:rgba(38,126,173,.15);--label:#4b7892;--label-accent:#1687bd;--tab:#4b9fc9;
}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{overflow:hidden;background:var(--page);color:var(--text);font-family:Manrope,'Microsoft YaHei',Arial,sans-serif}button{font:inherit}
.page-shell{position:relative;isolation:isolate;width:100%;height:100dvh;overflow:hidden;background:linear-gradient(135deg,rgba(7,66,137,.12),rgba(39,151,221,.04)),var(--sky) center/cover}

/* Brand and sky */
.brand-panel{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:4vh 7vw;overflow:hidden;color:#fff;text-align:center}
.brand-copy{position:relative;z-index:1;max-width:1000px}
.brand-copy h1{display:flex;flex-direction:column;align-items:center;justify-content:center;width:fit-content;height:auto;margin:0 auto;gap:clamp(18px,2.8vh,30px);color:#fff;font-family:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;font-size:clamp(42px,6.2vw,96px);font-weight:500;letter-spacing:.04em;line-height:1.08}.hero-topline{display:flex;align-items:flex-start;justify-content:center;gap:clamp(18px,3vw,42px)}.hero-city{display:block;line-height:1;white-space:nowrap}.hero-brand{display:flex;flex-direction:column;align-items:center;margin-top:.5em;line-height:1;white-space:nowrap}.brand-en{display:block;margin-bottom:.16em;color:#e1fbff;font-family:'Cormorant Garamond',Georgia,serif;font-size:.25em;font-style:normal;font-weight:600;letter-spacing:.22em;line-height:1;white-space:nowrap}.brand-copy h1 strong,.hero-company{display:block;margin:0;color:#fff;font-size:.58em;font-weight:800;letter-spacing:.2em;line-height:1.08;text-align:center;text-shadow:0 0 28px rgba(255,255,255,.4)}
.motto{max-width:34em;margin:3vh auto 0;color:rgba(255,255,255,.9);font-size:clamp(13px,calc(10px + .55vw + .35vh),19px);letter-spacing:.1em;line-height:1.8}.motto-en{display:block;font-family:Manrope,Arial,sans-serif;font-size:.92em;font-weight:700;letter-spacing:.12em}.motto-zh{display:block;margin-top:.32em;font-family:'Noto Serif SC','Microsoft YaHei',sans-serif;font-size:.78em;letter-spacing:.12em;opacity:.9}
.sky-scene{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.star-a,.star-b,.star-c,.star-d,.star-e{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 7px 2px rgba(255,255,255,.45);animation:twinkle 3s ease-in-out infinite}.star-a{left:16%;top:20%;animation-delay:-.5s}.star-b{left:75%;top:25%;width:3px;height:3px;animation-delay:-1.3s}.star-c{left:86%;top:57%;width:5px;height:5px;animation-delay:-2.1s}.star-d{left:25%;top:72%;width:3px;height:3px;animation-delay:-1.7s}.star-e{left:61%;top:11%;width:2px;height:2px;animation-delay:-.9s}

/* Theme toggle */
.theme-toggle{position:absolute;z-index:4;top:28px;right:28px;width:40px;height:40px;cursor:pointer;border:1px solid rgba(255,255,255,.58);border-radius:50%;background:rgba(255,255,255,.22);color:#fff;font:22px/1 Arial,sans-serif;backdrop-filter:blur(8px);transition:transform .2s ease,background .2s ease}.theme-toggle:hover{transform:scale(1.06);background:rgba(255,255,255,.38)}

/* Contact drawer */
.info-panel{position:fixed;z-index:8;top:50%;right:0;width:390px;padding:27px 22px 24px 68px;transform:translate(calc(100% - 42px),-50%);border:1px solid var(--panel-border);border-right:0;border-radius:20px 0 0 20px;background:var(--panel);box-shadow:var(--shadow);backdrop-filter:blur(18px);transition:transform .42s cubic-bezier(.2,.8,.2,1)}.info-panel.is-open,.info-panel:not(.is-dismissed):hover,.info-panel:not(.is-dismissed):focus,.info-panel:not(.is-dismissed):focus-within{transform:translate(0,-50%)}
.info-panel:before{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;width:48px;content:'联系我们';border-right:1px solid var(--panel-border);border-radius:20px 0 0 20px;background:var(--panel);color:var(--text);font-size:12px;font-weight:700;letter-spacing:.16em;writing-mode:vertical-rl}.contact-toggle{position:absolute;z-index:3;top:0;bottom:0;left:0;width:48px;cursor:pointer;border:0;background:transparent;color:transparent}.contact-close{display:block;position:relative;z-index:3;margin-left:auto;padding:0 0 2px 8px;cursor:pointer;border:0;background:transparent;color:var(--text);font-size:24px;line-height:1;opacity:0;pointer-events:none;transition:opacity .2s ease}.info-panel.is-open .contact-close{opacity:1;pointer-events:auto}
.info-head{display:flex;align-items:center;margin:0 0 18px}.info-head h2{margin:0;color:var(--text);font-size:26px;font-weight:700;letter-spacing:-.08em}.info-list{display:flex;flex-direction:column;gap:8px}.info-row,.address-row{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:10px;margin:0;padding:13px 14px;border:1px solid var(--row-border)!important;border-radius:10px;background:var(--row)}.info-row:hover{background:rgba(255,255,255,.82)}.row-label{color:var(--label);font-size:10px;font-weight:700;line-height:1.45}.row-label i{display:block;margin-top:2px;color:var(--label-accent);font-size:8px;font-style:normal;letter-spacing:.1em}.info-row>div,.info-row>a{color:var(--text);font-size:13px;font-weight:500;line-height:1.45;overflow-wrap:anywhere;text-align:left;text-decoration:none}.info-row>a:hover{color:#0000ee;text-decoration:none}.email-image{display:block;width:100%;max-width:210px;height:auto}

/* Copyright */
.copyright-strip{position:fixed;z-index:10;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;height:8vh;background:transparent}.copyright-text{display:block;max-width:94vw;color:rgba(255,255,255,.86);font-family:Manrope,'Microsoft YaHei',Arial,sans-serif;font-size:clamp(8px,1.25vw,13px);font-weight:500;letter-spacing:0;line-height:1.4;text-align:center;white-space:nowrap}

/* Theme rules: system preference first, manual selection last. */
@media (prefers-color-scheme:dark){
  :root{--page:#071a2d;--text:#f1fbff;--muted:#d2e8ec;--accent:#a9eaff;--panel:linear-gradient(145deg,#123b5d,#0b2944 58%,#081d33);--panel-border:rgba(157,225,250,.42);--shadow:0 20px 60px rgba(0,0,0,.48);--row:rgba(111,191,226,.14);--row-border:rgba(157,225,250,.25);--label:#a9dced;--label-accent:#82d9f4;--tab:#2b8fbd}
  .page-shell{background:linear-gradient(145deg,#020914,#071a2d 48%,#0b3553)}.brand-copy h1,.brand-copy h1 strong{color:#f1fbff}.brand-copy h1 strong{color:#fff;text-shadow:0 0 28px rgba(255,255,255,.22)}.brand-en,.motto{color:#fff}.email-image{filter:brightness(0) invert(1);opacity:.86}
}
html[data-theme='dark']{--page:#071a2d;--text:#f1fbff;--muted:#d2e8ec;--accent:#a9eaff;--panel:linear-gradient(145deg,#123b5d,#0b2944 58%,#081d33);--panel-border:rgba(157,225,250,.42);--shadow:0 20px 60px rgba(0,0,0,.48);--row:rgba(111,191,226,.14);--row-border:rgba(157,225,250,.25);--label:#a9dced;--label-accent:#82d9f4;--tab:#2b8fbd;color-scheme:dark}html[data-theme='dark'] body{background:#050d18}html[data-theme='dark'] .page-shell{background:linear-gradient(145deg,#020914,#071a2d 48%,#0b3553)}html[data-theme='dark'] .brand-copy h1,html[data-theme='dark'] .brand-copy h1 strong{color:#f1fbff}html[data-theme='dark'] .brand-copy h1 strong{color:#a9eaff;text-shadow:0 0 28px rgba(169,234,255,.3)}html[data-theme='dark'] .brand-en,html[data-theme='dark'] .motto{color:#fff}html[data-theme='dark'] .email-image{filter:brightness(0) invert(1);opacity:.86}
html[data-theme='light']{color-scheme:light;--page:#d7f2fb;--text:#123e60;--muted:#315f72;--accent:#d7f8ff;--panel:rgba(240,249,255,.94);--panel-border:rgba(255,255,255,.78);--row:rgba(255,255,255,.68);--row-border:rgba(38,126,173,.15);--label:#4b7892;--label-accent:#1687bd;--tab:#4b9fc9}html[data-theme='light'] body{background:#d7f2fb}html[data-theme='light'] .page-shell{background:linear-gradient(135deg,rgba(7,66,137,.12),rgba(39,151,221,.04)),var(--sky) center/cover}html[data-theme='light'] .copyright-strip img{filter:none;opacity:1}

/* Motion */
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.5)}}@keyframes pulse{0%,100%{opacity:.65;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}

/* Responsive */
@media (max-width:700px){
  .brand-panel{padding:3vh 8vw}.brand-copy h1{width:100%;font-size:11vw;letter-spacing:0;gap:clamp(14px,2.4vh,22px)}.hero-topline{gap:clamp(12px,3vw,24px)}.hero-brand{margin-top:.4em}.brand-copy h1 strong,.hero-company{font-size:.5em;letter-spacing:.08em}.brand-en{font-size:.24em;letter-spacing:.14em}.motto{margin-top:3.5vh;font-size:clamp(11px,calc(8px + .8vw + .2vh),15px);line-height:1.65}.theme-toggle{top:16px;right:16px;width:34px;height:34px;font-size:18px}
  .info-panel{top:50%;right:0;width:min(340px,90vw);max-height:60vh;padding:20px 16px 18px 54px;border-radius:16px 0 0 16px;transform:translate(calc(100% - 38px),-50%)}.info-panel:before{width:40px;border-radius:16px 0 0 16px;font-size:10px}.info-panel.is-open,.info-panel:hover,.info-panel:focus,.info-panel:focus-within{transform:translate(0,-50%)}.contact-toggle{width:40px}.info-head{margin-bottom:12px}.info-head h2{font-size:20px}.info-row,.address-row{grid-template-columns:48px 1fr;padding:10px 9px;gap:7px}.row-label{font-size:8px}.row-label i{font-size:6px}.info-row>div,.info-row>a{font-size:10px}.email-image{max-width:180px}.copyright-strip{height:8vh}.copyright-text{font-size:clamp(7px,2vw,10px);white-space:normal}.star{width:3px;height:3px}.star-c{width:4px;height:4px}
}
@media (max-width:700px) and (max-height:560px){.brand-copy h1{font-size:9vw}.motto{margin-top:1.5vh;font-size:9px}.info-panel{max-height:64vh;padding-top:12px;padding-bottom:12px}.info-head{margin-bottom:6px}.info-head h2{font-size:16px}.info-row,.address-row{padding:7px}.info-row>div,.info-row>a{font-size:9px}}

/* Touch screens use the explicit toggle; do not rely on sticky hover. */
@media (max-width:700px){.info-panel,.info-panel:hover,.info-panel:focus,.info-panel:focus-within{transform:translate(calc(100% - 38px),-50%)!important}.info-panel.is-open,.info-panel.is-open:hover,.info-panel.is-open:focus,.info-panel.is-open:focus-within{transform:translate(0,-50%)!important}}

@media (prefers-color-scheme:dark){.brand-copy h1 strong{color:#fff;text-shadow:0 0 28px rgba(255,255,255,.22)}}
html[data-theme='dark'] .brand-copy h1 strong{color:#fff;text-shadow:0 0 28px rgba(255,255,255,.22)}

/* Static location preview opened by clicking a star. */
.star-a,.star-b,.star-c,.star-d,.star-e{z-index:2;pointer-events:none;padding:0;border:0}
.location-preview{position:fixed;z-index:30;inset:0;display:none;overflow:hidden;background:radial-gradient(circle at 50% 42%,#173d65 0,#071a2d 38%,#020914 100%);color:#effbff}
.location-preview.is-visible{display:block}
.location-close{position:absolute;z-index:3;top:24px;right:28px;width:42px;height:42px;border:1px solid rgba(220,249,255,.45);border-radius:50%;background:rgba(5,25,45,.55);color:#effbff;font-size:28px;line-height:1;cursor:pointer}
.location-map{position:absolute;top:50%;right:8%;width:min(48vw,620px);height:min(38vw,480px);overflow:hidden;border:1px solid rgba(170,231,249,.32);background:linear-gradient(135deg,rgba(13,63,91,.84),rgba(5,28,54,.9));box-shadow:0 22px 60px rgba(0,0,0,.3);transform:translateY(-50%)}
.location-map #leaflet-map{position:absolute;inset:0;z-index:0;background:#dbeaf0}.leaflet-container{font-family:Manrope,'Microsoft YaHei',Arial,sans-serif;font-size:11px}.leaflet-control-zoom{border:0!important;box-shadow:0 2px 12px rgba(0,0,0,.22)!important}.leaflet-control-zoom a{color:#164d70!important}.location-map .location-caption{z-index:500;right:0;bottom:0;left:0;padding:42px 20px 16px;border:0;background:linear-gradient(transparent,rgba(3,22,40,.92));pointer-events:none}.zenith-map-marker{display:grid;place-items:center;border:0;border-radius:50%;background:rgba(45,192,225,.26);box-shadow:0 0 0 7px rgba(45,192,225,.18),0 0 20px 5px rgba(45,192,225,.6)}.zenith-map-marker span{width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#1fb4df}
.location-caption{position:absolute;right:22px;bottom:20px;left:22px;display:flex;flex-direction:column;gap:4px;padding-top:12px;border-top:1px solid rgba(183,236,247,.25)}.location-caption small{color:#8ed9e8;font-size:10px;letter-spacing:.16em}.location-caption strong{font-family:'Noto Serif SC',serif;font-size:24px;font-weight:600}.location-caption span{color:rgba(231,249,255,.72);font-size:12px}
@media(max-width:700px){.location-map{top:auto;right:5vw;bottom:8vh;width:90vw;height:42vh;transform:none}.location-preview.is-visible .location-map{animation-name:map-reveal-mobile}.location-caption{right:16px;bottom:15px;left:16px}.location-caption strong{font-size:20px}.location-caption span{font-size:10px}.location-close{top:16px;right:16px;width:36px;height:36px;font-size:24px}}
@keyframes star-ring{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.8)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.25)}}@keyframes map-reveal{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(-50%)}}@keyframes map-reveal-mobile{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
/* The interactive map is now the only location transition. */
.location-preview.is-visible .location-map{animation:map-reveal .45s ease-out both;top:50%;right:5%;width:90vw;height:82vh;transform:translateY(-50%)}
@media(max-width:700px){.location-preview.is-visible .location-map{top:50%;right:3vw;bottom:auto;width:94vw;height:80vh;transform:translateY(-50%);animation:map-reveal .45s ease-out both}}
.location-preview{background:transparent;color:#123e60}.location-close{border-color:rgba(18,62,96,.28);background:rgba(255,255,255,.78);color:#123e60}.location-map .location-caption{background:linear-gradient(transparent,rgba(235,248,252,.96));color:#123e60}.location-map .location-caption small{color:#167da8}.location-map .location-caption span{color:rgba(18,62,96,.76)}
.location-map{border:2px solid rgba(0,0,0,.72);border-radius:24px;background:rgba(230,246,251,.7);box-shadow:0 24px 70px rgba(0,0,0,.24),0 0 0 1px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.9)}.location-map:after{position:absolute;z-index:501;inset:0;content:'';border:1px solid rgba(0,0,0,.48);border-radius:22px;pointer-events:none}.leaflet-container{border-radius:21px}
@media(max-width:700px){.location-map{border-radius:19px}.location-map:after{border-radius:17px}.leaflet-container{border-radius:16px}}
.brand-star{position:absolute;z-index:4;top:-72px;right:-62px;width:5px;height:5px;padding:0;cursor:pointer;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.12),0 0 16px 4px rgba(255,255,255,.28);animation:pulse 3s ease-in-out infinite}.brand-star:after{position:absolute;top:50%;left:50%;width:16px;height:16px;content:'';border:1px solid rgba(255,255,255,.45);border-radius:50%;transform:translate(-50%,-50%);animation:star-ring 2.4s ease-in-out infinite}.brand-copy .star-hint{position:absolute;top:-93px;right:-108px;z-index:4;color:rgba(255,255,255,.8);font-size:8px;letter-spacing:.1em;white-space:nowrap;pointer-events:none}
@media(max-width:700px){.brand-star{top:-38px;right:8%;width:4px;height:4px}.brand-copy .star-hint{top:-56px;right:calc(8% - 42px);font-size:8px}}
.brand-copy .star-hint{left:auto!important}

/* Background artwork */
@media (prefers-color-scheme:dark){.page-shell{background-image:linear-gradient(rgba(4,20,46,.12),rgba(4,20,46,.12)),url('../images/bg-sky-night.png')!important;background-position:center;background-size:cover}}
html[data-theme='dark'] .page-shell{background-image:linear-gradient(rgba(4,20,46,.12),rgba(4,20,46,.12)),url('../images/bg-sky-night.png')!important;background-position:center;background-size:cover}
/* Contact drawer follows the blue-violet palette of the night-sky artwork. */
@media(prefers-color-scheme:dark){
  :root{--text:#f5f7ff;--muted:#c7d5f2;--panel:linear-gradient(145deg,rgba(23,53,91,.92),rgba(29,35,82,.9) 58%,rgba(10,23,54,.94));--panel-border:rgba(163,194,248,.36);--shadow:0 20px 60px rgba(5,10,31,.58);--row:rgba(83,125,190,.18);--row-border:rgba(157,186,239,.24);--label:#b9cdf3;--label-accent:#b8aaff;--tab:#4b65ad}
  .info-panel:before{border-right-color:var(--panel-border);background:var(--panel);color:var(--text)}
  .info-row:hover,.info-row:focus-within{background:rgba(91,119,194,.3)!important}
}
html[data-theme='dark']{--text:#f5f7ff;--muted:#c7d5f2;--panel:linear-gradient(145deg,rgba(23,53,91,.92),rgba(29,35,82,.9) 58%,rgba(10,23,54,.94));--panel-border:rgba(163,194,248,.36);--shadow:0 20px 60px rgba(5,10,31,.58);--row:rgba(83,125,190,.18);--row-border:rgba(157,186,239,.24);--label:#b9cdf3;--label-accent:#b8aaff;--tab:#4b65ad}
html[data-theme='dark'] .info-panel:before{border-right-color:var(--panel-border);background:var(--panel);color:var(--text)}
html[data-theme='dark'] .info-row:hover,html[data-theme='dark'] .info-row:focus-within{background:rgba(91,119,194,.3)!important}

/* Keep the copyright artwork floating directly over the sky. */
@media(prefers-color-scheme:dark){.copyright-strip{background:transparent!important}}
html[data-theme='dark'] .copyright-strip{background:transparent!important}

/* Day contact drawer follows the pale blue daylight artwork. */
@media(prefers-color-scheme:light){
  :root{--text:#f5fbff;--muted:#d7efff;--panel:linear-gradient(145deg,rgba(14,89,176,.48),rgba(24,119,210,.34) 58%,rgba(11,67,148,.5));--panel-border:rgba(184,224,255,.5);--shadow:0 20px 60px rgba(5,56,130,.3);--row:rgba(18,117,207,.28);--row-border:rgba(174,221,255,.32);--label:#d7f1ff;--label-accent:#b8e8ff;--tab:#1677c2}
  .info-panel:before{border-right-color:var(--panel-border);background:var(--panel);color:var(--text)}
  .info-row:hover,.info-row:focus-within{background:rgba(98,190,245,.3)!important}
}
html[data-theme='light']{--text:#f5fbff;--muted:#d7efff;--panel:linear-gradient(145deg,rgba(14,89,176,.48),rgba(24,119,210,.34) 58%,rgba(11,67,148,.5));--panel-border:rgba(184,224,255,.5);--shadow:0 20px 60px rgba(5,56,130,.3);--row:rgba(18,117,207,.28);--row-border:rgba(174,221,255,.32);--label:#d7f1ff;--label-accent:#b8e8ff;--tab:#1677c2}
html[data-theme='light'] .info-panel:before{border-right-color:var(--panel-border);background:var(--panel);color:var(--text)}
html[data-theme='light'] .info-row:hover,html[data-theme='light'] .info-row:focus-within{background:rgba(98,190,245,.3)!important}

a,a:visited,a:hover,a:active,a:focus,.info-row>a,.info-row>a:hover{color:inherit!important;text-decoration:none!important}
.phone-link,.phone-link:visited,.phone-link:hover,.phone-link:active,.phone-link:focus{color:#fff!important;text-decoration:none!important}
::selection{background:#fff!important;color:#f00!important}
::-moz-selection{background:#fff!important;color:#f00!important}
@media(prefers-color-scheme:light){.email-image{filter:brightness(0) invert(1);opacity:.9}}
html[data-theme='light'] .email-image{filter:brightness(0) invert(1);opacity:.9}


