.page-places { background:#fffdfa; color:#1d342d; }
.page-places .container { width:min(1360px,calc(100% - 48px)); }
@media(min-width:1101px) { .page-places .site-header .header-inner { width:min(1200px,calc(100% - 56px)); } }
.page-places .site-header { position:fixed; top:0; left:0; right:0; border:0; background:rgba(255,255,255,var(--header-bg-alpha,0)); backdrop-filter:blur(var(--header-blur,0px)); color:#fff; box-shadow:0 4px 24px rgba(16,43,40,var(--header-shadow-alpha,0)); }
.page-places .site-header .main-nav a { color:#fff; text-shadow:0 1px 10px #102d2d80; transition:color .25s,text-shadow .25s; }
.page-places .site-header .header-link { border-color:#ffffff80; background:#ffffff26; color:#fff; }
.page-places .site-header .brand-number { color:#f5c16d; }
.page-places .site-header.is-scrolled,.page-places .site-header.menu-open { color:var(--ink); }
.page-places .site-header.menu-open { background:#fff; }
.page-places .site-header.is-scrolled .main-nav a,.page-places .site-header.menu-open .main-nav a { color:#435d50; text-shadow:none; }
.page-places .site-header.is-scrolled .header-link,.page-places .site-header.menu-open .header-link { border-color:var(--line); background:#fff; color:var(--ink); }
.page-places .site-header.is-scrolled .brand-number,.page-places .site-header.menu-open .brand-number { color:#b47b3c; }
.page-places .site-header .main-nav .destination-menu a { color:#203b31; text-shadow:none; }
.page-places .site-header .main-nav .destination-menu-heading>a { color:#2468bf; }
.page-places .site-header .main-nav .destination-menu a:hover { color:#1b67c8; }
.places-hero { position:relative; height:clamp(280px,27vw,370px); overflow:hidden; background:#345945; color:#fff; }
.places-hero>img,.places-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.places-hero>img { object-fit:cover; object-position:center 55%; }
.places-hero-shade { background:linear-gradient(180deg,rgba(5,25,29,.38),transparent 42%),linear-gradient(90deg,rgba(7,30,32,.62),rgba(8,30,30,.12) 60%,transparent),linear-gradient(0deg,rgba(7,30,32,.2),transparent 50%); }
.places-hero-content { position:relative; display:flex; flex-direction:column; justify-content:space-between; height:100%; padding-top:96px; padding-bottom:57px; }
.places-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; color:#f5f7f1db; font-size:12px; }
.places-breadcrumbs a { text-decoration:none; }
.places-breadcrumbs a:hover { text-decoration:underline; }
.places-hero h1 { margin:0; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:clamp(60px,7vw,105px); font-weight:700; line-height:1.16; letter-spacing:-.05em; text-shadow:0 2px 22px rgba(0,0,0,.28); }
.places-hero h1 span { font-size:.67em; letter-spacing:-.045em; }
.places-catalog { padding-top:29px; }
.places-eyebrow { color:#5b8779; font-size:10px; font-weight:850; letter-spacing:.18em; }
.places-type-heading { display:flex; align-items:end; gap:20px; margin-bottom:15px; }
.places-type-heading h2 { margin:5px 0 0; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:27px; letter-spacing:-.04em; }
.places-type-heading p { margin:0 0 4px; color:#7b8a80; font-size:12px; }
.places-type-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.places-type-grid--eat { grid-template-columns:repeat(6,minmax(0,1fr)); }
.places-type-grid--stay { grid-template-columns:repeat(4,minmax(0,1fr)); }
.places-type-card { display:flex; align-items:center; min-width:0; gap:10px; min-height:78px; padding:7px; border:1px solid #e4e9e4; border-radius:11px; background:#fff; text-decoration:none; box-shadow:0 3px 12px #183b2610; }
.places-type-card:hover { border-color:#d7ad69; }
.places-type-card.is-active { border-color:#e5a455; background:#fffbf3; box-shadow:0 0 0 1px #e5a45533; }
.places-type-image { flex:none; width:61px; height:61px; overflow:hidden; border-radius:7px; background:#dcebe2; }
.places-type-image img { display:block; width:100%; height:100%; object-fit:cover; }
.places-type-symbol { display:grid; width:100%; height:100%; place-items:center; background:#f4ebdc; color:#9a6738; font-size:27px; line-height:1; }
.places-type-card>span:last-child { display:flex; flex-direction:column; min-width:0; gap:3px; }
.places-type-card strong { overflow:hidden; color:#263a32; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.places-type-card small { color:#87958b; font-size:11px; }
.places-layout { display:grid; grid-template-columns:minmax(210px,22fr) minmax(0,78fr); align-items:start; gap:22px; margin-top:24px; }
.places-area-panel { min-width:0; border:1px solid #edf0e9; border-radius:13px; background:#faf9f5; }
.places-area-panel details { padding:18px 12px 20px; }
.places-area-panel summary { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:0 9px 12px; color:#243d31; font-size:16px; font-weight:850; list-style:none; cursor:pointer; }
.places-area-panel summary::-webkit-details-marker { display:none; }
.places-area-panel summary span { display:none; }
.places-area-panel nav { display:grid; gap:2px; }
.places-area-panel a { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:41px; padding:9px 11px; border-radius:7px; color:#65776a; font-size:13px; text-decoration:none; }
.places-area-panel a:hover { background:#f0f3ed; color:#254b3c; }
.places-area-panel a.is-active { background:#173f35; color:#fff; font-weight:750; }
.places-area-panel b { font-size:11px; font-weight:650; }
.places-results { min-width:0; }
.places-results-header { display:flex; align-items:end; justify-content:space-between; gap:16px; min-height:64px; margin-bottom:14px; }
.places-results-header>div { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 12px; }
.places-results-header .places-eyebrow { flex-basis:100%; }
.places-results-header h2 { margin:3px 0 0; font-family:"Noto Serif SC","Songti SC","SimSun",serif; font-size:29px; letter-spacing:-.04em; }
.places-results-header p { margin:0; color:#75877a; font-size:12px; }
.places-sort select { min-height:36px; padding:6px 33px 6px 12px; border:1px solid #e0e7e2; border-radius:7px; background:#fff; color:#344d40; font-size:12px; cursor:pointer; }
.places-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.places-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid #e6ece7; border-radius:11px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 5px 18px #203a2a0b; transition:transform .2s,box-shadow .2s; }
.places-card:hover { transform:translateY(-3px); box-shadow:0 13px 28px #203a2a1c; }
.places-card-media { position:relative; display:block; height:152px; overflow:hidden; background:#dfebe0; }
.places-card-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.places-card-media img[src*="/shop-logo/"] { box-sizing:border-box; padding:18px; object-fit:contain; background:#f7f8f5; }
.places-card:hover .places-card-media img { transform:scale(1.04); }
.places-card-placeholder { display:grid; place-items:center; height:100%; color:#7aab8d; font-size:60px; }
.places-card-type { position:absolute; top:10px; left:10px; padding:5px 9px; border-radius:5px; background:#123d35e8; color:#fff; font-size:11px; font-weight:800; }
.places-card-body { display:flex; flex:1; flex-direction:column; min-height:126px; padding:13px 15px 12px; }
.places-card-name { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 7px; }
.places-card-name strong { color:#203b32; font-size:17px; line-height:1.32; }
.places-card-name small { color:#8c9b91; font-size:11px; line-height:1.3; }
.places-card-name small[lang="en"] { color:#536d60; overflow-wrap:anywhere; }
.places-card-summary { display:-webkit-box; overflow:hidden; margin-top:8px; color:#5d7063; font-size:14px; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; }
.places-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:8px; color:#4b6557; font-size:11px; }
.places-card-bottom>span:last-child { color:#305c49; font-size:17px; }
.places-empty { display:flex; flex-direction:column; align-items:start; justify-content:center; min-height:235px; padding:30px; border:1px dashed #d7e1d6; border-radius:11px; background:#fafbf8; }
.places-empty h3 { margin:0 0 8px; font-size:19px; }
.places-empty p { margin:0 0 15px; color:#738276; font-size:13px; }
.places-empty a { color:#276c51; font-size:13px; font-weight:800; text-decoration:none; }
.places-pagination { display:flex; align-items:center; justify-content:center; gap:7px; margin-top:24px; }
.places-pagination a { display:grid; place-items:center; min-width:34px; height:34px; border:1px solid #e0e9e1; border-radius:7px; background:#fff; color:#425e4d; font-size:12px; text-decoration:none; }
.places-pagination a:hover { border-color:#487c5c; }
.places-pagination a.is-current { border-color:#173f35; background:#173f35; color:#fff; }
.places-catalog.is-loading { opacity:.68; pointer-events:none; }
.places-experience { margin-top:29px; }
.places-experience .routes-ad-carousel { height:clamp(170px,16vw,215px); margin:0; }
.places-experience .routes-ad-content { left:5%; }
.places-experience .routes-ad-content h2 { font-size:clamp(25px,3vw,37px); }
.places-explore { padding-top:16px; }
.places-explore-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.places-explore-card { --explore-ink:#174c3d; --explore-surface:#edf1e8; position:relative; min-height:120px; overflow:hidden; border-radius:10px; background:var(--explore-surface); color:var(--explore-ink); text-decoration:none; }
.places-explore-card--eat { --explore-ink:#86571e; --explore-surface:#f9eddb; }
.places-explore-card--stay { --explore-ink:#235470; --explore-surface:#e1edf4; }
.places-explore-card--shop { --explore-ink:#914d3c; --explore-surface:#f5ddd4; }
.places-explore-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.places-explore-card:after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,var(--explore-surface),color-mix(in srgb,var(--explore-surface) 90%,transparent) 38%,transparent 78%); opacity:.72; }
.places-explore-card>span { position:absolute; z-index:1; left:17px; bottom:15px; font-size:19px; font-weight:800; text-shadow:none; }
.places-explore-card small { display:block; margin-top:4px; font-size:11px; font-weight:600; }
@media(max-width:1050px) { .places-type-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.places-layout { grid-template-columns:minmax(190px,25fr) minmax(0,75fr); }.places-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .places-hero { height:330px; }.places-hero-content { padding-top:82px; padding-bottom:35px; }.places-hero h1 { font-size:clamp(56px,11vw,78px); }.page-places .container { width:min(100% - 28px,640px); }.places-type-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.places-type-card { min-height:62px; gap:7px; padding:5px; }.places-type-image { width:47px; height:47px; }.places-type-card strong { font-size:12px; }.places-type-card small { font-size:10px; }.places-type-heading { display:block; }.places-type-heading p { margin-top:5px; }.places-layout { grid-template-columns:1fr; gap:15px; margin-top:19px; }.places-area-panel details { padding:0; }.places-area-panel summary { min-height:47px; padding:0 14px; }.places-area-panel summary span { display:inline; color:#697e6f; font-size:11px; }.places-area-panel nav { padding:0 8px 10px; }.places-results-header { min-height:55px; }.places-results-header h2 { font-size:26px; }.places-card-grid { grid-template-columns:1fr; gap:10px; }.places-card { display:grid; grid-template-columns:118px minmax(0,1fr); min-height:131px; }.places-card-media { height:100%; min-height:130px; }.places-card-body { min-height:130px; padding:10px 12px; }.places-card-name strong { font-size:15px; }.places-card-name small { font-size:10px; }.places-card-summary { min-height:0; margin-top:5px; font-size:11px; }.places-card-bottom { padding-top:5px; font-size:10px; }.places-experience .routes-ad-carousel { height:185px; }.places-experience .routes-ad-content { left:10%; width:77%; }.places-experience .routes-ad-content h2 { font-size:23px; }.places-experience .routes-ad-content p { font-size:11px; }.places-explore-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.places-explore-card { min-height:100px; }.places-explore-card>span { left:11px; bottom:10px; font-size:15px; } }
@media(max-width:390px) { .places-breadcrumbs { font-size:10px; }.places-card { grid-template-columns:104px minmax(0,1fr); } }
@media(max-width:760px) { .places-card-summary { font-size:13px; } }
