/* Version 0.5.0 — approved concept 03, «Городской журнал». */
:root{--ink:#3c3129;--green:#9c5037;--green-dark:#803d28;--lime:#ead6bb;--muted:#796a5d;--line:#ded2c2;--paper:#faf6ef;--surface:#fffdf9;--surface-soft:#faf6ef;--white:#fffdf9}
body{background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
.site-header{background:#faf6effa;border-bottom:3px double var(--line);min-height:82px;padding:0 max(28px,calc((100vw - 1380px)/2));grid-template-columns:minmax(220px,1fr) auto minmax(120px,1fr);gap:22px;backdrop-filter:blur(12px)}
.site-header .brand,.brand.small{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.7px}
.site-header .brand{font-size:29px;gap:11px}
.site-header .brand>.brand-mark{display:block;width:36px;height:38px;flex:0 0 36px;object-fit:contain}
.site-header .brand>span{display:inline;background:none;transform:none;width:auto;height:auto}
.site-header nav{gap:28px;font-size:13px;font-weight:400}
.login-link{font-size:12px;font-weight:400;border:1px solid var(--line);padding:9px 14px;border-radius:3px}
.login-link span{display:none}
.finder-hero{max-width:1380px;margin:auto;padding:34px 28px 22px;background:var(--paper)}
.hero-title-row{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:44px}
.catalog-page .hero-title-row .eyebrow{color:var(--green);letter-spacing:1.9px;font-size:11px;font-weight:600;margin-bottom:17px}
.hero-title-row h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,4.7vw,66px);line-height:1.06;font-weight:400;letter-spacing:-2px;margin:0 0 18px;max-width:none;text-wrap:initial}
.journal-intro{font-size:15px;line-height:1.7;color:var(--muted);margin:0;max-width:560px}
.journal-hero-photo{position:relative;min-width:0;margin:0}
.journal-hero-photo img{display:block;width:100%;height:270px;object-fit:cover}
.journal-hero-photo figcaption{position:absolute;right:10px;bottom:10px;background:#fffdf9ed;color:var(--muted);padding:3px 7px;font-size:10px}
.journal-search{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:21px;margin-top:26px;align-items:center}
.catalog-page .search-row{display:flex;flex:1 1 500px;min-width:0;gap:12px;margin:0}
.catalog-page .search-field{flex:1;min-width:0;max-width:none;background:var(--surface);border-color:var(--line);border-radius:3px;height:48px}
.primary-button{background:var(--green);border:1px solid var(--green);border-radius:3px;box-shadow:none;font-size:13px;min-height:48px;padding:12px 20px;font-weight:600}
.primary-button:hover{background:var(--green-dark);box-shadow:none;transform:none}
.catalog-page .filter-row{display:flex;flex:0 1 auto;gap:9px;margin:0;padding:0;border:0;border-radius:0;overflow:visible}
.filter-chip,.cuisine-filter{background:var(--surface);border:1px solid var(--line);border-radius:3px;min-height:48px;box-shadow:none}
.filter-chip span{border-color:var(--line);color:var(--green)}
.catalog-page .filter-row select{color:var(--ink)}
.saved-location-bar,.saved-location-bar.has-location{max-width:none;padding:10px 0 0;background:transparent;border:0;border-radius:0;grid-template-columns:30px minmax(0,1fr) auto;gap:10px}
.saved-location-icon{background:transparent;box-shadow:none;width:28px;height:32px;font-size:21px;color:var(--green)}
.saved-location-bar small{font-size:9px;color:var(--muted);letter-spacing:1px;font-weight:600}
.saved-location-bar strong{font-size:13px;font-weight:400}
.saved-location-bar p{font-size:11px;line-height:1.5;margin-top:3px}
.saved-location-bar>button{color:var(--green);border:0;background:transparent;font-size:12px;font-weight:400;text-decoration:underline;text-underline-offset:4px;padding:6px 0}
.saved-location-bar>button:hover{background:transparent}
.catalog-page .catalog-layout{max-width:1380px;margin:0 auto;padding:8px 28px 34px;grid-template-columns:minmax(360px,1fr) minmax(0,1fr);gap:30px;background:var(--paper);scroll-margin-top:96px}
.catalog-page .results-panel{top:96px;height:calc(100dvh - 112px);min-height:530px;padding:0 15px 20px 0;border:0;background:var(--paper);scrollbar-width:thin;scrollbar-color:#c9bcae transparent}
.catalog-page .results-heading{padding:0 0 15px;margin:0;align-items:center}
.catalog-page .results-heading h2{font:400 28px/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.6px}
.catalog-page #sort-label{font-size:10px;letter-spacing:.08em;font-weight:400;color:var(--muted);margin-bottom:8px}
.catalog-page .results-heading>span{color:var(--green);background:#efe4d7;border-radius:3px;font-size:12px;font-weight:400}
.catalog-page .restaurant-list{gap:0}
.catalog-page .restaurant-card{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;margin:0;padding:17px 0}
.catalog-page .restaurant-card:hover{transform:none;box-shadow:none;background:#f3ecdf}
.catalog-page .restaurant-card.is-selected{background:#f1e5d6;box-shadow:none;border-color:var(--green)}
.catalog-page .card-main{padding:0 22px 0 0;grid-template-columns:110px minmax(0,1fr);gap:16px;background:transparent}
.catalog-page .restaurant-photo-wrap{height:122px;min-height:0;border-radius:2px}
.catalog-page .restaurant-photo{border-radius:2px}
.catalog-page .restaurant-title-line h3{font:400 25px/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.4px}
.catalog-page .restaurant-price{color:var(--green);font-size:18px;font-weight:600;margin-top:8px}
.catalog-page .restaurant-price span{color:var(--muted);font-size:11px;font-weight:400}
.catalog-page .card-address{font-size:11px;margin-top:7px;line-height:1.45}
.catalog-page .menu-preview{white-space:normal;font-size:12px;line-height:1.55;margin-top:8px}
.catalog-page .card-meta{font-size:11px;font-weight:400;margin-top:10px}
.catalog-page .card-details{padding:10px 0 0}
.catalog-page .card-details p{font-size:12px;line-height:1.55}
.catalog-page .schedule-note{font-size:11px;color:var(--muted)}
.catalog-page .restaurant-bottom{padding:12px 0 0;border:0;font-size:11px;gap:12px}
.catalog-page .restaurant-bottom .link{font-size:11px}
.catalog-page .illustration-label{font-size:9px;background:#fffdf9ed;border-radius:2px}
.catalog-page .card-arrow{font-size:23px;right:2px;top:48px;color:var(--green)}
.map-index{background:var(--green);box-shadow:none}
.catalog-map-panel,.catalog-page .map-panel{top:96px}
.catalog-page .map-panel{height:calc(100dvh - 112px);min-height:530px;border:1px solid var(--line);border-radius:3px;background:#ede6d8}
#catalog-map{min-height:530px;background:#ede6d8}
#catalog-map .leaflet-tile-pane{filter:saturate(.35) sepia(.08)}
.map-top-note,.location-button,.fit-map{background:var(--surface);border-color:var(--line);border-radius:3px;box-shadow:0 3px 12px #3c312918;font-weight:400;color:var(--ink)}
.number-pin{background:var(--green)}
.catalog-page footer{max-width:1380px;background:var(--paper);border-top:3px double var(--line);padding:25px 28px;margin:auto;font-size:12px}
.brand.small{font-size:23px}
.button{border-radius:4px}.button.secondary{border-color:var(--line)}
input:not([type=checkbox]),select,textarea{border-color:var(--line)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-color:var(--green)}
dialog{background:var(--surface);border-radius:7px}dialog::backdrop{background:#30291fbb}
dialog h2{font-family:Georgia,'Times New Roman',serif;font-weight:400}
.day-menu{border-radius:5px;background:var(--surface)}
.day-menu.is-today{border-color:#c89579;background:#fbf0e4;box-shadow:inset 4px 0 0 var(--green)}
.day-menu.is-today>summary{background:#f0dfcd}.day-menu.is-today>summary .day-title{color:#763921}.day-menu .today-label{background:var(--green)}
.notice{background:#f2e8d8}
@media(max-width:1050px){.site-header{grid-template-columns:1fr auto}.hero-title-row{gap:25px}.hero-title-row h1{font-size:48px}.journal-hero-photo img{height:240px}.catalog-page .catalog-layout{grid-template-columns:minmax(330px,1fr) minmax(0,1fr);gap:22px}.catalog-page .card-main{grid-template-columns:91px minmax(0,1fr);gap:12px}.catalog-page .restaurant-title-line h3{font-size:22px}}
@media(max-width:760px){
.site-header{min-height:69px;padding:0 16px;gap:10px}.site-header .brand{font-size:24px;gap:9px}.site-header .brand>.brand-mark{width:30px;height:32px;flex-basis:30px}.login-link{font-size:11px;padding:8px 10px}
.finder-hero{padding:25px 18px 17px}.hero-title-row{display:block}.hero-title-row h1{font-size:43px;max-width:none;letter-spacing:-1.5px;margin-bottom:14px}.catalog-page .hero-title-row .eyebrow{font-size:10px;margin-bottom:13px}.journal-intro{font-size:14px;line-height:1.65}.journal-hero-photo{display:none}
.journal-search{margin-top:20px;padding-top:18px;gap:11px}.catalog-page .search-row{display:grid;grid-template-columns:1fr;flex-basis:100%;gap:10px}.catalog-page .search-field{width:100%}.primary-button{width:100%;min-height:44px}.catalog-page .filter-row{flex-wrap:wrap;gap:8px;margin:0!important;padding:0!important}.filter-chip,.cuisine-filter{min-height:42px}.catalog-page .price-filter input{width:85px}.catalog-page #reset{padding:7px;font-size:11px}.cuisine-filter select{font-size:12px}
.saved-location-bar,.saved-location-bar.has-location{grid-template-columns:25px minmax(0,1fr);gap:8px}.saved-location-bar>button{grid-column:2;justify-self:start;min-height:28px;padding:0}.saved-location-bar strong{white-space:normal}.saved-location-bar p{font-size:11px}
.mobile-view{padding:9px 18px 14px;background:var(--paper);border:0}.mobile-view button{border-radius:3px;background:var(--surface);border-color:var(--line)}.mobile-view button.active{background:#efe0ce;border-color:var(--green);color:var(--green-dark)}
.catalog-page .catalog-layout{display:block;padding:0 18px 25px;scroll-margin-top:83px}.catalog-page .results-panel{position:static;height:auto;min-height:0;padding:0;overflow:visible}.catalog-page .results-heading h2{font-size:27px}.catalog-page .restaurant-card{padding:16px 0}.catalog-page .card-main{grid-template-columns:85px minmax(0,1fr);gap:12px;padding:0 16px 0 0}.catalog-page .restaurant-photo-wrap{height:114px;min-height:0}.catalog-page .restaurant-title-line h3{font-size:22px}.catalog-page .restaurant-price{font-size:17px}.catalog-page .restaurant-price span{display:block;font-size:11px;margin-top:3px}.catalog-page .card-details{padding:10px 0 0}.catalog-page .restaurant-bottom{padding:11px 0 0}.catalog-page .card-meta{font-size:10px}
.catalog-map-panel{position:static}.catalog-page .map-panel{position:relative;top:0;height:68dvh;min-height:420px}#catalog-map{min-height:420px}.catalog-page footer{padding:23px 18px}.catalog-page .location-button{right:10px;bottom:24px}.brand.small{font-size:21px}
}
@media(max-width:360px){.site-header .brand{font-size:21px}.site-header .brand>.brand-mark{width:27px;height:29px;flex-basis:27px}.site-header{gap:6px}.login-link{padding:7px 8px}.hero-title-row h1{font-size:39px}}
