:root{--bg: #FAFAF7;--surface: #FFFFFF;--ink: #111111;--muted: #5F5F5A;--line: #E2E2DC;--line-soft: #EDEDE8;--teal: #0F5257;--teal-dark: #0A3D41;--teal-tint: #E3EEEE;--ad-bg: #F2F2EE;--serif: "Fraunces", Georgia, serif;--sans: "Inter", -apple-system, "Segoe UI", sans-serif;--radius: 12px;--gutter: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);font-size:16px;line-height:1.5;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}::selection{background:var(--teal-tint)}.header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px var(--gutter);border-bottom:1px solid var(--line);background:var(--bg)}.logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:21px;letter-spacing:-.3px;white-space:nowrap}.brand-mark{color:var(--teal);flex-shrink:0}.trip-btn{min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:15px;font-weight:500;white-space:nowrap}.trip-btn.has-items{background:var(--teal);border-color:var(--teal);color:#fff}.footer{margin-top:32px;padding:32px var(--gutter) 104px;border-top:1px solid var(--line);background:var(--surface)}.footer-content{max-width:720px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}.footer-logo{font-size:18px}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px}.footer-links a,.footer-cta a{color:var(--ink);font-size:15px;text-underline-offset:3px}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer-cta{font-size:14px;color:var(--muted)}.link-btn{border:none;background:none;color:var(--ink);font-size:15px;text-decoration:underline;text-underline-offset:3px}.hero{padding:20px var(--gutter) 12px}.hero-title{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.15;letter-spacing:-.5px}.hero-sub{margin-top:6px;color:var(--muted);font-size:15px}.search{width:100%;height:48px;margin-top:16px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:16px}.search:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-tint)}.filters{padding:4px 0 12px}.chips,.filter-row{display:flex;gap:8px;width:fit-content;max-width:100%;margin:0 auto;overflow-x:auto;padding:4px var(--gutter);scrollbar-width:none}.chips::-webkit-scrollbar,.filter-row::-webkit-scrollbar{display:none}.chip{flex-shrink:0;min-height:38px;padding:0 14px;border:none;border-radius:999px;background:var(--teal-tint);color:var(--teal);font-size:15px;font-weight:500;white-space:nowrap}.chip.active{background:var(--teal);color:#fff}.filter-row{align-items:center;margin-top:4px;margin-bottom:0}.result-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px var(--gutter) 0}.filter-btn,.select{flex-shrink:0;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:14px}.filter-btn.active{border-color:var(--teal);background:var(--teal);color:#fff}.count{color:var(--muted);font-size:14px}.clear-btn,.sort-btn{border:none;background:none;color:var(--teal);font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:3px;padding:8px 4px}.clear-btn{margin-left:8px}.catalog{--cols: 1;column-count:var(--cols);column-gap:16px;min-height:40vh;padding-top:8px}.category{break-inside:avoid;display:inline-block;width:100%;margin-bottom:16px}.category-title{display:flex;align-items:baseline;gap:8px;padding:16px var(--gutter) 8px;font-family:var(--serif);font-size:22px;font-weight:400;letter-spacing:-.2px}.category-count{font-family:var(--sans);font-size:14px;color:var(--muted)}.list{list-style:none}.item{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px var(--gutter);border-top:1px solid var(--line-soft)}.name-link{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;color:var(--ink);text-decoration:none}.name{font-size:16px;font-weight:500;line-height:1.3;overflow-wrap:anywhere}.name-link:hover .name{text-decoration:underline;text-underline-offset:3px}.item-meta{margin-top:2px;color:var(--muted);font-size:14px}.badge{margin-top:4px;padding:1px 8px;border-radius:999px;background:var(--teal-tint);color:var(--teal);font-size:12px;font-weight:500}.add{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:20px;line-height:1}.add:hover{border-color:var(--teal);color:var(--teal)}.add.added{background:var(--teal);border-color:var(--teal);color:#fff}.catalog.flow-view{column-count:1}.catalog.flow-view .list{column-count:var(--cols);column-gap:0}.catalog.flow-view .item{break-inside:avoid}.no-results{padding:48px var(--gutter);text-align:center;color:var(--muted)}.primary-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:0 16px;border:1px solid var(--teal);border-radius:var(--radius);background:var(--teal);color:#fff;font-size:16px;font-weight:500;text-decoration:none}.primary-btn:hover{background:var(--teal-dark)}.primary-btn.is-on{background:var(--teal-tint);color:var(--teal)}.trip-secondary{display:flex;gap:8px}.trip-secondary button,.trip-secondary a{flex:1;display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:15px;text-decoration:none}.trip-secondary button:hover,.trip-secondary a:hover{border-color:var(--teal)}.place{max-width:640px;margin:0 auto;padding:16px var(--gutter) 24px}.crumbs a{color:var(--teal);font-size:15px;font-weight:500;text-decoration:none}.place-name{margin-top:16px;font-family:var(--serif);font-size:34px;font-weight:400;line-height:1.1;letter-spacing:-.5px}.place-meta{margin-top:8px;color:var(--muted);font-size:15px}.place-desc{margin-top:16px;font-size:18px;line-height:1.6}.place-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;list-style:none}.place-tags li{padding:4px 12px;border-radius:999px;background:var(--teal-tint);color:var(--teal);font-size:14px}.place-actions{display:flex;flex-direction:column;gap:8px;margin-top:24px}.place-address{margin-top:16px;color:var(--muted);font-size:15px}.place-related{margin-top:32px}.place-related h2{margin-bottom:4px;color:var(--teal);font-size:12px;font-weight:600;letter-spacing:.8px;text-transform:uppercase}.place-related ul{list-style:none}.place-related li{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line-soft)}.place-related a{color:var(--ink);font-weight:500;text-decoration:none}.place-related span{color:var(--muted);font-size:14px;white-space:nowrap}.ad-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:28px auto;border:1px dashed var(--line);border-radius:8px;background:var(--ad-bg);color:var(--muted);font-size:13px}.ad-rectangle{width:100%;max-width:336px;min-height:280px}.ad-banner{width:100%;max-width:728px;min-height:100px}.ad-label{font-size:11px;letter-spacing:.8px;text-transform:uppercase}.page-ad{padding:0 var(--gutter)}.tour-card{display:block;margin:28px 0;padding:14px 16px;border-radius:var(--radius);background:var(--teal-tint);color:var(--teal);text-decoration:none}.tour-label{display:block;margin-bottom:2px;font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;opacity:.8}.tour-title{display:block;font-weight:600}.tour-sub{font-size:14px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1111114d;z-index:100}.panel{position:fixed;top:0;right:0;width:400px;max-width:100%;height:100vh;height:100dvh;background:var(--bg);z-index:200;display:flex;flex-direction:column;box-shadow:-8px 0 32px #0000001f}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter);border-bottom:1px solid var(--line);font-family:var(--serif);font-size:22px}.close,.remove{width:44px;height:44px;border:none;background:none;color:var(--muted);font-size:26px;line-height:1}.close:hover{color:var(--ink)}.remove:hover{color:#a32d2d}.empty{padding:48px 24px;text-align:center;color:var(--muted)}.trip-list{flex:1;overflow-y:auto;list-style:none}.trip-item{display:flex;justify-content:space-between;align-items:center;padding:12px var(--gutter);border-bottom:1px solid var(--line-soft)}.trip-name{display:block;color:var(--ink);font-weight:500;text-decoration:none}.trip-loc{display:block;color:var(--muted);font-size:14px}.trip-map{display:inline-block;margin-top:4px;color:var(--teal);font-size:14px;font-weight:500}.trip-actions{display:flex;flex-direction:column;gap:8px;padding:14px var(--gutter) calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.trip-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:50;display:flex;justify-content:space-between;align-items:center;min-height:54px;padding:0 20px;border:none;border-radius:14px;background:var(--teal);color:#fff;font-size:16px;font-weight:500;box-shadow:0 8px 24px #0a3d414d}.landing-content{max-width:720px;margin:0 auto;padding:24px var(--gutter) 16px}.landing-article h1{font-family:var(--serif);font-size:32px;font-weight:400;line-height:1.15;letter-spacing:-.5px;margin-bottom:16px}.intro{font-size:18px;line-height:1.7;color:#3a3a36;margin-bottom:32px}.landing-section{margin-bottom:36px}.landing-section h2{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.25;margin-bottom:12px}.landing-section h3{font-size:18px;font-weight:600;margin:20px 0 6px}.landing-section h4{font-size:15px;font-weight:600;margin:16px 0 6px;color:var(--muted)}.landing-section p{font-size:17px;line-height:1.7;margin-bottom:12px}.details-list,.tips-list{list-style:none;margin:12px 0}.details-list li,.tips-list li{position:relative;padding:6px 0 6px 22px;font-size:16px;line-height:1.6}.details-list li:before{content:"→";position:absolute;left:0;color:var(--teal)}.tips-list li{padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}.tips-list li:last-child{border-bottom:none}.tips-list li:before{content:"";position:absolute;left:2px;top:19px;width:8px;height:8px;border-radius:50%;background:var(--teal)}.landing-cta{margin-top:40px;padding:28px 20px;border-radius:16px;background:var(--teal-tint);text-align:center}.landing-cta h2{font-family:var(--serif);font-size:24px;font-weight:400;margin-bottom:8px}.landing-cta p{color:var(--muted);margin-bottom:20px}.cta-button{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border-radius:999px;background:var(--teal);color:#fff;font-weight:500;text-decoration:none}.cta-button:hover{background:var(--teal-dark)}@media (min-width: 700px){:root{--gutter: 24px}.catalog{--cols: 2}.hero{padding:40px var(--gutter) 16px;text-align:center}.hero-title{font-size:42px}.search{max-width:600px}.chips{flex-wrap:wrap;justify-content:center;max-width:100%;overflow:visible}.chip{padding:0 12px;font-size:14px}.result-bar{max-width:1440px;margin:0 auto}.catalog{max-width:1440px;margin:0 auto;padding:8px var(--gutter) 0}.category{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.category-title{padding:16px 16px 10px;font-size:21px}.item{min-height:56px;padding:8px 12px 8px 16px}.add{width:34px;height:34px;font-size:18px}.place-name,.landing-article h1{font-size:42px}.footer{padding-bottom:40px}.trip-bar{display:none}}@media (min-width: 1000px){.catalog{--cols: 3}.place{max-width:1120px;display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"head aside" "more aside";column-gap:56px;padding-top:32px}.place-head{grid-area:head}.place-more{grid-area:more}.place-aside{grid-area:aside;align-self:start;position:sticky;top:24px;padding-top:44px}.place-card{padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.place-card .place-actions{margin-top:0}.place-name{font-size:56px}.place-desc{max-width:60ch;font-size:20px}.place-aside .ad-slot{margin:24px 0}.place-related ul{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}}@media (min-width: 1300px){.catalog{--cols: 4}}@media (min-width: 1600px){.catalog{--cols: 5}}.category-page h1{margin:16px 0;font-family:var(--serif);font-size:32px;font-weight:400;line-height:1.15;letter-spacing:-.5px}.category-page .intro{margin-bottom:14px}.cat-guide-link a,.see-all{color:var(--teal);font-size:15px;font-weight:500;text-decoration:none}.cat-guide-link a:hover,.see-all:hover{text-decoration:underline;text-underline-offset:3px}.cat-list{list-style:none;margin-top:24px;border-top:1px solid var(--line)}.cat-row{display:flex;align-items:flex-start;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-soft)}.cat-row-text{flex:1;min-width:0}.cat-row-name{color:var(--ink);font-family:var(--serif);font-size:22px;line-height:1.2;text-decoration:none}.cat-row-name:hover{text-decoration:underline;text-underline-offset:3px}.cat-row-meta{margin-top:4px;color:var(--muted);font-size:14px}.cat-row-desc{margin-top:6px;font-size:16px;line-height:1.55}.cat-ad:empty{display:none}.cat-more{margin-top:40px}.cat-more h2{margin-bottom:12px;font-family:var(--serif);font-size:22px;font-weight:400}.cat-more-links{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.cat-more-links .chip{display:inline-flex;align-items:center;text-decoration:none}.category-title .see-all{margin-left:auto;font-family:var(--sans);font-size:14px}.footer-browse{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px}.footer-browse a{color:var(--muted);font-size:14px;text-decoration:none}.footer-browse a:hover{color:var(--ink);text-decoration:underline}@media (min-width: 700px){.category-page h1{font-size:44px}}
