[hidden] { display: none !important; }
:root { --paper:#faf9f5; --ink:#1e302a; --forest:#123c32; --forest-dark:#0b3028; --green:#597d66; --sun:#f4c36d; --line:#e3e6df; --muted:#6e7b74; background:var(--paper); }
body { background:var(--paper); }
.menu-toggle { display:none; border:0; background:none; color:inherit; font-size:25px; cursor:pointer; }
.site-header { position:sticky; top:0; z-index:30; transition:background-color .25s, box-shadow .25s, color .25s; }
.header-inner { min-height:70px; gap:24px; }
.brand { letter-spacing:-.055em; }
.brand-mark { width:36px; height:36px; border-radius:50% 50% 45% 45%; background:#f6bf67; color:#17392e; font-size:22px; }
.main-nav { gap:clamp(10px,1.4vw,24px); }
.main-nav a { font-size:13px; white-space:nowrap; }
.main-nav a[aria-current="page"] { color:#286e53; }
.header-link { padding:9px 15px; border-radius:30px; white-space:nowrap; }
.page-home .site-header { position:fixed; top:0; left:0; right:0; border:0; background:rgba(255,255,255,var(--header-bg-alpha,0)); color:white; box-shadow:0 4px 24px rgba(16,43,40,var(--header-shadow-alpha,0)); }
.page-home .site-header .main-nav a { color:#fff; text-shadow:0 1px 10px #102d2d70; transition:color .25s,text-shadow .25s; }
.page-home .site-header .header-link { border-color:#ffffff80; background:#ffffff2a; transition:background-color .25s,border-color .25s,color .25s; }
.page-home .site-header .brand-number { color:#f5c16d; transition:color .25s; }
.page-home .site-header.is-scrolled,.page-home .site-header.menu-open { color:var(--ink); }
.page-home .site-header.menu-open { background:#fff; box-shadow:0 4px 24px #102b281a; }
.page-home .site-header.is-scrolled .main-nav a,.page-home .site-header.menu-open .main-nav a { color:#435d50; text-shadow:none; }
.page-home .site-header.is-scrolled .header-link,.page-home .site-header.menu-open .header-link { border-color:var(--line); background:white; }
.page-home .site-header.is-scrolled .brand-number,.page-home .site-header.menu-open .brand-number { color:#b47b3c; }

/* Destination navigation */
.site-header .header-inner { position:relative; }
.nav-destinations-top { display:flex; align-items:center; }
@media(min-width:1101px) {
  .nav-destinations::before { content:""; position:absolute; top:44px; left:50%; width:min(1120px,calc(100vw - 40px)); height:29px; transform:translateX(-50%); pointer-events:none; }
  .nav-destinations:hover::before,.nav-destinations:focus-within::before { pointer-events:auto; }
}
.nav-destinations-trigger { display:inline-flex; align-items:center; gap:4px; }
.nav-destinations-trigger span { font-size:15px; line-height:1; transition:transform .2s; }
.nav-destinations:hover .nav-destinations-trigger span,.nav-destinations:focus-within .nav-destinations-trigger span { transform:rotate(180deg); }
.nav-destinations-toggle { display:none; }
.destination-menu { position:absolute; top:100%; left:50%; width:min(1120px,calc(100vw - 40px)); max-height:calc(100vh - 82px); overflow-y:auto; padding:23px 26px 27px; border:1px solid #e5e9e4; border-radius:0 0 18px 18px; background:#fffdfa; color:#1c342b; box-shadow:0 22px 50px #15342530; opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,-8px); transition:opacity .18s,visibility .18s,transform .18s; }
.nav-destinations:hover .destination-menu,.nav-destinations:focus-within .destination-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.destination-menu-heading,.destination-menu-section-title { display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.destination-menu-heading { align-items:center; padding-bottom:18px; border-bottom:1px solid #e7ebe7; }
.destination-menu-heading div { display:grid; gap:4px; }
.destination-menu-heading span:first-child { color:#8b9a91; font-size:10px; font-weight:850; letter-spacing:.2em; }
.destination-menu-heading strong { font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:23px; }
.site-header .main-nav .destination-menu a { padding:0; border:0; color:#203b31; text-shadow:none; }
.site-header .main-nav .destination-menu-heading>a { color:#2468bf; font-size:12px; font-weight:800; }
.site-header .main-nav .destination-menu a:hover { color:#1b67c8; }
.destination-menu-section { margin-top:18px; }
.destination-menu-section-title { margin-bottom:11px; }
.destination-menu-section-title h2 { margin:0; color:#21392f; font-size:15px; }
.destination-menu-section-title p { margin:0; color:#819188; font-size:11px; }
.destination-menu-popular { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.destination-menu-popular a,.destination-menu-regions a { display:block; overflow:hidden; border:1px solid #e7ece8!important; border-radius:10px; background:#fff; text-decoration:none; box-shadow:0 3px 12px #173c290b; }
.destination-menu-popular a:hover,.destination-menu-regions a:hover { border-color:#a9c4b3!important; transform:translateY(-2px); }
.destination-menu-popular img { display:block; width:100%; height:82px; object-fit:cover; }
.destination-menu-popular strong { display:block; padding:8px 10px 10px; font-size:13px; }
.destination-menu-regions { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.destination-menu-regions img { display:block; width:100%; height:65px; object-fit:cover; }
.destination-menu-regions a span { display:flex; align-items:center; justify-content:space-between; gap:4px; padding:8px 10px 10px; }
.destination-menu-regions strong { font-size:13px; }
.destination-menu-regions small { color:#6e8880; font-size:10px; white-space:nowrap; }
@media(max-width:1100px) {
  .nav-destinations { width:100%; }
  .nav-destinations-top { justify-content:space-between; border-bottom:1px solid #e5e9e2; }
  .site-header .main-nav .nav-destinations-trigger { flex:1; border:0; }
  .nav-destinations-toggle { display:grid; place-items:center; width:42px; height:42px; border:0; background:transparent; color:#294f3b; font-size:19px; cursor:pointer; }
  .nav-destinations.is-open .nav-destinations-toggle { transform:rotate(180deg); }
  .destination-menu { display:none; position:static; width:100%; max-height:none; overflow:visible; margin:0; padding:15px 0 21px; border:0; border-radius:0; box-shadow:none; opacity:1; visibility:visible; pointer-events:auto; transform:none; transition:none; }
  .nav-destinations:hover .destination-menu,.nav-destinations:focus-within .destination-menu { display:none; transform:none; }
  .nav-destinations.is-open .destination-menu,.nav-destinations.is-open:hover .destination-menu,.nav-destinations.is-open:focus-within .destination-menu { display:block; }
  .site-header .main-nav { max-height:calc(100vh - 70px); overflow-y:auto; }
  .destination-menu-popular,.destination-menu-regions { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .site-header .main-nav { max-height:calc(100vh - 64px); }
  .destination-menu-section-title p { display:none; }
  .destination-menu-heading strong { font-size:19px; }
  .destination-menu-popular,.destination-menu-regions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .destination-menu-popular img { height:72px; }
}

/* Destination cover */
.mag-hero { position:relative; display:flex; flex-direction:column; min-height:min(850px,100svh); min-height:max(660px,100svh); overflow:hidden; background:#22493c; color:white; }
.mag-hero-image,.mag-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.mag-hero-image { object-fit:cover; object-position:center 50%; transition:opacity .38s ease, transform .6s ease; }
.mag-hero-image.is-changing { opacity:.2; transform:scale(1.025); }
.mag-hero-shade { background:linear-gradient(90deg,#071d1cd4 0%,#0925238a 35%,#09262122 75%),linear-gradient(0deg,#051e1bd9 0%,transparent 40%,#09251f48 100%); }
.mag-hero-inner { position:relative; z-index:1; display:flex; align-items:center; flex:1; padding-top:130px; padding-bottom:130px; }
.mag-hero-copy { max-width:760px; }
.mag-kicker,.mag-eyebrow { display:block; color:#b4803a; font-size:12px; font-weight:850; letter-spacing:.22em; }
.mag-kicker { color:#ffda9a; }
.mag-hero h1 { margin:24px 0 22px; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(52px,6.1vw,92px); line-height:1.2; letter-spacing:-.065em; font-weight:700; text-shadow:0 3px 20px #10292050; }
.mag-hero-copy p { max-width:640px; margin:0; font-size:clamp(16px,1.4vw,21px); line-height:1.8; color:#f0f4ee; }
.mag-cta { display:inline-flex; align-items:center; justify-content:space-between; gap:45px; min-width:195px; margin-top:36px; padding:16px 24px; border-radius:40px; background:var(--sun); color:#173528; font-weight:850; font-size:14px; text-decoration:none; transition:transform .2s,background .2s; }
.mag-cta:hover { transform:translateY(-2px); background:#f9d293; }
.mag-cta > span:last-child { font-size:20px; line-height:1; }
.hero-bottom { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:end; gap:24px; padding-bottom:35px; }
.hero-controls { display:flex; align-items:center; gap:12px; }
.hero-controls button,.map-promo-controls button,.event-scroll-controls button { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid #ffffffae; border-radius:50%; background:#173a2f4d; color:white; font-size:19px; cursor:pointer; }
.hero-controls button:hover { background:#fff; color:var(--forest-dark); }
.hero-controls .hero-shuffle { width:auto; min-width:140px; padding:0 16px; border-radius:25px; font-size:12px; font-weight:800; }
.hero-progress { width:90px; height:2px; margin:0 5px; background:#ffffff65; }
.hero-progress span { display:block; height:2px; width:2%; background:var(--sun); transition:width .3s; }
.hero-photo-note { display:flex; flex-direction:column; align-items:end; gap:5px; color:#edf1e9; font-size:11px; text-align:right; }
.hero-photo-note a { color:#d7e4db; font-size:10px; text-decoration:underline; text-underline-offset:3px; }

/* Destination index */
.explore-regions.container { width:min(1380px,calc(100% - 48px)); padding-top:96px; padding-bottom:70px; scroll-margin-top:74px; }
.mag-section-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:32px; }
.mag-section-heading h2 { margin:10px 0 10px; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(34px,4vw,52px); letter-spacing:-.055em; line-height:1.22; }
.mag-section-heading p { max-width:670px; margin:0; color:#6d7c72; font-size:14px; line-height:1.8; }
.mag-section-heading > a { flex:none; padding-bottom:6px; color:#265d4a; font-size:13px; font-weight:800; text-decoration:none; white-space:nowrap; }
.mag-section-heading > a:hover { color:#b7773a; }
.destination-index-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:91px; }
.destination-index-kicker,.region-index-eyebrow { display:block; color:#667684; font-size:12px; font-weight:800; letter-spacing:.2em; }
.destination-index-heading h2 { margin:20px 0 0; color:#102722; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(36px,3.4vw,48px); line-height:1.2; letter-spacing:-.065em; }
.destination-index-heading h2 span { color:#2657df; font-family:Arial,sans-serif; font-size:1.2em; font-weight:800; letter-spacing:-.08em; }
.destination-index-heading p { margin:0 2px 4px 0; color:#697887; font-size:14px; line-height:1.8; }
.destination-index-layout { display:grid; grid-template-columns:285px minmax(0,1fr); gap:32px; min-height:500px; border-bottom:1px solid #d9e0df; }
.region-index-nav { display:flex; flex-direction:column; gap:7px; padding:3px 27px 28px 0; border-right:1px solid #d9e0df; }
.region-index-trigger { display:flex; align-items:center; gap:17px; min-height:58px; padding:0 15px; border-radius:5px; color:#1b302b; text-decoration:none; transition:background .2s,color .2s; }
.region-index-photo,.region-index-arrow { display:none; }
.region-index-trigger:hover,.region-index-trigger.is-active { background:#eaf0fc; color:#2456e0; }
.region-index-number { flex:none; color:#6b7883; font-size:11px; font-family:Arial,sans-serif; }
.region-index-trigger.is-active .region-index-number { color:#2456e0; }
.region-index-trigger strong { font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:19px; font-weight:500; }
.region-index-trigger small { margin-left:auto; white-space:nowrap; font-size:12px; }
.region-expansions { min-width:0; padding-bottom:22px; }
.region-panel { animation:region-reveal .26s ease; }
@keyframes region-reveal { from { opacity:.65; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
.region-panel-heading { display:flex; justify-content:space-between; gap:24px; align-items:start; margin:0 0 32px; }
.region-index-eyebrow { color:#2456e0; }
.region-panel-heading h3 { margin:9px 0 14px; color:#102722; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(27px,2.5vw,35px); font-weight:500; line-height:1.35; }
.region-panel-heading p { margin:0; color:#647787; font-size:13px; line-height:1.8; }
.region-panel-count { flex:none; margin-top:14px; padding:6px 15px; border:1px solid #d9e0df; border-radius:30px; color:#1b302b; font-size:13px; }
.region-province-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:25px; row-gap:21px; }
.region-province-card { display:flex; align-items:center; gap:12px; min-width:0; min-height:76px; color:#142923; text-decoration:none; }
.region-province-card:hover .region-province-name strong { color:#2456e0; }
.region-province-card:focus-visible { outline:2px solid #2456e0; outline-offset:3px; border-radius:4px; }
.region-province-media { display:block; flex:0 0 67px; width:67px; height:67px; overflow:hidden; border:3px solid #fff; border-radius:50%; background:#e6ede7; box-shadow:0 0 0 1px #e3e9e8; }
.region-province-media img { width:100%; height:100%; object-fit:cover; }
.region-no-photo { display:grid; place-items:center; width:100%; height:100%; color:#6e8a75; font-size:11px; letter-spacing:.04em; text-align:center; }
.region-province-content { display:flex; flex-direction:column; gap:5px; min-width:0; }
.region-province-name { display:flex; align-items:baseline; gap:7px; min-width:0; }
.region-province-name strong { flex:none; color:#142923; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:17px; font-weight:600; white-space:nowrap; }
.region-province-name small { overflow:hidden; color:#667b8a; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.region-province-tagline { display:-webkit-box; overflow:hidden; color:#627685; font-size:12px; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.region-index-foot { display:flex; justify-content:space-between; gap:18px; margin-top:30px; padding-top:22px; border-top:1px solid #d9e0df; color:#70808b; font-size:12px; }
.region-index-foot a { color:#2456e0; font-weight:700; text-decoration:none; white-space:nowrap; }
.region-index-foot a:hover { text-decoration:underline; }

/* Map signpost */
.map-promo { position:relative; margin-top:45px; margin-bottom:95px; }
.map-promo-slide { position:relative; min-height:345px; display:flex; align-items:center; overflow:hidden; border-radius:10px; background:#1d4d43; color:#fff; }
.map-promo-image,.map-promo-shade { position:absolute; inset:0; width:100%; height:100%; }
.map-promo-image { object-fit:cover; }
.map-promo-shade { background:linear-gradient(90deg,#082e2cda 0%,#0b3b39af 50%,#082b2940 100%); }
.map-promo-copy { position:relative; z-index:2; max-width:580px; padding:45px 55px; }
.map-promo-copy .mag-eyebrow { color:#f5d08c; }
.map-promo-copy h2 { margin:12px 0; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(30px,3vw,44px); }
.map-promo-copy p { max-width:470px; margin:0; color:#e7f2ea; line-height:1.8; }
.map-promo-copy .mag-cta { margin-top:24px; }
.map-promo-map { position:absolute; z-index:1; right:12%; top:4%; width:auto; height:92%; max-width:32%; object-fit:contain; filter:drop-shadow(0 10px 20px #08231c88); opacity:.9; }
.map-promo-controls { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:13px; color:#54725f; font-size:12px; }
.map-promo-controls button,.event-scroll-controls button { width:35px; height:35px; border-color:#afc2b1; background:#fff; color:#345b45; }

/* Upcoming activities */
.home-events { padding-bottom:110px; }
.home-events-scroll { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 2px 16px; scrollbar-width:thin; }
.home-event-card { flex:0 0 min(300px,80vw); overflow:hidden; border:1px solid #e8e9e2; border-radius:8px; background:#fff; text-decoration:none; scroll-snap-align:start; }
.home-event-media { display:block; aspect-ratio:1.5; background:#285847; color:#d7c698; }
.home-event-media img { width:100%; height:100%; object-fit:cover; }
.home-event-media > span { display:grid; place-items:center; height:100%; font-size:28px; font-weight:800; letter-spacing:.15em; text-align:center; }
.home-event-body { display:flex; flex-direction:column; min-height:155px; padding:18px; }
.home-event-body time { color:#ad7a3c; font-size:11px; font-weight:800; }
.home-event-body strong { margin:10px 0 7px; font-size:19px; }
.home-event-body small { color:#698072; font-size:12px; }
.home-event-body em { align-self:start; margin-top:12px; padding:5px 10px; border-radius:15px; background:#f6ead5; color:#775a30; font-size:11px; font-style:normal; }
.home-event-body > span { margin-top:auto; padding-top:13px; color:#427052; font-size:11px; font-weight:800; }
.event-scroll-controls { display:flex; justify-content:end; gap:8px; margin-top:13px; }
.home-events-empty { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:28px 30px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.home-events-empty p { margin:0; color:var(--muted); }
.home-events-empty a { color:var(--forest); font-weight:800; white-space:nowrap; }

/* Sitewide footer and province editorial cover */
.site-footer { padding-top:70px; background:#0b3028; }
.footer-inner.footer-magazine { display:grid; grid-template-columns:minmax(240px,2fr) repeat(3,minmax(130px,1fr)); gap:30px; padding-bottom:48px; }
.footer-brand-block { display:flex; flex-direction:column; align-items:start; }
.footer-brand { display:flex; flex-direction:column; gap:1px; font-size:27px; line-height:1.05; text-decoration:none; }
.footer-brand small { color:#d8ba75; font-size:9px; letter-spacing:.2em; }
.footer-brand-block > strong { margin-top:33px; color:#fff; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:19px; line-height:1.55; }
.footer-brand-block p { max-width:280px; line-height:1.8; }
.footer-column { display:flex; flex-direction:column; align-items:start; gap:12px; }
.footer-column h2 { margin:0 0 10px; color:#fff; font-size:13px; }
.footer-column a { color:#c5d8cd; font-size:12px; line-height:1.35; text-decoration:none; }
.footer-column a:hover,.footer-bottom a:hover { color:#f3c575; }
.footer-column p { margin:0; color:#9fbaaa; font-size:12px; line-height:1.8; }
.footer-social { display:flex; align-items:center; gap:24px; min-height:82px; padding-top:19px; padding-bottom:19px; border-top:1px solid #47705a; }
.footer-social h2 { flex:none; margin:0; color:#fff; font-size:13px; }
.footer-social-icons { display:flex; align-items:center; flex-wrap:wrap; gap:10px; min-height:38px; }
.footer-social-link { display:grid; place-items:center; width:36px; height:36px; border:1px solid #779784; border-radius:50%; color:#fff; font-size:17px; font-weight:800; text-decoration:none; }
.footer-social-link:hover { border-color:#f3c575; color:#f3c575; }
.footer-bottom a { color:inherit; }
.site-info-page { min-height:55vh; padding-top:145px; padding-bottom:115px; }
.site-info-page h1 { margin:18px 0 22px; color:#102722; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(40px,5vw,62px); }
.site-info-page > p { max-width:690px; margin:0; color:#596d62; font-size:17px; line-height:1.9; }
.site-info-nav { display:flex; flex-wrap:wrap; gap:13px; margin-top:48px; }
.site-info-nav a { padding:10px 16px; border:1px solid #d8e1d9; border-radius:30px; color:#2d6048; font-size:13px; text-decoration:none; }
.site-info-nav a:hover,.site-info-nav a[aria-current="page"] { border-color:#285743; background:#285743; color:#fff; }
.photo-credits-page { padding-top:130px; padding-bottom:100px; }
.photo-credits-page h1 { margin:12px 0; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(34px,4vw,54px); }
.photo-credits-page > p { max-width:720px; color:#617067; line-height:1.8; }
.photo-credits-subheading { margin:70px 0 -12px; font-family:"Noto Serif SC","Songti SC",serif; font-size:28px; }
.photo-credits-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:40px; }
.photo-credit-card { overflow:hidden; border:1px solid #e5e5dc; border-radius:8px; background:#fff; }
.photo-credit-card img { display:block; width:100%; height:175px; object-fit:cover; }
.photo-credit-card > div { padding:18px; }
.photo-credit-card h2 { margin:0 0 8px; font-size:19px; }
.photo-credit-card p { margin:5px 0; color:#5c695f; font-size:12px; line-height:1.6; }
.photo-credit-card a { color:#155c52; font-size:12px; }
.map-page { padding-top:75px; }
.map-page .section-intro h1 { margin:13px 0 0; font-size:clamp(34px,4vw,52px); }
.map-page .map-selection h2 { margin:auto 0 0; font-size:52px; }
.map-page .map-side-note a { margin-top:20px; color:#275b43; font-weight:800; }

/* Province pages share the destination photography and restrained typography. */
.province-mag-hero { position:relative; min-height:510px; display:flex; align-items:center; overflow:hidden; border-radius:9px; background:#245344; color:white; }
.province-mag-hero > img,.province-mag-shade { position:absolute; inset:0; width:100%; height:100%; }
.province-mag-hero > img { object-fit:cover; }
.province-mag-shade { background:linear-gradient(90deg,#071d1dca 0%,#0c29218c 45%,#09251d16 100%),linear-gradient(0deg,#0a281d7d,transparent 45%); }
.province-mag-copy { position:relative; z-index:1; max-width:670px; padding:55px clamp(28px,6vw,78px); }
.province-mag-copy > span { color:#f7d493; font-size:11px; font-weight:850; letter-spacing:.2em; }
.province-mag-copy h1 { margin:20px 0 0; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(60px,7vw,105px); line-height:1.16; }
.province-mag-copy > strong { color:#ebd2a0; font-size:17px; letter-spacing:.07em; }
.province-mag-copy p { max-width:540px; margin:25px 0 0; color:#f0f3e9; font-size:16px; line-height:1.85; }
.province-mag-copy > div { display:flex; align-items:center; gap:27px; }
.province-map-link { margin-top:35px; color:#fff; font-size:13px; font-weight:800; text-decoration:none; }
.province-photo-credit { position:absolute; z-index:1; right:22px; bottom:17px; color:#fff; font-size:10px; text-decoration:underline; text-underline-offset:2px; }
.province-mag-intro { display:flex; align-items:start; gap:70px; padding-top:39px; padding-bottom:47px; border-bottom:1px solid var(--line); }
.province-mag-intro span { flex:none; color:#9b773f; font-size:11px; font-weight:850; letter-spacing:.15em; }
.province-mag-intro p { max-width:750px; margin:0; color:#455f50; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:20px; line-height:1.8; }
.province-mag-section { padding-top:72px; }
.province-mag-section .mag-section-heading h2,.province-mag-peers h2 { font-size:clamp(29px,3vw,40px); }
.province-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.province-feature-card { position:relative; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:7px; background:white; text-decoration:none; }
.province-feature-image { display:block; aspect-ratio:1.62; background:#dce8df; }
.province-feature-image img { width:100%; height:100%; object-fit:cover; }
.province-feature-card > span:nth-child(2) { display:flex; flex-direction:column; padding:20px 39px 23px 20px; }
.province-feature-card strong { font-size:20px; }
.province-feature-card small { margin-top:4px; color:#8e9d90; font-size:11px; }
.province-feature-card em { margin-top:12px; color:#617568; font-size:12px; line-height:1.6; font-style:normal; }
.province-feature-card i { position:absolute; right:18px; bottom:20px; color:#376248; font-style:normal; }
.province-mini-list { border-top:1px solid var(--line); }
.province-mini-list a { display:flex; align-items:center; gap:18px; padding:21px 4px; border-bottom:1px solid var(--line); text-decoration:none; }
.province-mini-list time { min-width:110px; color:#a97b40; font-size:12px; font-weight:800; }
.province-mini-list strong { font-size:18px; }
.province-mini-list small { color:#9b7856; font-size:11px; }
.province-mini-list span { margin-left:auto; color:#537e62; }
.province-area-pills,.province-peer-pills { display:flex; flex-wrap:wrap; gap:9px; }
.province-area-pills a,.province-peer-pills a { padding:11px 17px; border:1px solid #ccdace; border-radius:30px; background:#fff; color:#294d37; font-size:13px; font-weight:750; text-decoration:none; }
.province-area-pills a:hover,.province-peer-pills a:hover { background:#e8f0e7; }
.province-mag-peers { margin-top:105px; padding:66px 0 82px; background:#edf1e9; }
.province-mag-peers .mag-section-heading { margin-top:9px; }
.province-peer-pills a small { margin-left:7px; color:#8a9b8b; font-size:10px; }

@media (max-width:1100px) {
  .main-nav { gap:9px; }
  .main-nav a { font-size:12px; }
  .header-inner { gap:15px; }
  .destination-index-layout { grid-template-columns:235px minmax(0,1fr); gap:25px; }
  .region-index-nav { padding-right:18px; }
  .footer-inner.footer-magazine { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .footer-brand-block { grid-column:1 / -1; }
}
@media (max-width:1100px) {
  .header-inner { flex-wrap:nowrap; }
  .menu-toggle { display:block; order:3; }
  .header-link { margin-left:auto; }
  .main-nav { display:none; position:absolute; top:70px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; margin:0; padding:12px 28px 20px; background:#fff; box-shadow:0 12px 25px #0c2c2030; }
  .site-header.menu-open .main-nav { display:flex; }
  .main-nav a,.page-home .site-header .main-nav a { padding:12px 0; border-bottom:1px solid #e5e9e2; color:#294f3b; text-shadow:none; font-size:14px; }
  .region-province-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-promo-map { right:3%; opacity:.55; }
  .province-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
  .destination-index-layout { display:block; }
  .region-index-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; overflow:visible; margin-bottom:31px; padding:0; border-right:0; }
  .region-index-trigger { position:relative; isolation:isolate; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:2px; min-width:0; min-height:130px; overflow:hidden; padding:13px; border:2px solid transparent; border-radius:8px; background:#244b3e; color:#fff; }
  .region-index-trigger::after { content:""; position:absolute; z-index:0; inset:0; background:linear-gradient(0deg,#061b17cf 0%,#071d1833 75%); pointer-events:none; }
  .region-index-photo { display:block; position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:cover; }
  .region-index-trigger > :not(.region-index-photo) { position:relative; z-index:1; }
  .region-index-trigger:hover,.region-index-trigger.is-active { color:#fff; background:#244b3e; }
  .region-index-trigger.is-active { border-color:#6ba4ff; }
  .region-index-number { display:none; }
  .region-index-trigger strong { font-size:19px; font-weight:700; line-height:1.2; }
  .region-index-trigger small { margin-left:0; font-size:12px; }
  .region-index-trigger .region-index-arrow { display:grid; place-items:center; position:absolute; right:10px; bottom:10px; width:25px; height:25px; border:1px solid #ffffffae; border-radius:50%; color:#fff; font-size:15px; line-height:1; }
  .region-index-trigger.is-active .region-index-arrow { border-color:#3979ed; background:#3979ed; }
}
@media (max-width:600px) {
  .container { width:min(100% - 34px,1200px); }
  .site-header .header-inner { min-height:64px; }
  .main-nav { top:64px; }
  .brand { font-size:21px; }
  .brand-mark { width:31px; height:31px; font-size:19px; }
  .header-link { padding:8px 11px; font-size:12px; }
  .mag-hero { min-height:760px; min-height:100svh; }
  .mag-hero-image { object-position:62% center; }
  .mag-hero-shade { background:linear-gradient(90deg,#081d1ac7,transparent 100%),linear-gradient(0deg,#061e1ce8 0%,#0a241f69 55%,#102e2450 100%); }
  .mag-hero-inner { padding-top:110px; padding-bottom:155px; }
  .mag-hero h1 { margin:18px 0; font-size:clamp(43px,10vw,64px); line-height:1.23; }
  .mag-hero-copy p { font-size:14px; }
  .mag-cta { min-width:166px; margin-top:25px; padding:13px 20px; }
  .hero-bottom { flex-direction:column; align-items:start; gap:12px; padding-bottom:18px; }
  .hero-controls { flex-wrap:wrap; gap:8px; max-width:100%; }
  .hero-controls button { width:36px; height:36px; }
  .hero-controls .hero-shuffle { min-width:0; padding:0 12px; }
  .hero-progress { width:clamp(35px,11vw,60px); margin:0; }
  .hero-photo-note { align-items:start; text-align:left; font-size:10px; }
  .explore-regions.container { width:min(100% - 34px,1380px); padding-top:70px; padding-bottom:30px; }
  .mag-section-heading { align-items:start; flex-direction:column; gap:13px; }
  .mag-section-heading h2 { font-size:36px; }
  .mag-section-heading p { font-size:13px; }
  .destination-index-heading { flex-direction:column; align-items:start; gap:18px; margin-bottom:32px; }
  .destination-index-heading h2 { margin-top:10px; font-size:37px; }
  .destination-index-heading p { font-size:13px; }
  .destination-index-layout { display:block; }
  .region-index-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .region-index-trigger { min-height:100px; padding:10px; }
  .region-index-trigger strong { font-size:17px; }
  .region-index-trigger small { font-size:11px; }
  .region-index-trigger .region-index-arrow { right:8px; bottom:8px; width:23px; height:23px; }
  .region-panel-heading { margin-bottom:23px; }
  .region-panel-heading h3 { font-size:27px; }
  .region-panel-heading p { font-size:12px; }
  .region-panel-count { margin-top:3px; padding:4px 10px; }
  .region-province-grid { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:10px; row-gap:9px; }
  .region-province-card { gap:7px; min-height:75px; }
  .region-province-media { flex:0 0 43px; width:43px; height:43px; border-width:2px; }
  .region-province-content { gap:3px; }
  .region-province-name { display:block; }
  .region-province-name strong { display:block; overflow:hidden; font-size:14px; text-overflow:ellipsis; }
  .region-province-name small { display:block; margin-top:1px; font-size:10px; }
  .region-province-tagline { font-size:10px; line-height:1.3; -webkit-line-clamp:3; }
  .region-index-foot { flex-direction:column; gap:10px; }
  .map-promo { margin-top:52px; margin-bottom:70px; }
  .map-promo-slide { min-height:340px; }
  .map-promo-copy { padding:35px 25px; }
  .map-promo-copy h2 { font-size:30px; }
  .map-promo-copy p { max-width:275px; font-size:13px; }
  .map-promo-map { max-width:46%; right:-13%; height:75%; top:15%; opacity:.38; }
  .home-events { padding-bottom:75px; }
  .home-events-empty { align-items:start; flex-direction:column; padding:22px; }
  .footer-inner.footer-magazine { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 18px; }
  .footer-brand-block { grid-column:1 / -1; }
  .footer-column { gap:10px; }
  .footer-social { align-items:flex-start; flex-direction:column; gap:12px; }
  .footer-bottom { flex-direction:column; }
  .site-info-page { padding-top:105px; padding-bottom:80px; }
  .site-info-page > p { font-size:15px; }
  .map-page { padding-top:35px; }
  .province-mag-hero { min-height:440px; }
  .province-mag-hero > img { object-position:60% center; }
  .province-mag-copy { padding:34px 25px 62px; }
  .province-mag-copy h1 { font-size:62px; }
  .province-mag-copy p { font-size:14px; }
  .province-photo-credit { right:14px; bottom:10px; max-width:70%; text-align:right; }
  .province-mag-intro { flex-direction:column; gap:9px; padding-top:26px; padding-bottom:28px; }
  .province-mag-intro p { font-size:16px; }
  .province-mag-section { padding-top:54px; }
  .province-feature-grid { grid-template-columns:1fr; }
  .province-mini-list a { gap:9px; flex-wrap:wrap; }
  .province-mini-list time { min-width:75px; }
  .province-mini-list strong { font-size:15px; }
  .province-mag-peers { margin-top:70px; padding:52px 0; }
}
@media (prefers-reduced-motion:reduce) { .mag-hero-image,.region-panel,.mag-cta { transition:none; animation:none; } }
@media (max-width:900px) { .photo-credits-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .photo-credits-grid { grid-template-columns:1fr; } .photo-credits-page { padding-top:105px; } }

/* Interactive destination map */
.map-explore-hero { position:relative; display:flex; align-items:center; min-height:320px; overflow:hidden; background:#24425a; color:#fff; }
.map-explore-hero > img,.map-explore-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.map-explore-hero > img { object-fit:cover; object-position:center 53%; }
.map-explore-hero-shade { background:linear-gradient(90deg,#102b3cdd 0%,#163b4aab 39%,#173e5242 78%),linear-gradient(0deg,#0b273759,transparent 65%); }
.map-explore-hero-content { position:relative; z-index:1; padding-top:46px; padding-bottom:46px; }
.map-explore-hero-content > span { color:#e5f1f1; font-size:12px; font-weight:800; letter-spacing:.18em; }
.map-explore-hero h1 { margin:12px 0 15px; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(37px,4vw,54px); line-height:1.2; }
.map-explore-hero p { margin:0; color:#f4f8f7; font-size:16px; line-height:1.75; }
.map-explore-hero-credit { position:absolute; right:22px; bottom:14px; z-index:1; color:#fff9; font-size:11px; text-decoration:none; }
.map-page { padding:60px 0 80px; background:#fff; }
.map-page-container { max-width:1380px; }
.map-page-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.map-kicker { color:#9b6339; font-size:11px; font-weight:800; letter-spacing:.2em; }
.map-page-heading h2 { margin:15px 0 8px; color:#19312d; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(33px,3.2vw,44px); font-weight:700; letter-spacing:-.035em; }
.map-page-heading h2 small { margin-left:12px; color:#70847f; font-family:inherit; font-size:15px; font-weight:400; letter-spacing:0; }
.map-page-heading p { margin:0; color:#71847e; font-size:14px; }
.map-page-heading > a { padding-bottom:7px; color:#255ee0; font-size:13px; text-decoration:none; white-space:nowrap; }
.map-page-heading > a:hover { text-decoration:underline; }
.map-explorer-layout { display:grid; grid-template-columns:150px minmax(0,1fr) 270px; gap:18px; align-items:start; }
.map-region-nav { display:flex; flex-direction:column; gap:8px; }
.map-region-nav button { display:flex; align-items:center; gap:12px; width:100%; min-height:53px; padding:0 14px; border:0; border-left:3px solid transparent; border-radius:5px; background:transparent; color:#223833; font:inherit; font-size:14px; text-align:left; cursor:pointer; }
.map-region-nav button:hover { background:#f3f6fb; }
.map-region-nav button.is-active { border-left-color:#2b61df; background:#eaf0ff; color:#245add; }
.map-region-dot { width:9px; height:9px; flex:none; border-radius:50%; background:#293e46; }
.map-region-dot.region-north { background:#7898df; }
.map-region-dot.region-northeast { background:#80b9ab; }
.map-region-dot.region-central { background:#e2c071; }
.map-region-dot.region-east { background:#79bfd5; }
.map-region-dot.region-west { background:#a3b38a; }
.map-region-dot.region-south { background:#a8a4dc; }
.map-page .map-stage { height:620px; overflow:hidden; border:1px solid #d9e4e9; border-radius:15px; background:linear-gradient(135deg,#f4f9fc,#e2eef6); box-shadow:0 16px 35px #244b5b0c; }
.map-page .map-canvas { position:absolute; inset:0; overflow:hidden; }
.map-page .map-canvas svg { display:block; width:100%; height:100%; }
.map-page .map-province path { stroke:#f8fbff; stroke-width:1.15; transition:fill .16s,opacity .16s; }
.map-page .map-province.region-north path { fill:#7898df; }
.map-page .map-province.region-northeast path { fill:#80b9ab; }
.map-page .map-province.region-central path { fill:#e2c071; }
.map-page .map-province.region-east path { fill:#79bfd5; }
.map-page .map-province.region-west path { fill:#a3b38a; }
.map-page .map-province.region-south path { fill:#a8a4dc; }
.map-page .map-province { cursor:pointer; transition:opacity .2s; }
.map-page .map-province:focus,.map-page .map-province:focus-visible { outline:none; }
.map-page .map-stage.is-region-focused .map-province:not(.is-region-active) { opacity:.18; }
.map-page .map-province:hover path,.map-page .map-province:focus-visible path,.map-page .map-province.is-selected path { fill:#2d67e4; stroke:#fff; stroke-width:2; filter:drop-shadow(0 2px 3px #1c457a55); }
.map-page .map-province:focus-visible path { stroke:#142e58; stroke-width:3; }
.map-reset,.map-stage-status,.map-page .map-stage-hint,.map-zoom-controls { position:absolute; z-index:2; }
.map-reset { top:15px; left:15px; padding:11px 15px; border:0; border-radius:7px; background:#fff; color:#506b7d; box-shadow:0 3px 10px #28485d1c; font:inherit; font-size:13px; cursor:pointer; }
.map-reset:hover { color:#255ee0; }
.map-stage-status { top:20px; right:18px; color:#5e7c91; font-size:12px; }
.map-page .map-stage-hint { bottom:16px; left:16px; display:block; padding:0; border:0; color:#638096; font-size:11px; }
.map-zoom-controls { right:15px; bottom:45px; display:flex; flex-direction:column; overflow:hidden; border-radius:8px; background:#fff; box-shadow:0 3px 11px #28485d22; }
.map-zoom-controls button { width:45px; height:45px; border:0; background:#fff; color:#234052; font:inherit; font-size:24px; cursor:pointer; }
.map-zoom-controls button + button { border-top:1px solid #e4e9ea; }
.map-zoom-controls button:hover { background:#edf3fa; }
.map-tooltip { position:absolute; z-index:5; display:flex; flex-direction:column; gap:2px; min-width:120px; padding:10px 13px; border-radius:7px; background:#142f38; color:#fff; box-shadow:0 8px 22px #0b2b3c33; pointer-events:none; }
.map-tooltip strong { font-size:14px; }
.map-tooltip span { color:#c3d5df; font-size:11px; }
.map-detail { overflow:hidden; border:1px solid #dce4e2; border-radius:12px; background:#fff; box-shadow:0 14px 30px #2e4b540a; }
.map-detail > img { display:block; width:100%; height:175px; object-fit:cover; }
.map-detail-body { padding:23px; }
.map-detail h2 { margin:0 0 13px; color:#1d3431; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:27px; line-height:1.3; }
.map-detail p { margin:0 0 25px; color:#647a79; font-size:13px; line-height:1.85; }
.map-detail-region { display:block; margin-bottom:12px; color:#65847f; font-size:12px; letter-spacing:.08em; }
.map-detail-english { display:block; margin:-8px 0 18px; color:#65847f; font-size:13px; }
.map-detail .map-detail-tagline { margin-bottom:21px; }
.map-detail-link { display:inline-block; margin-bottom:25px; padding:12px 18px; border-radius:5px; background:#2861da; color:#fff; font-size:13px; font-weight:700; text-decoration:none; }
.map-detail-link:hover { background:#1c4db7; }
.map-select-label { display:block; margin:3px 0 10px; color:#68807c; font-size:12px; }
.map-detail select { width:100%; min-height:38px; padding:7px 9px; border:1px solid #d5dedb; border-radius:4px; background:#fff; color:#26403e; font:inherit; font-size:12px; }
.map-page .map-attribution { margin:16px 0 0 168px; color:#718782; font-size:11px; line-height:1.6; }
.map-page .map-attribution a { color:inherit; }
@media (max-width:1050px) {
  .map-explorer-layout { grid-template-columns:135px minmax(0,1fr) 230px; gap:12px; }
  .map-page .map-attribution { margin-left:147px; }
  .map-detail-body { padding:18px; }
}
@media (max-width:800px) {
  .map-explorer-layout { grid-template-columns:minmax(0,1fr) 240px; }
  .map-region-nav { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; gap:6px; }
  .map-region-nav button { width:auto; min-height:38px; padding:0 10px; }
  .map-page .map-stage { height:590px; }
  .map-page .map-attribution { margin-left:0; }
}
@media (max-width:620px) {
  .map-explore-hero { min-height:340px; }
  .map-explore-hero > img { object-position:61% center; }
  .map-explore-hero-content { padding-top:38px; padding-bottom:45px; }
  .map-explore-hero h1 { max-width:340px; font-size:37px; }
  .map-explore-hero p { max-width:320px; font-size:14px; }
  .map-page { padding:34px 0 58px; }
  .map-page-heading { align-items:start; flex-direction:column; gap:10px; margin-bottom:22px; }
  .map-page-heading h2 { font-size:35px; }
  .map-explorer-layout { grid-template-columns:1fr; gap:16px; }
  .map-region-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-region-nav button { width:100%; }
  .map-page .map-stage { height:520px; }
  .map-detail > img { height:190px; }
}

/* Travel event calendar */
.event-calendar-hero { position:relative; display:flex; align-items:center; min-height:320px; overflow:hidden; background:#172f3e; color:#fff; }
.event-calendar-hero > img,.event-calendar-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.event-calendar-hero > img { object-fit:cover; object-position:center 48%; }
.event-calendar-hero-shade { background:linear-gradient(90deg,#101e35dc 0%,#172842a3 33%,#1a263447 70%,#14213435 100%),linear-gradient(0deg,#091a2880,transparent 65%); }
.event-calendar-hero-content { position:relative; z-index:1; padding-top:43px; padding-bottom:47px; }
.event-calendar-hero-content > span { color:#e0e9f7; font-size:11px; font-weight:800; letter-spacing:.14em; }
.event-calendar-hero h1 { margin:8px 0 13px; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(39px,4vw,56px); line-height:1.2; }
.event-calendar-hero strong { display:block; margin-bottom:16px; font-size:17px; }
.event-calendar-hero p { margin:0; color:#e9eff6; font-size:13px; line-height:1.8; }
.event-hero-caption { position:absolute; z-index:1; right:25px; bottom:16px; color:#fff9; font-size:10px; }
.event-calendar-page { padding-top:26px; padding-bottom:90px; }
.event-calendar-filter-panel { padding:18px 16px 16px; border:1px solid #edf0ef; border-radius:12px; background:#fff; }
.event-filter-row { display:grid; grid-template-columns:84px minmax(0,1fr); align-items:center; gap:12px; margin-bottom:14px; }
.event-filter-label { color:#28443f; font-size:14px; font-weight:800; white-space:nowrap; }
.event-category-nav { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:8px; }
.event-category-nav a { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:56px; padding:0 10px; border:1px solid #e1e6e4; border-radius:8px; background:#fff; color:#354f4b; font-size:14px; font-weight:700; text-decoration:none; white-space:nowrap; }
.event-category-nav a:hover { border-color:#7a9abe; }
.event-category-nav a.is-active { border-color:#3b81ed; background:#3b81ed; color:#fff; }
.event-category-nav a span { color:#df8a4a; font-size:20px; line-height:1; }
.event-category-nav a.is-active span { color:#fff; }
.event-category-nav .category-culture span { color:#dc4e75; }
.event-category-nav .category-music span { color:#2f9bc9; }
.event-category-nav .category-food span { color:#df8750; }
.event-category-nav .category-nature span { color:#399d70; }
.event-category-nav .category-sports span { color:#9a65dd; }
.event-category-nav .category-local span { color:#e36e76; }
.event-month-nav { display:grid; grid-template-columns:repeat(13,minmax(0,1fr)); gap:7px; min-width:0; }
.event-month-nav a { position:relative; display:flex; align-items:center; justify-content:center; min-width:0; min-height:48px; padding:4px 3px; border:1px solid #e1e6e5; border-radius:7px; background:#fff; color:#425c5a; font-size:14px; font-weight:700; text-decoration:none; white-space:nowrap; }
.event-month-nav a:hover { border-color:#83a6d9; }
.event-month-nav a.is-current { border-color:#dda65c; background:#fff5e8; color:#935619; font-weight:800; }
.event-month-nav a.is-active { border-color:#3b81ed; background:#3b81ed; color:#fff; }
.event-month-nav i { position:absolute; bottom:2px; width:3px; height:3px; border-radius:50%; background:#e59d64; }
.event-calendar-selectors { display:flex; align-items:center; gap:12px; min-height:72px; padding:12px 14px; border-radius:10px; background:#edf4ff; }
.event-calendar-selectors .event-filter-label { min-width:116px; }
.event-calendar-selectors .event-filter-label span { color:#3b81ed; font-size:21px; vertical-align:-2px; }
.event-calendar-selectors label { flex:0 1 190px; }
.event-calendar-selectors select,.event-calendar-selectors button { width:100%; min-height:44px; padding:0 12px; border:1px solid #dfe7ef; border-radius:6px; background:#fff; color:#4d6668; font:inherit; font-size:13px; }
.event-calendar-selectors button { cursor:pointer; }
.event-calendar-selectors button:hover { border-color:#3b81ed; color:#2258b9; }
.event-filter-clear { margin-left:auto; color:#3b81ed; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.event-filter-clear:hover { text-decoration:underline; }
.event-calendar-results { display:flex; align-items:end; justify-content:space-between; gap:14px; margin:23px 0 20px; }
.event-results-kicker { color:#7d928e; font-size:10px; font-weight:800; letter-spacing:.16em; }
.event-calendar-results h2 { margin:6px 0 0; color:#1d3531; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:32px; }
.event-result-count { padding:5px 10px; border-radius:20px; background:#e9f4f1; color:#567f74; font-size:11px; white-space:nowrap; }
.calendar-event-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.calendar-event-card { display:block; min-width:0; overflow:hidden; border:1px solid #e4e9e7; border-radius:8px; background:#fff; text-decoration:none; transition:transform .18s,box-shadow .18s; }
.calendar-event-card:hover { transform:translateY(-3px); box-shadow:0 10px 26px #21444914; }
.calendar-event-media { position:relative; display:block; aspect-ratio:1.6; overflow:hidden; background:#25584a; color:#fff; }
.calendar-event-media img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.calendar-event-card:hover .calendar-event-media img { transform:scale(1.035); }
.calendar-event-placeholder { display:grid; place-items:center; height:100%; color:#d6c895; font-size:24px; font-weight:800; letter-spacing:.1em; text-align:center; }
.calendar-event-media time,.calendar-event-date { position:absolute; top:10px; left:10px; max-width:calc(100% - 20px); padding:7px 9px; border-radius:4px; background:#fff; color:#2b4751; font-size:11px; font-weight:800; box-shadow:0 2px 8px #112e3d2a; }
.calendar-photo-note { position:absolute; right:7px; bottom:7px; padding:3px 6px; border-radius:3px; background:#0c2727a6; color:#fff; font-size:10px; }
.calendar-event-content { display:flex; flex-direction:column; align-items:start; min-height:167px; padding:14px; }
.calendar-event-type { color:#c17a3d; font-size:11px; font-weight:800; }
.calendar-event-content strong { margin:8px 0 10px; color:#1d3330; font-size:17px; line-height:1.35; }
.calendar-event-location { color:#63807c; font-size:11px; line-height:1.5; }
.calendar-event-content .demo-label { margin-top:9px; }
.calendar-event-more { margin-top:auto; padding-top:13px; color:#2867be; font-size:11px; font-weight:800; }
.event-calendar-empty { padding:38px; border:1px dashed #b8cbc9; border-radius:8px; background:#f2f7f5; }
.event-calendar-empty strong { font-size:18px; }
.event-calendar-empty p { color:#71847f; font-size:13px; }
.event-calendar-empty a { color:#2867be; font-size:13px; font-weight:700; }
.event-calendar-disclaimer { margin:28px 0 0; color:#71847f; font-size:11px; line-height:1.6; }
.event-detail-cover { display:block; width:100%; max-height:430px; margin:30px 0 10px; border-radius:8px; object-fit:cover; }
@media (max-width:1050px) { .event-category-nav { grid-template-columns:repeat(4,minmax(0,1fr)); } .calendar-event-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:750px) { .calendar-event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .event-calendar-hero { min-height:300px; } .event-filter-row { grid-template-columns:1fr; gap:9px; } .event-month-nav { grid-template-columns:repeat(7,minmax(0,1fr)); } .event-calendar-selectors { flex-wrap:wrap; } .event-calendar-selectors .event-filter-label { width:100%; } .event-calendar-selectors label { flex:1 1 140px; } }
@media (max-width:500px) { .event-calendar-hero { min-height:350px; } .event-calendar-hero > img { object-position:68% center; } .event-calendar-hero-content { padding-top:38px; padding-bottom:55px; } .event-calendar-hero h1 { font-size:38px; } .event-calendar-hero p br { display:none; } .event-calendar-page { padding-top:16px; } .event-calendar-filter-panel { padding:14px 12px; } .event-category-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; } .event-category-nav a { min-height:48px; padding:0 8px; font-size:13px; } .event-month-nav { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; } .event-month-nav a:first-child { grid-column:1/-1; } .event-calendar-selectors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:12px; } .event-calendar-selectors .event-filter-label { grid-column:1/-1; width:auto; } .event-calendar-selectors label { min-width:0; } .event-filter-clear { margin-left:0; justify-self:end; } .calendar-event-grid { grid-template-columns:1fr; } .calendar-event-content { min-height:145px; } }
@media (prefers-reduced-motion:reduce) { .calendar-event-card,.calendar-event-media img { transition:none; } }
