/* ============ Ocean Fresh palette ============ */
:root{
  --lake:#34B7C9;        /* 湖水蓝 primary */
  --lake-deep:#2795A7;   /* hover */
  --sky:#8DD7F7;         /* 天空蓝 secondary */
  --sky-mist:#DFF3FB;    /* light tint for chips */
  --coral:#FF7A66;       /* 珊瑚橙 accent — CTAs only */
  --coral-deep:#F2604B;
  --glacier:#F3FBFC;     /* 冰川白 background */
  --deep:#234A57;        /* 深海蓝 body text */
  --deep-soft:#4A6B77;   /* secondary text */
  --line:rgba(35,74,87,0.12);
  --radius:20px;
  --shadow:0 10px 30px rgba(35,74,87,0.10);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0; background:var(--glacier); color:var(--deep); line-height:1.7;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0; color:var(--deep); line-height:1.25; font-weight:700;}
p{margin:0;}
a{color:var(--lake-deep);}
img{max-width:100%; height:auto; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 20px;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.section{padding:64px 0;}
.section-head{text-align:center; max-width:640px; margin:0 auto 40px;}
.eyebrow{display:block; color:var(--lake); font-size:0.82rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:10px;}
.section-head h2{font-size:clamp(1.6rem,4.5vw,2.2rem);}
.section-head .sub{margin-top:12px; color:var(--deep-soft); font-size:0.98rem;}

/* ============ Buttons ============ */
.btn{display:inline-block; border-radius:999px; padding:13px 30px; font-weight:700; font-size:0.98rem; text-decoration:none; text-align:center; transition:background 0.2s,color 0.2s,transform 0.15s;}
.btn:active{transform:scale(0.97);}
.btn-coral{background:var(--coral); color:#fff; box-shadow:0 8px 22px rgba(255,122,102,0.38);}
.btn-coral:hover{background:var(--coral-deep);}
.btn-ghost-light{border:2px solid rgba(255,255,255,0.85); color:#fff;}
.btn-ghost-light:hover{background:#fff; color:var(--deep);}
.btn-ghost{border:2px solid var(--lake); color:var(--lake-deep);}
.btn-ghost:hover{background:var(--lake); color:#fff;}

/* ============ Header ============ */
header{position:sticky; top:0; z-index:60; background:rgba(255,255,255,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:1120px; margin:0 auto; padding:10px 20px;}
.brand img{height:44px; width:auto;}
nav.links{display:none;}
nav.links.open{display:block; position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow);}
nav.links ul{list-style:none; margin:0; padding:10px 20px 16px; display:flex; flex-direction:column; gap:2px;}
nav.links a{display:block; padding:11px 8px; text-decoration:none; color:var(--deep); font-weight:600; font-size:0.95rem; border-radius:10px;}
nav.links a:hover{background:var(--sky-mist); color:var(--lake-deep);}
.nav-right{display:flex; align-items:center; gap:10px;}
.lang-btn{display:inline-block; border:2px solid var(--lake); background:none; color:var(--lake-deep); font-weight:700; font-size:0.82rem; padding:7px 16px; border-radius:999px; cursor:pointer; letter-spacing:0.04em; text-decoration:none;}
.lang-btn:hover{background:var(--lake); color:#fff;}
.nav-toggle{background:none; border:none; font-size:1.5rem; color:var(--deep); cursor:pointer; padding:4px 8px;}

/* ============ Hero ============ */
.hero{position:relative; min-height:88vh; min-height:88svh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; padding:72px 0 110px;}
.hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%;}
.hero-shade{position:absolute; inset:0; background:linear-gradient(180deg,rgba(24,58,72,0.38) 0%,rgba(24,58,72,0.52) 55%,rgba(24,58,72,0.66) 100%);}
.hero-content{position:relative; z-index:2; max-width:720px; padding:0 24px;}
.hero-logo{width:min(220px,52vw); margin:0 auto 22px;}
.hero-chip{display:inline-block; background:rgba(255,255,255,0.16); border:1px solid rgba(255,255,255,0.4); color:#fff; border-radius:999px; padding:7px 18px; font-size:0.85rem; font-weight:600; backdrop-filter:blur(4px); margin-bottom:18px;}
.hero h1{color:#fff; font-size:clamp(1.9rem,6vw,3.1rem); text-shadow:0 2px 14px rgba(20,50,64,0.45);}
.hero .lead{margin:16px auto 0; color:rgba(255,255,255,0.92); font-size:clamp(0.98rem,2.6vw,1.12rem); max-width:560px; text-shadow:0 1px 8px rgba(20,50,64,0.4);}
.hero .cta-row{margin-top:30px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.hero-wave{position:absolute; left:0; right:0; bottom:-1px; z-index:3; display:block; width:100%; height:64px;}

/* ============ Stats ============ */
.stats{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:44px;}
.stat{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px 12px; text-align:center; box-shadow:var(--shadow);}
.stat b{display:block; font-size:1.7rem; color:var(--lake); line-height:1.2;}
.stat b small{font-size:1rem;}
.stat span{font-size:0.82rem; color:var(--deep-soft); font-weight:600;}

/* ============ Photo cards ============ */
.photo-cards{display:grid; gap:24px; margin-bottom:44px;}
.photo-card{background:#fff; border:1px solid var(--line); border-radius:24px; overflow:hidden; box-shadow:var(--shadow);}
.photo-card img{width:100%; aspect-ratio:16/10; object-fit:cover;}
.photo-card .body{padding:24px 22px 26px;}
.photo-card h3{font-size:1.25rem; margin-bottom:10px;}
.photo-card p{color:var(--deep-soft); font-size:0.95rem;}
.chips{margin-top:16px; display:flex; flex-wrap:wrap; gap:8px;}
.chips span{background:var(--sky-mist); color:var(--lake-deep); font-size:0.8rem; font-weight:700; border-radius:999px; padding:5px 13px;}

/* ============ Facility grid ============ */
.facility-grid{display:grid; grid-template-columns:1fr; gap:14px;}
.facility-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px 20px;}
.facility-card .ic{font-size:1.8rem; display:block; margin-bottom:8px;}
.facility-card h3{font-size:1.05rem; margin-bottom:6px;}
.facility-card p{font-size:0.88rem; color:var(--deep-soft);}

/* ============ Tickets band ============ */
.band{position:relative; overflow:hidden; background:linear-gradient(135deg,var(--lake) 0%,var(--lake-deep) 100%); border-radius:28px; color:#fff; padding:44px 26px; box-shadow:0 16px 40px rgba(52,183,201,0.35);}
.band::before,.band::after{content:""; position:absolute; border-radius:50%; background:rgba(141,215,247,0.25);}
.band::before{width:220px; height:220px; top:-90px; right:-60px;}
.band::after{width:150px; height:150px; bottom:-70px; left:-40px;}
.band > *{position:relative; z-index:1;}
.band .eyebrow{color:var(--sky-mist);}
.band h2{color:#fff; font-size:clamp(1.5rem,4.5vw,2rem); margin-bottom:8px;}
.band .note{color:rgba(255,255,255,0.92); font-size:0.98rem; max-width:520px;}
.band ul{list-style:none; margin:24px 0 0; padding:0;}
.band li{display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.28); font-size:0.95rem;}
.band li:last-child{border-bottom:none;}
.band li .k{color:rgba(255,255,255,0.85); font-weight:600;}
.band li .v{font-weight:700; text-align:right;}
.band .cta-row{margin-top:26px;}
.band .small{margin-top:14px; font-size:0.82rem; color:rgba(255,255,255,0.8);}

/* ============ Location ============ */
.loc-grid{display:grid; gap:24px;}
.loc-info{background:#fff; border:1px solid var(--line); border-radius:24px; padding:30px 24px; box-shadow:var(--shadow);}
.loc-info h3{font-size:1.2rem; margin-bottom:14px;}
.loc-rows{list-style:none; margin:0; padding:0;}
.loc-rows li{display:flex; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); font-size:0.95rem; align-items:baseline;}
.loc-rows li:last-child{border-bottom:none;}
.loc-rows .ic{flex:0 0 auto; font-size:1.15rem; line-height:1.4;}
.badge-parking{display:inline-block; margin-top:18px; background:var(--sky-mist); color:var(--lake-deep); font-weight:700; font-size:0.88rem; border-radius:999px; padding:8px 18px;}
.map-card{border-radius:24px; background:linear-gradient(160deg,var(--sky-mist) 0%,#BFE9F9 100%); border:1px solid var(--line); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:44px 24px; min-height:260px;}
.map-card .pin{font-size:2.6rem; line-height:1; margin-bottom:12px;}
.map-card b{font-size:1.05rem;}
.map-card p{color:var(--deep-soft); font-size:0.88rem; margin-top:8px;}

/* ============ Events ============ */
.event-grid{display:grid; gap:16px;}
.event-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px; box-shadow:var(--shadow); display:flex; flex-direction:column;}
.event-tag{align-self:flex-start; background:var(--sky-mist); color:var(--lake-deep); font-size:0.78rem; font-weight:700; border-radius:999px; padding:4px 13px; margin-bottom:12px;}
.event-card h3{font-size:1.1rem; margin-bottom:8px;}
.event-card p{font-size:0.9rem; color:var(--deep-soft); flex:1;}
.event-meta{margin-top:14px; font-size:0.82rem; color:var(--deep-soft);}
.event-link{margin-top:6px; font-weight:700; font-size:0.9rem; color:var(--coral-deep); text-decoration:none;}
.event-link:hover{text-decoration:underline;}
.events-note{text-align:center; margin-top:26px; color:var(--deep-soft); font-size:0.9rem;}

/* ============ Contact ============ */
.contact-inner{max-width:520px; margin:0 auto; text-align:center;}
.contact-logo{width:130px; margin:0 auto 20px;}
.qr-card{background:#fff; border:1px solid var(--line); border-radius:24px; padding:26px 26px 22px; box-shadow:var(--shadow); display:inline-block;}
.qr-card img{width:min(300px,72vw); height:auto; margin:0 auto; border-radius:8px;}
.qr-caption{margin-top:14px; font-weight:700; font-size:1.02rem; color:var(--deep);}
.qr-caption-sub{font-size:0.85rem; color:var(--deep-soft); margin-top:2px;}
.contact-rows{list-style:none; margin:30px 0 0; padding:0; text-align:left;}
.contact-rows li{display:flex; gap:12px; align-items:baseline; padding:12px 4px; border-bottom:1px solid var(--line); font-size:0.95rem;}
.contact-rows li:last-child{border-bottom:none;}
.contact-rows .ic{flex:0 0 auto;}
.placeholder{color:var(--deep-soft); background:var(--sky-mist); border-radius:6px; padding:1px 8px; font-size:0.88rem;}

/* ============ Footer ============ */
.footer-wave{display:block; width:100%; height:56px; margin-bottom:-1px;}
footer{background:var(--deep); color:rgba(255,255,255,0.85); padding:40px 0 34px;}
.foot-inner{display:flex; flex-direction:column; align-items:center; gap:16px; text-align:center;}
.foot-inner img{height:52px; width:auto;}
footer .tagline{font-size:0.95rem; color:#fff; font-weight:600;}
footer .copy{font-size:0.8rem; color:rgba(255,255,255,0.6);}

/* ============ Desktop ============ */
@media (min-width:720px){
  .section{padding:96px 0;}
  .stats{grid-template-columns:repeat(4,1fr); gap:16px;}
  .photo-cards{grid-template-columns:1fr 1fr;}
  .facility-grid{grid-template-columns:repeat(2,1fr); gap:16px;}
  .band{padding:56px 56px; display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center;}
  .band ul{margin-top:0;}
  .loc-grid{grid-template-columns:1.1fr 0.9fr;}
  .event-grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:1000px){
  .facility-grid{grid-template-columns:repeat(4,1fr);}
  nav.links{display:block; position:static; background:none; border:none; box-shadow:none;}
  nav.links ul{flex-direction:row; gap:6px; padding:0;}
  nav.links a{padding:9px 14px; font-size:0.92rem;}
  .nav-toggle{display:none;}
}
