@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Noto+Sans+SC:wght@400;500;700;900&display=swap');
:root { --ink:#14251f; --muted:#68736d; --paper:#f4f3ed; --orange:#ee6b2f; --line:#d9ded7; --lime:#d8e878; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'Noto Sans SC','Microsoft YaHei',sans-serif; }
a { color:inherit; text-decoration:none; }
.wrap { width:min(1160px,calc(100% - 40px)); margin:auto; }
.site-header { background:var(--ink); color:#fff; }
.nav { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:11px; font-weight:900; letter-spacing:.04em; }
.brand-mark { display:grid; place-items:center; width:35px; height:35px; background:var(--orange); font-size:17px; transform:rotate(-8deg); }
.brand small { display:block; font-family:'DM Sans',sans-serif; font-size:10px; letter-spacing:.16em; opacity:.72; font-weight:500; }
.nav-links { display:flex; align-items:center; gap:24px; font-size:14px; }
.nav-links a { opacity:.82; }
.nav-links a:hover { opacity:1; }
.nav-call { padding:10px 14px; border:1px solid rgba(255,255,255,.5); opacity:1!important; font-weight:700; }
.page-hero { padding:88px 0 82px; background:linear-gradient(115deg,#20352c,#315143 65%,#6a3e29); color:#fff; }
.scroll-reveal { opacity:0; transform:translateY(28px); transition:opacity .65s ease, transform .65s ease; }
.scroll-reveal.is-visible { opacity:1; transform:translateY(0); }
.eyebrow,.kicker { color:var(--lime); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.page-hero h1 { max-width:760px; margin:18px 0; font-size:clamp(38px,6vw,68px); line-height:1.1; letter-spacing:-.03em; }
.page-hero p { max-width:700px; margin:0; color:rgba(255,255,255,.78); line-height:1.9; }
.breadcrumb { padding:18px 0 0; color:rgba(255,255,255,.62); font-size:13px; }
main section { padding:78px 0; }
.section-head { display:flex; justify-content:space-between; gap:28px; align-items:end; margin-bottom:34px; }
h2 { margin:10px 0 0; font-size:clamp(29px,4vw,46px); line-height:1.15; }
.intro { max-width:430px; margin:0; color:var(--muted); line-height:1.85; font-size:14px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card { padding:28px; background:#fff; border:1px solid var(--line); border-radius:6px; }
.card h2,.card h3 { margin:0 0 12px; font-size:20px; }
.card p { margin:0; color:var(--muted); line-height:1.85; font-size:14px; }
.card .num { color:var(--orange); font:700 13px 'DM Sans',sans-serif; }
.photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.photo-grid figure { position:relative; min-width:0; margin:0; aspect-ratio:1; overflow:hidden; background:#d7dbd4; }
.photo-grid figure:first-child { grid-column:span 2; grid-row:span 2; }
.photo-grid img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.photo-grid figure:hover img { transform:scale(1.04); }
.photo-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:32px 13px 12px; color:#fff; font-size:13px; background:linear-gradient(transparent,rgba(0,0,0,.7)); }
.band { background:#e8ebe4; }
.dark-band { background:var(--ink); color:#fff; }
.dark-band .intro,.dark-band .card p { color:rgba(255,255,255,.68); }
.dark-band .card { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.15); }
.faq-list { max-width:820px; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { padding:21px 0; cursor:pointer; font-weight:700; list-style:none; display:flex; justify-content:space-between; gap:20px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; color:var(--orange); font-size:22px; }
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-item p { margin:0 0 21px; color:var(--muted); line-height:1.85; font-size:14px; }
.cta { background:var(--orange); color:#fff; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.cta h2 { margin:8px 0; }
.cta p { margin:0; color:rgba(255,255,255,.8); line-height:1.8; }
.phone { white-space:nowrap; font:700 clamp(27px,4vw,48px) 'DM Sans',sans-serif; }
.phone small { display:block; text-align:right; font:500 12px 'Noto Sans SC',sans-serif; letter-spacing:.12em; }
.button { display:inline-flex; margin-top:22px; padding:13px 20px; background:var(--orange); color:#fff; font-weight:700; }
.button-light { background:#fff; color:var(--ink); }
footer { padding:25px 0; background:var(--ink); color:rgba(255,255,255,.62); font-size:12px; }
footer .footer-nav { flex-basis:100%; display:flex; align-items:center; gap:10px 14px; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid rgba(255,255,255,.12); flex-wrap:wrap; }
footer .footer-nav strong { color:var(--lime); font-size:12px; font-weight:700; letter-spacing:.08em; }
footer .footer-nav a { color:rgba(255,255,255,.76); font-size:13px; transition:color .2s ease; }
footer .footer-nav a:hover { color:#fff; }
.site-datetime { display:flex; align-items:center; gap:10px; margin:0 0 16px; color:rgba(255,255,255,.8); }
.calendar-mark { display:flex; width:42px; height:44px; flex:none; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.22); border-top:3px solid var(--orange); }
.calendar-mark span { color:var(--lime); font-size:10px; line-height:1.2; }
.calendar-mark strong { color:#fff; font:700 19px 'DM Sans',sans-serif; line-height:1.15; }
.datetime-copy { display:grid; gap:3px; }
.datetime-time { color:#fff; font:700 20px 'DM Sans',sans-serif; font-variant-numeric:tabular-nums; }
.datetime-date { color:rgba(255,255,255,.62); font-size:12px; }
.footer-location { display:flex; flex:0 0 100%; align-items:flex-start; gap:12px; min-width:0; margin:0 0 16px; }
.location-icon { display:grid; width:34px; height:34px; flex:none; place-items:center; background:rgba(238,107,47,.14); border:1px solid rgba(238,107,47,.36); border-radius:4px; font-size:17px; }
.footer-location-copy { display:grid; min-width:0; gap:4px; }
.footer-location-copy strong { color:var(--lime); font-size:11px; font-weight:700; }
.footer-location-copy address { color:#fff; font-size:13px; font-style:normal; line-height:1.5; overflow-wrap:anywhere; }
.footer-coordinates { color:rgba(255,255,255,.62); font-size:11px; font-variant-numeric:tabular-nums; line-height:1.5; overflow-wrap:anywhere; }
footer .footer-row { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
footer address { font-style:normal; }
footer a { color:#fff; }
footer .public-security { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border:1px solid rgba(255,255,255,.2); border-radius:4px; color:rgba(255,255,255,.65); font-size:11px; letter-spacing:.03em; transition:border-color .2s,color .2s; }
footer .public-security img { display:block; width:16px; height:16px; object-fit:contain; flex:none; }
footer .public-security:hover { border-color:rgba(255,255,255,.5); color:#fff; }
@media (prefers-reduced-motion:reduce) { .scroll-reveal { opacity:1; transform:none; transition:none; } }
@media (max-width:700px) { .site-datetime { gap:8px; margin-bottom:12px; } .datetime-time { font-size:17px; } .datetime-date { font-size:10px; } }
@media (max-width:700px) { .wrap { width:min(100% - 28px,1160px); } .nav { min-height:68px; align-items:center; flex-wrap:wrap; padding:15px 0; } .nav-links { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:14px; font-size:12px; } .nav-links a { min-width:0; padding:8px 3px; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .nav-call { grid-column:1 / -1; padding:8px 9px; } .page-hero { padding:62px 0 58px; } .page-hero h1 { font-size:40px; } main section { padding:58px 0; } .section-head,.cta-inner { display:block; } .intro { margin-top:18px; } .grid { grid-template-columns:1fr; } .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .photo-grid figure:first-child { grid-column:span 2; grid-row:span 1; aspect-ratio:16 / 10; } .photo-grid figcaption { padding:28px 9px 9px; font-size:12px; } .phone { display:block; margin-top:26px; } .phone small { text-align:left; } }