.cafe-container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--spacing-xl)}.cafe-breadcrumb-bar,.cafe-hero{border-bottom:1px solid var(--magazine-border)}.cafe-breadcrumb-bar{background:var(--magazine-bg-secondary);padding:var(--spacing-sm) var(--spacing-xl)}.cafe-breadcrumb-bar .breadcrumb ol{display:flex;list-style:none;gap:var(--spacing-xs);padding:0;margin:0;font-size:var(--font-size-sm);color:var(--magazine-text-muted)}.cafe-breadcrumb-bar .breadcrumb li+li::before{content:"/";margin-right:var(--spacing-xs);opacity:.5}.cafe-breadcrumb-bar .breadcrumb a{color:var(--magazine-text-secondary);text-decoration:none}.cafe-breadcrumb-bar .breadcrumb a:hover{color:var(--primary-500)}.cafe-hero{padding:var(--spacing-2xl) var(--spacing-xl);background:#fff}.cafe-hero-grid{display:grid;grid-template-columns:1fr 440px;gap:var(--spacing-2xl);align-items:start}.cafe-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--spacing-md)}.badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px}.badge-featured{background:var(--accent-gold);color:#5c3a00}.badge-verified{background:#dbeafe;color:#1e40af}.badge-work{background:#dcfce7;color:#15803d}.cafe-name{font-family:var(--font-serif);font-size:var(--font-size-5xl);color:var(--primary-900);margin:0 0 var(--spacing-sm);line-height:var(--line-height-tight)}.cafe-city-line{display:flex;align-items:center;gap:6px;font-size:var(--font-size-base);color:var(--magazine-text-secondary);margin:0 0 var(--spacing-lg)}.cafe-city-line svg{color:var(--primary-400);flex-shrink:0}.cafe-scores{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.score-pill{background:var(--primary-50);border:1px solid var(--primary-100);border-radius:var(--radius-lg);padding:var(--spacing-sm) var(--spacing-md);text-align:center;min-width:80px}.score-label,.score-value span{color:var(--magazine-text-muted)}.score-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.score-value{font-size:var(--font-size-xl);font-weight:700;color:var(--primary-700)}.score-value span{font-size:var(--font-size-sm);font-weight:400}.feature-item.feature-yes svg,.noise-quiet{color:#15803d}.noise-moderate{color:var(--warning-500)}.noise-lively{color:var(--accent-rust)}.cafe-quick-info{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.feature-item em,.quick-info-link{font-size:var(--font-size-sm);font-weight:600}.quick-info-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary-600);text-decoration:none;background:0 0;border:0;cursor:pointer;padding:0}.quick-info-link:hover{color:var(--primary-800)}.cafe-hero-img img{width:100%;height:360px;object-fit:cover;border-radius:var(--radius-xl);display:block}.cafe-main{padding:var(--spacing-2xl) var(--spacing-xl);background:var(--magazine-bg-secondary)}.cafe-main-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-2xl);align-items:start}.cafe-section{background:#fff;border:1px solid var(--magazine-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.cafe-section h2,.sidebar-card h3{font-family:var(--font-serif);margin:0 0 var(--spacing-md)}.cafe-section h2{font-size:var(--font-size-xl);color:var(--primary-800);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--primary-100)}.cafe-description{font-size:var(--font-size-base);line-height:var(--line-height-loose);color:var(--magazine-text-secondary)}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}.cafe-sidebar,.feature-item{display:flex;flex-direction:column}.feature-item{align-items:center;text-align:center;padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--magazine-bg-secondary);border:1px solid var(--magazine-border);gap:4px}.feature-item.feature-yes{background:#f0fdf4;border-color:#bbf7d0}.feature-item.feature-no{background:#fef2f2;border-color:#fecaca;opacity:.7}.feature-item.feature-no svg{color:var(--error-500)}.feature-item.feature-info svg{color:var(--primary-400)}.feature-item span{font-size:var(--font-size-xs);font-weight:600;color:var(--magazine-text-secondary);text-transform:uppercase;letter-spacing:.04em}.feature-item em{font-style:normal;color:var(--magazine-text-primary)}.cafe-sidebar{gap:var(--spacing-lg)}.sidebar-card{background:#fff;border:1px solid var(--magazine-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.sidebar-card h3{font-size:var(--font-size-base);color:var(--primary-700);font-weight:700}.sidebar-address{font-size:var(--font-size-sm);color:var(--magazine-text-secondary);line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-md)}.map-placeholder{background:var(--magazine-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);text-align:center}.map-link,.sidebar-facts li{align-items:center;font-size:var(--font-size-sm)}.map-link{display:inline-flex;gap:6px;color:var(--primary-600);text-decoration:none;font-weight:600}.map-link:hover{color:var(--primary-800)}.sidebar-facts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.sidebar-facts li{display:flex;justify-content:space-between;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--magazine-border-light)}.sidebar-facts li:last-child{border-bottom:none;padding-bottom:0}.sidebar-facts li span{color:var(--magazine-text-muted)}.sidebar-facts li strong{color:var(--magazine-text-primary)}.sidebar-cta{background:var(--primary-50);border-color:var(--primary-200)}.btn-claim,.sidebar-cta p{font-size:var(--font-size-sm)}.sidebar-cta p{color:var(--magazine-text-secondary);margin:0 0 var(--spacing-md);line-height:var(--line-height-relaxed)}.btn-claim{display:block;text-align:center;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--primary-500);color:var(--primary-600);text-decoration:none;border-radius:var(--radius-md);font-weight:600;transition:all var(--transition-fast)}.btn-claim:hover,.btn-see-all:hover{background:var(--primary-500);color:#fff}.nearby-cafes{padding:var(--spacing-2xl) var(--spacing-xl);background:#fff;border-top:1px solid var(--magazine-border)}.nearby-cafes h2{font-family:var(--font-serif);font-size:var(--font-size-2xl);color:var(--primary-800);margin:0 0 var(--spacing-xl)}.cafe-card-img{width:100%;height:160px;object-fit:cover;display:block}.see-all-wrap{text-align:center;margin-top:var(--spacing-xl)}.btn-see-all{display:inline-block;padding:var(--spacing-md) var(--spacing-2xl);border:2px solid var(--primary-400);color:var(--primary-600);text-decoration:none;border-radius:var(--radius-md);font-weight:600;transition:all var(--transition-fast)}.btn-see-all:hover{border-color:var(--primary-500)}.cafe-comments-section{background:#faf7f4;padding:56px 0;border-top:1px solid #ede8e2}.comments-layout{display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:start}.comments-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e8ddd4}.comments-title{font-size:1.25rem;font-weight:700;color:#2c1505;margin:0}.comments-count{font-size:.78rem;font-weight:600;color:#a07050;background:#f0e4d6;padding:2px 10px;border-radius:20px}.comments-empty,.comments-loading{color:#aaa;font-size:.88rem;padding:24px 0}.comment-card{background:#fff;border:1px solid #ede8e2;border-radius:10px;padding:18px 20px;margin-bottom:12px}.comment-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px}.comment-author{font-size:.88rem;font-weight:700;color:#2c1505}.comment-meta{display:flex;align-items:center;gap:10px}.comment-date{font-size:.72rem;color:#aaa}.comment-stars{display:flex;gap:2px}.comment-star{width:13px;height:13px;color:#c8864a}.comment-star--empty{color:#ddd}.comment-body{font-size:.875rem;color:#444;line-height:1.6;margin:0}.comment-form-wrap{background:#fff;border:1px solid #ede8e2;border-radius:12px;padding:28px;position:sticky;top:100px}.comment-form-title{font-size:1rem;font-weight:700;color:#2c1505;margin:0 0 4px}.comment-form-sub{font-size:.75rem;color:#a07050;margin:0 0 20px}.comment-rating-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.comment-rating-label{font-size:.78rem;font-weight:600;color:#666}.star-picker{display:flex;gap:3px}.star-btn{background:0 0;border:0;cursor:pointer;padding:2px;color:#ddd;transition:color .1s,transform .1s;line-height:0}.star-btn.active,.star-btn:hover{color:#c8864a}.star-btn:hover{transform:scale(1.15)}.comment-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.comment-form-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.comment-form-field label{font-size:.75rem;font-weight:600;color:#555}.comment-form-field label span{font-weight:400;color:#aaa}.comment-form-field input,.comment-form-field textarea{border:1px solid #ddd;border-radius:7px;padding:9px 12px;font-size:.85rem;color:#333;font-family:inherit;transition:border-color .15s;background:#faf9f8;outline:0}.comment-form-field input:focus,.comment-form-field textarea:focus{border-color:#6b3f1f;background:#fff}.comment-form-field textarea{resize:vertical;min-height:100px}.comment-char-count{font-size:.68rem;color:#bbb;text-align:right}.comment-submit-btn{width:100%;padding:11px;background:#6b3f1f;color:#fff;font-size:.875rem;font-weight:700;border:0;border-radius:8px;cursor:pointer;font-family:inherit;transition:background .15s;margin-top:4px}.comment-submit-btn:hover:not(:disabled){background:#3d1f0a}.comment-submit-btn:disabled{opacity:.6;cursor:not-allowed}.comment-feedback{margin-top:10px;padding:10px 14px;border-radius:7px;font-size:.82rem;font-weight:500}.comment-feedback--success{background:#e8f4ea;color:#2d6a4f}.comment-feedback--error{background:#fde8e8;color:#c0392b}@media (max-width:900px){.comments-layout{grid-template-columns:1fr}.comment-form-wrap{position:static}.comment-form-row{grid-template-columns:1fr}}@media (max-width:1024px){.cafe-hero-grid{grid-template-columns:1fr}.cafe-hero-img{order:-1}.cafe-hero-img img{height:260px}.cafe-main-grid{grid-template-columns:1fr}.cafe-name{font-size:var(--font-size-4xl)}.features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.cafe-scores{gap:var(--spacing-sm)}.features-grid{grid-template-columns:repeat(2,1fr)}.cafe-name{font-size:var(--font-size-3xl)}}